diff --git a/LICENSE b/LICENSE index 5695f4d..9b0d144 100644 --- a/LICENSE +++ b/LICENSE @@ -186,7 +186,7 @@ same "printed page" as the copyright notice for easier identification within third-party archives. - Copyright [YEAR] Upbound Inc. All rights reserved. + Copyright 2024 Upbound Inc. All rights reserved. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/Makefile b/Makefile index 8160b94..ce4cb72 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,8 @@ # ==================================================================================== # Setup Project -PROJECT_NAME ?= upjet-provider-template -PROJECT_REPO ?= github.com/upbound/$(PROJECT_NAME) +PROJECT_NAME ?= provider-opentelekomcloud +PROJECT_REPO ?= github.com/opentelekomcloud/$(PROJECT_NAME) export TERRAFORM_VERSION ?= 1.5.7 @@ -10,12 +10,12 @@ export TERRAFORM_VERSION ?= 1.5.7 # licensed under BSL, which is not permitted. TERRAFORM_VERSION_VALID := $(shell [ "$(TERRAFORM_VERSION)" = "`printf "$(TERRAFORM_VERSION)\n1.6" | sort -V | head -n1`" ] && echo 1 || echo 0) -export TERRAFORM_PROVIDER_SOURCE ?= hashicorp/null -export TERRAFORM_PROVIDER_REPO ?= https://github.com/hashicorp/terraform-provider-null -export TERRAFORM_PROVIDER_VERSION ?= 3.1.0 -export TERRAFORM_PROVIDER_DOWNLOAD_NAME ?= terraform-provider-null +export TERRAFORM_PROVIDER_SOURCE ?= opentelekomcloud/opentelekomcloud +export TERRAFORM_PROVIDER_REPO ?= https://github.com/opentelekomcloud/terraform-provider-opentelekomcloud +export TERRAFORM_PROVIDER_VERSION ?= 1.36.14 +export TERRAFORM_PROVIDER_DOWNLOAD_NAME ?= terraform-provider-opentelekomcloud export TERRAFORM_PROVIDER_DOWNLOAD_URL_PREFIX ?= https://releases.hashicorp.com/$(TERRAFORM_PROVIDER_DOWNLOAD_NAME)/$(TERRAFORM_PROVIDER_VERSION) -export TERRAFORM_NATIVE_PROVIDER_BINARY ?= terraform-provider-null_v3.1.0_x5 +export TERRAFORM_NATIVE_PROVIDER_BINARY ?= terraform-provider-opentelekomcloud_v1.36.14 export TERRAFORM_DOCS_PATH ?= docs/resources @@ -44,7 +44,7 @@ NPROCS ?= 1 # to half the number of CPU cores. GO_TEST_PARALLEL := $(shell echo $$(( $(NPROCS) / 2 ))) -GO_REQUIRED_VERSION ?= 1.19 +GO_REQUIRED_VERSION ?= 1.22 GOLANGCILINT_VERSION ?= 1.50.0 GO_STATIC_PACKAGES = $(GO_PROJECT)/cmd/provider $(GO_PROJECT)/cmd/generator GO_LDFLAGS += -X $(GO_PROJECT)/internal/version.Version=$(VERSION) @@ -93,7 +93,7 @@ fallthrough: submodules # NOTE(hasheddan): we force image building to happen prior to xpkg build so that # we ensure image is present in daemon. -xpkg.build.upjet-provider-template: do.build.images +xpkg.build.provider-opentelekomcloud: do.build.images # NOTE(hasheddan): we ensure up is installed prior to running platform-specific # build steps in parallel to avoid encountering an installation race condition. @@ -179,7 +179,7 @@ CROSSPLANE_NAMESPACE = upbound-system # This target requires the following environment variables to be set: # - UPTEST_EXAMPLE_LIST, a comma-separated list of examples to test # To ensure the proper functioning of the end-to-end test resource pre-deletion hook, it is crucial to arrange your resources appropriately. -# You can check the basic implementation here: https://github.com/crossplane/uptest/blob/main/internal/templates/03-delete.yaml.tmpl. +# You can check the basic implementation here: https://github.com/crossplane/uptest/blob/main/internal/opentelekomclouds/03-delete.yaml.tmpl. # - UPTEST_CLOUD_CREDENTIALS (optional), multiple sets of AWS IAM User credentials specified as key=value pairs. # The support keys are currently `DEFAULT` and `PEER`. So, an example for the value of this env. variable is: # DEFAULT='[default] diff --git a/README.md b/README.md index e57c399..0f3c5f7 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,16 @@ -# Provider Template +# Provider opentelekomcloud -`upjet-provider-template` is a [Crossplane](https://crossplane.io/) provider that +`provider-opentelekomcloud` is a [Crossplane](https://crossplane.io/) provider that is built using [Upjet](https://github.com/crossplane/upjet) code generation tools and exposes XRM-conformant managed resources for the -Template API. +opentelekomcloud API. ## Getting Started Install the provider by using the following command after changing the image tag -to the [latest release](https://marketplace.upbound.io/providers/upbound/upjet-provider-template): +to the [latest release](https://marketplace.upbound.io/providers/opentelekomcloud/provider-opentelekomcloud): ``` -up ctp provider install upbound/upjet-provider-template:v0.1.0 +up ctp provider install opentelekomcloud/provider-opentelekomcloud:v0.1.0 ``` Alternatively, you can use declarative installation: @@ -19,15 +19,15 @@ cat < +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "github.com/pkg/errors" + + "github.com/crossplane/upjet/pkg/resource" + "github.com/crossplane/upjet/pkg/resource/json" +) + +// GetTerraformResourceType returns Terraform resource type for this VolumeV2 +func (mg *VolumeV2) GetTerraformResourceType() string { + return "opentelekomcloud_blockstorage_volume_v2" +} + +// GetConnectionDetailsMapping for this VolumeV2 +func (tr *VolumeV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this VolumeV2 +func (tr *VolumeV2) 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 VolumeV2 +func (tr *VolumeV2) 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 VolumeV2 +func (tr *VolumeV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this VolumeV2 +func (tr *VolumeV2) 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 VolumeV2 +func (tr *VolumeV2) 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 VolumeV2 +func (tr *VolumeV2) 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) +} + +// LateInitialize this VolumeV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *VolumeV2) LateInitialize(attrs []byte) (bool, error) { + params := &VolumeV2Parameters{} + 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 *VolumeV2) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/blockstorage/v1alpha1/zz_groupversion_info.go b/apis/blockstorage/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..6e5cffd --- /dev/null +++ b/apis/blockstorage/v1alpha1/zz_groupversion_info.go @@ -0,0 +1,36 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +// +kubebuilder:object:generate=true +// +groupName=blockstorage.crossplane.io +// +versionName=v1alpha1 +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +// Package type metadata. +const ( + CRDGroup = "blockstorage.crossplane.io" + CRDVersion = "v1alpha1" +) + +var ( + // CRDGroupVersion is the API Group Version used to register the objects + CRDGroupVersion = schema.GroupVersion{Group: CRDGroup, Version: CRDVersion} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme + SchemeBuilder = &scheme.Builder{GroupVersion: CRDGroupVersion} + + // AddToScheme adds the types in this group-version to the given scheme. + AddToScheme = SchemeBuilder.AddToScheme +) diff --git a/apis/blockstorage/v1alpha1/zz_volumev2_types.go b/apis/blockstorage/v1alpha1/zz_volumev2_types.go new file mode 100755 index 0000000..993c418 --- /dev/null +++ b/apis/blockstorage/v1alpha1/zz_volumev2_types.go @@ -0,0 +1,291 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 AttachmentInitParameters struct { +} + +type AttachmentObservation struct { + Device *string `json:"device,omitempty" tf:"device,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + InstanceID *string `json:"instanceId,omitempty" tf:"instance_id,omitempty"` +} + +type AttachmentParameters struct { +} + +type VolumeV2InitParameters struct { + + // The availability zone for the volume. + // Changing this creates a new volume. + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // Specifies to delete all snapshots associated with the EVS disk. + Cascade *bool `json:"cascade,omitempty" tf:"cascade,omitempty"` + + // The consistency group to place the volume in. + ConsistencyGroupID *string `json:"consistencyGroupId,omitempty" tf:"consistency_group_id,omitempty"` + + // A description of the volume. Changing this updates + // the volume's description. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The device type of volume to create. Valid options are VBD and SCSI. + // Defaults to VBD. Changing this creates a new volume. + DeviceType *string `json:"deviceType,omitempty" tf:"device_type,omitempty"` + + // The image ID from which to create the volume. + // Changing this creates a new volume. + ImageID *string `json:"imageId,omitempty" tf:"image_id,omitempty"` + + // Metadata key/value pairs to associate with the volume. + // Changing this updates the existing volume metadata. + // The EVS encryption capability with KMS key can be set with the following parameters: + Metadata map[string]*string `json:"metadata,omitempty" tf:"metadata,omitempty"` + + // A unique name for the volume. Changing this updates the + // volume's name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The size of the volume to create (in gigabytes). Decreasing + // this parameter creates a new volume. + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // The snapshot ID from which to create the volume. + // Changing this creates a new volume. + SnapshotID *string `json:"snapshotId,omitempty" tf:"snapshot_id,omitempty"` + + // The volume ID to replicate with. + SourceReplica *string `json:"sourceReplica,omitempty" tf:"source_replica,omitempty"` + + // The volume ID from which to create the volume. + // Changing this creates a new volume. + SourceVolID *string `json:"sourceVolId,omitempty" tf:"source_vol_id,omitempty"` + + // Tags key/value pairs to associate with the volume. + // Changing this updates the existing volume tags. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Currently, the value can be SSD (ultra-high I/O disk type), SAS (high I/O disk type), SATA (common I/O disk type), co-p1 (Exclusive HPC/ SAP HANA: high I/O, performance optimized), or uh-l1 (Exclusive HPC/ SAP HANA: ultra-high-I/O, latency optimized). Read Note for uh-l1 and co-p1: OTC-API. Changing this creates a new volume. + VolumeType *string `json:"volumeType,omitempty" tf:"volume_type,omitempty"` +} + +type VolumeV2Observation struct { + + // If a volume is attached to an instance, this attribute will + // display the Attachment ID, Instance ID, and the Device as the Instance sees it. + Attachment []AttachmentObservation `json:"attachment,omitempty" tf:"attachment,omitempty"` + + // The availability zone for the volume. + // Changing this creates a new volume. + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // Specifies to delete all snapshots associated with the EVS disk. + Cascade *bool `json:"cascade,omitempty" tf:"cascade,omitempty"` + + // The consistency group to place the volume in. + ConsistencyGroupID *string `json:"consistencyGroupId,omitempty" tf:"consistency_group_id,omitempty"` + + // A description of the volume. Changing this updates + // the volume's description. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The device type of volume to create. Valid options are VBD and SCSI. + // Defaults to VBD. Changing this creates a new volume. + DeviceType *string `json:"deviceType,omitempty" tf:"device_type,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The image ID from which to create the volume. + // Changing this creates a new volume. + ImageID *string `json:"imageId,omitempty" tf:"image_id,omitempty"` + + // Metadata key/value pairs to associate with the volume. + // Changing this updates the existing volume metadata. + // The EVS encryption capability with KMS key can be set with the following parameters: + Metadata map[string]*string `json:"metadata,omitempty" tf:"metadata,omitempty"` + + // A unique name for the volume. Changing this updates the + // volume's name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The size of the volume to create (in gigabytes). Decreasing + // this parameter creates a new volume. + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // The snapshot ID from which to create the volume. + // Changing this creates a new volume. + SnapshotID *string `json:"snapshotId,omitempty" tf:"snapshot_id,omitempty"` + + // The volume ID to replicate with. + SourceReplica *string `json:"sourceReplica,omitempty" tf:"source_replica,omitempty"` + + // The volume ID from which to create the volume. + // Changing this creates a new volume. + SourceVolID *string `json:"sourceVolId,omitempty" tf:"source_vol_id,omitempty"` + + // Tags key/value pairs to associate with the volume. + // Changing this updates the existing volume tags. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Currently, the value can be SSD (ultra-high I/O disk type), SAS (high I/O disk type), SATA (common I/O disk type), co-p1 (Exclusive HPC/ SAP HANA: high I/O, performance optimized), or uh-l1 (Exclusive HPC/ SAP HANA: ultra-high-I/O, latency optimized). Read Note for uh-l1 and co-p1: OTC-API. Changing this creates a new volume. + VolumeType *string `json:"volumeType,omitempty" tf:"volume_type,omitempty"` + + // Specifies the unique identifier used for mounting the EVS disk. + Wwn *string `json:"wwn,omitempty" tf:"wwn,omitempty"` +} + +type VolumeV2Parameters struct { + + // The availability zone for the volume. + // Changing this creates a new volume. + // +kubebuilder:validation:Optional + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // Specifies to delete all snapshots associated with the EVS disk. + // +kubebuilder:validation:Optional + Cascade *bool `json:"cascade,omitempty" tf:"cascade,omitempty"` + + // The consistency group to place the volume in. + // +kubebuilder:validation:Optional + ConsistencyGroupID *string `json:"consistencyGroupId,omitempty" tf:"consistency_group_id,omitempty"` + + // A description of the volume. Changing this updates + // the volume's description. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The device type of volume to create. Valid options are VBD and SCSI. + // Defaults to VBD. Changing this creates a new volume. + // +kubebuilder:validation:Optional + DeviceType *string `json:"deviceType,omitempty" tf:"device_type,omitempty"` + + // The image ID from which to create the volume. + // Changing this creates a new volume. + // +kubebuilder:validation:Optional + ImageID *string `json:"imageId,omitempty" tf:"image_id,omitempty"` + + // Metadata key/value pairs to associate with the volume. + // Changing this updates the existing volume metadata. + // The EVS encryption capability with KMS key can be set with the following parameters: + // +kubebuilder:validation:Optional + Metadata map[string]*string `json:"metadata,omitempty" tf:"metadata,omitempty"` + + // A unique name for the volume. Changing this updates the + // volume's name. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The size of the volume to create (in gigabytes). Decreasing + // this parameter creates a new volume. + // +kubebuilder:validation:Optional + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // The snapshot ID from which to create the volume. + // Changing this creates a new volume. + // +kubebuilder:validation:Optional + SnapshotID *string `json:"snapshotId,omitempty" tf:"snapshot_id,omitempty"` + + // The volume ID to replicate with. + // +kubebuilder:validation:Optional + SourceReplica *string `json:"sourceReplica,omitempty" tf:"source_replica,omitempty"` + + // The volume ID from which to create the volume. + // Changing this creates a new volume. + // +kubebuilder:validation:Optional + SourceVolID *string `json:"sourceVolId,omitempty" tf:"source_vol_id,omitempty"` + + // Tags key/value pairs to associate with the volume. + // Changing this updates the existing volume tags. + // +kubebuilder:validation:Optional + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Currently, the value can be SSD (ultra-high I/O disk type), SAS (high I/O disk type), SATA (common I/O disk type), co-p1 (Exclusive HPC/ SAP HANA: high I/O, performance optimized), or uh-l1 (Exclusive HPC/ SAP HANA: ultra-high-I/O, latency optimized). Read Note for uh-l1 and co-p1: OTC-API. Changing this creates a new volume. + // +kubebuilder:validation:Optional + VolumeType *string `json:"volumeType,omitempty" tf:"volume_type,omitempty"` +} + +// VolumeV2Spec defines the desired state of VolumeV2 +type VolumeV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider VolumeV2Parameters `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 VolumeV2InitParameters `json:"initProvider,omitempty"` +} + +// VolumeV2Status defines the observed state of VolumeV2. +type VolumeV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider VolumeV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// VolumeV2 is the Schema for the VolumeV2s API. Manages a BlockStorage volume resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type VolumeV2 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.size) || (has(self.initProvider) && has(self.initProvider.size))",message="spec.forProvider.size is a required parameter" + Spec VolumeV2Spec `json:"spec"` + Status VolumeV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// VolumeV2List contains a list of VolumeV2s +type VolumeV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []VolumeV2 `json:"items"` +} + +// Repository type metadata. +var ( + VolumeV2_Kind = "VolumeV2" + VolumeV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: VolumeV2_Kind}.String() + VolumeV2_KindAPIVersion = VolumeV2_Kind + "." + CRDGroupVersion.String() + VolumeV2_GroupVersionKind = CRDGroupVersion.WithKind(VolumeV2_Kind) +) + +func init() { + SchemeBuilder.Register(&VolumeV2{}, &VolumeV2List{}) +} diff --git a/apis/cce/v1alpha1/zz_addonv3_types.go b/apis/cce/v1alpha1/zz_addonv3_types.go new file mode 100755 index 0000000..da07d6e --- /dev/null +++ b/apis/cce/v1alpha1/zz_addonv3_types.go @@ -0,0 +1,178 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 AddonV3InitParameters struct { + + // ID of cluster to install the add-on on. + ClusterID *string `json:"clusterId,omitempty" tf:"cluster_id,omitempty"` + + // Name of the add-on template to be installed, for example, coredns. + TemplateName *string `json:"templateName,omitempty" tf:"template_name,omitempty"` + + // Version number of the add-on to be installed or upgraded, for example, v1.0.0. + TemplateVersion *string `json:"templateVersion,omitempty" tf:"template_version,omitempty"` + + // Parameters of the template to be installed or upgraded. + Values []ValuesInitParameters `json:"values,omitempty" tf:"values,omitempty"` +} + +type AddonV3Observation struct { + + // ID of cluster to install the add-on on. + ClusterID *string `json:"clusterId,omitempty" tf:"cluster_id,omitempty"` + + // Installed add-on description + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Installed add-on name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Name of the add-on template to be installed, for example, coredns. + TemplateName *string `json:"templateName,omitempty" tf:"template_name,omitempty"` + + // Version number of the add-on to be installed or upgraded, for example, v1.0.0. + TemplateVersion *string `json:"templateVersion,omitempty" tf:"template_version,omitempty"` + + // Parameters of the template to be installed or upgraded. + Values []ValuesObservation `json:"values,omitempty" tf:"values,omitempty"` +} + +type AddonV3Parameters struct { + + // ID of cluster to install the add-on on. + // +kubebuilder:validation:Optional + ClusterID *string `json:"clusterId,omitempty" tf:"cluster_id,omitempty"` + + // Name of the add-on template to be installed, for example, coredns. + // +kubebuilder:validation:Optional + TemplateName *string `json:"templateName,omitempty" tf:"template_name,omitempty"` + + // Version number of the add-on to be installed or upgraded, for example, v1.0.0. + // +kubebuilder:validation:Optional + TemplateVersion *string `json:"templateVersion,omitempty" tf:"template_version,omitempty"` + + // Parameters of the template to be installed or upgraded. + // +kubebuilder:validation:Optional + Values []ValuesParameters `json:"values,omitempty" tf:"values,omitempty"` +} + +type ValuesInitParameters struct { + + // Basic add-on information. + Basic map[string]*string `json:"basic,omitempty" tf:"basic,omitempty"` + + // Custom parameters of the add-on. + Custom map[string]*string `json:"custom,omitempty" tf:"custom,omitempty"` + + // Specifies the json string vary depending on the add-on. + Flavor *string `json:"flavor,omitempty" tf:"flavor,omitempty"` +} + +type ValuesObservation struct { + + // Basic add-on information. + Basic map[string]*string `json:"basic,omitempty" tf:"basic,omitempty"` + + // Custom parameters of the add-on. + Custom map[string]*string `json:"custom,omitempty" tf:"custom,omitempty"` + + // Specifies the json string vary depending on the add-on. + Flavor *string `json:"flavor,omitempty" tf:"flavor,omitempty"` +} + +type ValuesParameters struct { + + // Basic add-on information. + // +kubebuilder:validation:Optional + Basic map[string]*string `json:"basic" tf:"basic,omitempty"` + + // Custom parameters of the add-on. + // +kubebuilder:validation:Optional + Custom map[string]*string `json:"custom" tf:"custom,omitempty"` + + // Specifies the json string vary depending on the add-on. + // +kubebuilder:validation:Optional + Flavor *string `json:"flavor,omitempty" tf:"flavor,omitempty"` +} + +// AddonV3Spec defines the desired state of AddonV3 +type AddonV3Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider AddonV3Parameters `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 AddonV3InitParameters `json:"initProvider,omitempty"` +} + +// AddonV3Status defines the observed state of AddonV3. +type AddonV3Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider AddonV3Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// AddonV3 is the Schema for the AddonV3s API. Manages a CCE Addon resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type AddonV3 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.clusterId) || (has(self.initProvider) && has(self.initProvider.clusterId))",message="spec.forProvider.clusterId is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.templateName) || (has(self.initProvider) && has(self.initProvider.templateName))",message="spec.forProvider.templateName is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.templateVersion) || (has(self.initProvider) && has(self.initProvider.templateVersion))",message="spec.forProvider.templateVersion is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.values) || (has(self.initProvider) && has(self.initProvider.values))",message="spec.forProvider.values is a required parameter" + Spec AddonV3Spec `json:"spec"` + Status AddonV3Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// AddonV3List contains a list of AddonV3s +type AddonV3List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []AddonV3 `json:"items"` +} + +// Repository type metadata. +var ( + AddonV3_Kind = "AddonV3" + AddonV3_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: AddonV3_Kind}.String() + AddonV3_KindAPIVersion = AddonV3_Kind + "." + CRDGroupVersion.String() + AddonV3_GroupVersionKind = CRDGroupVersion.WithKind(AddonV3_Kind) +) + +func init() { + SchemeBuilder.Register(&AddonV3{}, &AddonV3List{}) +} diff --git a/apis/cce/v1alpha1/zz_clusterv3_types.go b/apis/cce/v1alpha1/zz_clusterv3_types.go new file mode 100755 index 0000000..78ff06d --- /dev/null +++ b/apis/cce/v1alpha1/zz_clusterv3_types.go @@ -0,0 +1,605 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 AuthenticatingProxyInitParameters struct { + + // X509 CA certificate configured in authenticating_proxy mode. The maximum size of the certificate is 1 MB. + CA *string `json:"ca,omitempty" tf:"ca,omitempty"` + + // Client certificate issued by the X509 CA certificate configured in authenticating_proxy mode. + // This certificate is used for authentication from kube-apiserver to the extended API server. + Cert *string `json:"cert,omitempty" tf:"cert,omitempty"` + + // 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. + PrivateKey *string `json:"privateKey,omitempty" tf:"private_key,omitempty"` +} + +type AuthenticatingProxyObservation struct { + + // X509 CA certificate configured in authenticating_proxy mode. The maximum size of the certificate is 1 MB. + CA *string `json:"ca,omitempty" tf:"ca,omitempty"` + + // Client certificate issued by the X509 CA certificate configured in authenticating_proxy mode. + // This certificate is used for authentication from kube-apiserver to the extended API server. + Cert *string `json:"cert,omitempty" tf:"cert,omitempty"` + + // 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. + PrivateKey *string `json:"privateKey,omitempty" tf:"private_key,omitempty"` +} + +type AuthenticatingProxyParameters struct { + + // X509 CA certificate configured in authenticating_proxy mode. The maximum size of the certificate is 1 MB. + // +kubebuilder:validation:Optional + CA *string `json:"ca" tf:"ca,omitempty"` + + // Client certificate issued by the X509 CA certificate configured in authenticating_proxy mode. + // This certificate is used for authentication from kube-apiserver to the extended API server. + // +kubebuilder:validation:Optional + Cert *string `json:"cert" tf:"cert,omitempty"` + + // 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. + // +kubebuilder:validation:Optional + PrivateKey *string `json:"privateKey" tf:"private_key,omitempty"` +} + +type CertificateClustersInitParameters struct { +} + +type CertificateClustersObservation struct { + CertificateAuthorityData *string `json:"certificateAuthorityData,omitempty" tf:"certificate_authority_data,omitempty"` + + // Cluster name. Changing this parameter will create a new cluster resource. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + Server *string `json:"server,omitempty" tf:"server,omitempty"` +} + +type CertificateClustersParameters struct { +} + +type CertificateUsersInitParameters struct { +} + +type CertificateUsersObservation struct { + ClientCertificateData *string `json:"clientCertificateData,omitempty" tf:"client_certificate_data,omitempty"` + + ClientKeyData *string `json:"clientKeyData,omitempty" tf:"client_key_data,omitempty"` + + // Cluster name. Changing this parameter will create a new cluster resource. + Name *string `json:"name,omitempty" tf:"name,omitempty"` +} + +type CertificateUsersParameters struct { +} + +type ClusterV3InitParameters struct { + + // Cluster annotation, key/value pair format. Changing this parameter will create a new cluster resource. + Annotations map[string]*string `json:"annotations,omitempty" tf:"annotations,omitempty"` + + // Authenticating proxy configuration. Required if authentication_mode is set to authenticating_proxy. + AuthenticatingProxy []AuthenticatingProxyInitParameters `json:"authenticatingProxy,omitempty" tf:"authenticating_proxy,omitempty"` + + // CA root certificate provided in the authenticating_proxy mode. + // Deprecated, use authenticating_proxy instead. + AuthenticatingProxyCA *string `json:"authenticatingProxyCa,omitempty" tf:"authenticating_proxy_ca,omitempty"` + + // Authentication mode of the cluster, possible values are rbac and authenticating_proxy. + // Defaults to rbac. Changing this parameter will create a new cluster resource. + AuthenticationMode *string `json:"authenticationMode,omitempty" tf:"authentication_mode,omitempty"` + + // Charging mode of the cluster, which is 0 (on demand). Changing this parameter will create a new cluster resource. + BillingMode *float64 `json:"billingMode,omitempty" tf:"billing_mode,omitempty"` + + // Cluster Type, possible values are VirtualMachine and BareMetal. Changing this parameter will create a new cluster resource. + ClusterType *string `json:"clusterType,omitempty" tf:"cluster_type,omitempty"` + + // For the cluster version, possible values are v1.27, v1.25, v1.23, v1.21. + // If this parameter is not set, the cluster of the latest version is created by default. + // Changing this parameter will create a new cluster resource. OTC-API + ClusterVersion *string `json:"clusterVersion,omitempty" tf:"cluster_version,omitempty"` + + // Container network segment. Changing this parameter will create a new cluster resource. + ContainerNetworkCidr *string `json:"containerNetworkCidr,omitempty" tf:"container_network_cidr,omitempty"` + + // Container network type. + ContainerNetworkType *string `json:"containerNetworkType,omitempty" tf:"container_network_type,omitempty"` + + // Specified whether to delete all associated network resources when deleting the CCE + // cluster. valid values are true, try and false. Default is false. + DeleteAllNetwork *string `json:"deleteAllNetwork,omitempty" tf:"delete_all_network,omitempty"` + + // Specified whether to delete all associated storage resources when deleting the CCE + // cluster. valid values are true, try and false. Default is false. + DeleteAllStorage *string `json:"deleteAllStorage,omitempty" tf:"delete_all_storage,omitempty"` + + // Specified whether to unbind associated SFS Turbo file systems when deleting the CCE + // cluster. valid values are true, try and false. Default is false. + DeleteEFS *string `json:"deleteEfs,omitempty" tf:"delete_efs,omitempty"` + + // Specified whether to delete ENI ports when deleting the CCE + // cluster. valid values are true, try and false. Default is false. + DeleteEni *string `json:"deleteEni,omitempty" tf:"delete_eni,omitempty"` + + // Specified whether to delete associated EVS disks when deleting the CCE cluster. + // valid values are true, try and false. Default is false. + DeleteEvs *string `json:"deleteEvs,omitempty" tf:"delete_evs,omitempty"` + + // Specified whether to delete cluster Service/ingress-related resources, such as ELB when deleting the CCE + // cluster. valid values are true, try and false. Default is false. + DeleteNet *string `json:"deleteNet,omitempty" tf:"delete_net,omitempty"` + + // Specified whether to delete associated OBS buckets when deleting the CCE cluster. + // valid values are true, try and false. Default is false. + DeleteObs *string `json:"deleteObs,omitempty" tf:"delete_obs,omitempty"` + + // Specified whether to delete associated SFS file systems when deleting the CCE + // cluster. valid values are true, try and false. Default is false. + DeleteSfs *string `json:"deleteSfs,omitempty" tf:"delete_sfs,omitempty"` + + // Cluster description. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // EIP address of the cluster. + EIP *string `json:"eip,omitempty" tf:"eip,omitempty"` + + // System and data disks encryption of master nodes. Changing this parameter will create a new cluster resource. + EnableVolumeEncryption *bool `json:"enableVolumeEncryption,omitempty" tf:"enable_volume_encryption,omitempty"` + + // Specifies the ENI network segment. Specified when creating a CCE Turbo cluster. Changing this parameter will create a new cluster resource. + EniSubnetCidr *string `json:"eniSubnetCidr,omitempty" tf:"eni_subnet_cidr,omitempty"` + + // - Specifies the ENI subnet ID. Specified when creating a CCE Turbo cluster. Changing this parameter will create a new cluster resource. + EniSubnetID *string `json:"eniSubnetId,omitempty" tf:"eni_subnet_id,omitempty"` + + // Extended parameter. Changing this parameter will create a new cluster resource. + // List of cluster extended params. + ExtendParam map[string]*string `json:"extendParam,omitempty" tf:"extend_param,omitempty"` + + // Cluster specifications. Changing this parameter will create a new cluster resource. + FlavorID *string `json:"flavorId,omitempty" tf:"flavor_id,omitempty"` + + // The ID of the high speed network used to create bare metal nodes. Changing this parameter will create a new cluster resource. + HighwaySubnetID *string `json:"highwaySubnetId,omitempty" tf:"highway_subnet_id,omitempty"` + + // Skip all cluster addons operations. + IgnoreAddons *bool `json:"ignoreAddons,omitempty" tf:"ignore_addons,omitempty"` + + // Skip sensitive cluster data. + IgnoreCertificateClustersData *bool `json:"ignoreCertificateClustersData,omitempty" tf:"ignore_certificate_clusters_data,omitempty"` + + // Skip sensitive user data. + IgnoreCertificateUsersData *bool `json:"ignoreCertificateUsersData,omitempty" tf:"ignore_certificate_users_data,omitempty"` + + // Service forwarding mode. Two modes are available: + KubeProxyMode *string `json:"kubeProxyMode,omitempty" tf:"kube_proxy_mode,omitempty"` + + // Service CIDR block, or the IP address range which the kubernetes + // clusterIp must fall within. This parameter is available only for clusters of v1.11.7 and later. + KubernetesSvcIPRange *string `json:"kubernetesSvcIpRange,omitempty" tf:"kubernetes_svc_ip_range,omitempty"` + + // Cluster tag, key/value pair format. Changing this parameter will create a new cluster resource. + Labels map[string]*string `json:"labels,omitempty" tf:"labels,omitempty"` + + // Enable multiple AZs for the cluster, only when using HA flavors. Changing this parameter will create a new cluster resource. + MultiAz *bool `json:"multiAz,omitempty" tf:"multi_az,omitempty"` + + // Cluster name. Changing this parameter will create a new cluster resource. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Remove addons installed by the default after the cluster creation. + NoAddons *bool `json:"noAddons,omitempty" tf:"no_addons,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The Network ID of the subnet used to create the node. Changing this parameter will create a new cluster resource. + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // The ID of the VPC used to create the node. Changing this parameter will create a new cluster resource. + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +} + +type ClusterV3Observation struct { + + // Cluster annotation, key/value pair format. Changing this parameter will create a new cluster resource. + Annotations map[string]*string `json:"annotations,omitempty" tf:"annotations,omitempty"` + + // Authenticating proxy configuration. Required if authentication_mode is set to authenticating_proxy. + AuthenticatingProxy []AuthenticatingProxyObservation `json:"authenticatingProxy,omitempty" tf:"authenticating_proxy,omitempty"` + + // CA root certificate provided in the authenticating_proxy mode. + // Deprecated, use authenticating_proxy instead. + AuthenticatingProxyCA *string `json:"authenticatingProxyCa,omitempty" tf:"authenticating_proxy_ca,omitempty"` + + // Authentication mode of the cluster, possible values are rbac and authenticating_proxy. + // Defaults to rbac. Changing this parameter will create a new cluster resource. + AuthenticationMode *string `json:"authenticationMode,omitempty" tf:"authentication_mode,omitempty"` + + // Charging mode of the cluster, which is 0 (on demand). Changing this parameter will create a new cluster resource. + BillingMode *float64 `json:"billingMode,omitempty" tf:"billing_mode,omitempty"` + + CertificateClusters []CertificateClustersObservation `json:"certificateClusters,omitempty" tf:"certificate_clusters,omitempty"` + + CertificateUsers []CertificateUsersObservation `json:"certificateUsers,omitempty" tf:"certificate_users,omitempty"` + + // Cluster Type, possible values are VirtualMachine and BareMetal. Changing this parameter will create a new cluster resource. + ClusterType *string `json:"clusterType,omitempty" tf:"cluster_type,omitempty"` + + // For the cluster version, possible values are v1.27, v1.25, v1.23, v1.21. + // If this parameter is not set, the cluster of the latest version is created by default. + // Changing this parameter will create a new cluster resource. OTC-API + ClusterVersion *string `json:"clusterVersion,omitempty" tf:"cluster_version,omitempty"` + + // Container network segment. Changing this parameter will create a new cluster resource. + ContainerNetworkCidr *string `json:"containerNetworkCidr,omitempty" tf:"container_network_cidr,omitempty"` + + // Container network type. + ContainerNetworkType *string `json:"containerNetworkType,omitempty" tf:"container_network_type,omitempty"` + + // Specified whether to delete all associated network resources when deleting the CCE + // cluster. valid values are true, try and false. Default is false. + DeleteAllNetwork *string `json:"deleteAllNetwork,omitempty" tf:"delete_all_network,omitempty"` + + // Specified whether to delete all associated storage resources when deleting the CCE + // cluster. valid values are true, try and false. Default is false. + DeleteAllStorage *string `json:"deleteAllStorage,omitempty" tf:"delete_all_storage,omitempty"` + + // Specified whether to unbind associated SFS Turbo file systems when deleting the CCE + // cluster. valid values are true, try and false. Default is false. + DeleteEFS *string `json:"deleteEfs,omitempty" tf:"delete_efs,omitempty"` + + // Specified whether to delete ENI ports when deleting the CCE + // cluster. valid values are true, try and false. Default is false. + DeleteEni *string `json:"deleteEni,omitempty" tf:"delete_eni,omitempty"` + + // Specified whether to delete associated EVS disks when deleting the CCE cluster. + // valid values are true, try and false. Default is false. + DeleteEvs *string `json:"deleteEvs,omitempty" tf:"delete_evs,omitempty"` + + // Specified whether to delete cluster Service/ingress-related resources, such as ELB when deleting the CCE + // cluster. valid values are true, try and false. Default is false. + DeleteNet *string `json:"deleteNet,omitempty" tf:"delete_net,omitempty"` + + // Specified whether to delete associated OBS buckets when deleting the CCE cluster. + // valid values are true, try and false. Default is false. + DeleteObs *string `json:"deleteObs,omitempty" tf:"delete_obs,omitempty"` + + // Specified whether to delete associated SFS file systems when deleting the CCE + // cluster. valid values are true, try and false. Default is false. + DeleteSfs *string `json:"deleteSfs,omitempty" tf:"delete_sfs,omitempty"` + + // Cluster description. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // EIP address of the cluster. + EIP *string `json:"eip,omitempty" tf:"eip,omitempty"` + + // System and data disks encryption of master nodes. Changing this parameter will create a new cluster resource. + EnableVolumeEncryption *bool `json:"enableVolumeEncryption,omitempty" tf:"enable_volume_encryption,omitempty"` + + // Specifies the ENI network segment. Specified when creating a CCE Turbo cluster. Changing this parameter will create a new cluster resource. + EniSubnetCidr *string `json:"eniSubnetCidr,omitempty" tf:"eni_subnet_cidr,omitempty"` + + // - Specifies the ENI subnet ID. Specified when creating a CCE Turbo cluster. Changing this parameter will create a new cluster resource. + EniSubnetID *string `json:"eniSubnetId,omitempty" tf:"eni_subnet_id,omitempty"` + + // Extended parameter. Changing this parameter will create a new cluster resource. + // List of cluster extended params. + ExtendParam map[string]*string `json:"extendParam,omitempty" tf:"extend_param,omitempty"` + + // The external network address. + External *string `json:"external,omitempty" tf:"external,omitempty"` + + // The endpoint of the cluster to be accessed through API Gateway. + ExternalOtc *string `json:"externalOtc,omitempty" tf:"external_otc,omitempty"` + + // Cluster specifications. Changing this parameter will create a new cluster resource. + FlavorID *string `json:"flavorId,omitempty" tf:"flavor_id,omitempty"` + + // The ID of the high speed network used to create bare metal nodes. Changing this parameter will create a new cluster resource. + HighwaySubnetID *string `json:"highwaySubnetId,omitempty" tf:"highway_subnet_id,omitempty"` + + // ID of the cluster resource. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Skip all cluster addons operations. + IgnoreAddons *bool `json:"ignoreAddons,omitempty" tf:"ignore_addons,omitempty"` + + // Skip sensitive cluster data. + IgnoreCertificateClustersData *bool `json:"ignoreCertificateClustersData,omitempty" tf:"ignore_certificate_clusters_data,omitempty"` + + // Skip sensitive user data. + IgnoreCertificateUsersData *bool `json:"ignoreCertificateUsersData,omitempty" tf:"ignore_certificate_users_data,omitempty"` + + // List of installed addon IDs. Empty if ignore_addons is true. + InstalledAddons []*string `json:"installedAddons,omitempty" tf:"installed_addons,omitempty"` + + // The internal network address. + Internal *string `json:"internal,omitempty" tf:"internal,omitempty"` + + // Service forwarding mode. Two modes are available: + KubeProxyMode *string `json:"kubeProxyMode,omitempty" tf:"kube_proxy_mode,omitempty"` + + // Service CIDR block, or the IP address range which the kubernetes + // clusterIp must fall within. This parameter is available only for clusters of v1.11.7 and later. + KubernetesSvcIPRange *string `json:"kubernetesSvcIpRange,omitempty" tf:"kubernetes_svc_ip_range,omitempty"` + + // Cluster tag, key/value pair format. Changing this parameter will create a new cluster resource. + Labels map[string]*string `json:"labels,omitempty" tf:"labels,omitempty"` + + // Enable multiple AZs for the cluster, only when using HA flavors. Changing this parameter will create a new cluster resource. + MultiAz *bool `json:"multiAz,omitempty" tf:"multi_az,omitempty"` + + // Cluster name. Changing this parameter will create a new cluster resource. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Remove addons installed by the default after the cluster creation. + NoAddons *bool `json:"noAddons,omitempty" tf:"no_addons,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // ID of the autogenerated security group for the CCE master port. + SecurityGroupControl *string `json:"securityGroupControl,omitempty" tf:"security_group_control,omitempty"` + + // ID of the autogenerated security group for the CCE nodes. + SecurityGroupNode *string `json:"securityGroupNode,omitempty" tf:"security_group_node,omitempty"` + + // Cluster status information. + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + // The Network ID of the subnet used to create the node. Changing this parameter will create a new cluster resource. + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // The ID of the VPC used to create the node. Changing this parameter will create a new cluster resource. + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +} + +type ClusterV3Parameters struct { + + // Cluster annotation, key/value pair format. Changing this parameter will create a new cluster resource. + // +kubebuilder:validation:Optional + Annotations map[string]*string `json:"annotations,omitempty" tf:"annotations,omitempty"` + + // Authenticating proxy configuration. Required if authentication_mode is set to authenticating_proxy. + // +kubebuilder:validation:Optional + AuthenticatingProxy []AuthenticatingProxyParameters `json:"authenticatingProxy,omitempty" tf:"authenticating_proxy,omitempty"` + + // CA root certificate provided in the authenticating_proxy mode. + // Deprecated, use authenticating_proxy instead. + // +kubebuilder:validation:Optional + AuthenticatingProxyCA *string `json:"authenticatingProxyCa,omitempty" tf:"authenticating_proxy_ca,omitempty"` + + // Authentication mode of the cluster, possible values are rbac and authenticating_proxy. + // Defaults to rbac. Changing this parameter will create a new cluster resource. + // +kubebuilder:validation:Optional + AuthenticationMode *string `json:"authenticationMode,omitempty" tf:"authentication_mode,omitempty"` + + // Charging mode of the cluster, which is 0 (on demand). Changing this parameter will create a new cluster resource. + // +kubebuilder:validation:Optional + BillingMode *float64 `json:"billingMode,omitempty" tf:"billing_mode,omitempty"` + + // Cluster Type, possible values are VirtualMachine and BareMetal. Changing this parameter will create a new cluster resource. + // +kubebuilder:validation:Optional + ClusterType *string `json:"clusterType,omitempty" tf:"cluster_type,omitempty"` + + // For the cluster version, possible values are v1.27, v1.25, v1.23, v1.21. + // If this parameter is not set, the cluster of the latest version is created by default. + // Changing this parameter will create a new cluster resource. OTC-API + // +kubebuilder:validation:Optional + ClusterVersion *string `json:"clusterVersion,omitempty" tf:"cluster_version,omitempty"` + + // Container network segment. Changing this parameter will create a new cluster resource. + // +kubebuilder:validation:Optional + ContainerNetworkCidr *string `json:"containerNetworkCidr,omitempty" tf:"container_network_cidr,omitempty"` + + // Container network type. + // +kubebuilder:validation:Optional + ContainerNetworkType *string `json:"containerNetworkType,omitempty" tf:"container_network_type,omitempty"` + + // Specified whether to delete all associated network resources when deleting the CCE + // cluster. valid values are true, try and false. Default is false. + // +kubebuilder:validation:Optional + DeleteAllNetwork *string `json:"deleteAllNetwork,omitempty" tf:"delete_all_network,omitempty"` + + // Specified whether to delete all associated storage resources when deleting the CCE + // cluster. valid values are true, try and false. Default is false. + // +kubebuilder:validation:Optional + DeleteAllStorage *string `json:"deleteAllStorage,omitempty" tf:"delete_all_storage,omitempty"` + + // Specified whether to unbind associated SFS Turbo file systems when deleting the CCE + // cluster. valid values are true, try and false. Default is false. + // +kubebuilder:validation:Optional + DeleteEFS *string `json:"deleteEfs,omitempty" tf:"delete_efs,omitempty"` + + // Specified whether to delete ENI ports when deleting the CCE + // cluster. valid values are true, try and false. Default is false. + // +kubebuilder:validation:Optional + DeleteEni *string `json:"deleteEni,omitempty" tf:"delete_eni,omitempty"` + + // Specified whether to delete associated EVS disks when deleting the CCE cluster. + // valid values are true, try and false. Default is false. + // +kubebuilder:validation:Optional + DeleteEvs *string `json:"deleteEvs,omitempty" tf:"delete_evs,omitempty"` + + // Specified whether to delete cluster Service/ingress-related resources, such as ELB when deleting the CCE + // cluster. valid values are true, try and false. Default is false. + // +kubebuilder:validation:Optional + DeleteNet *string `json:"deleteNet,omitempty" tf:"delete_net,omitempty"` + + // Specified whether to delete associated OBS buckets when deleting the CCE cluster. + // valid values are true, try and false. Default is false. + // +kubebuilder:validation:Optional + DeleteObs *string `json:"deleteObs,omitempty" tf:"delete_obs,omitempty"` + + // Specified whether to delete associated SFS file systems when deleting the CCE + // cluster. valid values are true, try and false. Default is false. + // +kubebuilder:validation:Optional + DeleteSfs *string `json:"deleteSfs,omitempty" tf:"delete_sfs,omitempty"` + + // Cluster description. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // EIP address of the cluster. + // +kubebuilder:validation:Optional + EIP *string `json:"eip,omitempty" tf:"eip,omitempty"` + + // System and data disks encryption of master nodes. Changing this parameter will create a new cluster resource. + // +kubebuilder:validation:Optional + EnableVolumeEncryption *bool `json:"enableVolumeEncryption,omitempty" tf:"enable_volume_encryption,omitempty"` + + // Specifies the ENI network segment. Specified when creating a CCE Turbo cluster. Changing this parameter will create a new cluster resource. + // +kubebuilder:validation:Optional + EniSubnetCidr *string `json:"eniSubnetCidr,omitempty" tf:"eni_subnet_cidr,omitempty"` + + // - Specifies the ENI subnet ID. Specified when creating a CCE Turbo cluster. Changing this parameter will create a new cluster resource. + // +kubebuilder:validation:Optional + EniSubnetID *string `json:"eniSubnetId,omitempty" tf:"eni_subnet_id,omitempty"` + + // Extended parameter. Changing this parameter will create a new cluster resource. + // List of cluster extended params. + // +kubebuilder:validation:Optional + ExtendParam map[string]*string `json:"extendParam,omitempty" tf:"extend_param,omitempty"` + + // Cluster specifications. Changing this parameter will create a new cluster resource. + // +kubebuilder:validation:Optional + FlavorID *string `json:"flavorId,omitempty" tf:"flavor_id,omitempty"` + + // The ID of the high speed network used to create bare metal nodes. Changing this parameter will create a new cluster resource. + // +kubebuilder:validation:Optional + HighwaySubnetID *string `json:"highwaySubnetId,omitempty" tf:"highway_subnet_id,omitempty"` + + // Skip all cluster addons operations. + // +kubebuilder:validation:Optional + IgnoreAddons *bool `json:"ignoreAddons,omitempty" tf:"ignore_addons,omitempty"` + + // Skip sensitive cluster data. + // +kubebuilder:validation:Optional + IgnoreCertificateClustersData *bool `json:"ignoreCertificateClustersData,omitempty" tf:"ignore_certificate_clusters_data,omitempty"` + + // Skip sensitive user data. + // +kubebuilder:validation:Optional + IgnoreCertificateUsersData *bool `json:"ignoreCertificateUsersData,omitempty" tf:"ignore_certificate_users_data,omitempty"` + + // Service forwarding mode. Two modes are available: + // +kubebuilder:validation:Optional + KubeProxyMode *string `json:"kubeProxyMode,omitempty" tf:"kube_proxy_mode,omitempty"` + + // Service CIDR block, or the IP address range which the kubernetes + // clusterIp must fall within. This parameter is available only for clusters of v1.11.7 and later. + // +kubebuilder:validation:Optional + KubernetesSvcIPRange *string `json:"kubernetesSvcIpRange,omitempty" tf:"kubernetes_svc_ip_range,omitempty"` + + // Cluster tag, key/value pair format. Changing this parameter will create a new cluster resource. + // +kubebuilder:validation:Optional + Labels map[string]*string `json:"labels,omitempty" tf:"labels,omitempty"` + + // Enable multiple AZs for the cluster, only when using HA flavors. Changing this parameter will create a new cluster resource. + // +kubebuilder:validation:Optional + MultiAz *bool `json:"multiAz,omitempty" tf:"multi_az,omitempty"` + + // Cluster name. Changing this parameter will create a new cluster resource. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Remove addons installed by the default after the cluster creation. + // +kubebuilder:validation:Optional + NoAddons *bool `json:"noAddons,omitempty" tf:"no_addons,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The Network ID of the subnet used to create the node. Changing this parameter will create a new cluster resource. + // +kubebuilder:validation:Optional + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // The ID of the VPC used to create the node. Changing this parameter will create a new cluster resource. + // +kubebuilder:validation:Optional + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +} + +// ClusterV3Spec defines the desired state of ClusterV3 +type ClusterV3Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider ClusterV3Parameters `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 ClusterV3InitParameters `json:"initProvider,omitempty"` +} + +// ClusterV3Status defines the observed state of ClusterV3. +type ClusterV3Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider ClusterV3Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// ClusterV3 is the Schema for the ClusterV3s API. Manages a CCE Cluster resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type ClusterV3 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.clusterType) || (has(self.initProvider) && has(self.initProvider.clusterType))",message="spec.forProvider.clusterType is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.containerNetworkType) || (has(self.initProvider) && has(self.initProvider.containerNetworkType))",message="spec.forProvider.containerNetworkType is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.flavorId) || (has(self.initProvider) && has(self.initProvider.flavorId))",message="spec.forProvider.flavorId is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name 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" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.vpcId) || (has(self.initProvider) && has(self.initProvider.vpcId))",message="spec.forProvider.vpcId is a required parameter" + Spec ClusterV3Spec `json:"spec"` + Status ClusterV3Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// ClusterV3List contains a list of ClusterV3s +type ClusterV3List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []ClusterV3 `json:"items"` +} + +// Repository type metadata. +var ( + ClusterV3_Kind = "ClusterV3" + ClusterV3_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: ClusterV3_Kind}.String() + ClusterV3_KindAPIVersion = ClusterV3_Kind + "." + CRDGroupVersion.String() + ClusterV3_GroupVersionKind = CRDGroupVersion.WithKind(ClusterV3_Kind) +) + +func init() { + SchemeBuilder.Register(&ClusterV3{}, &ClusterV3List{}) +} diff --git a/apis/cce/v1alpha1/zz_generated.deepcopy.go b/apis/cce/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..b93bff1 --- /dev/null +++ b/apis/cce/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,3746 @@ +//go:build !ignore_autogenerated + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by controller-gen. DO NOT EDIT. + +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 *AddonV3) DeepCopyInto(out *AddonV3) { + *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 AddonV3. +func (in *AddonV3) DeepCopy() *AddonV3 { + if in == nil { + return nil + } + out := new(AddonV3) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *AddonV3) 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 *AddonV3InitParameters) DeepCopyInto(out *AddonV3InitParameters) { + *out = *in + if in.ClusterID != nil { + in, out := &in.ClusterID, &out.ClusterID + *out = new(string) + **out = **in + } + if in.TemplateName != nil { + in, out := &in.TemplateName, &out.TemplateName + *out = new(string) + **out = **in + } + if in.TemplateVersion != nil { + in, out := &in.TemplateVersion, &out.TemplateVersion + *out = new(string) + **out = **in + } + if in.Values != nil { + in, out := &in.Values, &out.Values + *out = make([]ValuesInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AddonV3InitParameters. +func (in *AddonV3InitParameters) DeepCopy() *AddonV3InitParameters { + if in == nil { + return nil + } + out := new(AddonV3InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AddonV3List) DeepCopyInto(out *AddonV3List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]AddonV3, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AddonV3List. +func (in *AddonV3List) DeepCopy() *AddonV3List { + if in == nil { + return nil + } + out := new(AddonV3List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *AddonV3List) 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 *AddonV3Observation) DeepCopyInto(out *AddonV3Observation) { + *out = *in + if in.ClusterID != nil { + in, out := &in.ClusterID, &out.ClusterID + *out = new(string) + **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.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.TemplateName != nil { + in, out := &in.TemplateName, &out.TemplateName + *out = new(string) + **out = **in + } + if in.TemplateVersion != nil { + in, out := &in.TemplateVersion, &out.TemplateVersion + *out = new(string) + **out = **in + } + if in.Values != nil { + in, out := &in.Values, &out.Values + *out = make([]ValuesObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AddonV3Observation. +func (in *AddonV3Observation) DeepCopy() *AddonV3Observation { + if in == nil { + return nil + } + out := new(AddonV3Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AddonV3Parameters) DeepCopyInto(out *AddonV3Parameters) { + *out = *in + if in.ClusterID != nil { + in, out := &in.ClusterID, &out.ClusterID + *out = new(string) + **out = **in + } + if in.TemplateName != nil { + in, out := &in.TemplateName, &out.TemplateName + *out = new(string) + **out = **in + } + if in.TemplateVersion != nil { + in, out := &in.TemplateVersion, &out.TemplateVersion + *out = new(string) + **out = **in + } + if in.Values != nil { + in, out := &in.Values, &out.Values + *out = make([]ValuesParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AddonV3Parameters. +func (in *AddonV3Parameters) DeepCopy() *AddonV3Parameters { + if in == nil { + return nil + } + out := new(AddonV3Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AddonV3Spec) DeepCopyInto(out *AddonV3Spec) { + *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 AddonV3Spec. +func (in *AddonV3Spec) DeepCopy() *AddonV3Spec { + if in == nil { + return nil + } + out := new(AddonV3Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AddonV3Status) DeepCopyInto(out *AddonV3Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AddonV3Status. +func (in *AddonV3Status) DeepCopy() *AddonV3Status { + if in == nil { + return nil + } + out := new(AddonV3Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AuthenticatingProxyInitParameters) DeepCopyInto(out *AuthenticatingProxyInitParameters) { + *out = *in + if in.CA != nil { + in, out := &in.CA, &out.CA + *out = new(string) + **out = **in + } + if in.Cert != nil { + in, out := &in.Cert, &out.Cert + *out = new(string) + **out = **in + } + if in.PrivateKey != nil { + in, out := &in.PrivateKey, &out.PrivateKey + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthenticatingProxyInitParameters. +func (in *AuthenticatingProxyInitParameters) DeepCopy() *AuthenticatingProxyInitParameters { + if in == nil { + return nil + } + out := new(AuthenticatingProxyInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AuthenticatingProxyObservation) DeepCopyInto(out *AuthenticatingProxyObservation) { + *out = *in + if in.CA != nil { + in, out := &in.CA, &out.CA + *out = new(string) + **out = **in + } + if in.Cert != nil { + in, out := &in.Cert, &out.Cert + *out = new(string) + **out = **in + } + if in.PrivateKey != nil { + in, out := &in.PrivateKey, &out.PrivateKey + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthenticatingProxyObservation. +func (in *AuthenticatingProxyObservation) DeepCopy() *AuthenticatingProxyObservation { + if in == nil { + return nil + } + out := new(AuthenticatingProxyObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AuthenticatingProxyParameters) DeepCopyInto(out *AuthenticatingProxyParameters) { + *out = *in + if in.CA != nil { + in, out := &in.CA, &out.CA + *out = new(string) + **out = **in + } + if in.Cert != nil { + in, out := &in.Cert, &out.Cert + *out = new(string) + **out = **in + } + if in.PrivateKey != nil { + in, out := &in.PrivateKey, &out.PrivateKey + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AuthenticatingProxyParameters. +func (in *AuthenticatingProxyParameters) DeepCopy() *AuthenticatingProxyParameters { + if in == nil { + return nil + } + out := new(AuthenticatingProxyParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CertificateClustersInitParameters) DeepCopyInto(out *CertificateClustersInitParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateClustersInitParameters. +func (in *CertificateClustersInitParameters) DeepCopy() *CertificateClustersInitParameters { + if in == nil { + return nil + } + out := new(CertificateClustersInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CertificateClustersObservation) DeepCopyInto(out *CertificateClustersObservation) { + *out = *in + if in.CertificateAuthorityData != nil { + in, out := &in.CertificateAuthorityData, &out.CertificateAuthorityData + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Server != nil { + in, out := &in.Server, &out.Server + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateClustersObservation. +func (in *CertificateClustersObservation) DeepCopy() *CertificateClustersObservation { + if in == nil { + return nil + } + out := new(CertificateClustersObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CertificateClustersParameters) DeepCopyInto(out *CertificateClustersParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateClustersParameters. +func (in *CertificateClustersParameters) DeepCopy() *CertificateClustersParameters { + if in == nil { + return nil + } + out := new(CertificateClustersParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CertificateUsersInitParameters) DeepCopyInto(out *CertificateUsersInitParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateUsersInitParameters. +func (in *CertificateUsersInitParameters) DeepCopy() *CertificateUsersInitParameters { + if in == nil { + return nil + } + out := new(CertificateUsersInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CertificateUsersObservation) DeepCopyInto(out *CertificateUsersObservation) { + *out = *in + if in.ClientCertificateData != nil { + in, out := &in.ClientCertificateData, &out.ClientCertificateData + *out = new(string) + **out = **in + } + if in.ClientKeyData != nil { + in, out := &in.ClientKeyData, &out.ClientKeyData + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateUsersObservation. +func (in *CertificateUsersObservation) DeepCopy() *CertificateUsersObservation { + if in == nil { + return nil + } + out := new(CertificateUsersObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CertificateUsersParameters) DeepCopyInto(out *CertificateUsersParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateUsersParameters. +func (in *CertificateUsersParameters) DeepCopy() *CertificateUsersParameters { + if in == nil { + return nil + } + out := new(CertificateUsersParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterV3) DeepCopyInto(out *ClusterV3) { + *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 ClusterV3. +func (in *ClusterV3) DeepCopy() *ClusterV3 { + if in == nil { + return nil + } + out := new(ClusterV3) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ClusterV3) 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 *ClusterV3InitParameters) DeepCopyInto(out *ClusterV3InitParameters) { + *out = *in + if in.Annotations != nil { + in, out := &in.Annotations, &out.Annotations + *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.AuthenticatingProxy != nil { + in, out := &in.AuthenticatingProxy, &out.AuthenticatingProxy + *out = make([]AuthenticatingProxyInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.AuthenticatingProxyCA != nil { + in, out := &in.AuthenticatingProxyCA, &out.AuthenticatingProxyCA + *out = new(string) + **out = **in + } + if in.AuthenticationMode != nil { + in, out := &in.AuthenticationMode, &out.AuthenticationMode + *out = new(string) + **out = **in + } + if in.BillingMode != nil { + in, out := &in.BillingMode, &out.BillingMode + *out = new(float64) + **out = **in + } + if in.ClusterType != nil { + in, out := &in.ClusterType, &out.ClusterType + *out = new(string) + **out = **in + } + if in.ClusterVersion != nil { + in, out := &in.ClusterVersion, &out.ClusterVersion + *out = new(string) + **out = **in + } + if in.ContainerNetworkCidr != nil { + in, out := &in.ContainerNetworkCidr, &out.ContainerNetworkCidr + *out = new(string) + **out = **in + } + if in.ContainerNetworkType != nil { + in, out := &in.ContainerNetworkType, &out.ContainerNetworkType + *out = new(string) + **out = **in + } + if in.DeleteAllNetwork != nil { + in, out := &in.DeleteAllNetwork, &out.DeleteAllNetwork + *out = new(string) + **out = **in + } + if in.DeleteAllStorage != nil { + in, out := &in.DeleteAllStorage, &out.DeleteAllStorage + *out = new(string) + **out = **in + } + if in.DeleteEFS != nil { + in, out := &in.DeleteEFS, &out.DeleteEFS + *out = new(string) + **out = **in + } + if in.DeleteEni != nil { + in, out := &in.DeleteEni, &out.DeleteEni + *out = new(string) + **out = **in + } + if in.DeleteEvs != nil { + in, out := &in.DeleteEvs, &out.DeleteEvs + *out = new(string) + **out = **in + } + if in.DeleteNet != nil { + in, out := &in.DeleteNet, &out.DeleteNet + *out = new(string) + **out = **in + } + if in.DeleteObs != nil { + in, out := &in.DeleteObs, &out.DeleteObs + *out = new(string) + **out = **in + } + if in.DeleteSfs != nil { + in, out := &in.DeleteSfs, &out.DeleteSfs + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.EIP != nil { + in, out := &in.EIP, &out.EIP + *out = new(string) + **out = **in + } + if in.EnableVolumeEncryption != nil { + in, out := &in.EnableVolumeEncryption, &out.EnableVolumeEncryption + *out = new(bool) + **out = **in + } + if in.EniSubnetCidr != nil { + in, out := &in.EniSubnetCidr, &out.EniSubnetCidr + *out = new(string) + **out = **in + } + if in.EniSubnetID != nil { + in, out := &in.EniSubnetID, &out.EniSubnetID + *out = new(string) + **out = **in + } + if in.ExtendParam != nil { + in, out := &in.ExtendParam, &out.ExtendParam + *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.FlavorID != nil { + in, out := &in.FlavorID, &out.FlavorID + *out = new(string) + **out = **in + } + if in.HighwaySubnetID != nil { + in, out := &in.HighwaySubnetID, &out.HighwaySubnetID + *out = new(string) + **out = **in + } + if in.IgnoreAddons != nil { + in, out := &in.IgnoreAddons, &out.IgnoreAddons + *out = new(bool) + **out = **in + } + if in.IgnoreCertificateClustersData != nil { + in, out := &in.IgnoreCertificateClustersData, &out.IgnoreCertificateClustersData + *out = new(bool) + **out = **in + } + if in.IgnoreCertificateUsersData != nil { + in, out := &in.IgnoreCertificateUsersData, &out.IgnoreCertificateUsersData + *out = new(bool) + **out = **in + } + if in.KubeProxyMode != nil { + in, out := &in.KubeProxyMode, &out.KubeProxyMode + *out = new(string) + **out = **in + } + if in.KubernetesSvcIPRange != nil { + in, out := &in.KubernetesSvcIPRange, &out.KubernetesSvcIPRange + *out = new(string) + **out = **in + } + if in.Labels != nil { + in, out := &in.Labels, &out.Labels + *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.MultiAz != nil { + in, out := &in.MultiAz, &out.MultiAz + *out = new(bool) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NoAddons != nil { + in, out := &in.NoAddons, &out.NoAddons + *out = new(bool) + **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.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterV3InitParameters. +func (in *ClusterV3InitParameters) DeepCopy() *ClusterV3InitParameters { + if in == nil { + return nil + } + out := new(ClusterV3InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterV3List) DeepCopyInto(out *ClusterV3List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ClusterV3, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterV3List. +func (in *ClusterV3List) DeepCopy() *ClusterV3List { + if in == nil { + return nil + } + out := new(ClusterV3List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ClusterV3List) 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 *ClusterV3Observation) DeepCopyInto(out *ClusterV3Observation) { + *out = *in + if in.Annotations != nil { + in, out := &in.Annotations, &out.Annotations + *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.AuthenticatingProxy != nil { + in, out := &in.AuthenticatingProxy, &out.AuthenticatingProxy + *out = make([]AuthenticatingProxyObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.AuthenticatingProxyCA != nil { + in, out := &in.AuthenticatingProxyCA, &out.AuthenticatingProxyCA + *out = new(string) + **out = **in + } + if in.AuthenticationMode != nil { + in, out := &in.AuthenticationMode, &out.AuthenticationMode + *out = new(string) + **out = **in + } + if in.BillingMode != nil { + in, out := &in.BillingMode, &out.BillingMode + *out = new(float64) + **out = **in + } + if in.CertificateClusters != nil { + in, out := &in.CertificateClusters, &out.CertificateClusters + *out = make([]CertificateClustersObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.CertificateUsers != nil { + in, out := &in.CertificateUsers, &out.CertificateUsers + *out = make([]CertificateUsersObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ClusterType != nil { + in, out := &in.ClusterType, &out.ClusterType + *out = new(string) + **out = **in + } + if in.ClusterVersion != nil { + in, out := &in.ClusterVersion, &out.ClusterVersion + *out = new(string) + **out = **in + } + if in.ContainerNetworkCidr != nil { + in, out := &in.ContainerNetworkCidr, &out.ContainerNetworkCidr + *out = new(string) + **out = **in + } + if in.ContainerNetworkType != nil { + in, out := &in.ContainerNetworkType, &out.ContainerNetworkType + *out = new(string) + **out = **in + } + if in.DeleteAllNetwork != nil { + in, out := &in.DeleteAllNetwork, &out.DeleteAllNetwork + *out = new(string) + **out = **in + } + if in.DeleteAllStorage != nil { + in, out := &in.DeleteAllStorage, &out.DeleteAllStorage + *out = new(string) + **out = **in + } + if in.DeleteEFS != nil { + in, out := &in.DeleteEFS, &out.DeleteEFS + *out = new(string) + **out = **in + } + if in.DeleteEni != nil { + in, out := &in.DeleteEni, &out.DeleteEni + *out = new(string) + **out = **in + } + if in.DeleteEvs != nil { + in, out := &in.DeleteEvs, &out.DeleteEvs + *out = new(string) + **out = **in + } + if in.DeleteNet != nil { + in, out := &in.DeleteNet, &out.DeleteNet + *out = new(string) + **out = **in + } + if in.DeleteObs != nil { + in, out := &in.DeleteObs, &out.DeleteObs + *out = new(string) + **out = **in + } + if in.DeleteSfs != nil { + in, out := &in.DeleteSfs, &out.DeleteSfs + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.EIP != nil { + in, out := &in.EIP, &out.EIP + *out = new(string) + **out = **in + } + if in.EnableVolumeEncryption != nil { + in, out := &in.EnableVolumeEncryption, &out.EnableVolumeEncryption + *out = new(bool) + **out = **in + } + if in.EniSubnetCidr != nil { + in, out := &in.EniSubnetCidr, &out.EniSubnetCidr + *out = new(string) + **out = **in + } + if in.EniSubnetID != nil { + in, out := &in.EniSubnetID, &out.EniSubnetID + *out = new(string) + **out = **in + } + if in.ExtendParam != nil { + in, out := &in.ExtendParam, &out.ExtendParam + *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.External != nil { + in, out := &in.External, &out.External + *out = new(string) + **out = **in + } + if in.ExternalOtc != nil { + in, out := &in.ExternalOtc, &out.ExternalOtc + *out = new(string) + **out = **in + } + if in.FlavorID != nil { + in, out := &in.FlavorID, &out.FlavorID + *out = new(string) + **out = **in + } + if in.HighwaySubnetID != nil { + in, out := &in.HighwaySubnetID, &out.HighwaySubnetID + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.IgnoreAddons != nil { + in, out := &in.IgnoreAddons, &out.IgnoreAddons + *out = new(bool) + **out = **in + } + if in.IgnoreCertificateClustersData != nil { + in, out := &in.IgnoreCertificateClustersData, &out.IgnoreCertificateClustersData + *out = new(bool) + **out = **in + } + if in.IgnoreCertificateUsersData != nil { + in, out := &in.IgnoreCertificateUsersData, &out.IgnoreCertificateUsersData + *out = new(bool) + **out = **in + } + if in.InstalledAddons != nil { + in, out := &in.InstalledAddons, &out.InstalledAddons + *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.Internal != nil { + in, out := &in.Internal, &out.Internal + *out = new(string) + **out = **in + } + if in.KubeProxyMode != nil { + in, out := &in.KubeProxyMode, &out.KubeProxyMode + *out = new(string) + **out = **in + } + if in.KubernetesSvcIPRange != nil { + in, out := &in.KubernetesSvcIPRange, &out.KubernetesSvcIPRange + *out = new(string) + **out = **in + } + if in.Labels != nil { + in, out := &in.Labels, &out.Labels + *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.MultiAz != nil { + in, out := &in.MultiAz, &out.MultiAz + *out = new(bool) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NoAddons != nil { + in, out := &in.NoAddons, &out.NoAddons + *out = new(bool) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.SecurityGroupControl != nil { + in, out := &in.SecurityGroupControl, &out.SecurityGroupControl + *out = new(string) + **out = **in + } + if in.SecurityGroupNode != nil { + in, out := &in.SecurityGroupNode, &out.SecurityGroupNode + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(string) + **out = **in + } + if in.SubnetID != nil { + in, out := &in.SubnetID, &out.SubnetID + *out = new(string) + **out = **in + } + if in.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterV3Observation. +func (in *ClusterV3Observation) DeepCopy() *ClusterV3Observation { + if in == nil { + return nil + } + out := new(ClusterV3Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterV3Parameters) DeepCopyInto(out *ClusterV3Parameters) { + *out = *in + if in.Annotations != nil { + in, out := &in.Annotations, &out.Annotations + *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.AuthenticatingProxy != nil { + in, out := &in.AuthenticatingProxy, &out.AuthenticatingProxy + *out = make([]AuthenticatingProxyParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.AuthenticatingProxyCA != nil { + in, out := &in.AuthenticatingProxyCA, &out.AuthenticatingProxyCA + *out = new(string) + **out = **in + } + if in.AuthenticationMode != nil { + in, out := &in.AuthenticationMode, &out.AuthenticationMode + *out = new(string) + **out = **in + } + if in.BillingMode != nil { + in, out := &in.BillingMode, &out.BillingMode + *out = new(float64) + **out = **in + } + if in.ClusterType != nil { + in, out := &in.ClusterType, &out.ClusterType + *out = new(string) + **out = **in + } + if in.ClusterVersion != nil { + in, out := &in.ClusterVersion, &out.ClusterVersion + *out = new(string) + **out = **in + } + if in.ContainerNetworkCidr != nil { + in, out := &in.ContainerNetworkCidr, &out.ContainerNetworkCidr + *out = new(string) + **out = **in + } + if in.ContainerNetworkType != nil { + in, out := &in.ContainerNetworkType, &out.ContainerNetworkType + *out = new(string) + **out = **in + } + if in.DeleteAllNetwork != nil { + in, out := &in.DeleteAllNetwork, &out.DeleteAllNetwork + *out = new(string) + **out = **in + } + if in.DeleteAllStorage != nil { + in, out := &in.DeleteAllStorage, &out.DeleteAllStorage + *out = new(string) + **out = **in + } + if in.DeleteEFS != nil { + in, out := &in.DeleteEFS, &out.DeleteEFS + *out = new(string) + **out = **in + } + if in.DeleteEni != nil { + in, out := &in.DeleteEni, &out.DeleteEni + *out = new(string) + **out = **in + } + if in.DeleteEvs != nil { + in, out := &in.DeleteEvs, &out.DeleteEvs + *out = new(string) + **out = **in + } + if in.DeleteNet != nil { + in, out := &in.DeleteNet, &out.DeleteNet + *out = new(string) + **out = **in + } + if in.DeleteObs != nil { + in, out := &in.DeleteObs, &out.DeleteObs + *out = new(string) + **out = **in + } + if in.DeleteSfs != nil { + in, out := &in.DeleteSfs, &out.DeleteSfs + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.EIP != nil { + in, out := &in.EIP, &out.EIP + *out = new(string) + **out = **in + } + if in.EnableVolumeEncryption != nil { + in, out := &in.EnableVolumeEncryption, &out.EnableVolumeEncryption + *out = new(bool) + **out = **in + } + if in.EniSubnetCidr != nil { + in, out := &in.EniSubnetCidr, &out.EniSubnetCidr + *out = new(string) + **out = **in + } + if in.EniSubnetID != nil { + in, out := &in.EniSubnetID, &out.EniSubnetID + *out = new(string) + **out = **in + } + if in.ExtendParam != nil { + in, out := &in.ExtendParam, &out.ExtendParam + *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.FlavorID != nil { + in, out := &in.FlavorID, &out.FlavorID + *out = new(string) + **out = **in + } + if in.HighwaySubnetID != nil { + in, out := &in.HighwaySubnetID, &out.HighwaySubnetID + *out = new(string) + **out = **in + } + if in.IgnoreAddons != nil { + in, out := &in.IgnoreAddons, &out.IgnoreAddons + *out = new(bool) + **out = **in + } + if in.IgnoreCertificateClustersData != nil { + in, out := &in.IgnoreCertificateClustersData, &out.IgnoreCertificateClustersData + *out = new(bool) + **out = **in + } + if in.IgnoreCertificateUsersData != nil { + in, out := &in.IgnoreCertificateUsersData, &out.IgnoreCertificateUsersData + *out = new(bool) + **out = **in + } + if in.KubeProxyMode != nil { + in, out := &in.KubeProxyMode, &out.KubeProxyMode + *out = new(string) + **out = **in + } + if in.KubernetesSvcIPRange != nil { + in, out := &in.KubernetesSvcIPRange, &out.KubernetesSvcIPRange + *out = new(string) + **out = **in + } + if in.Labels != nil { + in, out := &in.Labels, &out.Labels + *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.MultiAz != nil { + in, out := &in.MultiAz, &out.MultiAz + *out = new(bool) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NoAddons != nil { + in, out := &in.NoAddons, &out.NoAddons + *out = new(bool) + **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.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterV3Parameters. +func (in *ClusterV3Parameters) DeepCopy() *ClusterV3Parameters { + if in == nil { + return nil + } + out := new(ClusterV3Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterV3Spec) DeepCopyInto(out *ClusterV3Spec) { + *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 ClusterV3Spec. +func (in *ClusterV3Spec) DeepCopy() *ClusterV3Spec { + if in == nil { + return nil + } + out := new(ClusterV3Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ClusterV3Status) DeepCopyInto(out *ClusterV3Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ClusterV3Status. +func (in *ClusterV3Status) DeepCopy() *ClusterV3Status { + if in == nil { + return nil + } + out := new(ClusterV3Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DataVolumesInitParameters) DeepCopyInto(out *DataVolumesInitParameters) { + *out = *in + if in.ExtendParam != nil { + in, out := &in.ExtendParam, &out.ExtendParam + *out = new(string) + **out = **in + } + if in.ExtendParams != nil { + in, out := &in.ExtendParams, &out.ExtendParams + *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.KMSID != nil { + in, out := &in.KMSID, &out.KMSID + *out = new(string) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } + if in.Volumetype != nil { + in, out := &in.Volumetype, &out.Volumetype + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataVolumesInitParameters. +func (in *DataVolumesInitParameters) DeepCopy() *DataVolumesInitParameters { + if in == nil { + return nil + } + out := new(DataVolumesInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DataVolumesObservation) DeepCopyInto(out *DataVolumesObservation) { + *out = *in + if in.ExtendParam != nil { + in, out := &in.ExtendParam, &out.ExtendParam + *out = new(string) + **out = **in + } + if in.ExtendParams != nil { + in, out := &in.ExtendParams, &out.ExtendParams + *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.KMSID != nil { + in, out := &in.KMSID, &out.KMSID + *out = new(string) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } + if in.Volumetype != nil { + in, out := &in.Volumetype, &out.Volumetype + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataVolumesObservation. +func (in *DataVolumesObservation) DeepCopy() *DataVolumesObservation { + if in == nil { + return nil + } + out := new(DataVolumesObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DataVolumesParameters) DeepCopyInto(out *DataVolumesParameters) { + *out = *in + if in.ExtendParam != nil { + in, out := &in.ExtendParam, &out.ExtendParam + *out = new(string) + **out = **in + } + if in.ExtendParams != nil { + in, out := &in.ExtendParams, &out.ExtendParams + *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.KMSID != nil { + in, out := &in.KMSID, &out.KMSID + *out = new(string) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } + if in.Volumetype != nil { + in, out := &in.Volumetype, &out.Volumetype + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataVolumesParameters. +func (in *DataVolumesParameters) DeepCopy() *DataVolumesParameters { + if in == nil { + return nil + } + out := new(DataVolumesParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodePoolV3) DeepCopyInto(out *NodePoolV3) { + *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 NodePoolV3. +func (in *NodePoolV3) DeepCopy() *NodePoolV3 { + if in == nil { + return nil + } + out := new(NodePoolV3) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *NodePoolV3) 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 *NodePoolV3InitParameters) DeepCopyInto(out *NodePoolV3InitParameters) { + *out = *in + if in.AgencyName != nil { + in, out := &in.AgencyName, &out.AgencyName + *out = new(string) + **out = **in + } + if in.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *out = new(string) + **out = **in + } + if in.ClusterID != nil { + in, out := &in.ClusterID, &out.ClusterID + *out = new(string) + **out = **in + } + if in.DataVolumes != nil { + in, out := &in.DataVolumes, &out.DataVolumes + *out = make([]DataVolumesInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.DockerBaseSize != nil { + in, out := &in.DockerBaseSize, &out.DockerBaseSize + *out = new(float64) + **out = **in + } + if in.DockerLvmConfigOverride != nil { + in, out := &in.DockerLvmConfigOverride, &out.DockerLvmConfigOverride + *out = new(string) + **out = **in + } + if in.Flavor != nil { + in, out := &in.Flavor, &out.Flavor + *out = new(string) + **out = **in + } + if in.InitialNodeCount != nil { + in, out := &in.InitialNodeCount, &out.InitialNodeCount + *out = new(float64) + **out = **in + } + if in.K8STags != nil { + in, out := &in.K8STags, &out.K8STags + *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.KeyPair != nil { + in, out := &in.KeyPair, &out.KeyPair + *out = new(string) + **out = **in + } + if in.MaxNodeCount != nil { + in, out := &in.MaxNodeCount, &out.MaxNodeCount + *out = new(float64) + **out = **in + } + if in.MaxPods != nil { + in, out := &in.MaxPods, &out.MaxPods + *out = new(float64) + **out = **in + } + if in.MinNodeCount != nil { + in, out := &in.MinNodeCount, &out.MinNodeCount + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Os != nil { + in, out := &in.Os, &out.Os + *out = new(string) + **out = **in + } + if in.Postinstall != nil { + in, out := &in.Postinstall, &out.Postinstall + *out = new(string) + **out = **in + } + if in.Preinstall != nil { + in, out := &in.Preinstall, &out.Preinstall + *out = new(string) + **out = **in + } + if in.Priority != nil { + in, out := &in.Priority, &out.Priority + *out = new(float64) + **out = **in + } + if in.RootVolume != nil { + in, out := &in.RootVolume, &out.RootVolume + *out = make([]RootVolumeInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Runtime != nil { + in, out := &in.Runtime, &out.Runtime + *out = new(string) + **out = **in + } + if in.ScaleDownCooldownTime != nil { + in, out := &in.ScaleDownCooldownTime, &out.ScaleDownCooldownTime + *out = new(float64) + **out = **in + } + if in.ScaleEnable != nil { + in, out := &in.ScaleEnable, &out.ScaleEnable + *out = new(bool) + **out = **in + } + if in.ServerGroupReference != nil { + in, out := &in.ServerGroupReference, &out.ServerGroupReference + *out = new(string) + **out = **in + } + if in.Storage != nil { + in, out := &in.Storage, &out.Storage + *out = new(string) + **out = **in + } + if in.SubnetID != nil { + in, out := &in.SubnetID, &out.SubnetID + *out = new(string) + **out = **in + } + if in.Taints != nil { + in, out := &in.Taints, &out.Taints + *out = make([]TaintsInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.UserTags != nil { + in, out := &in.UserTags, &out.UserTags + *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 NodePoolV3InitParameters. +func (in *NodePoolV3InitParameters) DeepCopy() *NodePoolV3InitParameters { + if in == nil { + return nil + } + out := new(NodePoolV3InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodePoolV3List) DeepCopyInto(out *NodePoolV3List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]NodePoolV3, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodePoolV3List. +func (in *NodePoolV3List) DeepCopy() *NodePoolV3List { + if in == nil { + return nil + } + out := new(NodePoolV3List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *NodePoolV3List) 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 *NodePoolV3Observation) DeepCopyInto(out *NodePoolV3Observation) { + *out = *in + if in.AgencyName != nil { + in, out := &in.AgencyName, &out.AgencyName + *out = new(string) + **out = **in + } + if in.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *out = new(string) + **out = **in + } + if in.ClusterID != nil { + in, out := &in.ClusterID, &out.ClusterID + *out = new(string) + **out = **in + } + if in.DataVolumes != nil { + in, out := &in.DataVolumes, &out.DataVolumes + *out = make([]DataVolumesObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.DockerBaseSize != nil { + in, out := &in.DockerBaseSize, &out.DockerBaseSize + *out = new(float64) + **out = **in + } + if in.DockerLvmConfigOverride != nil { + in, out := &in.DockerLvmConfigOverride, &out.DockerLvmConfigOverride + *out = new(string) + **out = **in + } + if in.Flavor != nil { + in, out := &in.Flavor, &out.Flavor + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.InitialNodeCount != nil { + in, out := &in.InitialNodeCount, &out.InitialNodeCount + *out = new(float64) + **out = **in + } + if in.K8STags != nil { + in, out := &in.K8STags, &out.K8STags + *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.KeyPair != nil { + in, out := &in.KeyPair, &out.KeyPair + *out = new(string) + **out = **in + } + if in.MaxNodeCount != nil { + in, out := &in.MaxNodeCount, &out.MaxNodeCount + *out = new(float64) + **out = **in + } + if in.MaxPods != nil { + in, out := &in.MaxPods, &out.MaxPods + *out = new(float64) + **out = **in + } + if in.MinNodeCount != nil { + in, out := &in.MinNodeCount, &out.MinNodeCount + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Os != nil { + in, out := &in.Os, &out.Os + *out = new(string) + **out = **in + } + if in.Postinstall != nil { + in, out := &in.Postinstall, &out.Postinstall + *out = new(string) + **out = **in + } + if in.Preinstall != nil { + in, out := &in.Preinstall, &out.Preinstall + *out = new(string) + **out = **in + } + if in.Priority != nil { + in, out := &in.Priority, &out.Priority + *out = new(float64) + **out = **in + } + if in.RootVolume != nil { + in, out := &in.RootVolume, &out.RootVolume + *out = make([]RootVolumeObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Runtime != nil { + in, out := &in.Runtime, &out.Runtime + *out = new(string) + **out = **in + } + if in.ScaleDownCooldownTime != nil { + in, out := &in.ScaleDownCooldownTime, &out.ScaleDownCooldownTime + *out = new(float64) + **out = **in + } + if in.ScaleEnable != nil { + in, out := &in.ScaleEnable, &out.ScaleEnable + *out = new(bool) + **out = **in + } + if in.ServerGroupReference != nil { + in, out := &in.ServerGroupReference, &out.ServerGroupReference + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(string) + **out = **in + } + if in.Storage != nil { + in, out := &in.Storage, &out.Storage + *out = new(string) + **out = **in + } + if in.SubnetID != nil { + in, out := &in.SubnetID, &out.SubnetID + *out = new(string) + **out = **in + } + if in.Taints != nil { + in, out := &in.Taints, &out.Taints + *out = make([]TaintsObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.UserTags != nil { + in, out := &in.UserTags, &out.UserTags + *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 NodePoolV3Observation. +func (in *NodePoolV3Observation) DeepCopy() *NodePoolV3Observation { + if in == nil { + return nil + } + out := new(NodePoolV3Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodePoolV3Parameters) DeepCopyInto(out *NodePoolV3Parameters) { + *out = *in + if in.AgencyName != nil { + in, out := &in.AgencyName, &out.AgencyName + *out = new(string) + **out = **in + } + if in.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *out = new(string) + **out = **in + } + if in.ClusterID != nil { + in, out := &in.ClusterID, &out.ClusterID + *out = new(string) + **out = **in + } + if in.DataVolumes != nil { + in, out := &in.DataVolumes, &out.DataVolumes + *out = make([]DataVolumesParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.DockerBaseSize != nil { + in, out := &in.DockerBaseSize, &out.DockerBaseSize + *out = new(float64) + **out = **in + } + if in.DockerLvmConfigOverride != nil { + in, out := &in.DockerLvmConfigOverride, &out.DockerLvmConfigOverride + *out = new(string) + **out = **in + } + if in.Flavor != nil { + in, out := &in.Flavor, &out.Flavor + *out = new(string) + **out = **in + } + if in.InitialNodeCount != nil { + in, out := &in.InitialNodeCount, &out.InitialNodeCount + *out = new(float64) + **out = **in + } + if in.K8STags != nil { + in, out := &in.K8STags, &out.K8STags + *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.KeyPair != nil { + in, out := &in.KeyPair, &out.KeyPair + *out = new(string) + **out = **in + } + if in.MaxNodeCount != nil { + in, out := &in.MaxNodeCount, &out.MaxNodeCount + *out = new(float64) + **out = **in + } + if in.MaxPods != nil { + in, out := &in.MaxPods, &out.MaxPods + *out = new(float64) + **out = **in + } + if in.MinNodeCount != nil { + in, out := &in.MinNodeCount, &out.MinNodeCount + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Os != nil { + in, out := &in.Os, &out.Os + *out = new(string) + **out = **in + } + if in.PasswordSecretRef != nil { + in, out := &in.PasswordSecretRef, &out.PasswordSecretRef + *out = new(v1.SecretKeySelector) + **out = **in + } + if in.Postinstall != nil { + in, out := &in.Postinstall, &out.Postinstall + *out = new(string) + **out = **in + } + if in.Preinstall != nil { + in, out := &in.Preinstall, &out.Preinstall + *out = new(string) + **out = **in + } + if in.Priority != nil { + in, out := &in.Priority, &out.Priority + *out = new(float64) + **out = **in + } + if in.RootVolume != nil { + in, out := &in.RootVolume, &out.RootVolume + *out = make([]RootVolumeParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Runtime != nil { + in, out := &in.Runtime, &out.Runtime + *out = new(string) + **out = **in + } + if in.ScaleDownCooldownTime != nil { + in, out := &in.ScaleDownCooldownTime, &out.ScaleDownCooldownTime + *out = new(float64) + **out = **in + } + if in.ScaleEnable != nil { + in, out := &in.ScaleEnable, &out.ScaleEnable + *out = new(bool) + **out = **in + } + if in.ServerGroupReference != nil { + in, out := &in.ServerGroupReference, &out.ServerGroupReference + *out = new(string) + **out = **in + } + if in.Storage != nil { + in, out := &in.Storage, &out.Storage + *out = new(string) + **out = **in + } + if in.SubnetID != nil { + in, out := &in.SubnetID, &out.SubnetID + *out = new(string) + **out = **in + } + if in.Taints != nil { + in, out := &in.Taints, &out.Taints + *out = make([]TaintsParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.UserTags != nil { + in, out := &in.UserTags, &out.UserTags + *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 NodePoolV3Parameters. +func (in *NodePoolV3Parameters) DeepCopy() *NodePoolV3Parameters { + if in == nil { + return nil + } + out := new(NodePoolV3Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodePoolV3Spec) DeepCopyInto(out *NodePoolV3Spec) { + *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 NodePoolV3Spec. +func (in *NodePoolV3Spec) DeepCopy() *NodePoolV3Spec { + if in == nil { + return nil + } + out := new(NodePoolV3Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodePoolV3Status) DeepCopyInto(out *NodePoolV3Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodePoolV3Status. +func (in *NodePoolV3Status) DeepCopy() *NodePoolV3Status { + if in == nil { + return nil + } + out := new(NodePoolV3Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodeV3) DeepCopyInto(out *NodeV3) { + *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 NodeV3. +func (in *NodeV3) DeepCopy() *NodeV3 { + if in == nil { + return nil + } + out := new(NodeV3) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *NodeV3) 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 *NodeV3DataVolumesInitParameters) DeepCopyInto(out *NodeV3DataVolumesInitParameters) { + *out = *in + if in.ExtendParam != nil { + in, out := &in.ExtendParam, &out.ExtendParam + *out = new(string) + **out = **in + } + if in.ExtendParams != nil { + in, out := &in.ExtendParams, &out.ExtendParams + *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.KMSID != nil { + in, out := &in.KMSID, &out.KMSID + *out = new(string) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } + if in.Volumetype != nil { + in, out := &in.Volumetype, &out.Volumetype + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeV3DataVolumesInitParameters. +func (in *NodeV3DataVolumesInitParameters) DeepCopy() *NodeV3DataVolumesInitParameters { + if in == nil { + return nil + } + out := new(NodeV3DataVolumesInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodeV3DataVolumesObservation) DeepCopyInto(out *NodeV3DataVolumesObservation) { + *out = *in + if in.ExtendParam != nil { + in, out := &in.ExtendParam, &out.ExtendParam + *out = new(string) + **out = **in + } + if in.ExtendParams != nil { + in, out := &in.ExtendParams, &out.ExtendParams + *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.KMSID != nil { + in, out := &in.KMSID, &out.KMSID + *out = new(string) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } + if in.Volumetype != nil { + in, out := &in.Volumetype, &out.Volumetype + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeV3DataVolumesObservation. +func (in *NodeV3DataVolumesObservation) DeepCopy() *NodeV3DataVolumesObservation { + if in == nil { + return nil + } + out := new(NodeV3DataVolumesObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodeV3DataVolumesParameters) DeepCopyInto(out *NodeV3DataVolumesParameters) { + *out = *in + if in.ExtendParam != nil { + in, out := &in.ExtendParam, &out.ExtendParam + *out = new(string) + **out = **in + } + if in.ExtendParams != nil { + in, out := &in.ExtendParams, &out.ExtendParams + *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.KMSID != nil { + in, out := &in.KMSID, &out.KMSID + *out = new(string) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } + if in.Volumetype != nil { + in, out := &in.Volumetype, &out.Volumetype + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeV3DataVolumesParameters. +func (in *NodeV3DataVolumesParameters) DeepCopy() *NodeV3DataVolumesParameters { + if in == nil { + return nil + } + out := new(NodeV3DataVolumesParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodeV3InitParameters) DeepCopyInto(out *NodeV3InitParameters) { + *out = *in + if in.AgencyName != nil { + in, out := &in.AgencyName, &out.AgencyName + *out = new(string) + **out = **in + } + if in.Annotations != nil { + in, out := &in.Annotations, &out.Annotations + *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.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *out = new(string) + **out = **in + } + if in.BandwidthChargeMode != nil { + in, out := &in.BandwidthChargeMode, &out.BandwidthChargeMode + *out = new(string) + **out = **in + } + if in.BandwidthSize != nil { + in, out := &in.BandwidthSize, &out.BandwidthSize + *out = new(float64) + **out = **in + } + if in.BillingMode != nil { + in, out := &in.BillingMode, &out.BillingMode + *out = new(float64) + **out = **in + } + if in.ClusterID != nil { + in, out := &in.ClusterID, &out.ClusterID + *out = new(string) + **out = **in + } + if in.DataVolumes != nil { + in, out := &in.DataVolumes, &out.DataVolumes + *out = make([]NodeV3DataVolumesInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.DockerBaseSize != nil { + in, out := &in.DockerBaseSize, &out.DockerBaseSize + *out = new(float64) + **out = **in + } + if in.DockerLvmConfigOverride != nil { + in, out := &in.DockerLvmConfigOverride, &out.DockerLvmConfigOverride + *out = new(string) + **out = **in + } + if in.EIPCount != nil { + in, out := &in.EIPCount, &out.EIPCount + *out = new(float64) + **out = **in + } + if in.EIPIds != nil { + in, out := &in.EIPIds, &out.EIPIds + *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.EcsPerformanceType != nil { + in, out := &in.EcsPerformanceType, &out.EcsPerformanceType + *out = new(string) + **out = **in + } + if in.ExtendParamChargingMode != nil { + in, out := &in.ExtendParamChargingMode, &out.ExtendParamChargingMode + *out = new(float64) + **out = **in + } + if in.FlavorID != nil { + in, out := &in.FlavorID, &out.FlavorID + *out = new(string) + **out = **in + } + if in.Iptype != nil { + in, out := &in.Iptype, &out.Iptype + *out = new(string) + **out = **in + } + if in.K8STags != nil { + in, out := &in.K8STags, &out.K8STags + *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.KeyPair != nil { + in, out := &in.KeyPair, &out.KeyPair + *out = new(string) + **out = **in + } + if in.Labels != nil { + in, out := &in.Labels, &out.Labels + *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.MaxPods != nil { + in, out := &in.MaxPods, &out.MaxPods + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.OrderID != nil { + in, out := &in.OrderID, &out.OrderID + *out = new(string) + **out = **in + } + if in.Os != nil { + in, out := &in.Os, &out.Os + *out = new(string) + **out = **in + } + if in.Postinstall != nil { + in, out := &in.Postinstall, &out.Postinstall + *out = new(string) + **out = **in + } + if in.Preinstall != nil { + in, out := &in.Preinstall, &out.Preinstall + *out = new(string) + **out = **in + } + if in.PrivateIP != nil { + in, out := &in.PrivateIP, &out.PrivateIP + *out = new(string) + **out = **in + } + if in.ProductID != nil { + in, out := &in.ProductID, &out.ProductID + *out = new(string) + **out = **in + } + if in.PublicKey != nil { + in, out := &in.PublicKey, &out.PublicKey + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.RootVolume != nil { + in, out := &in.RootVolume, &out.RootVolume + *out = make([]NodeV3RootVolumeInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Runtime != nil { + in, out := &in.Runtime, &out.Runtime + *out = new(string) + **out = **in + } + if in.Sharetype != nil { + in, out := &in.Sharetype, &out.Sharetype + *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.Taints != nil { + in, out := &in.Taints, &out.Taints + *out = make([]NodeV3TaintsInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeV3InitParameters. +func (in *NodeV3InitParameters) DeepCopy() *NodeV3InitParameters { + if in == nil { + return nil + } + out := new(NodeV3InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodeV3List) DeepCopyInto(out *NodeV3List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]NodeV3, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeV3List. +func (in *NodeV3List) DeepCopy() *NodeV3List { + if in == nil { + return nil + } + out := new(NodeV3List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *NodeV3List) 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 *NodeV3Observation) DeepCopyInto(out *NodeV3Observation) { + *out = *in + if in.AgencyName != nil { + in, out := &in.AgencyName, &out.AgencyName + *out = new(string) + **out = **in + } + if in.Annotations != nil { + in, out := &in.Annotations, &out.Annotations + *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.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *out = new(string) + **out = **in + } + if in.BandwidthChargeMode != nil { + in, out := &in.BandwidthChargeMode, &out.BandwidthChargeMode + *out = new(string) + **out = **in + } + if in.BandwidthSize != nil { + in, out := &in.BandwidthSize, &out.BandwidthSize + *out = new(float64) + **out = **in + } + if in.BillingMode != nil { + in, out := &in.BillingMode, &out.BillingMode + *out = new(float64) + **out = **in + } + if in.ClusterID != nil { + in, out := &in.ClusterID, &out.ClusterID + *out = new(string) + **out = **in + } + if in.DataVolumes != nil { + in, out := &in.DataVolumes, &out.DataVolumes + *out = make([]NodeV3DataVolumesObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.DockerBaseSize != nil { + in, out := &in.DockerBaseSize, &out.DockerBaseSize + *out = new(float64) + **out = **in + } + if in.DockerLvmConfigOverride != nil { + in, out := &in.DockerLvmConfigOverride, &out.DockerLvmConfigOverride + *out = new(string) + **out = **in + } + if in.EIPCount != nil { + in, out := &in.EIPCount, &out.EIPCount + *out = new(float64) + **out = **in + } + if in.EIPIds != nil { + in, out := &in.EIPIds, &out.EIPIds + *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.EcsPerformanceType != nil { + in, out := &in.EcsPerformanceType, &out.EcsPerformanceType + *out = new(string) + **out = **in + } + if in.ExtendParamChargingMode != nil { + in, out := &in.ExtendParamChargingMode, &out.ExtendParamChargingMode + *out = new(float64) + **out = **in + } + if in.FlavorID != nil { + in, out := &in.FlavorID, &out.FlavorID + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Iptype != nil { + in, out := &in.Iptype, &out.Iptype + *out = new(string) + **out = **in + } + if in.K8STags != nil { + in, out := &in.K8STags, &out.K8STags + *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.KeyPair != nil { + in, out := &in.KeyPair, &out.KeyPair + *out = new(string) + **out = **in + } + if in.Labels != nil { + in, out := &in.Labels, &out.Labels + *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.MaxPods != nil { + in, out := &in.MaxPods, &out.MaxPods + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.OrderID != nil { + in, out := &in.OrderID, &out.OrderID + *out = new(string) + **out = **in + } + if in.Os != nil { + in, out := &in.Os, &out.Os + *out = new(string) + **out = **in + } + if in.Postinstall != nil { + in, out := &in.Postinstall, &out.Postinstall + *out = new(string) + **out = **in + } + if in.Preinstall != nil { + in, out := &in.Preinstall, &out.Preinstall + *out = new(string) + **out = **in + } + if in.PrivateIP != nil { + in, out := &in.PrivateIP, &out.PrivateIP + *out = new(string) + **out = **in + } + if in.ProductID != nil { + in, out := &in.ProductID, &out.ProductID + *out = new(string) + **out = **in + } + if in.PublicIP != nil { + in, out := &in.PublicIP, &out.PublicIP + *out = new(string) + **out = **in + } + if in.PublicKey != nil { + in, out := &in.PublicKey, &out.PublicKey + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.RootVolume != nil { + in, out := &in.RootVolume, &out.RootVolume + *out = make([]NodeV3RootVolumeObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Runtime != nil { + in, out := &in.Runtime, &out.Runtime + *out = new(string) + **out = **in + } + if in.ServerID != nil { + in, out := &in.ServerID, &out.ServerID + *out = new(string) + **out = **in + } + if in.Sharetype != nil { + in, out := &in.Sharetype, &out.Sharetype + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *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.Taints != nil { + in, out := &in.Taints, &out.Taints + *out = make([]NodeV3TaintsObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeV3Observation. +func (in *NodeV3Observation) DeepCopy() *NodeV3Observation { + if in == nil { + return nil + } + out := new(NodeV3Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodeV3Parameters) DeepCopyInto(out *NodeV3Parameters) { + *out = *in + if in.AgencyName != nil { + in, out := &in.AgencyName, &out.AgencyName + *out = new(string) + **out = **in + } + if in.Annotations != nil { + in, out := &in.Annotations, &out.Annotations + *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.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *out = new(string) + **out = **in + } + if in.BandwidthChargeMode != nil { + in, out := &in.BandwidthChargeMode, &out.BandwidthChargeMode + *out = new(string) + **out = **in + } + if in.BandwidthSize != nil { + in, out := &in.BandwidthSize, &out.BandwidthSize + *out = new(float64) + **out = **in + } + if in.BillingMode != nil { + in, out := &in.BillingMode, &out.BillingMode + *out = new(float64) + **out = **in + } + if in.ClusterID != nil { + in, out := &in.ClusterID, &out.ClusterID + *out = new(string) + **out = **in + } + if in.DataVolumes != nil { + in, out := &in.DataVolumes, &out.DataVolumes + *out = make([]NodeV3DataVolumesParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.DockerBaseSize != nil { + in, out := &in.DockerBaseSize, &out.DockerBaseSize + *out = new(float64) + **out = **in + } + if in.DockerLvmConfigOverride != nil { + in, out := &in.DockerLvmConfigOverride, &out.DockerLvmConfigOverride + *out = new(string) + **out = **in + } + if in.EIPCount != nil { + in, out := &in.EIPCount, &out.EIPCount + *out = new(float64) + **out = **in + } + if in.EIPIds != nil { + in, out := &in.EIPIds, &out.EIPIds + *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.EcsPerformanceType != nil { + in, out := &in.EcsPerformanceType, &out.EcsPerformanceType + *out = new(string) + **out = **in + } + if in.ExtendParamChargingMode != nil { + in, out := &in.ExtendParamChargingMode, &out.ExtendParamChargingMode + *out = new(float64) + **out = **in + } + if in.FlavorID != nil { + in, out := &in.FlavorID, &out.FlavorID + *out = new(string) + **out = **in + } + if in.Iptype != nil { + in, out := &in.Iptype, &out.Iptype + *out = new(string) + **out = **in + } + if in.K8STags != nil { + in, out := &in.K8STags, &out.K8STags + *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.KeyPair != nil { + in, out := &in.KeyPair, &out.KeyPair + *out = new(string) + **out = **in + } + if in.Labels != nil { + in, out := &in.Labels, &out.Labels + *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.MaxPods != nil { + in, out := &in.MaxPods, &out.MaxPods + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.OrderID != nil { + in, out := &in.OrderID, &out.OrderID + *out = new(string) + **out = **in + } + if in.Os != nil { + in, out := &in.Os, &out.Os + *out = new(string) + **out = **in + } + if in.Postinstall != nil { + in, out := &in.Postinstall, &out.Postinstall + *out = new(string) + **out = **in + } + if in.Preinstall != nil { + in, out := &in.Preinstall, &out.Preinstall + *out = new(string) + **out = **in + } + if in.PrivateIP != nil { + in, out := &in.PrivateIP, &out.PrivateIP + *out = new(string) + **out = **in + } + if in.ProductID != nil { + in, out := &in.ProductID, &out.ProductID + *out = new(string) + **out = **in + } + if in.PublicKey != nil { + in, out := &in.PublicKey, &out.PublicKey + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.RootVolume != nil { + in, out := &in.RootVolume, &out.RootVolume + *out = make([]NodeV3RootVolumeParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Runtime != nil { + in, out := &in.Runtime, &out.Runtime + *out = new(string) + **out = **in + } + if in.Sharetype != nil { + in, out := &in.Sharetype, &out.Sharetype + *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.Taints != nil { + in, out := &in.Taints, &out.Taints + *out = make([]NodeV3TaintsParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeV3Parameters. +func (in *NodeV3Parameters) DeepCopy() *NodeV3Parameters { + if in == nil { + return nil + } + out := new(NodeV3Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodeV3RootVolumeInitParameters) DeepCopyInto(out *NodeV3RootVolumeInitParameters) { + *out = *in + if in.ExtendParam != nil { + in, out := &in.ExtendParam, &out.ExtendParam + *out = new(string) + **out = **in + } + if in.ExtendParams != nil { + in, out := &in.ExtendParams, &out.ExtendParams + *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.KMSID != nil { + in, out := &in.KMSID, &out.KMSID + *out = new(string) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } + if in.Volumetype != nil { + in, out := &in.Volumetype, &out.Volumetype + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeV3RootVolumeInitParameters. +func (in *NodeV3RootVolumeInitParameters) DeepCopy() *NodeV3RootVolumeInitParameters { + if in == nil { + return nil + } + out := new(NodeV3RootVolumeInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodeV3RootVolumeObservation) DeepCopyInto(out *NodeV3RootVolumeObservation) { + *out = *in + if in.ExtendParam != nil { + in, out := &in.ExtendParam, &out.ExtendParam + *out = new(string) + **out = **in + } + if in.ExtendParams != nil { + in, out := &in.ExtendParams, &out.ExtendParams + *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.KMSID != nil { + in, out := &in.KMSID, &out.KMSID + *out = new(string) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } + if in.Volumetype != nil { + in, out := &in.Volumetype, &out.Volumetype + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeV3RootVolumeObservation. +func (in *NodeV3RootVolumeObservation) DeepCopy() *NodeV3RootVolumeObservation { + if in == nil { + return nil + } + out := new(NodeV3RootVolumeObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodeV3RootVolumeParameters) DeepCopyInto(out *NodeV3RootVolumeParameters) { + *out = *in + if in.ExtendParam != nil { + in, out := &in.ExtendParam, &out.ExtendParam + *out = new(string) + **out = **in + } + if in.ExtendParams != nil { + in, out := &in.ExtendParams, &out.ExtendParams + *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.KMSID != nil { + in, out := &in.KMSID, &out.KMSID + *out = new(string) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } + if in.Volumetype != nil { + in, out := &in.Volumetype, &out.Volumetype + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeV3RootVolumeParameters. +func (in *NodeV3RootVolumeParameters) DeepCopy() *NodeV3RootVolumeParameters { + if in == nil { + return nil + } + out := new(NodeV3RootVolumeParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodeV3Spec) DeepCopyInto(out *NodeV3Spec) { + *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 NodeV3Spec. +func (in *NodeV3Spec) DeepCopy() *NodeV3Spec { + if in == nil { + return nil + } + out := new(NodeV3Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodeV3Status) DeepCopyInto(out *NodeV3Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeV3Status. +func (in *NodeV3Status) DeepCopy() *NodeV3Status { + if in == nil { + return nil + } + out := new(NodeV3Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodeV3TaintsInitParameters) DeepCopyInto(out *NodeV3TaintsInitParameters) { + *out = *in + if in.Effect != nil { + in, out := &in.Effect, &out.Effect + *out = new(string) + **out = **in + } + if in.Key != nil { + in, out := &in.Key, &out.Key + *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 NodeV3TaintsInitParameters. +func (in *NodeV3TaintsInitParameters) DeepCopy() *NodeV3TaintsInitParameters { + if in == nil { + return nil + } + out := new(NodeV3TaintsInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodeV3TaintsObservation) DeepCopyInto(out *NodeV3TaintsObservation) { + *out = *in + if in.Effect != nil { + in, out := &in.Effect, &out.Effect + *out = new(string) + **out = **in + } + if in.Key != nil { + in, out := &in.Key, &out.Key + *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 NodeV3TaintsObservation. +func (in *NodeV3TaintsObservation) DeepCopy() *NodeV3TaintsObservation { + if in == nil { + return nil + } + out := new(NodeV3TaintsObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodeV3TaintsParameters) DeepCopyInto(out *NodeV3TaintsParameters) { + *out = *in + if in.Effect != nil { + in, out := &in.Effect, &out.Effect + *out = new(string) + **out = **in + } + if in.Key != nil { + in, out := &in.Key, &out.Key + *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 NodeV3TaintsParameters. +func (in *NodeV3TaintsParameters) DeepCopy() *NodeV3TaintsParameters { + if in == nil { + return nil + } + out := new(NodeV3TaintsParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RootVolumeInitParameters) DeepCopyInto(out *RootVolumeInitParameters) { + *out = *in + if in.ExtendParam != nil { + in, out := &in.ExtendParam, &out.ExtendParam + *out = new(string) + **out = **in + } + if in.ExtendParams != nil { + in, out := &in.ExtendParams, &out.ExtendParams + *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.KMSID != nil { + in, out := &in.KMSID, &out.KMSID + *out = new(string) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } + if in.Volumetype != nil { + in, out := &in.Volumetype, &out.Volumetype + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RootVolumeInitParameters. +func (in *RootVolumeInitParameters) DeepCopy() *RootVolumeInitParameters { + if in == nil { + return nil + } + out := new(RootVolumeInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RootVolumeObservation) DeepCopyInto(out *RootVolumeObservation) { + *out = *in + if in.ExtendParam != nil { + in, out := &in.ExtendParam, &out.ExtendParam + *out = new(string) + **out = **in + } + if in.ExtendParams != nil { + in, out := &in.ExtendParams, &out.ExtendParams + *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.KMSID != nil { + in, out := &in.KMSID, &out.KMSID + *out = new(string) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } + if in.Volumetype != nil { + in, out := &in.Volumetype, &out.Volumetype + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RootVolumeObservation. +func (in *RootVolumeObservation) DeepCopy() *RootVolumeObservation { + if in == nil { + return nil + } + out := new(RootVolumeObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RootVolumeParameters) DeepCopyInto(out *RootVolumeParameters) { + *out = *in + if in.ExtendParam != nil { + in, out := &in.ExtendParam, &out.ExtendParam + *out = new(string) + **out = **in + } + if in.ExtendParams != nil { + in, out := &in.ExtendParams, &out.ExtendParams + *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.KMSID != nil { + in, out := &in.KMSID, &out.KMSID + *out = new(string) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } + if in.Volumetype != nil { + in, out := &in.Volumetype, &out.Volumetype + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RootVolumeParameters. +func (in *RootVolumeParameters) DeepCopy() *RootVolumeParameters { + if in == nil { + return nil + } + out := new(RootVolumeParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TaintsInitParameters) DeepCopyInto(out *TaintsInitParameters) { + *out = *in + if in.Effect != nil { + in, out := &in.Effect, &out.Effect + *out = new(string) + **out = **in + } + if in.Key != nil { + in, out := &in.Key, &out.Key + *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 TaintsInitParameters. +func (in *TaintsInitParameters) DeepCopy() *TaintsInitParameters { + if in == nil { + return nil + } + out := new(TaintsInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TaintsObservation) DeepCopyInto(out *TaintsObservation) { + *out = *in + if in.Effect != nil { + in, out := &in.Effect, &out.Effect + *out = new(string) + **out = **in + } + if in.Key != nil { + in, out := &in.Key, &out.Key + *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 TaintsObservation. +func (in *TaintsObservation) DeepCopy() *TaintsObservation { + if in == nil { + return nil + } + out := new(TaintsObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TaintsParameters) DeepCopyInto(out *TaintsParameters) { + *out = *in + if in.Effect != nil { + in, out := &in.Effect, &out.Effect + *out = new(string) + **out = **in + } + if in.Key != nil { + in, out := &in.Key, &out.Key + *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 TaintsParameters. +func (in *TaintsParameters) DeepCopy() *TaintsParameters { + if in == nil { + return nil + } + out := new(TaintsParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ValuesInitParameters) DeepCopyInto(out *ValuesInitParameters) { + *out = *in + if in.Basic != nil { + in, out := &in.Basic, &out.Basic + *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.Custom != nil { + in, out := &in.Custom, &out.Custom + *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.Flavor != nil { + in, out := &in.Flavor, &out.Flavor + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValuesInitParameters. +func (in *ValuesInitParameters) DeepCopy() *ValuesInitParameters { + if in == nil { + return nil + } + out := new(ValuesInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ValuesObservation) DeepCopyInto(out *ValuesObservation) { + *out = *in + if in.Basic != nil { + in, out := &in.Basic, &out.Basic + *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.Custom != nil { + in, out := &in.Custom, &out.Custom + *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.Flavor != nil { + in, out := &in.Flavor, &out.Flavor + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValuesObservation. +func (in *ValuesObservation) DeepCopy() *ValuesObservation { + if in == nil { + return nil + } + out := new(ValuesObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ValuesParameters) DeepCopyInto(out *ValuesParameters) { + *out = *in + if in.Basic != nil { + in, out := &in.Basic, &out.Basic + *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.Custom != nil { + in, out := &in.Custom, &out.Custom + *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.Flavor != nil { + in, out := &in.Flavor, &out.Flavor + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ValuesParameters. +func (in *ValuesParameters) DeepCopy() *ValuesParameters { + if in == nil { + return nil + } + out := new(ValuesParameters) + in.DeepCopyInto(out) + return out +} diff --git a/apis/cce/v1alpha1/zz_generated.managed.go b/apis/cce/v1alpha1/zz_generated.managed.go new file mode 100644 index 0000000..077215c --- /dev/null +++ b/apis/cce/v1alpha1/zz_generated.managed.go @@ -0,0 +1,248 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import xpv1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + +// GetCondition of this AddonV3. +func (mg *AddonV3) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this AddonV3. +func (mg *AddonV3) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this AddonV3. +func (mg *AddonV3) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this AddonV3. +func (mg *AddonV3) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this AddonV3. +func (mg *AddonV3) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this AddonV3. +func (mg *AddonV3) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this AddonV3. +func (mg *AddonV3) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this AddonV3. +func (mg *AddonV3) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this AddonV3. +func (mg *AddonV3) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this AddonV3. +func (mg *AddonV3) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this AddonV3. +func (mg *AddonV3) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this AddonV3. +func (mg *AddonV3) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this ClusterV3. +func (mg *ClusterV3) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this ClusterV3. +func (mg *ClusterV3) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this ClusterV3. +func (mg *ClusterV3) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this ClusterV3. +func (mg *ClusterV3) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this ClusterV3. +func (mg *ClusterV3) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this ClusterV3. +func (mg *ClusterV3) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this ClusterV3. +func (mg *ClusterV3) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this ClusterV3. +func (mg *ClusterV3) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this ClusterV3. +func (mg *ClusterV3) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this ClusterV3. +func (mg *ClusterV3) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this ClusterV3. +func (mg *ClusterV3) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this ClusterV3. +func (mg *ClusterV3) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this NodePoolV3. +func (mg *NodePoolV3) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this NodePoolV3. +func (mg *NodePoolV3) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this NodePoolV3. +func (mg *NodePoolV3) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this NodePoolV3. +func (mg *NodePoolV3) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this NodePoolV3. +func (mg *NodePoolV3) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this NodePoolV3. +func (mg *NodePoolV3) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this NodePoolV3. +func (mg *NodePoolV3) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this NodePoolV3. +func (mg *NodePoolV3) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this NodePoolV3. +func (mg *NodePoolV3) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this NodePoolV3. +func (mg *NodePoolV3) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this NodePoolV3. +func (mg *NodePoolV3) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this NodePoolV3. +func (mg *NodePoolV3) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this NodeV3. +func (mg *NodeV3) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this NodeV3. +func (mg *NodeV3) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this NodeV3. +func (mg *NodeV3) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this NodeV3. +func (mg *NodeV3) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this NodeV3. +func (mg *NodeV3) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this NodeV3. +func (mg *NodeV3) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this NodeV3. +func (mg *NodeV3) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this NodeV3. +func (mg *NodeV3) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this NodeV3. +func (mg *NodeV3) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this NodeV3. +func (mg *NodeV3) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this NodeV3. +func (mg *NodeV3) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this NodeV3. +func (mg *NodeV3) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} diff --git a/apis/cce/v1alpha1/zz_generated.managedlist.go b/apis/cce/v1alpha1/zz_generated.managedlist.go new file mode 100644 index 0000000..5398581 --- /dev/null +++ b/apis/cce/v1alpha1/zz_generated.managedlist.go @@ -0,0 +1,44 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import resource "github.com/crossplane/crossplane-runtime/pkg/resource" + +// GetItems of this AddonV3List. +func (l *AddonV3List) 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 ClusterV3List. +func (l *ClusterV3List) 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 NodePoolV3List. +func (l *NodePoolV3List) 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 NodeV3List. +func (l *NodeV3List) 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/cce/v1alpha1/zz_generated_terraformed.go b/apis/cce/v1alpha1/zz_generated_terraformed.go new file mode 100755 index 0000000..15b9fb9 --- /dev/null +++ b/apis/cce/v1alpha1/zz_generated_terraformed.go @@ -0,0 +1,354 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "github.com/pkg/errors" + + "github.com/crossplane/upjet/pkg/resource" + "github.com/crossplane/upjet/pkg/resource/json" +) + +// GetTerraformResourceType returns Terraform resource type for this AddonV3 +func (mg *AddonV3) GetTerraformResourceType() string { + return "opentelekomcloud_cce_addon_v3" +} + +// GetConnectionDetailsMapping for this AddonV3 +func (tr *AddonV3) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this AddonV3 +func (tr *AddonV3) 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 AddonV3 +func (tr *AddonV3) 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 AddonV3 +func (tr *AddonV3) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this AddonV3 +func (tr *AddonV3) 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 AddonV3 +func (tr *AddonV3) 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 AddonV3 +func (tr *AddonV3) 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) +} + +// LateInitialize this AddonV3 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *AddonV3) LateInitialize(attrs []byte) (bool, error) { + params := &AddonV3Parameters{} + 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 *AddonV3) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this ClusterV3 +func (mg *ClusterV3) GetTerraformResourceType() string { + return "opentelekomcloud_cce_cluster_v3" +} + +// GetConnectionDetailsMapping for this ClusterV3 +func (tr *ClusterV3) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this ClusterV3 +func (tr *ClusterV3) 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 ClusterV3 +func (tr *ClusterV3) 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 ClusterV3 +func (tr *ClusterV3) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this ClusterV3 +func (tr *ClusterV3) 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 ClusterV3 +func (tr *ClusterV3) 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 ClusterV3 +func (tr *ClusterV3) 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) +} + +// LateInitialize this ClusterV3 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *ClusterV3) LateInitialize(attrs []byte) (bool, error) { + params := &ClusterV3Parameters{} + 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 *ClusterV3) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this NodePoolV3 +func (mg *NodePoolV3) GetTerraformResourceType() string { + return "opentelekomcloud_cce_node_pool_v3" +} + +// GetConnectionDetailsMapping for this NodePoolV3 +func (tr *NodePoolV3) GetConnectionDetailsMapping() map[string]string { + return map[string]string{"password": "spec.forProvider.passwordSecretRef"} +} + +// GetObservation of this NodePoolV3 +func (tr *NodePoolV3) 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 NodePoolV3 +func (tr *NodePoolV3) 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 NodePoolV3 +func (tr *NodePoolV3) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this NodePoolV3 +func (tr *NodePoolV3) 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 NodePoolV3 +func (tr *NodePoolV3) 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 NodePoolV3 +func (tr *NodePoolV3) 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) +} + +// LateInitialize this NodePoolV3 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *NodePoolV3) LateInitialize(attrs []byte) (bool, error) { + params := &NodePoolV3Parameters{} + 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 *NodePoolV3) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this NodeV3 +func (mg *NodeV3) GetTerraformResourceType() string { + return "opentelekomcloud_cce_node_v3" +} + +// GetConnectionDetailsMapping for this NodeV3 +func (tr *NodeV3) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this NodeV3 +func (tr *NodeV3) 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 NodeV3 +func (tr *NodeV3) 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 NodeV3 +func (tr *NodeV3) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this NodeV3 +func (tr *NodeV3) 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 NodeV3 +func (tr *NodeV3) 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 NodeV3 +func (tr *NodeV3) 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) +} + +// LateInitialize this NodeV3 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *NodeV3) LateInitialize(attrs []byte) (bool, error) { + params := &NodeV3Parameters{} + 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 *NodeV3) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/null/v1alpha1/zz_groupversion_info.go b/apis/cce/v1alpha1/zz_groupversion_info.go similarity index 91% rename from apis/null/v1alpha1/zz_groupversion_info.go rename to apis/cce/v1alpha1/zz_groupversion_info.go index 3b570c9..363c6af 100755 --- a/apis/null/v1alpha1/zz_groupversion_info.go +++ b/apis/cce/v1alpha1/zz_groupversion_info.go @@ -9,7 +9,7 @@ Copyright 2022 Upbound Inc. // Code generated by upjet. DO NOT EDIT. // +kubebuilder:object:generate=true -// +groupName=null.template.upbound.io +// +groupName=cce.crossplane.io // +versionName=v1alpha1 package v1alpha1 @@ -20,7 +20,7 @@ import ( // Package type metadata. const ( - CRDGroup = "null.template.upbound.io" + CRDGroup = "cce.crossplane.io" CRDVersion = "v1alpha1" ) diff --git a/apis/cce/v1alpha1/zz_nodepoolv3_types.go b/apis/cce/v1alpha1/zz_nodepoolv3_types.go new file mode 100755 index 0000000..c0263c2 --- /dev/null +++ b/apis/cce/v1alpha1/zz_nodepoolv3_types.go @@ -0,0 +1,579 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 DataVolumesInitParameters struct { + + // Disk expansion parameters. + // Please use alternative parameter extend_params. + ExtendParam *string `json:"extendParam,omitempty" tf:"extend_param,omitempty"` + + // Disk expansion parameters. A list of strings which describes additional disk parameters. + ExtendParams map[string]*string `json:"extendParams,omitempty" tf:"extend_params,omitempty"` + + // The Encryption KMS ID of the system volume. By default, it tries to get from env by OS_KMS_ID. + KMSID *string `json:"kmsId,omitempty" tf:"kms_id,omitempty"` + + // Disk size in GB. + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // Disk type. + Volumetype *string `json:"volumetype,omitempty" tf:"volumetype,omitempty"` +} + +type DataVolumesObservation struct { + + // Disk expansion parameters. + // Please use alternative parameter extend_params. + ExtendParam *string `json:"extendParam,omitempty" tf:"extend_param,omitempty"` + + // Disk expansion parameters. A list of strings which describes additional disk parameters. + ExtendParams map[string]*string `json:"extendParams,omitempty" tf:"extend_params,omitempty"` + + // The Encryption KMS ID of the system volume. By default, it tries to get from env by OS_KMS_ID. + KMSID *string `json:"kmsId,omitempty" tf:"kms_id,omitempty"` + + // Disk size in GB. + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // Disk type. + Volumetype *string `json:"volumetype,omitempty" tf:"volumetype,omitempty"` +} + +type DataVolumesParameters struct { + + // Disk expansion parameters. + // Please use alternative parameter extend_params. + // +kubebuilder:validation:Optional + ExtendParam *string `json:"extendParam,omitempty" tf:"extend_param,omitempty"` + + // Disk expansion parameters. A list of strings which describes additional disk parameters. + // +kubebuilder:validation:Optional + ExtendParams map[string]*string `json:"extendParams,omitempty" tf:"extend_params,omitempty"` + + // The Encryption KMS ID of the system volume. By default, it tries to get from env by OS_KMS_ID. + // +kubebuilder:validation:Optional + KMSID *string `json:"kmsId,omitempty" tf:"kms_id,omitempty"` + + // Disk size in GB. + // +kubebuilder:validation:Optional + Size *float64 `json:"size" tf:"size,omitempty"` + + // Disk type. + // +kubebuilder:validation:Optional + Volumetype *string `json:"volumetype" tf:"volumetype,omitempty"` +} + +type NodePoolV3InitParameters struct { + + // IAM agency name. Changing this parameter will create a new resource. + AgencyName *string `json:"agencyName,omitempty" tf:"agency_name,omitempty"` + + // Specify the name of the available partition (AZ). If zone is not + // specified than node_pool will be in randomly selected AZ. The default value is random. Changing + // this parameter will create a new resource. + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // ID of the cluster. Changing this parameter will create a new resource. + ClusterID *string `json:"clusterId,omitempty" tf:"cluster_id,omitempty"` + + // Represents the data disk to be created. Changing this parameter will create a new resource. + DataVolumes []DataVolumesInitParameters `json:"dataVolumes,omitempty" tf:"data_volumes,omitempty"` + + // Available disk space of a single Docker container on the node using the device mapper. + // Changing this parameter will create a new node pool. + DockerBaseSize *float64 `json:"dockerBaseSize,omitempty" tf:"docker_base_size,omitempty"` + + // ConfigMap of the Docker data disk. + // Changing this parameter will create a new node. + DockerLvmConfigOverride *string `json:"dockerLvmConfigOverride,omitempty" tf:"docker_lvm_config_override,omitempty"` + + // Specifies the flavor id. Changing this parameter will create a new resource. + Flavor *string `json:"flavor,omitempty" tf:"flavor,omitempty"` + + // Initial number of expected nodes in the node pool. + InitialNodeCount *float64 `json:"initialNodeCount,omitempty" tf:"initial_node_count,omitempty"` + + // Tags of a Kubernetes node, key/value pair format. + K8STags map[string]*string `json:"k8sTags,omitempty" tf:"k8s_tags,omitempty"` + + // Key pair name when logging in to select the key pair mode. + // This parameter and password are alternative. Changing this parameter will create a new resource. + KeyPair *string `json:"keyPair,omitempty" tf:"key_pair,omitempty"` + + // Maximum number of nodes allowed if auto scaling is enabled. + MaxNodeCount *float64 `json:"maxNodeCount,omitempty" tf:"max_node_count,omitempty"` + + // The maximum number of instances a node is allowed to create. + // Changing this parameter will create a new node pool. + MaxPods *float64 `json:"maxPods,omitempty" tf:"max_pods,omitempty"` + + // Minimum number of nodes allowed if auto scaling is enabled. + MinNodeCount *float64 `json:"minNodeCount,omitempty" tf:"min_node_count,omitempty"` + + // Node Pool Name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Node OS. Changing this parameter will create a new resource. + // Supported OS depends on kubernetes version of the cluster. + Os *string `json:"os,omitempty" tf:"os,omitempty"` + + // Script required after installation. The input value can be a Base64 encoded string or not. + // Changing this parameter will create a new resource. + Postinstall *string `json:"postinstall,omitempty" tf:"postinstall,omitempty"` + + // Script required before installation. The input value can be a Base64 encoded string or not. + // Changing this parameter will create a new resource. + Preinstall *string `json:"preinstall,omitempty" tf:"preinstall,omitempty"` + + // Weight of a node pool. A node pool with a higher weight has a higher priority during scaling. + Priority *float64 `json:"priority,omitempty" tf:"priority,omitempty"` + + // It corresponds to the system disk related configuration. Changing this parameter will create a new resource. + RootVolume []RootVolumeInitParameters `json:"rootVolume,omitempty" tf:"root_volume,omitempty"` + + // Container runtime. Changing this parameter will create a new resource. + // Use with high-caution, may trigger resource recreation. Options are: + // docker - Docker + // containerd - Containerd + Runtime *string `json:"runtime,omitempty" tf:"runtime,omitempty"` + + // Interval between two scaling operations, in minutes. + ScaleDownCooldownTime *float64 `json:"scaleDownCooldownTime,omitempty" tf:"scale_down_cooldown_time,omitempty"` + + // 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"` + + // 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"` + + // Specifies the json string vary depending on CCE node pools storage options. + // -> Please refer to the documentation + // for actual fields. + Storage *string `json:"storage,omitempty" tf:"storage,omitempty"` + + // The ID of the subnet to which the NIC belongs. Changing this parameter will create a new resource. + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // Taints to created nodes to configure anti-affinity. + Taints []TaintsInitParameters `json:"taints,omitempty" tf:"taints,omitempty"` + + // Tag of a VM, key/value pair format. Changing this parameter will create a new resource. + UserTags map[string]*string `json:"userTags,omitempty" tf:"user_tags,omitempty"` +} + +type NodePoolV3Observation struct { + + // IAM agency name. Changing this parameter will create a new resource. + AgencyName *string `json:"agencyName,omitempty" tf:"agency_name,omitempty"` + + // Specify the name of the available partition (AZ). If zone is not + // specified than node_pool will be in randomly selected AZ. The default value is random. Changing + // this parameter will create a new resource. + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // ID of the cluster. Changing this parameter will create a new resource. + ClusterID *string `json:"clusterId,omitempty" tf:"cluster_id,omitempty"` + + // Represents the data disk to be created. Changing this parameter will create a new resource. + DataVolumes []DataVolumesObservation `json:"dataVolumes,omitempty" tf:"data_volumes,omitempty"` + + // Available disk space of a single Docker container on the node using the device mapper. + // Changing this parameter will create a new node pool. + DockerBaseSize *float64 `json:"dockerBaseSize,omitempty" tf:"docker_base_size,omitempty"` + + // ConfigMap of the Docker data disk. + // Changing this parameter will create a new node. + DockerLvmConfigOverride *string `json:"dockerLvmConfigOverride,omitempty" tf:"docker_lvm_config_override,omitempty"` + + // Specifies the flavor id. Changing this parameter will create a new resource. + Flavor *string `json:"flavor,omitempty" tf:"flavor,omitempty"` + + // Specifies a resource ID in UUID format. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Initial number of expected nodes in the node pool. + InitialNodeCount *float64 `json:"initialNodeCount,omitempty" tf:"initial_node_count,omitempty"` + + // Tags of a Kubernetes node, key/value pair format. + K8STags map[string]*string `json:"k8sTags,omitempty" tf:"k8s_tags,omitempty"` + + // Key pair name when logging in to select the key pair mode. + // This parameter and password are alternative. Changing this parameter will create a new resource. + KeyPair *string `json:"keyPair,omitempty" tf:"key_pair,omitempty"` + + // Maximum number of nodes allowed if auto scaling is enabled. + MaxNodeCount *float64 `json:"maxNodeCount,omitempty" tf:"max_node_count,omitempty"` + + // The maximum number of instances a node is allowed to create. + // Changing this parameter will create a new node pool. + MaxPods *float64 `json:"maxPods,omitempty" tf:"max_pods,omitempty"` + + // Minimum number of nodes allowed if auto scaling is enabled. + MinNodeCount *float64 `json:"minNodeCount,omitempty" tf:"min_node_count,omitempty"` + + // Node Pool Name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Node OS. Changing this parameter will create a new resource. + // Supported OS depends on kubernetes version of the cluster. + Os *string `json:"os,omitempty" tf:"os,omitempty"` + + // Script required after installation. The input value can be a Base64 encoded string or not. + // Changing this parameter will create a new resource. + Postinstall *string `json:"postinstall,omitempty" tf:"postinstall,omitempty"` + + // Script required before installation. The input value can be a Base64 encoded string or not. + // Changing this parameter will create a new resource. + Preinstall *string `json:"preinstall,omitempty" tf:"preinstall,omitempty"` + + // Weight of a node pool. A node pool with a higher weight has a higher priority during scaling. + Priority *float64 `json:"priority,omitempty" tf:"priority,omitempty"` + + // It corresponds to the system disk related configuration. Changing this parameter will create a new resource. + RootVolume []RootVolumeObservation `json:"rootVolume,omitempty" tf:"root_volume,omitempty"` + + // Container runtime. Changing this parameter will create a new resource. + // Use with high-caution, may trigger resource recreation. Options are: + // docker - Docker + // containerd - Containerd + Runtime *string `json:"runtime,omitempty" tf:"runtime,omitempty"` + + // Interval between two scaling operations, in minutes. + ScaleDownCooldownTime *float64 `json:"scaleDownCooldownTime,omitempty" tf:"scale_down_cooldown_time,omitempty"` + + // 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"` + + // 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"` + + // Node status information. + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + // Specifies the json string vary depending on CCE node pools storage options. + // -> Please refer to the documentation + // for actual fields. + Storage *string `json:"storage,omitempty" tf:"storage,omitempty"` + + // The ID of the subnet to which the NIC belongs. Changing this parameter will create a new resource. + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // Taints to created nodes to configure anti-affinity. + Taints []TaintsObservation `json:"taints,omitempty" tf:"taints,omitempty"` + + // Tag of a VM, key/value pair format. Changing this parameter will create a new resource. + UserTags map[string]*string `json:"userTags,omitempty" tf:"user_tags,omitempty"` +} + +type NodePoolV3Parameters struct { + + // IAM agency name. Changing this parameter will create a new resource. + // +kubebuilder:validation:Optional + AgencyName *string `json:"agencyName,omitempty" tf:"agency_name,omitempty"` + + // Specify the name of the available partition (AZ). If zone is not + // specified than node_pool will be in randomly selected AZ. The default value is random. Changing + // this parameter will create a new resource. + // +kubebuilder:validation:Optional + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // ID of the cluster. Changing this parameter will create a new resource. + // +kubebuilder:validation:Optional + ClusterID *string `json:"clusterId,omitempty" tf:"cluster_id,omitempty"` + + // Represents the data disk to be created. Changing this parameter will create a new resource. + // +kubebuilder:validation:Optional + DataVolumes []DataVolumesParameters `json:"dataVolumes,omitempty" tf:"data_volumes,omitempty"` + + // Available disk space of a single Docker container on the node using the device mapper. + // Changing this parameter will create a new node pool. + // +kubebuilder:validation:Optional + DockerBaseSize *float64 `json:"dockerBaseSize,omitempty" tf:"docker_base_size,omitempty"` + + // ConfigMap of the Docker data disk. + // Changing this parameter will create a new node. + // +kubebuilder:validation:Optional + DockerLvmConfigOverride *string `json:"dockerLvmConfigOverride,omitempty" tf:"docker_lvm_config_override,omitempty"` + + // Specifies the flavor id. Changing this parameter will create a new resource. + // +kubebuilder:validation:Optional + Flavor *string `json:"flavor,omitempty" tf:"flavor,omitempty"` + + // Initial number of expected nodes in the node pool. + // +kubebuilder:validation:Optional + InitialNodeCount *float64 `json:"initialNodeCount,omitempty" tf:"initial_node_count,omitempty"` + + // Tags of a Kubernetes node, key/value pair format. + // +kubebuilder:validation:Optional + K8STags map[string]*string `json:"k8sTags,omitempty" tf:"k8s_tags,omitempty"` + + // Key pair name when logging in to select the key pair mode. + // This parameter and password are alternative. Changing this parameter will create a new resource. + // +kubebuilder:validation:Optional + KeyPair *string `json:"keyPair,omitempty" tf:"key_pair,omitempty"` + + // Maximum number of nodes allowed if auto scaling is enabled. + // +kubebuilder:validation:Optional + MaxNodeCount *float64 `json:"maxNodeCount,omitempty" tf:"max_node_count,omitempty"` + + // The maximum number of instances a node is allowed to create. + // Changing this parameter will create a new node pool. + // +kubebuilder:validation:Optional + MaxPods *float64 `json:"maxPods,omitempty" tf:"max_pods,omitempty"` + + // Minimum number of nodes allowed if auto scaling is enabled. + // +kubebuilder:validation:Optional + MinNodeCount *float64 `json:"minNodeCount,omitempty" tf:"min_node_count,omitempty"` + + // Node Pool Name. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Node OS. Changing this parameter will create a new resource. + // Supported OS depends on kubernetes version of the cluster. + // +kubebuilder:validation:Optional + Os *string `json:"os,omitempty" tf:"os,omitempty"` + + // Key pair name when logging in to select the key pair mode. + // This parameter and password are alternative. Changing this parameter will create a new resource. + // +kubebuilder:validation:Optional + PasswordSecretRef *v1.SecretKeySelector `json:"passwordSecretRef,omitempty" tf:"-"` + + // Script required after installation. The input value can be a Base64 encoded string or not. + // Changing this parameter will create a new resource. + // +kubebuilder:validation:Optional + Postinstall *string `json:"postinstall,omitempty" tf:"postinstall,omitempty"` + + // Script required before installation. The input value can be a Base64 encoded string or not. + // Changing this parameter will create a new resource. + // +kubebuilder:validation:Optional + Preinstall *string `json:"preinstall,omitempty" tf:"preinstall,omitempty"` + + // Weight of a node pool. A node pool with a higher weight has a higher priority during scaling. + // +kubebuilder:validation:Optional + Priority *float64 `json:"priority,omitempty" tf:"priority,omitempty"` + + // It corresponds to the system disk related configuration. Changing this parameter will create a new resource. + // +kubebuilder:validation:Optional + RootVolume []RootVolumeParameters `json:"rootVolume,omitempty" tf:"root_volume,omitempty"` + + // Container runtime. Changing this parameter will create a new resource. + // Use with high-caution, may trigger resource recreation. Options are: + // docker - Docker + // containerd - Containerd + // +kubebuilder:validation:Optional + Runtime *string `json:"runtime,omitempty" tf:"runtime,omitempty"` + + // Interval between two scaling operations, in minutes. + // +kubebuilder:validation:Optional + ScaleDownCooldownTime *float64 `json:"scaleDownCooldownTime,omitempty" tf:"scale_down_cooldown_time,omitempty"` + + // Whether to enable auto scaling. If Autoscaler is enabled, install the autoscaler add-on to use the auto scaling feature. + // +kubebuilder:validation:Optional + ScaleEnable *bool `json:"scaleEnable,omitempty" tf:"scale_enable,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"` + + // Specifies the json string vary depending on CCE node pools storage options. + // -> Please refer to the documentation + // for actual fields. + // +kubebuilder:validation:Optional + Storage *string `json:"storage,omitempty" tf:"storage,omitempty"` + + // The ID of the subnet to which the NIC belongs. Changing this parameter will create a new resource. + // +kubebuilder:validation:Optional + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // Taints to created nodes to configure anti-affinity. + // +kubebuilder:validation:Optional + Taints []TaintsParameters `json:"taints,omitempty" tf:"taints,omitempty"` + + // Tag of a VM, key/value pair format. Changing this parameter will create a new resource. + // +kubebuilder:validation:Optional + UserTags map[string]*string `json:"userTags,omitempty" tf:"user_tags,omitempty"` +} + +type RootVolumeInitParameters struct { + + // Disk expansion parameters. + // Please use alternative parameter extend_params. + ExtendParam *string `json:"extendParam,omitempty" tf:"extend_param,omitempty"` + + // Disk expansion parameters. A list of strings which describes additional disk parameters. + ExtendParams map[string]*string `json:"extendParams,omitempty" tf:"extend_params,omitempty"` + + // The Encryption KMS ID of the system volume. By default, it tries to get from env by OS_KMS_ID. + KMSID *string `json:"kmsId,omitempty" tf:"kms_id,omitempty"` + + // Disk size in GB. + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // Disk type. + Volumetype *string `json:"volumetype,omitempty" tf:"volumetype,omitempty"` +} + +type RootVolumeObservation struct { + + // Disk expansion parameters. + // Please use alternative parameter extend_params. + ExtendParam *string `json:"extendParam,omitempty" tf:"extend_param,omitempty"` + + // Disk expansion parameters. A list of strings which describes additional disk parameters. + ExtendParams map[string]*string `json:"extendParams,omitempty" tf:"extend_params,omitempty"` + + // The Encryption KMS ID of the system volume. By default, it tries to get from env by OS_KMS_ID. + KMSID *string `json:"kmsId,omitempty" tf:"kms_id,omitempty"` + + // Disk size in GB. + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // Disk type. + Volumetype *string `json:"volumetype,omitempty" tf:"volumetype,omitempty"` +} + +type RootVolumeParameters struct { + + // Disk expansion parameters. + // Please use alternative parameter extend_params. + // +kubebuilder:validation:Optional + ExtendParam *string `json:"extendParam,omitempty" tf:"extend_param,omitempty"` + + // Disk expansion parameters. A list of strings which describes additional disk parameters. + // +kubebuilder:validation:Optional + ExtendParams map[string]*string `json:"extendParams,omitempty" tf:"extend_params,omitempty"` + + // The Encryption KMS ID of the system volume. By default, it tries to get from env by OS_KMS_ID. + // +kubebuilder:validation:Optional + KMSID *string `json:"kmsId,omitempty" tf:"kms_id,omitempty"` + + // Disk size in GB. + // +kubebuilder:validation:Optional + Size *float64 `json:"size" tf:"size,omitempty"` + + // Disk type. + // +kubebuilder:validation:Optional + Volumetype *string `json:"volumetype" tf:"volumetype,omitempty"` +} + +type TaintsInitParameters struct { + + // Available options are NoSchedule, PreferNoSchedule, and NoExecute. + Effect *string `json:"effect,omitempty" tf:"effect,omitempty"` + + // A key must contain 1 to 63 characters starting with a letter or digit. Only letters, digits, hyphens (-), underscores (_), and periods (.) are allowed. A DNS subdomain name can be used as the prefix of a key. + Key *string `json:"key,omitempty" tf:"key,omitempty"` + + // A value must start with a letter or digit and can contain a maximum of 63 characters, including letters, digits, hyphens (-), underscores (_), and periods (.). + Value *string `json:"value,omitempty" tf:"value,omitempty"` +} + +type TaintsObservation struct { + + // Available options are NoSchedule, PreferNoSchedule, and NoExecute. + Effect *string `json:"effect,omitempty" tf:"effect,omitempty"` + + // A key must contain 1 to 63 characters starting with a letter or digit. Only letters, digits, hyphens (-), underscores (_), and periods (.) are allowed. A DNS subdomain name can be used as the prefix of a key. + Key *string `json:"key,omitempty" tf:"key,omitempty"` + + // A value must start with a letter or digit and can contain a maximum of 63 characters, including letters, digits, hyphens (-), underscores (_), and periods (.). + Value *string `json:"value,omitempty" tf:"value,omitempty"` +} + +type TaintsParameters struct { + + // Available options are NoSchedule, PreferNoSchedule, and NoExecute. + // +kubebuilder:validation:Optional + Effect *string `json:"effect" tf:"effect,omitempty"` + + // A key must contain 1 to 63 characters starting with a letter or digit. Only letters, digits, hyphens (-), underscores (_), and periods (.) are allowed. A DNS subdomain name can be used as the prefix of a key. + // +kubebuilder:validation:Optional + Key *string `json:"key" tf:"key,omitempty"` + + // A value must start with a letter or digit and can contain a maximum of 63 characters, including letters, digits, hyphens (-), underscores (_), and periods (.). + // +kubebuilder:validation:Optional + Value *string `json:"value" tf:"value,omitempty"` +} + +// NodePoolV3Spec defines the desired state of NodePoolV3 +type NodePoolV3Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider NodePoolV3Parameters `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 NodePoolV3InitParameters `json:"initProvider,omitempty"` +} + +// NodePoolV3Status defines the observed state of NodePoolV3. +type NodePoolV3Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider NodePoolV3Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// NodePoolV3 is the Schema for the NodePoolV3s API. Manages a CCE Cluster Node Pool resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type NodePoolV3 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.clusterId) || (has(self.initProvider) && has(self.initProvider.clusterId))",message="spec.forProvider.clusterId is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.dataVolumes) || (has(self.initProvider) && has(self.initProvider.dataVolumes))",message="spec.forProvider.dataVolumes is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.flavor) || (has(self.initProvider) && has(self.initProvider.flavor))",message="spec.forProvider.flavor is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.initialNodeCount) || (has(self.initProvider) && has(self.initProvider.initialNodeCount))",message="spec.forProvider.initialNodeCount is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.rootVolume) || (has(self.initProvider) && has(self.initProvider.rootVolume))",message="spec.forProvider.rootVolume is a required parameter" + Spec NodePoolV3Spec `json:"spec"` + Status NodePoolV3Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// NodePoolV3List contains a list of NodePoolV3s +type NodePoolV3List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []NodePoolV3 `json:"items"` +} + +// Repository type metadata. +var ( + NodePoolV3_Kind = "NodePoolV3" + NodePoolV3_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: NodePoolV3_Kind}.String() + NodePoolV3_KindAPIVersion = NodePoolV3_Kind + "." + CRDGroupVersion.String() + NodePoolV3_GroupVersionKind = CRDGroupVersion.WithKind(NodePoolV3_Kind) +) + +func init() { + SchemeBuilder.Register(&NodePoolV3{}, &NodePoolV3List{}) +} diff --git a/apis/cce/v1alpha1/zz_nodev3_types.go b/apis/cce/v1alpha1/zz_nodev3_types.go new file mode 100755 index 0000000..460b35f --- /dev/null +++ b/apis/cce/v1alpha1/zz_nodev3_types.go @@ -0,0 +1,638 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 NodeV3DataVolumesInitParameters struct { + + // Disk expansion parameters. + // Please use alternative parameter extend_params. + ExtendParam *string `json:"extendParam,omitempty" tf:"extend_param,omitempty"` + + // Disk expansion parameters. A list of strings which describes additional disk parameters. + ExtendParams map[string]*string `json:"extendParams,omitempty" tf:"extend_params,omitempty"` + + // The Encryption KMS ID of the system volume. By default, it tries to get from env by OS_KMS_ID. + KMSID *string `json:"kmsId,omitempty" tf:"kms_id,omitempty"` + + // Disk size in GB. + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // Disk type. + Volumetype *string `json:"volumetype,omitempty" tf:"volumetype,omitempty"` +} + +type NodeV3DataVolumesObservation struct { + + // Disk expansion parameters. + // Please use alternative parameter extend_params. + ExtendParam *string `json:"extendParam,omitempty" tf:"extend_param,omitempty"` + + // Disk expansion parameters. A list of strings which describes additional disk parameters. + ExtendParams map[string]*string `json:"extendParams,omitempty" tf:"extend_params,omitempty"` + + // The Encryption KMS ID of the system volume. By default, it tries to get from env by OS_KMS_ID. + KMSID *string `json:"kmsId,omitempty" tf:"kms_id,omitempty"` + + // Disk size in GB. + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // Disk type. + Volumetype *string `json:"volumetype,omitempty" tf:"volumetype,omitempty"` +} + +type NodeV3DataVolumesParameters struct { + + // Disk expansion parameters. + // Please use alternative parameter extend_params. + // +kubebuilder:validation:Optional + ExtendParam *string `json:"extendParam,omitempty" tf:"extend_param,omitempty"` + + // Disk expansion parameters. A list of strings which describes additional disk parameters. + // +kubebuilder:validation:Optional + ExtendParams map[string]*string `json:"extendParams,omitempty" tf:"extend_params,omitempty"` + + // The Encryption KMS ID of the system volume. By default, it tries to get from env by OS_KMS_ID. + // +kubebuilder:validation:Optional + KMSID *string `json:"kmsId,omitempty" tf:"kms_id,omitempty"` + + // Disk size in GB. + // +kubebuilder:validation:Optional + Size *float64 `json:"size" tf:"size,omitempty"` + + // Disk type. + // +kubebuilder:validation:Optional + Volumetype *string `json:"volumetype" tf:"volumetype,omitempty"` +} + +type NodeV3InitParameters struct { + + // IAM agency name. Changing this parameter will create a new resource. + AgencyName *string `json:"agencyName,omitempty" tf:"agency_name,omitempty"` + + // Node annotation, key/value pair format. Changing this parameter will create a new resource + Annotations map[string]*string `json:"annotations,omitempty" tf:"annotations,omitempty"` + + // specify the name of the available partition (AZ). Changing this parameter will create a new resource. + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // Bandwidth billing type. + BandwidthChargeMode *string `json:"bandwidthChargeMode,omitempty" tf:"bandwidth_charge_mode,omitempty"` + + // Bandwidth size. + BandwidthSize *float64 `json:"bandwidthSize,omitempty" tf:"bandwidth_size,omitempty"` + + // Node's billing mode: The value is 0 (on demand). Changing this parameter will create a new resource. + BillingMode *float64 `json:"billingMode,omitempty" tf:"billing_mode,omitempty"` + + // ID of the cluster. Changing this parameter will create a new resource. + ClusterID *string `json:"clusterId,omitempty" tf:"cluster_id,omitempty"` + + // Represents the data disk to be created. Changing this parameter will create a new resource. + DataVolumes []NodeV3DataVolumesInitParameters `json:"dataVolumes,omitempty" tf:"data_volumes,omitempty"` + + // Available disk space of a single Docker container on the node using the device mapper. + // Changing this parameter will create a new node. + DockerBaseSize *float64 `json:"dockerBaseSize,omitempty" tf:"docker_base_size,omitempty"` + + // ConfigMap of the Docker data disk. + // Changing this parameter will create a new node. + DockerLvmConfigOverride *string `json:"dockerLvmConfigOverride,omitempty" tf:"docker_lvm_config_override,omitempty"` + + // Number of elastic IPs to be dynamically created. + EIPCount *float64 `json:"eipCount,omitempty" tf:"eip_count,omitempty"` + + // List of existing elastic IP IDs. + EIPIds []*string `json:"eipIds,omitempty" tf:"eip_ids,omitempty"` + + // Classification of cloud server specifications. Changing this parameter will create a new cluster resource. + EcsPerformanceType *string `json:"ecsPerformanceType,omitempty" tf:"ecs_performance_type,omitempty"` + + // Node charging mode, 0 is on-demand charging. Changing this parameter will create a new cluster resource. + ExtendParamChargingMode *float64 `json:"extendParamChargingMode,omitempty" tf:"extend_param_charging_mode,omitempty"` + + // Specifies the flavor id. Changing this parameter will create a new resource. + FlavorID *string `json:"flavorId,omitempty" tf:"flavor_id,omitempty"` + + // Elastic IP type. + Iptype *string `json:"iptype,omitempty" tf:"iptype,omitempty"` + + // Tags of a Kubernetes node, key/value pair format. + K8STags map[string]*string `json:"k8sTags,omitempty" tf:"k8s_tags,omitempty"` + + // Key pair name when logging in to select the key pair mode. Changing this parameter will create a new resource. + KeyPair *string `json:"keyPair,omitempty" tf:"key_pair,omitempty"` + + // Node tag, key/value pair format. Changing this parameter will create a new resource. + Labels map[string]*string `json:"labels,omitempty" tf:"labels,omitempty"` + + // The maximum number of instances a node is allowed to create. Changing this parameter will create a new node resource. + MaxPods *float64 `json:"maxPods,omitempty" tf:"max_pods,omitempty"` + + // Node Name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Order ID, mandatory when the node payment type is the automatic payment package period type. + // Changing this parameter will create a new cluster resource. + OrderID *string `json:"orderId,omitempty" tf:"order_id,omitempty"` + + // Node OS. Changing this parameter will create a new resource. + Os *string `json:"os,omitempty" tf:"os,omitempty"` + + // Script required after installation. The input value can be a Base64 encoded string or not. + // Changing this parameter will create a new resource. + Postinstall *string `json:"postinstall,omitempty" tf:"postinstall,omitempty"` + + // Script required before installation. The input value can be a Base64 encoded string or not. + // Changing this parameter will create a new resource. + Preinstall *string `json:"preinstall,omitempty" tf:"preinstall,omitempty"` + + // Private IP of the CCE node. Changing this parameter will create a new resource. + PrivateIP *string `json:"privateIp,omitempty" tf:"private_ip,omitempty"` + + // The Product ID. Changing this parameter will create a new cluster resource. + ProductID *string `json:"productId,omitempty" tf:"product_id,omitempty"` + + // The Public key. Changing this parameter will create a new cluster resource. + PublicKey *string `json:"publicKey,omitempty" tf:"public_key,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // It corresponds to the system disk related configuration. Changing this parameter will create a new resource. + RootVolume []NodeV3RootVolumeInitParameters `json:"rootVolume,omitempty" tf:"root_volume,omitempty"` + + // Container runtime. Changing this parameter will create a new resource. + // Use with high-caution, may trigger resource recreation. Options are: + // docker - Docker + // containerd - Containerd + Runtime *string `json:"runtime,omitempty" tf:"runtime,omitempty"` + + // Bandwidth sharing type. + Sharetype *string `json:"sharetype,omitempty" tf:"sharetype,omitempty"` + + // The ID of the subnet to which the NIC belongs. Changing this parameter will create a new resource. + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // The field is alternative to labels, key/value pair format. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Taints to created nodes to configure anti-affinity. + Taints []NodeV3TaintsInitParameters `json:"taints,omitempty" tf:"taints,omitempty"` +} + +type NodeV3Observation struct { + + // IAM agency name. Changing this parameter will create a new resource. + AgencyName *string `json:"agencyName,omitempty" tf:"agency_name,omitempty"` + + // Node annotation, key/value pair format. Changing this parameter will create a new resource + Annotations map[string]*string `json:"annotations,omitempty" tf:"annotations,omitempty"` + + // specify the name of the available partition (AZ). Changing this parameter will create a new resource. + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // Bandwidth billing type. + BandwidthChargeMode *string `json:"bandwidthChargeMode,omitempty" tf:"bandwidth_charge_mode,omitempty"` + + // Bandwidth size. + BandwidthSize *float64 `json:"bandwidthSize,omitempty" tf:"bandwidth_size,omitempty"` + + // Node's billing mode: The value is 0 (on demand). Changing this parameter will create a new resource. + BillingMode *float64 `json:"billingMode,omitempty" tf:"billing_mode,omitempty"` + + // ID of the cluster. Changing this parameter will create a new resource. + ClusterID *string `json:"clusterId,omitempty" tf:"cluster_id,omitempty"` + + // Represents the data disk to be created. Changing this parameter will create a new resource. + DataVolumes []NodeV3DataVolumesObservation `json:"dataVolumes,omitempty" tf:"data_volumes,omitempty"` + + // Available disk space of a single Docker container on the node using the device mapper. + // Changing this parameter will create a new node. + DockerBaseSize *float64 `json:"dockerBaseSize,omitempty" tf:"docker_base_size,omitempty"` + + // ConfigMap of the Docker data disk. + // Changing this parameter will create a new node. + DockerLvmConfigOverride *string `json:"dockerLvmConfigOverride,omitempty" tf:"docker_lvm_config_override,omitempty"` + + // Number of elastic IPs to be dynamically created. + EIPCount *float64 `json:"eipCount,omitempty" tf:"eip_count,omitempty"` + + // List of existing elastic IP IDs. + EIPIds []*string `json:"eipIds,omitempty" tf:"eip_ids,omitempty"` + + // Classification of cloud server specifications. Changing this parameter will create a new cluster resource. + EcsPerformanceType *string `json:"ecsPerformanceType,omitempty" tf:"ecs_performance_type,omitempty"` + + // Node charging mode, 0 is on-demand charging. Changing this parameter will create a new cluster resource. + ExtendParamChargingMode *float64 `json:"extendParamChargingMode,omitempty" tf:"extend_param_charging_mode,omitempty"` + + // Specifies the flavor id. Changing this parameter will create a new resource. + FlavorID *string `json:"flavorId,omitempty" tf:"flavor_id,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Elastic IP type. + Iptype *string `json:"iptype,omitempty" tf:"iptype,omitempty"` + + // Tags of a Kubernetes node, key/value pair format. + K8STags map[string]*string `json:"k8sTags,omitempty" tf:"k8s_tags,omitempty"` + + // Key pair name when logging in to select the key pair mode. Changing this parameter will create a new resource. + KeyPair *string `json:"keyPair,omitempty" tf:"key_pair,omitempty"` + + // Node tag, key/value pair format. Changing this parameter will create a new resource. + Labels map[string]*string `json:"labels,omitempty" tf:"labels,omitempty"` + + // The maximum number of instances a node is allowed to create. Changing this parameter will create a new node resource. + MaxPods *float64 `json:"maxPods,omitempty" tf:"max_pods,omitempty"` + + // Node Name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Order ID, mandatory when the node payment type is the automatic payment package period type. + // Changing this parameter will create a new cluster resource. + OrderID *string `json:"orderId,omitempty" tf:"order_id,omitempty"` + + // Node OS. Changing this parameter will create a new resource. + Os *string `json:"os,omitempty" tf:"os,omitempty"` + + // Script required after installation. The input value can be a Base64 encoded string or not. + // Changing this parameter will create a new resource. + Postinstall *string `json:"postinstall,omitempty" tf:"postinstall,omitempty"` + + // Script required before installation. The input value can be a Base64 encoded string or not. + // Changing this parameter will create a new resource. + Preinstall *string `json:"preinstall,omitempty" tf:"preinstall,omitempty"` + + // Private IP of the CCE node. Changing this parameter will create a new resource. + PrivateIP *string `json:"privateIp,omitempty" tf:"private_ip,omitempty"` + + // The Product ID. Changing this parameter will create a new cluster resource. + ProductID *string `json:"productId,omitempty" tf:"product_id,omitempty"` + + // Public IP of the CCE node. + PublicIP *string `json:"publicIp,omitempty" tf:"public_ip,omitempty"` + + // The Public key. Changing this parameter will create a new cluster resource. + PublicKey *string `json:"publicKey,omitempty" tf:"public_key,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // It corresponds to the system disk related configuration. Changing this parameter will create a new resource. + RootVolume []NodeV3RootVolumeObservation `json:"rootVolume,omitempty" tf:"root_volume,omitempty"` + + // Container runtime. Changing this parameter will create a new resource. + // Use with high-caution, may trigger resource recreation. Options are: + // docker - Docker + // containerd - Containerd + Runtime *string `json:"runtime,omitempty" tf:"runtime,omitempty"` + + // ID of the ECS where the node resides. + ServerID *string `json:"serverId,omitempty" tf:"server_id,omitempty"` + + // Bandwidth sharing type. + Sharetype *string `json:"sharetype,omitempty" tf:"sharetype,omitempty"` + + // Node status information. + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + // The ID of the subnet to which the NIC belongs. Changing this parameter will create a new resource. + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // The field is alternative to labels, key/value pair format. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Taints to created nodes to configure anti-affinity. + Taints []NodeV3TaintsObservation `json:"taints,omitempty" tf:"taints,omitempty"` +} + +type NodeV3Parameters struct { + + // IAM agency name. Changing this parameter will create a new resource. + // +kubebuilder:validation:Optional + AgencyName *string `json:"agencyName,omitempty" tf:"agency_name,omitempty"` + + // Node annotation, key/value pair format. Changing this parameter will create a new resource + // +kubebuilder:validation:Optional + Annotations map[string]*string `json:"annotations,omitempty" tf:"annotations,omitempty"` + + // specify the name of the available partition (AZ). Changing this parameter will create a new resource. + // +kubebuilder:validation:Optional + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // Bandwidth billing type. + // +kubebuilder:validation:Optional + BandwidthChargeMode *string `json:"bandwidthChargeMode,omitempty" tf:"bandwidth_charge_mode,omitempty"` + + // Bandwidth size. + // +kubebuilder:validation:Optional + BandwidthSize *float64 `json:"bandwidthSize,omitempty" tf:"bandwidth_size,omitempty"` + + // Node's billing mode: The value is 0 (on demand). Changing this parameter will create a new resource. + // +kubebuilder:validation:Optional + BillingMode *float64 `json:"billingMode,omitempty" tf:"billing_mode,omitempty"` + + // ID of the cluster. Changing this parameter will create a new resource. + // +kubebuilder:validation:Optional + ClusterID *string `json:"clusterId,omitempty" tf:"cluster_id,omitempty"` + + // Represents the data disk to be created. Changing this parameter will create a new resource. + // +kubebuilder:validation:Optional + DataVolumes []NodeV3DataVolumesParameters `json:"dataVolumes,omitempty" tf:"data_volumes,omitempty"` + + // Available disk space of a single Docker container on the node using the device mapper. + // Changing this parameter will create a new node. + // +kubebuilder:validation:Optional + DockerBaseSize *float64 `json:"dockerBaseSize,omitempty" tf:"docker_base_size,omitempty"` + + // ConfigMap of the Docker data disk. + // Changing this parameter will create a new node. + // +kubebuilder:validation:Optional + DockerLvmConfigOverride *string `json:"dockerLvmConfigOverride,omitempty" tf:"docker_lvm_config_override,omitempty"` + + // Number of elastic IPs to be dynamically created. + // +kubebuilder:validation:Optional + EIPCount *float64 `json:"eipCount,omitempty" tf:"eip_count,omitempty"` + + // List of existing elastic IP IDs. + // +kubebuilder:validation:Optional + EIPIds []*string `json:"eipIds,omitempty" tf:"eip_ids,omitempty"` + + // Classification of cloud server specifications. Changing this parameter will create a new cluster resource. + // +kubebuilder:validation:Optional + EcsPerformanceType *string `json:"ecsPerformanceType,omitempty" tf:"ecs_performance_type,omitempty"` + + // Node charging mode, 0 is on-demand charging. Changing this parameter will create a new cluster resource. + // +kubebuilder:validation:Optional + ExtendParamChargingMode *float64 `json:"extendParamChargingMode,omitempty" tf:"extend_param_charging_mode,omitempty"` + + // Specifies the flavor id. Changing this parameter will create a new resource. + // +kubebuilder:validation:Optional + FlavorID *string `json:"flavorId,omitempty" tf:"flavor_id,omitempty"` + + // Elastic IP type. + // +kubebuilder:validation:Optional + Iptype *string `json:"iptype,omitempty" tf:"iptype,omitempty"` + + // Tags of a Kubernetes node, key/value pair format. + // +kubebuilder:validation:Optional + K8STags map[string]*string `json:"k8sTags,omitempty" tf:"k8s_tags,omitempty"` + + // Key pair name when logging in to select the key pair mode. Changing this parameter will create a new resource. + // +kubebuilder:validation:Optional + KeyPair *string `json:"keyPair,omitempty" tf:"key_pair,omitempty"` + + // Node tag, key/value pair format. Changing this parameter will create a new resource. + // +kubebuilder:validation:Optional + Labels map[string]*string `json:"labels,omitempty" tf:"labels,omitempty"` + + // The maximum number of instances a node is allowed to create. Changing this parameter will create a new node resource. + // +kubebuilder:validation:Optional + MaxPods *float64 `json:"maxPods,omitempty" tf:"max_pods,omitempty"` + + // Node Name. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Order ID, mandatory when the node payment type is the automatic payment package period type. + // Changing this parameter will create a new cluster resource. + // +kubebuilder:validation:Optional + OrderID *string `json:"orderId,omitempty" tf:"order_id,omitempty"` + + // Node OS. Changing this parameter will create a new resource. + // +kubebuilder:validation:Optional + Os *string `json:"os,omitempty" tf:"os,omitempty"` + + // Script required after installation. The input value can be a Base64 encoded string or not. + // Changing this parameter will create a new resource. + // +kubebuilder:validation:Optional + Postinstall *string `json:"postinstall,omitempty" tf:"postinstall,omitempty"` + + // Script required before installation. The input value can be a Base64 encoded string or not. + // Changing this parameter will create a new resource. + // +kubebuilder:validation:Optional + Preinstall *string `json:"preinstall,omitempty" tf:"preinstall,omitempty"` + + // Private IP of the CCE node. Changing this parameter will create a new resource. + // +kubebuilder:validation:Optional + PrivateIP *string `json:"privateIp,omitempty" tf:"private_ip,omitempty"` + + // The Product ID. Changing this parameter will create a new cluster resource. + // +kubebuilder:validation:Optional + ProductID *string `json:"productId,omitempty" tf:"product_id,omitempty"` + + // The Public key. Changing this parameter will create a new cluster resource. + // +kubebuilder:validation:Optional + PublicKey *string `json:"publicKey,omitempty" tf:"public_key,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // It corresponds to the system disk related configuration. Changing this parameter will create a new resource. + // +kubebuilder:validation:Optional + RootVolume []NodeV3RootVolumeParameters `json:"rootVolume,omitempty" tf:"root_volume,omitempty"` + + // Container runtime. Changing this parameter will create a new resource. + // Use with high-caution, may trigger resource recreation. Options are: + // docker - Docker + // containerd - Containerd + // +kubebuilder:validation:Optional + Runtime *string `json:"runtime,omitempty" tf:"runtime,omitempty"` + + // Bandwidth sharing type. + // +kubebuilder:validation:Optional + Sharetype *string `json:"sharetype,omitempty" tf:"sharetype,omitempty"` + + // The ID of the subnet to which the NIC belongs. Changing this parameter will create a new resource. + // +kubebuilder:validation:Optional + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // The field is alternative to labels, key/value pair format. + // +kubebuilder:validation:Optional + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Taints to created nodes to configure anti-affinity. + // +kubebuilder:validation:Optional + Taints []NodeV3TaintsParameters `json:"taints,omitempty" tf:"taints,omitempty"` +} + +type NodeV3RootVolumeInitParameters struct { + + // Disk expansion parameters. + // Please use alternative parameter extend_params. + ExtendParam *string `json:"extendParam,omitempty" tf:"extend_param,omitempty"` + + // Disk expansion parameters. A list of strings which describes additional disk parameters. + ExtendParams map[string]*string `json:"extendParams,omitempty" tf:"extend_params,omitempty"` + + // The Encryption KMS ID of the system volume. By default, it tries to get from env by OS_KMS_ID. + KMSID *string `json:"kmsId,omitempty" tf:"kms_id,omitempty"` + + // Disk size in GB. + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // Disk type. + Volumetype *string `json:"volumetype,omitempty" tf:"volumetype,omitempty"` +} + +type NodeV3RootVolumeObservation struct { + + // Disk expansion parameters. + // Please use alternative parameter extend_params. + ExtendParam *string `json:"extendParam,omitempty" tf:"extend_param,omitempty"` + + // Disk expansion parameters. A list of strings which describes additional disk parameters. + ExtendParams map[string]*string `json:"extendParams,omitempty" tf:"extend_params,omitempty"` + + // The Encryption KMS ID of the system volume. By default, it tries to get from env by OS_KMS_ID. + KMSID *string `json:"kmsId,omitempty" tf:"kms_id,omitempty"` + + // Disk size in GB. + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // Disk type. + Volumetype *string `json:"volumetype,omitempty" tf:"volumetype,omitempty"` +} + +type NodeV3RootVolumeParameters struct { + + // Disk expansion parameters. + // Please use alternative parameter extend_params. + // +kubebuilder:validation:Optional + ExtendParam *string `json:"extendParam,omitempty" tf:"extend_param,omitempty"` + + // Disk expansion parameters. A list of strings which describes additional disk parameters. + // +kubebuilder:validation:Optional + ExtendParams map[string]*string `json:"extendParams,omitempty" tf:"extend_params,omitempty"` + + // The Encryption KMS ID of the system volume. By default, it tries to get from env by OS_KMS_ID. + // +kubebuilder:validation:Optional + KMSID *string `json:"kmsId,omitempty" tf:"kms_id,omitempty"` + + // Disk size in GB. + // +kubebuilder:validation:Optional + Size *float64 `json:"size" tf:"size,omitempty"` + + // Disk type. + // +kubebuilder:validation:Optional + Volumetype *string `json:"volumetype" tf:"volumetype,omitempty"` +} + +type NodeV3TaintsInitParameters struct { + + // Available options are NoSchedule, PreferNoSchedule, and NoExecute. + Effect *string `json:"effect,omitempty" tf:"effect,omitempty"` + + // A key must contain 1 to 63 characters starting with a letter or digit. Only letters, digits, hyphens (-), underscores (_), and periods (.) are allowed. A DNS subdomain name can be used as the prefix of a key. + Key *string `json:"key,omitempty" tf:"key,omitempty"` + + // A value must start with a letter or digit and can contain a maximum of 63 characters, including letters, digits, hyphens (-), underscores (_), and periods (.). + Value *string `json:"value,omitempty" tf:"value,omitempty"` +} + +type NodeV3TaintsObservation struct { + + // Available options are NoSchedule, PreferNoSchedule, and NoExecute. + Effect *string `json:"effect,omitempty" tf:"effect,omitempty"` + + // A key must contain 1 to 63 characters starting with a letter or digit. Only letters, digits, hyphens (-), underscores (_), and periods (.) are allowed. A DNS subdomain name can be used as the prefix of a key. + Key *string `json:"key,omitempty" tf:"key,omitempty"` + + // A value must start with a letter or digit and can contain a maximum of 63 characters, including letters, digits, hyphens (-), underscores (_), and periods (.). + Value *string `json:"value,omitempty" tf:"value,omitempty"` +} + +type NodeV3TaintsParameters struct { + + // Available options are NoSchedule, PreferNoSchedule, and NoExecute. + // +kubebuilder:validation:Optional + Effect *string `json:"effect" tf:"effect,omitempty"` + + // A key must contain 1 to 63 characters starting with a letter or digit. Only letters, digits, hyphens (-), underscores (_), and periods (.) are allowed. A DNS subdomain name can be used as the prefix of a key. + // +kubebuilder:validation:Optional + Key *string `json:"key" tf:"key,omitempty"` + + // A value must start with a letter or digit and can contain a maximum of 63 characters, including letters, digits, hyphens (-), underscores (_), and periods (.). + // +kubebuilder:validation:Optional + Value *string `json:"value" tf:"value,omitempty"` +} + +// NodeV3Spec defines the desired state of NodeV3 +type NodeV3Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider NodeV3Parameters `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 NodeV3InitParameters `json:"initProvider,omitempty"` +} + +// NodeV3Status defines the observed state of NodeV3. +type NodeV3Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider NodeV3Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// NodeV3 is the Schema for the NodeV3s API. Manages a CCE Cluster Node resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type NodeV3 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.availabilityZone) || (has(self.initProvider) && has(self.initProvider.availabilityZone))",message="spec.forProvider.availabilityZone is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.clusterId) || (has(self.initProvider) && has(self.initProvider.clusterId))",message="spec.forProvider.clusterId is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.dataVolumes) || (has(self.initProvider) && has(self.initProvider.dataVolumes))",message="spec.forProvider.dataVolumes is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.flavorId) || (has(self.initProvider) && has(self.initProvider.flavorId))",message="spec.forProvider.flavorId is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.keyPair) || (has(self.initProvider) && has(self.initProvider.keyPair))",message="spec.forProvider.keyPair is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.rootVolume) || (has(self.initProvider) && has(self.initProvider.rootVolume))",message="spec.forProvider.rootVolume is a required parameter" + Spec NodeV3Spec `json:"spec"` + Status NodeV3Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// NodeV3List contains a list of NodeV3s +type NodeV3List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []NodeV3 `json:"items"` +} + +// Repository type metadata. +var ( + NodeV3_Kind = "NodeV3" + NodeV3_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: NodeV3_Kind}.String() + NodeV3_KindAPIVersion = NodeV3_Kind + "." + CRDGroupVersion.String() + NodeV3_GroupVersionKind = CRDGroupVersion.WithKind(NodeV3_Kind) +) + +func init() { + SchemeBuilder.Register(&NodeV3{}, &NodeV3List{}) +} diff --git a/apis/compute/v1alpha1/zz_floatingipassociatev2_types.go b/apis/compute/v1alpha1/zz_floatingipassociatev2_types.go new file mode 100755 index 0000000..d405c93 --- /dev/null +++ b/apis/compute/v1alpha1/zz_floatingipassociatev2_types.go @@ -0,0 +1,128 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 FloatingipAssociateV2InitParameters struct { + + // The specific IP address to direct traffic to. + FixedIP *string `json:"fixedIp,omitempty" tf:"fixed_ip,omitempty"` + + // The floating IP to associate. + FloatingIP *string `json:"floatingIp,omitempty" tf:"floating_ip,omitempty"` + + // The instance to associte the floating IP with. + InstanceID *string `json:"instanceId,omitempty" tf:"instance_id,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` +} + +type FloatingipAssociateV2Observation struct { + + // The specific IP address to direct traffic to. + FixedIP *string `json:"fixedIp,omitempty" tf:"fixed_ip,omitempty"` + + // The floating IP to associate. + FloatingIP *string `json:"floatingIp,omitempty" tf:"floating_ip,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The instance to associte the floating IP with. + InstanceID *string `json:"instanceId,omitempty" tf:"instance_id,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` +} + +type FloatingipAssociateV2Parameters struct { + + // The specific IP address to direct traffic to. + // +kubebuilder:validation:Optional + FixedIP *string `json:"fixedIp,omitempty" tf:"fixed_ip,omitempty"` + + // The floating IP to associate. + // +kubebuilder:validation:Optional + FloatingIP *string `json:"floatingIp,omitempty" tf:"floating_ip,omitempty"` + + // The instance to associte the floating IP with. + // +kubebuilder:validation:Optional + InstanceID *string `json:"instanceId,omitempty" tf:"instance_id,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` +} + +// FloatingipAssociateV2Spec defines the desired state of FloatingipAssociateV2 +type FloatingipAssociateV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider FloatingipAssociateV2Parameters `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 FloatingipAssociateV2InitParameters `json:"initProvider,omitempty"` +} + +// FloatingipAssociateV2Status defines the observed state of FloatingipAssociateV2. +type FloatingipAssociateV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider FloatingipAssociateV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// FloatingipAssociateV2 is the Schema for the FloatingipAssociateV2s API. Manages an EIP Associate resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type FloatingipAssociateV2 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.floatingIp) || (has(self.initProvider) && has(self.initProvider.floatingIp))",message="spec.forProvider.floatingIp is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.instanceId) || (has(self.initProvider) && has(self.initProvider.instanceId))",message="spec.forProvider.instanceId is a required parameter" + Spec FloatingipAssociateV2Spec `json:"spec"` + Status FloatingipAssociateV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// FloatingipAssociateV2List contains a list of FloatingipAssociateV2s +type FloatingipAssociateV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []FloatingipAssociateV2 `json:"items"` +} + +// Repository type metadata. +var ( + FloatingipAssociateV2_Kind = "FloatingipAssociateV2" + FloatingipAssociateV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: FloatingipAssociateV2_Kind}.String() + FloatingipAssociateV2_KindAPIVersion = FloatingipAssociateV2_Kind + "." + CRDGroupVersion.String() + FloatingipAssociateV2_GroupVersionKind = CRDGroupVersion.WithKind(FloatingipAssociateV2_Kind) +) + +func init() { + SchemeBuilder.Register(&FloatingipAssociateV2{}, &FloatingipAssociateV2List{}) +} diff --git a/apis/compute/v1alpha1/zz_floatingipv2_types.go b/apis/compute/v1alpha1/zz_floatingipv2_types.go new file mode 100755 index 0000000..b07196e --- /dev/null +++ b/apis/compute/v1alpha1/zz_floatingipv2_types.go @@ -0,0 +1,118 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 FloatingipV2InitParameters struct { + + // The name of the pool from which to obtain the floating + // IP. Default value is admin_external_net. Changing this creates a new floating IP. + Pool *string `json:"pool,omitempty" tf:"pool,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` +} + +type FloatingipV2Observation struct { + + // The actual floating IP address itself. + Address *string `json:"address,omitempty" tf:"address,omitempty"` + + // The fixed IP address corresponding to the floating IP. + FixedIP *string `json:"fixedIp,omitempty" tf:"fixed_ip,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // UUID of the compute instance associated with the floating IP. + InstanceID *string `json:"instanceId,omitempty" tf:"instance_id,omitempty"` + + // The name of the pool from which to obtain the floating + // IP. Default value is admin_external_net. Changing this creates a new floating IP. + Pool *string `json:"pool,omitempty" tf:"pool,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` +} + +type FloatingipV2Parameters struct { + + // The name of the pool from which to obtain the floating + // IP. Default value is admin_external_net. Changing this creates a new floating IP. + // +kubebuilder:validation:Optional + Pool *string `json:"pool,omitempty" tf:"pool,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` +} + +// FloatingipV2Spec defines the desired state of FloatingipV2 +type FloatingipV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider FloatingipV2Parameters `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 FloatingipV2InitParameters `json:"initProvider,omitempty"` +} + +// FloatingipV2Status defines the observed state of FloatingipV2. +type FloatingipV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider FloatingipV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// FloatingipV2 is the Schema for the FloatingipV2s API. Manages an EIP resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type FloatingipV2 struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec FloatingipV2Spec `json:"spec"` + Status FloatingipV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// FloatingipV2List contains a list of FloatingipV2s +type FloatingipV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []FloatingipV2 `json:"items"` +} + +// Repository type metadata. +var ( + FloatingipV2_Kind = "FloatingipV2" + FloatingipV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: FloatingipV2_Kind}.String() + FloatingipV2_KindAPIVersion = FloatingipV2_Kind + "." + CRDGroupVersion.String() + FloatingipV2_GroupVersionKind = CRDGroupVersion.WithKind(FloatingipV2_Kind) +) + +func init() { + SchemeBuilder.Register(&FloatingipV2{}, &FloatingipV2List{}) +} diff --git a/apis/compute/v1alpha1/zz_generated.deepcopy.go b/apis/compute/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..f99a42c --- /dev/null +++ b/apis/compute/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,2678 @@ +//go:build !ignore_autogenerated + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by controller-gen. DO NOT EDIT. + +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 *BlockDeviceInitParameters) DeepCopyInto(out *BlockDeviceInitParameters) { + *out = *in + if in.BootIndex != nil { + in, out := &in.BootIndex, &out.BootIndex + *out = new(float64) + **out = **in + } + if in.DeleteOnTermination != nil { + in, out := &in.DeleteOnTermination, &out.DeleteOnTermination + *out = new(bool) + **out = **in + } + if in.DestinationType != nil { + in, out := &in.DestinationType, &out.DestinationType + *out = new(string) + **out = **in + } + if in.DeviceName != nil { + in, out := &in.DeviceName, &out.DeviceName + *out = new(string) + **out = **in + } + if in.GuestFormat != nil { + in, out := &in.GuestFormat, &out.GuestFormat + *out = new(string) + **out = **in + } + if in.SourceType != nil { + in, out := &in.SourceType, &out.SourceType + *out = new(string) + **out = **in + } + if in.UUID != nil { + in, out := &in.UUID, &out.UUID + *out = new(string) + **out = **in + } + if in.VolumeSize != nil { + in, out := &in.VolumeSize, &out.VolumeSize + *out = new(float64) + **out = **in + } + if in.VolumeType != nil { + in, out := &in.VolumeType, &out.VolumeType + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BlockDeviceInitParameters. +func (in *BlockDeviceInitParameters) DeepCopy() *BlockDeviceInitParameters { + if in == nil { + return nil + } + out := new(BlockDeviceInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BlockDeviceObservation) DeepCopyInto(out *BlockDeviceObservation) { + *out = *in + if in.BootIndex != nil { + in, out := &in.BootIndex, &out.BootIndex + *out = new(float64) + **out = **in + } + if in.DeleteOnTermination != nil { + in, out := &in.DeleteOnTermination, &out.DeleteOnTermination + *out = new(bool) + **out = **in + } + if in.DestinationType != nil { + in, out := &in.DestinationType, &out.DestinationType + *out = new(string) + **out = **in + } + if in.DeviceName != nil { + in, out := &in.DeviceName, &out.DeviceName + *out = new(string) + **out = **in + } + if in.GuestFormat != nil { + in, out := &in.GuestFormat, &out.GuestFormat + *out = new(string) + **out = **in + } + if in.SourceType != nil { + in, out := &in.SourceType, &out.SourceType + *out = new(string) + **out = **in + } + if in.UUID != nil { + in, out := &in.UUID, &out.UUID + *out = new(string) + **out = **in + } + if in.VolumeSize != nil { + in, out := &in.VolumeSize, &out.VolumeSize + *out = new(float64) + **out = **in + } + if in.VolumeType != nil { + in, out := &in.VolumeType, &out.VolumeType + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BlockDeviceObservation. +func (in *BlockDeviceObservation) DeepCopy() *BlockDeviceObservation { + if in == nil { + return nil + } + out := new(BlockDeviceObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BlockDeviceParameters) DeepCopyInto(out *BlockDeviceParameters) { + *out = *in + if in.BootIndex != nil { + in, out := &in.BootIndex, &out.BootIndex + *out = new(float64) + **out = **in + } + if in.DeleteOnTermination != nil { + in, out := &in.DeleteOnTermination, &out.DeleteOnTermination + *out = new(bool) + **out = **in + } + if in.DestinationType != nil { + in, out := &in.DestinationType, &out.DestinationType + *out = new(string) + **out = **in + } + if in.DeviceName != nil { + in, out := &in.DeviceName, &out.DeviceName + *out = new(string) + **out = **in + } + if in.GuestFormat != nil { + in, out := &in.GuestFormat, &out.GuestFormat + *out = new(string) + **out = **in + } + if in.SourceType != nil { + in, out := &in.SourceType, &out.SourceType + *out = new(string) + **out = **in + } + if in.UUID != nil { + in, out := &in.UUID, &out.UUID + *out = new(string) + **out = **in + } + if in.VolumeSize != nil { + in, out := &in.VolumeSize, &out.VolumeSize + *out = new(float64) + **out = **in + } + if in.VolumeType != nil { + in, out := &in.VolumeType, &out.VolumeType + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BlockDeviceParameters. +func (in *BlockDeviceParameters) DeepCopy() *BlockDeviceParameters { + if in == nil { + return nil + } + out := new(BlockDeviceParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FloatingipAssociateV2) DeepCopyInto(out *FloatingipAssociateV2) { + *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 FloatingipAssociateV2. +func (in *FloatingipAssociateV2) DeepCopy() *FloatingipAssociateV2 { + if in == nil { + return nil + } + out := new(FloatingipAssociateV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *FloatingipAssociateV2) 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 *FloatingipAssociateV2InitParameters) DeepCopyInto(out *FloatingipAssociateV2InitParameters) { + *out = *in + if in.FixedIP != nil { + in, out := &in.FixedIP, &out.FixedIP + *out = new(string) + **out = **in + } + if in.FloatingIP != nil { + in, out := &in.FloatingIP, &out.FloatingIP + *out = new(string) + **out = **in + } + if in.InstanceID != nil { + in, out := &in.InstanceID, &out.InstanceID + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FloatingipAssociateV2InitParameters. +func (in *FloatingipAssociateV2InitParameters) DeepCopy() *FloatingipAssociateV2InitParameters { + if in == nil { + return nil + } + out := new(FloatingipAssociateV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FloatingipAssociateV2List) DeepCopyInto(out *FloatingipAssociateV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]FloatingipAssociateV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FloatingipAssociateV2List. +func (in *FloatingipAssociateV2List) DeepCopy() *FloatingipAssociateV2List { + if in == nil { + return nil + } + out := new(FloatingipAssociateV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *FloatingipAssociateV2List) 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 *FloatingipAssociateV2Observation) DeepCopyInto(out *FloatingipAssociateV2Observation) { + *out = *in + if in.FixedIP != nil { + in, out := &in.FixedIP, &out.FixedIP + *out = new(string) + **out = **in + } + if in.FloatingIP != nil { + in, out := &in.FloatingIP, &out.FloatingIP + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.InstanceID != nil { + in, out := &in.InstanceID, &out.InstanceID + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FloatingipAssociateV2Observation. +func (in *FloatingipAssociateV2Observation) DeepCopy() *FloatingipAssociateV2Observation { + if in == nil { + return nil + } + out := new(FloatingipAssociateV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FloatingipAssociateV2Parameters) DeepCopyInto(out *FloatingipAssociateV2Parameters) { + *out = *in + if in.FixedIP != nil { + in, out := &in.FixedIP, &out.FixedIP + *out = new(string) + **out = **in + } + if in.FloatingIP != nil { + in, out := &in.FloatingIP, &out.FloatingIP + *out = new(string) + **out = **in + } + if in.InstanceID != nil { + in, out := &in.InstanceID, &out.InstanceID + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FloatingipAssociateV2Parameters. +func (in *FloatingipAssociateV2Parameters) DeepCopy() *FloatingipAssociateV2Parameters { + if in == nil { + return nil + } + out := new(FloatingipAssociateV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FloatingipAssociateV2Spec) DeepCopyInto(out *FloatingipAssociateV2Spec) { + *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 FloatingipAssociateV2Spec. +func (in *FloatingipAssociateV2Spec) DeepCopy() *FloatingipAssociateV2Spec { + if in == nil { + return nil + } + out := new(FloatingipAssociateV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FloatingipAssociateV2Status) DeepCopyInto(out *FloatingipAssociateV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FloatingipAssociateV2Status. +func (in *FloatingipAssociateV2Status) DeepCopy() *FloatingipAssociateV2Status { + if in == nil { + return nil + } + out := new(FloatingipAssociateV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FloatingipV2) DeepCopyInto(out *FloatingipV2) { + *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 FloatingipV2. +func (in *FloatingipV2) DeepCopy() *FloatingipV2 { + if in == nil { + return nil + } + out := new(FloatingipV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *FloatingipV2) 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 *FloatingipV2InitParameters) DeepCopyInto(out *FloatingipV2InitParameters) { + *out = *in + if in.Pool != nil { + in, out := &in.Pool, &out.Pool + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FloatingipV2InitParameters. +func (in *FloatingipV2InitParameters) DeepCopy() *FloatingipV2InitParameters { + if in == nil { + return nil + } + out := new(FloatingipV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FloatingipV2List) DeepCopyInto(out *FloatingipV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]FloatingipV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FloatingipV2List. +func (in *FloatingipV2List) DeepCopy() *FloatingipV2List { + if in == nil { + return nil + } + out := new(FloatingipV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *FloatingipV2List) 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 *FloatingipV2Observation) DeepCopyInto(out *FloatingipV2Observation) { + *out = *in + if in.Address != nil { + in, out := &in.Address, &out.Address + *out = new(string) + **out = **in + } + if in.FixedIP != nil { + in, out := &in.FixedIP, &out.FixedIP + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.InstanceID != nil { + in, out := &in.InstanceID, &out.InstanceID + *out = new(string) + **out = **in + } + if in.Pool != nil { + in, out := &in.Pool, &out.Pool + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FloatingipV2Observation. +func (in *FloatingipV2Observation) DeepCopy() *FloatingipV2Observation { + if in == nil { + return nil + } + out := new(FloatingipV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FloatingipV2Parameters) DeepCopyInto(out *FloatingipV2Parameters) { + *out = *in + if in.Pool != nil { + in, out := &in.Pool, &out.Pool + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FloatingipV2Parameters. +func (in *FloatingipV2Parameters) DeepCopy() *FloatingipV2Parameters { + if in == nil { + return nil + } + out := new(FloatingipV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FloatingipV2Spec) DeepCopyInto(out *FloatingipV2Spec) { + *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 FloatingipV2Spec. +func (in *FloatingipV2Spec) DeepCopy() *FloatingipV2Spec { + if in == nil { + return nil + } + out := new(FloatingipV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FloatingipV2Status) DeepCopyInto(out *FloatingipV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FloatingipV2Status. +func (in *FloatingipV2Status) DeepCopy() *FloatingipV2Status { + if in == nil { + return nil + } + out := new(FloatingipV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV2) DeepCopyInto(out *InstanceV2) { + *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 InstanceV2. +func (in *InstanceV2) DeepCopy() *InstanceV2 { + if in == nil { + return nil + } + out := new(InstanceV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *InstanceV2) 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 *InstanceV2InitParameters) DeepCopyInto(out *InstanceV2InitParameters) { + *out = *in + if in.AccessIPV4 != nil { + in, out := &in.AccessIPV4, &out.AccessIPV4 + *out = new(string) + **out = **in + } + if in.AccessIPV6 != nil { + in, out := &in.AccessIPV6, &out.AccessIPV6 + *out = new(string) + **out = **in + } + if in.AutoRecovery != nil { + in, out := &in.AutoRecovery, &out.AutoRecovery + *out = new(bool) + **out = **in + } + if in.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *out = new(string) + **out = **in + } + if in.BlockDevice != nil { + in, out := &in.BlockDevice, &out.BlockDevice + *out = make([]BlockDeviceInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ConfigDrive != nil { + in, out := &in.ConfigDrive, &out.ConfigDrive + *out = new(bool) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.FlavorID != nil { + in, out := &in.FlavorID, &out.FlavorID + *out = new(string) + **out = **in + } + if in.FlavorName != nil { + in, out := &in.FlavorName, &out.FlavorName + *out = new(string) + **out = **in + } + if in.ImageID != nil { + in, out := &in.ImageID, &out.ImageID + *out = new(string) + **out = **in + } + if in.ImageName != nil { + in, out := &in.ImageName, &out.ImageName + *out = new(string) + **out = **in + } + if in.Metadata != nil { + in, out := &in.Metadata, &out.Metadata + *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.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Network != nil { + in, out := &in.Network, &out.Network + *out = make([]NetworkInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.PowerState != nil { + in, out := &in.PowerState, &out.PowerState + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.SchedulerHints != nil { + in, out := &in.SchedulerHints, &out.SchedulerHints + *out = make([]SchedulerHintsInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.StopBeforeDestroy != nil { + in, out := &in.StopBeforeDestroy, &out.StopBeforeDestroy + *out = new(bool) + **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.UserData != nil { + in, out := &in.UserData, &out.UserData + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV2InitParameters. +func (in *InstanceV2InitParameters) DeepCopy() *InstanceV2InitParameters { + if in == nil { + return nil + } + out := new(InstanceV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV2List) DeepCopyInto(out *InstanceV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]InstanceV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV2List. +func (in *InstanceV2List) DeepCopy() *InstanceV2List { + if in == nil { + return nil + } + out := new(InstanceV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *InstanceV2List) 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 *InstanceV2Observation) DeepCopyInto(out *InstanceV2Observation) { + *out = *in + if in.AccessIPV4 != nil { + in, out := &in.AccessIPV4, &out.AccessIPV4 + *out = new(string) + **out = **in + } + if in.AccessIPV6 != nil { + in, out := &in.AccessIPV6, &out.AccessIPV6 + *out = new(string) + **out = **in + } + if in.AllMetadata != nil { + in, out := &in.AllMetadata, &out.AllMetadata + *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.AutoRecovery != nil { + in, out := &in.AutoRecovery, &out.AutoRecovery + *out = new(bool) + **out = **in + } + if in.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *out = new(string) + **out = **in + } + if in.BlockDevice != nil { + in, out := &in.BlockDevice, &out.BlockDevice + *out = make([]BlockDeviceObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ConfigDrive != nil { + in, out := &in.ConfigDrive, &out.ConfigDrive + *out = new(bool) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.FlavorID != nil { + in, out := &in.FlavorID, &out.FlavorID + *out = new(string) + **out = **in + } + if in.FlavorName != nil { + in, out := &in.FlavorName, &out.FlavorName + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.ImageID != nil { + in, out := &in.ImageID, &out.ImageID + *out = new(string) + **out = **in + } + if in.ImageName != nil { + in, out := &in.ImageName, &out.ImageName + *out = new(string) + **out = **in + } + if in.KeyPair != nil { + in, out := &in.KeyPair, &out.KeyPair + *out = new(string) + **out = **in + } + if in.Metadata != nil { + in, out := &in.Metadata, &out.Metadata + *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.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Network != nil { + in, out := &in.Network, &out.Network + *out = make([]NetworkObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.PowerState != nil { + in, out := &in.PowerState, &out.PowerState + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.SchedulerHints != nil { + in, out := &in.SchedulerHints, &out.SchedulerHints + *out = make([]SchedulerHintsObservation, 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)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.StopBeforeDestroy != nil { + in, out := &in.StopBeforeDestroy, &out.StopBeforeDestroy + *out = new(bool) + **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.UserData != nil { + in, out := &in.UserData, &out.UserData + *out = new(string) + **out = **in + } + if in.VolumeAttached != nil { + in, out := &in.VolumeAttached, &out.VolumeAttached + *out = make([]VolumeAttachedObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV2Observation. +func (in *InstanceV2Observation) DeepCopy() *InstanceV2Observation { + if in == nil { + return nil + } + out := new(InstanceV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV2Parameters) DeepCopyInto(out *InstanceV2Parameters) { + *out = *in + if in.AccessIPV4 != nil { + in, out := &in.AccessIPV4, &out.AccessIPV4 + *out = new(string) + **out = **in + } + if in.AccessIPV6 != nil { + in, out := &in.AccessIPV6, &out.AccessIPV6 + *out = new(string) + **out = **in + } + if in.AdminPassSecretRef != nil { + in, out := &in.AdminPassSecretRef, &out.AdminPassSecretRef + *out = new(v1.SecretKeySelector) + **out = **in + } + if in.AutoRecovery != nil { + in, out := &in.AutoRecovery, &out.AutoRecovery + *out = new(bool) + **out = **in + } + if in.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *out = new(string) + **out = **in + } + if in.BlockDevice != nil { + in, out := &in.BlockDevice, &out.BlockDevice + *out = make([]BlockDeviceParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ConfigDrive != nil { + in, out := &in.ConfigDrive, &out.ConfigDrive + *out = new(bool) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.FlavorID != nil { + in, out := &in.FlavorID, &out.FlavorID + *out = new(string) + **out = **in + } + if in.FlavorName != nil { + in, out := &in.FlavorName, &out.FlavorName + *out = new(string) + **out = **in + } + if in.ImageID != nil { + in, out := &in.ImageID, &out.ImageID + *out = new(string) + **out = **in + } + if in.ImageName != nil { + in, out := &in.ImageName, &out.ImageName + *out = new(string) + **out = **in + } + if in.KeyPair != nil { + in, out := &in.KeyPair, &out.KeyPair + *out = new(string) + **out = **in + } + if in.KeyPairRef != nil { + in, out := &in.KeyPairRef, &out.KeyPairRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.KeyPairSelector != nil { + in, out := &in.KeyPairSelector, &out.KeyPairSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } + if in.Metadata != nil { + in, out := &in.Metadata, &out.Metadata + *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.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Network != nil { + in, out := &in.Network, &out.Network + *out = make([]NetworkParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.PowerState != nil { + in, out := &in.PowerState, &out.PowerState + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.SSHPrivateKeyPathSecretRef != nil { + in, out := &in.SSHPrivateKeyPathSecretRef, &out.SSHPrivateKeyPathSecretRef + *out = new(v1.SecretKeySelector) + **out = **in + } + if in.SchedulerHints != nil { + in, out := &in.SchedulerHints, &out.SchedulerHints + *out = make([]SchedulerHintsParameters, 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)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.SecurityGroupsRefs != nil { + in, out := &in.SecurityGroupsRefs, &out.SecurityGroupsRefs + *out = make([]v1.Reference, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.SecurityGroupsSelector != nil { + in, out := &in.SecurityGroupsSelector, &out.SecurityGroupsSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } + if in.StopBeforeDestroy != nil { + in, out := &in.StopBeforeDestroy, &out.StopBeforeDestroy + *out = new(bool) + **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.UserData != nil { + in, out := &in.UserData, &out.UserData + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV2Parameters. +func (in *InstanceV2Parameters) DeepCopy() *InstanceV2Parameters { + if in == nil { + return nil + } + out := new(InstanceV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV2Spec) DeepCopyInto(out *InstanceV2Spec) { + *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 InstanceV2Spec. +func (in *InstanceV2Spec) DeepCopy() *InstanceV2Spec { + if in == nil { + return nil + } + out := new(InstanceV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV2Status) DeepCopyInto(out *InstanceV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV2Status. +func (in *InstanceV2Status) DeepCopy() *InstanceV2Status { + if in == nil { + return nil + } + out := new(InstanceV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *KeypairV2) DeepCopyInto(out *KeypairV2) { + *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 KeypairV2. +func (in *KeypairV2) DeepCopy() *KeypairV2 { + if in == nil { + return nil + } + out := new(KeypairV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *KeypairV2) 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 *KeypairV2InitParameters) DeepCopyInto(out *KeypairV2InitParameters) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PublicKey != nil { + in, out := &in.PublicKey, &out.PublicKey + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 KeypairV2InitParameters. +func (in *KeypairV2InitParameters) DeepCopy() *KeypairV2InitParameters { + if in == nil { + return nil + } + out := new(KeypairV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *KeypairV2List) DeepCopyInto(out *KeypairV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]KeypairV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeypairV2List. +func (in *KeypairV2List) DeepCopy() *KeypairV2List { + if in == nil { + return nil + } + out := new(KeypairV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *KeypairV2List) 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 *KeypairV2Observation) DeepCopyInto(out *KeypairV2Observation) { + *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.PublicKey != nil { + in, out := &in.PublicKey, &out.PublicKey + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.Shared != nil { + in, out := &in.Shared, &out.Shared + *out = new(bool) + **out = **in + } + if in.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 KeypairV2Observation. +func (in *KeypairV2Observation) DeepCopy() *KeypairV2Observation { + if in == nil { + return nil + } + out := new(KeypairV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *KeypairV2Parameters) DeepCopyInto(out *KeypairV2Parameters) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PublicKey != nil { + in, out := &in.PublicKey, &out.PublicKey + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 KeypairV2Parameters. +func (in *KeypairV2Parameters) DeepCopy() *KeypairV2Parameters { + if in == nil { + return nil + } + out := new(KeypairV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *KeypairV2Spec) DeepCopyInto(out *KeypairV2Spec) { + *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 KeypairV2Spec. +func (in *KeypairV2Spec) DeepCopy() *KeypairV2Spec { + if in == nil { + return nil + } + out := new(KeypairV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *KeypairV2Status) DeepCopyInto(out *KeypairV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new KeypairV2Status. +func (in *KeypairV2Status) DeepCopy() *KeypairV2Status { + if in == nil { + return nil + } + out := new(KeypairV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkInitParameters) DeepCopyInto(out *NetworkInitParameters) { + *out = *in + if in.AccessNetwork != nil { + in, out := &in.AccessNetwork, &out.AccessNetwork + *out = new(bool) + **out = **in + } + if in.FixedIPV4 != nil { + in, out := &in.FixedIPV4, &out.FixedIPV4 + *out = new(string) + **out = **in + } + if in.FixedIPV6 != nil { + in, out := &in.FixedIPV6, &out.FixedIPV6 + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Port != nil { + in, out := &in.Port, &out.Port + *out = new(string) + **out = **in + } + if in.UUID != nil { + in, out := &in.UUID, &out.UUID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkInitParameters. +func (in *NetworkInitParameters) DeepCopy() *NetworkInitParameters { + if in == nil { + return nil + } + out := new(NetworkInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkObservation) DeepCopyInto(out *NetworkObservation) { + *out = *in + if in.AccessNetwork != nil { + in, out := &in.AccessNetwork, &out.AccessNetwork + *out = new(bool) + **out = **in + } + if in.FixedIPV4 != nil { + in, out := &in.FixedIPV4, &out.FixedIPV4 + *out = new(string) + **out = **in + } + if in.FixedIPV6 != nil { + in, out := &in.FixedIPV6, &out.FixedIPV6 + *out = new(string) + **out = **in + } + if in.Mac != nil { + in, out := &in.Mac, &out.Mac + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Port != nil { + in, out := &in.Port, &out.Port + *out = new(string) + **out = **in + } + if in.UUID != nil { + in, out := &in.UUID, &out.UUID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkObservation. +func (in *NetworkObservation) DeepCopy() *NetworkObservation { + if in == nil { + return nil + } + out := new(NetworkObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkParameters) DeepCopyInto(out *NetworkParameters) { + *out = *in + if in.AccessNetwork != nil { + in, out := &in.AccessNetwork, &out.AccessNetwork + *out = new(bool) + **out = **in + } + if in.FixedIPV4 != nil { + in, out := &in.FixedIPV4, &out.FixedIPV4 + *out = new(string) + **out = **in + } + if in.FixedIPV6 != nil { + in, out := &in.FixedIPV6, &out.FixedIPV6 + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Port != nil { + in, out := &in.Port, &out.Port + *out = new(string) + **out = **in + } + if in.UUID != nil { + in, out := &in.UUID, &out.UUID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkParameters. +func (in *NetworkParameters) DeepCopy() *NetworkParameters { + if in == nil { + return nil + } + out := new(NetworkParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RuleInitParameters) DeepCopyInto(out *RuleInitParameters) { + *out = *in + if in.Cidr != nil { + in, out := &in.Cidr, &out.Cidr + *out = new(string) + **out = **in + } + if in.FromGroupID != nil { + in, out := &in.FromGroupID, &out.FromGroupID + *out = new(string) + **out = **in + } + if in.FromPort != nil { + in, out := &in.FromPort, &out.FromPort + *out = new(float64) + **out = **in + } + if in.IPProtocol != nil { + in, out := &in.IPProtocol, &out.IPProtocol + *out = new(string) + **out = **in + } + if in.Self != nil { + in, out := &in.Self, &out.Self + *out = new(bool) + **out = **in + } + if in.ToPort != nil { + in, out := &in.ToPort, &out.ToPort + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RuleInitParameters. +func (in *RuleInitParameters) DeepCopy() *RuleInitParameters { + if in == nil { + return nil + } + out := new(RuleInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RuleObservation) DeepCopyInto(out *RuleObservation) { + *out = *in + if in.Cidr != nil { + in, out := &in.Cidr, &out.Cidr + *out = new(string) + **out = **in + } + if in.FromGroupID != nil { + in, out := &in.FromGroupID, &out.FromGroupID + *out = new(string) + **out = **in + } + if in.FromPort != nil { + in, out := &in.FromPort, &out.FromPort + *out = new(float64) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.IPProtocol != nil { + in, out := &in.IPProtocol, &out.IPProtocol + *out = new(string) + **out = **in + } + if in.Self != nil { + in, out := &in.Self, &out.Self + *out = new(bool) + **out = **in + } + if in.ToPort != nil { + in, out := &in.ToPort, &out.ToPort + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RuleObservation. +func (in *RuleObservation) DeepCopy() *RuleObservation { + if in == nil { + return nil + } + out := new(RuleObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RuleParameters) DeepCopyInto(out *RuleParameters) { + *out = *in + if in.Cidr != nil { + in, out := &in.Cidr, &out.Cidr + *out = new(string) + **out = **in + } + if in.FromGroupID != nil { + in, out := &in.FromGroupID, &out.FromGroupID + *out = new(string) + **out = **in + } + if in.FromPort != nil { + in, out := &in.FromPort, &out.FromPort + *out = new(float64) + **out = **in + } + if in.IPProtocol != nil { + in, out := &in.IPProtocol, &out.IPProtocol + *out = new(string) + **out = **in + } + if in.Self != nil { + in, out := &in.Self, &out.Self + *out = new(bool) + **out = **in + } + if in.ToPort != nil { + in, out := &in.ToPort, &out.ToPort + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RuleParameters. +func (in *RuleParameters) DeepCopy() *RuleParameters { + if in == nil { + return nil + } + out := new(RuleParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SchedulerHintsInitParameters) DeepCopyInto(out *SchedulerHintsInitParameters) { + *out = *in + if in.BuildNearHostIP != nil { + in, out := &in.BuildNearHostIP, &out.BuildNearHostIP + *out = new(string) + **out = **in + } + if in.DehID != nil { + in, out := &in.DehID, &out.DehID + *out = new(string) + **out = **in + } + if in.DifferentHost != nil { + in, out := &in.DifferentHost, &out.DifferentHost + *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.Group != nil { + in, out := &in.Group, &out.Group + *out = new(string) + **out = **in + } + if in.Query != nil { + in, out := &in.Query, &out.Query + *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.SameHost != nil { + in, out := &in.SameHost, &out.SameHost + *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.TargetCell != nil { + in, out := &in.TargetCell, &out.TargetCell + *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 SchedulerHintsInitParameters. +func (in *SchedulerHintsInitParameters) DeepCopy() *SchedulerHintsInitParameters { + if in == nil { + return nil + } + out := new(SchedulerHintsInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SchedulerHintsObservation) DeepCopyInto(out *SchedulerHintsObservation) { + *out = *in + if in.BuildNearHostIP != nil { + in, out := &in.BuildNearHostIP, &out.BuildNearHostIP + *out = new(string) + **out = **in + } + if in.DehID != nil { + in, out := &in.DehID, &out.DehID + *out = new(string) + **out = **in + } + if in.DifferentHost != nil { + in, out := &in.DifferentHost, &out.DifferentHost + *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.Group != nil { + in, out := &in.Group, &out.Group + *out = new(string) + **out = **in + } + if in.Query != nil { + in, out := &in.Query, &out.Query + *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.SameHost != nil { + in, out := &in.SameHost, &out.SameHost + *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.TargetCell != nil { + in, out := &in.TargetCell, &out.TargetCell + *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 SchedulerHintsObservation. +func (in *SchedulerHintsObservation) DeepCopy() *SchedulerHintsObservation { + if in == nil { + return nil + } + out := new(SchedulerHintsObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SchedulerHintsParameters) DeepCopyInto(out *SchedulerHintsParameters) { + *out = *in + if in.BuildNearHostIP != nil { + in, out := &in.BuildNearHostIP, &out.BuildNearHostIP + *out = new(string) + **out = **in + } + if in.DehID != nil { + in, out := &in.DehID, &out.DehID + *out = new(string) + **out = **in + } + if in.DifferentHost != nil { + in, out := &in.DifferentHost, &out.DifferentHost + *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.Group != nil { + in, out := &in.Group, &out.Group + *out = new(string) + **out = **in + } + if in.Query != nil { + in, out := &in.Query, &out.Query + *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.SameHost != nil { + in, out := &in.SameHost, &out.SameHost + *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.TargetCell != nil { + in, out := &in.TargetCell, &out.TargetCell + *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 SchedulerHintsParameters. +func (in *SchedulerHintsParameters) DeepCopy() *SchedulerHintsParameters { + if in == nil { + return nil + } + out := new(SchedulerHintsParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SecgroupV2) DeepCopyInto(out *SecgroupV2) { + *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 SecgroupV2. +func (in *SecgroupV2) DeepCopy() *SecgroupV2 { + if in == nil { + return nil + } + out := new(SecgroupV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *SecgroupV2) 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 *SecgroupV2InitParameters) DeepCopyInto(out *SecgroupV2InitParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *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.Rule != nil { + in, out := &in.Rule, &out.Rule + *out = make([]RuleInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecgroupV2InitParameters. +func (in *SecgroupV2InitParameters) DeepCopy() *SecgroupV2InitParameters { + if in == nil { + return nil + } + out := new(SecgroupV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SecgroupV2List) DeepCopyInto(out *SecgroupV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]SecgroupV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecgroupV2List. +func (in *SecgroupV2List) DeepCopy() *SecgroupV2List { + if in == nil { + return nil + } + out := new(SecgroupV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *SecgroupV2List) 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 *SecgroupV2Observation) DeepCopyInto(out *SecgroupV2Observation) { + *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.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.Rule != nil { + in, out := &in.Rule, &out.Rule + *out = make([]RuleObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecgroupV2Observation. +func (in *SecgroupV2Observation) DeepCopy() *SecgroupV2Observation { + if in == nil { + return nil + } + out := new(SecgroupV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SecgroupV2Parameters) DeepCopyInto(out *SecgroupV2Parameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *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.Rule != nil { + in, out := &in.Rule, &out.Rule + *out = make([]RuleParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecgroupV2Parameters. +func (in *SecgroupV2Parameters) DeepCopy() *SecgroupV2Parameters { + if in == nil { + return nil + } + out := new(SecgroupV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SecgroupV2Spec) DeepCopyInto(out *SecgroupV2Spec) { + *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 SecgroupV2Spec. +func (in *SecgroupV2Spec) DeepCopy() *SecgroupV2Spec { + if in == nil { + return nil + } + out := new(SecgroupV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SecgroupV2Status) DeepCopyInto(out *SecgroupV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecgroupV2Status. +func (in *SecgroupV2Status) DeepCopy() *SecgroupV2Status { + if in == nil { + return nil + } + out := new(SecgroupV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServergroupV2) DeepCopyInto(out *ServergroupV2) { + *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 ServergroupV2. +func (in *ServergroupV2) DeepCopy() *ServergroupV2 { + if in == nil { + return nil + } + out := new(ServergroupV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ServergroupV2) 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 *ServergroupV2InitParameters) DeepCopyInto(out *ServergroupV2InitParameters) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Policies != nil { + in, out := &in.Policies, &out.Policies + *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.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 ServergroupV2InitParameters. +func (in *ServergroupV2InitParameters) DeepCopy() *ServergroupV2InitParameters { + if in == nil { + return nil + } + out := new(ServergroupV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServergroupV2List) DeepCopyInto(out *ServergroupV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ServergroupV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServergroupV2List. +func (in *ServergroupV2List) DeepCopy() *ServergroupV2List { + if in == nil { + return nil + } + out := new(ServergroupV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ServergroupV2List) 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 *ServergroupV2Observation) DeepCopyInto(out *ServergroupV2Observation) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Members != nil { + in, out := &in.Members, &out.Members + *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.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Policies != nil { + in, out := &in.Policies, &out.Policies + *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.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 ServergroupV2Observation. +func (in *ServergroupV2Observation) DeepCopy() *ServergroupV2Observation { + if in == nil { + return nil + } + out := new(ServergroupV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServergroupV2Parameters) DeepCopyInto(out *ServergroupV2Parameters) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Policies != nil { + in, out := &in.Policies, &out.Policies + *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.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 ServergroupV2Parameters. +func (in *ServergroupV2Parameters) DeepCopy() *ServergroupV2Parameters { + if in == nil { + return nil + } + out := new(ServergroupV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServergroupV2Spec) DeepCopyInto(out *ServergroupV2Spec) { + *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 ServergroupV2Spec. +func (in *ServergroupV2Spec) DeepCopy() *ServergroupV2Spec { + if in == nil { + return nil + } + out := new(ServergroupV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServergroupV2Status) DeepCopyInto(out *ServergroupV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServergroupV2Status. +func (in *ServergroupV2Status) DeepCopy() *ServergroupV2Status { + if in == nil { + return nil + } + out := new(ServergroupV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VolumeAttachV2) DeepCopyInto(out *VolumeAttachV2) { + *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 VolumeAttachV2. +func (in *VolumeAttachV2) DeepCopy() *VolumeAttachV2 { + if in == nil { + return nil + } + out := new(VolumeAttachV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *VolumeAttachV2) 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 *VolumeAttachV2InitParameters) DeepCopyInto(out *VolumeAttachV2InitParameters) { + *out = *in + if in.Device != nil { + in, out := &in.Device, &out.Device + *out = new(string) + **out = **in + } + if in.InstanceID != nil { + in, out := &in.InstanceID, &out.InstanceID + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.VolumeID != nil { + in, out := &in.VolumeID, &out.VolumeID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachV2InitParameters. +func (in *VolumeAttachV2InitParameters) DeepCopy() *VolumeAttachV2InitParameters { + if in == nil { + return nil + } + out := new(VolumeAttachV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VolumeAttachV2List) DeepCopyInto(out *VolumeAttachV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]VolumeAttachV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachV2List. +func (in *VolumeAttachV2List) DeepCopy() *VolumeAttachV2List { + if in == nil { + return nil + } + out := new(VolumeAttachV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *VolumeAttachV2List) 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 *VolumeAttachV2Observation) DeepCopyInto(out *VolumeAttachV2Observation) { + *out = *in + if in.Device != nil { + in, out := &in.Device, &out.Device + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.InstanceID != nil { + in, out := &in.InstanceID, &out.InstanceID + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.VolumeID != nil { + in, out := &in.VolumeID, &out.VolumeID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachV2Observation. +func (in *VolumeAttachV2Observation) DeepCopy() *VolumeAttachV2Observation { + if in == nil { + return nil + } + out := new(VolumeAttachV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VolumeAttachV2Parameters) DeepCopyInto(out *VolumeAttachV2Parameters) { + *out = *in + if in.Device != nil { + in, out := &in.Device, &out.Device + *out = new(string) + **out = **in + } + if in.InstanceID != nil { + in, out := &in.InstanceID, &out.InstanceID + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.VolumeID != nil { + in, out := &in.VolumeID, &out.VolumeID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachV2Parameters. +func (in *VolumeAttachV2Parameters) DeepCopy() *VolumeAttachV2Parameters { + if in == nil { + return nil + } + out := new(VolumeAttachV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VolumeAttachV2Spec) DeepCopyInto(out *VolumeAttachV2Spec) { + *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 VolumeAttachV2Spec. +func (in *VolumeAttachV2Spec) DeepCopy() *VolumeAttachV2Spec { + if in == nil { + return nil + } + out := new(VolumeAttachV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VolumeAttachV2Status) DeepCopyInto(out *VolumeAttachV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachV2Status. +func (in *VolumeAttachV2Status) DeepCopy() *VolumeAttachV2Status { + if in == nil { + return nil + } + out := new(VolumeAttachV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VolumeAttachedInitParameters) DeepCopyInto(out *VolumeAttachedInitParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachedInitParameters. +func (in *VolumeAttachedInitParameters) DeepCopy() *VolumeAttachedInitParameters { + if in == nil { + return nil + } + out := new(VolumeAttachedInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VolumeAttachedObservation) DeepCopyInto(out *VolumeAttachedObservation) { + *out = *in + 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 VolumeAttachedObservation. +func (in *VolumeAttachedObservation) DeepCopy() *VolumeAttachedObservation { + if in == nil { + return nil + } + out := new(VolumeAttachedObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VolumeAttachedParameters) DeepCopyInto(out *VolumeAttachedParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeAttachedParameters. +func (in *VolumeAttachedParameters) DeepCopy() *VolumeAttachedParameters { + if in == nil { + return nil + } + out := new(VolumeAttachedParameters) + in.DeepCopyInto(out) + return out +} diff --git a/apis/compute/v1alpha1/zz_generated.managed.go b/apis/compute/v1alpha1/zz_generated.managed.go new file mode 100644 index 0000000..6a24c53 --- /dev/null +++ b/apis/compute/v1alpha1/zz_generated.managed.go @@ -0,0 +1,428 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import xpv1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + +// GetCondition of this FloatingipAssociateV2. +func (mg *FloatingipAssociateV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this FloatingipAssociateV2. +func (mg *FloatingipAssociateV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this FloatingipAssociateV2. +func (mg *FloatingipAssociateV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this FloatingipAssociateV2. +func (mg *FloatingipAssociateV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this FloatingipAssociateV2. +func (mg *FloatingipAssociateV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this FloatingipAssociateV2. +func (mg *FloatingipAssociateV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this FloatingipAssociateV2. +func (mg *FloatingipAssociateV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this FloatingipAssociateV2. +func (mg *FloatingipAssociateV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this FloatingipAssociateV2. +func (mg *FloatingipAssociateV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this FloatingipAssociateV2. +func (mg *FloatingipAssociateV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this FloatingipAssociateV2. +func (mg *FloatingipAssociateV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this FloatingipAssociateV2. +func (mg *FloatingipAssociateV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this FloatingipV2. +func (mg *FloatingipV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this FloatingipV2. +func (mg *FloatingipV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this FloatingipV2. +func (mg *FloatingipV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this FloatingipV2. +func (mg *FloatingipV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this FloatingipV2. +func (mg *FloatingipV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this FloatingipV2. +func (mg *FloatingipV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this FloatingipV2. +func (mg *FloatingipV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this FloatingipV2. +func (mg *FloatingipV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this FloatingipV2. +func (mg *FloatingipV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this FloatingipV2. +func (mg *FloatingipV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this FloatingipV2. +func (mg *FloatingipV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this FloatingipV2. +func (mg *FloatingipV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this InstanceV2. +func (mg *InstanceV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this InstanceV2. +func (mg *InstanceV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this InstanceV2. +func (mg *InstanceV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this InstanceV2. +func (mg *InstanceV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this InstanceV2. +func (mg *InstanceV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this InstanceV2. +func (mg *InstanceV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this InstanceV2. +func (mg *InstanceV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this InstanceV2. +func (mg *InstanceV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this InstanceV2. +func (mg *InstanceV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this InstanceV2. +func (mg *InstanceV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this InstanceV2. +func (mg *InstanceV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this InstanceV2. +func (mg *InstanceV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this KeypairV2. +func (mg *KeypairV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this KeypairV2. +func (mg *KeypairV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this KeypairV2. +func (mg *KeypairV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this KeypairV2. +func (mg *KeypairV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this KeypairV2. +func (mg *KeypairV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this KeypairV2. +func (mg *KeypairV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this KeypairV2. +func (mg *KeypairV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this KeypairV2. +func (mg *KeypairV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this KeypairV2. +func (mg *KeypairV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this KeypairV2. +func (mg *KeypairV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this KeypairV2. +func (mg *KeypairV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this KeypairV2. +func (mg *KeypairV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this SecgroupV2. +func (mg *SecgroupV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this SecgroupV2. +func (mg *SecgroupV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this SecgroupV2. +func (mg *SecgroupV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this SecgroupV2. +func (mg *SecgroupV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this SecgroupV2. +func (mg *SecgroupV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this SecgroupV2. +func (mg *SecgroupV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this SecgroupV2. +func (mg *SecgroupV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this SecgroupV2. +func (mg *SecgroupV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this SecgroupV2. +func (mg *SecgroupV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this SecgroupV2. +func (mg *SecgroupV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this SecgroupV2. +func (mg *SecgroupV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this SecgroupV2. +func (mg *SecgroupV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this ServergroupV2. +func (mg *ServergroupV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this ServergroupV2. +func (mg *ServergroupV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this ServergroupV2. +func (mg *ServergroupV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this ServergroupV2. +func (mg *ServergroupV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this ServergroupV2. +func (mg *ServergroupV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this ServergroupV2. +func (mg *ServergroupV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this ServergroupV2. +func (mg *ServergroupV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this ServergroupV2. +func (mg *ServergroupV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this ServergroupV2. +func (mg *ServergroupV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this ServergroupV2. +func (mg *ServergroupV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this ServergroupV2. +func (mg *ServergroupV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this ServergroupV2. +func (mg *ServergroupV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this VolumeAttachV2. +func (mg *VolumeAttachV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this VolumeAttachV2. +func (mg *VolumeAttachV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this VolumeAttachV2. +func (mg *VolumeAttachV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this VolumeAttachV2. +func (mg *VolumeAttachV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this VolumeAttachV2. +func (mg *VolumeAttachV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this VolumeAttachV2. +func (mg *VolumeAttachV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this VolumeAttachV2. +func (mg *VolumeAttachV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this VolumeAttachV2. +func (mg *VolumeAttachV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this VolumeAttachV2. +func (mg *VolumeAttachV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this VolumeAttachV2. +func (mg *VolumeAttachV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this VolumeAttachV2. +func (mg *VolumeAttachV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this VolumeAttachV2. +func (mg *VolumeAttachV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} diff --git a/apis/compute/v1alpha1/zz_generated.managedlist.go b/apis/compute/v1alpha1/zz_generated.managedlist.go new file mode 100644 index 0000000..3e0f243 --- /dev/null +++ b/apis/compute/v1alpha1/zz_generated.managedlist.go @@ -0,0 +1,71 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import resource "github.com/crossplane/crossplane-runtime/pkg/resource" + +// GetItems of this FloatingipAssociateV2List. +func (l *FloatingipAssociateV2List) 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 FloatingipV2List. +func (l *FloatingipV2List) 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 InstanceV2List. +func (l *InstanceV2List) 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 KeypairV2List. +func (l *KeypairV2List) 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 SecgroupV2List. +func (l *SecgroupV2List) 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 ServergroupV2List. +func (l *ServergroupV2List) 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 VolumeAttachV2List. +func (l *VolumeAttachV2List) 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/compute/v1alpha1/zz_generated.resolvers.go b/apis/compute/v1alpha1/zz_generated.resolvers.go new file mode 100644 index 0000000..1f0c965 --- /dev/null +++ b/apis/compute/v1alpha1/zz_generated.resolvers.go @@ -0,0 +1,56 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "context" + reference "github.com/crossplane/crossplane-runtime/pkg/reference" + errors "github.com/pkg/errors" + client "sigs.k8s.io/controller-runtime/pkg/client" +) + +// ResolveReferences of this InstanceV2. +func (mg *InstanceV2) ResolveReferences(ctx context.Context, c client.Reader) error { + r := reference.NewAPIResolver(c, mg) + + var rsp reference.ResolutionResponse + var mrsp reference.MultiResolutionResponse + var err error + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.KeyPair), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.KeyPairRef, + Selector: mg.Spec.ForProvider.KeyPairSelector, + To: reference.To{ + List: &KeypairV2List{}, + Managed: &KeypairV2{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.KeyPair") + } + mg.Spec.ForProvider.KeyPair = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.KeyPairRef = rsp.ResolvedReference + + mrsp, err = r.ResolveMultiple(ctx, reference.MultiResolutionRequest{ + CurrentValues: reference.FromPtrValues(mg.Spec.ForProvider.SecurityGroups), + Extract: reference.ExternalName(), + References: mg.Spec.ForProvider.SecurityGroupsRefs, + Selector: mg.Spec.ForProvider.SecurityGroupsSelector, + To: reference.To{ + List: &SecgroupV2List{}, + Managed: &SecgroupV2{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.SecurityGroups") + } + mg.Spec.ForProvider.SecurityGroups = reference.ToPtrValues(mrsp.ResolvedValues) + mg.Spec.ForProvider.SecurityGroupsRefs = mrsp.ResolvedReferences + + return nil +} diff --git a/apis/compute/v1alpha1/zz_generated_terraformed.go b/apis/compute/v1alpha1/zz_generated_terraformed.go new file mode 100755 index 0000000..63fd725 --- /dev/null +++ b/apis/compute/v1alpha1/zz_generated_terraformed.go @@ -0,0 +1,606 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "github.com/pkg/errors" + + "github.com/crossplane/upjet/pkg/resource" + "github.com/crossplane/upjet/pkg/resource/json" +) + +// GetTerraformResourceType returns Terraform resource type for this FloatingipAssociateV2 +func (mg *FloatingipAssociateV2) GetTerraformResourceType() string { + return "opentelekomcloud_compute_floatingip_associate_v2" +} + +// GetConnectionDetailsMapping for this FloatingipAssociateV2 +func (tr *FloatingipAssociateV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this FloatingipAssociateV2 +func (tr *FloatingipAssociateV2) 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 FloatingipAssociateV2 +func (tr *FloatingipAssociateV2) 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 FloatingipAssociateV2 +func (tr *FloatingipAssociateV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this FloatingipAssociateV2 +func (tr *FloatingipAssociateV2) 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 FloatingipAssociateV2 +func (tr *FloatingipAssociateV2) 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 FloatingipAssociateV2 +func (tr *FloatingipAssociateV2) 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) +} + +// LateInitialize this FloatingipAssociateV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *FloatingipAssociateV2) LateInitialize(attrs []byte) (bool, error) { + params := &FloatingipAssociateV2Parameters{} + 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 *FloatingipAssociateV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this FloatingipV2 +func (mg *FloatingipV2) GetTerraformResourceType() string { + return "opentelekomcloud_compute_floatingip_v2" +} + +// GetConnectionDetailsMapping for this FloatingipV2 +func (tr *FloatingipV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this FloatingipV2 +func (tr *FloatingipV2) 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 FloatingipV2 +func (tr *FloatingipV2) 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 FloatingipV2 +func (tr *FloatingipV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this FloatingipV2 +func (tr *FloatingipV2) 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 FloatingipV2 +func (tr *FloatingipV2) 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 FloatingipV2 +func (tr *FloatingipV2) 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) +} + +// LateInitialize this FloatingipV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *FloatingipV2) LateInitialize(attrs []byte) (bool, error) { + params := &FloatingipV2Parameters{} + 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 *FloatingipV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this InstanceV2 +func (mg *InstanceV2) GetTerraformResourceType() string { + return "opentelekomcloud_compute_instance_v2" +} + +// GetConnectionDetailsMapping for this InstanceV2 +func (tr *InstanceV2) GetConnectionDetailsMapping() map[string]string { + return map[string]string{"admin_pass": "spec.forProvider.adminPassSecretRef", "encrypted_password": "status.atProvider.encryptedPassword", "password": "status.atProvider.password", "ssh_private_key_path": "spec.forProvider.sshPrivateKeyPathSecretRef"} +} + +// GetObservation of this InstanceV2 +func (tr *InstanceV2) 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 InstanceV2 +func (tr *InstanceV2) 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 InstanceV2 +func (tr *InstanceV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this InstanceV2 +func (tr *InstanceV2) 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 InstanceV2 +func (tr *InstanceV2) 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 InstanceV2 +func (tr *InstanceV2) 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) +} + +// LateInitialize this InstanceV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *InstanceV2) LateInitialize(attrs []byte) (bool, error) { + params := &InstanceV2Parameters{} + 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 *InstanceV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this KeypairV2 +func (mg *KeypairV2) GetTerraformResourceType() string { + return "opentelekomcloud_compute_keypair_v2" +} + +// GetConnectionDetailsMapping for this KeypairV2 +func (tr *KeypairV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this KeypairV2 +func (tr *KeypairV2) 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 KeypairV2 +func (tr *KeypairV2) 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 KeypairV2 +func (tr *KeypairV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this KeypairV2 +func (tr *KeypairV2) 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 KeypairV2 +func (tr *KeypairV2) 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 KeypairV2 +func (tr *KeypairV2) 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) +} + +// LateInitialize this KeypairV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *KeypairV2) LateInitialize(attrs []byte) (bool, error) { + params := &KeypairV2Parameters{} + 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 *KeypairV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this SecgroupV2 +func (mg *SecgroupV2) GetTerraformResourceType() string { + return "opentelekomcloud_compute_secgroup_v2" +} + +// GetConnectionDetailsMapping for this SecgroupV2 +func (tr *SecgroupV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this SecgroupV2 +func (tr *SecgroupV2) 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 SecgroupV2 +func (tr *SecgroupV2) 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 SecgroupV2 +func (tr *SecgroupV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this SecgroupV2 +func (tr *SecgroupV2) 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 SecgroupV2 +func (tr *SecgroupV2) 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 SecgroupV2 +func (tr *SecgroupV2) 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) +} + +// LateInitialize this SecgroupV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *SecgroupV2) LateInitialize(attrs []byte) (bool, error) { + params := &SecgroupV2Parameters{} + 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 *SecgroupV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this ServergroupV2 +func (mg *ServergroupV2) GetTerraformResourceType() string { + return "opentelekomcloud_compute_servergroup_v2" +} + +// GetConnectionDetailsMapping for this ServergroupV2 +func (tr *ServergroupV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this ServergroupV2 +func (tr *ServergroupV2) 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 ServergroupV2 +func (tr *ServergroupV2) 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 ServergroupV2 +func (tr *ServergroupV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this ServergroupV2 +func (tr *ServergroupV2) 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 ServergroupV2 +func (tr *ServergroupV2) 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 ServergroupV2 +func (tr *ServergroupV2) 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) +} + +// LateInitialize this ServergroupV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *ServergroupV2) LateInitialize(attrs []byte) (bool, error) { + params := &ServergroupV2Parameters{} + 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 *ServergroupV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this VolumeAttachV2 +func (mg *VolumeAttachV2) GetTerraformResourceType() string { + return "opentelekomcloud_compute_volume_attach_v2" +} + +// GetConnectionDetailsMapping for this VolumeAttachV2 +func (tr *VolumeAttachV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this VolumeAttachV2 +func (tr *VolumeAttachV2) 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 VolumeAttachV2 +func (tr *VolumeAttachV2) 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 VolumeAttachV2 +func (tr *VolumeAttachV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this VolumeAttachV2 +func (tr *VolumeAttachV2) 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 VolumeAttachV2 +func (tr *VolumeAttachV2) 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 VolumeAttachV2 +func (tr *VolumeAttachV2) 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) +} + +// LateInitialize this VolumeAttachV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *VolumeAttachV2) LateInitialize(attrs []byte) (bool, error) { + params := &VolumeAttachV2Parameters{} + 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 *VolumeAttachV2) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/compute/v1alpha1/zz_groupversion_info.go b/apis/compute/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..e0c0b9a --- /dev/null +++ b/apis/compute/v1alpha1/zz_groupversion_info.go @@ -0,0 +1,36 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +// +kubebuilder:object:generate=true +// +groupName=compute.crossplane.io +// +versionName=v1alpha1 +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +// Package type metadata. +const ( + CRDGroup = "compute.crossplane.io" + CRDVersion = "v1alpha1" +) + +var ( + // CRDGroupVersion is the API Group Version used to register the objects + CRDGroupVersion = schema.GroupVersion{Group: CRDGroup, Version: CRDVersion} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme + SchemeBuilder = &scheme.Builder{GroupVersion: CRDGroupVersion} + + // AddToScheme adds the types in this group-version to the given scheme. + AddToScheme = SchemeBuilder.AddToScheme +) diff --git a/apis/compute/v1alpha1/zz_instancev2_types.go b/apis/compute/v1alpha1/zz_instancev2_types.go new file mode 100755 index 0000000..a39ed5c --- /dev/null +++ b/apis/compute/v1alpha1/zz_instancev2_types.go @@ -0,0 +1,687 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 BlockDeviceInitParameters struct { + + // The boot index of the volume. It defaults to 0. Changing this creates a new server. + BootIndex *float64 `json:"bootIndex,omitempty" tf:"boot_index,omitempty"` + + // Delete the volume / block device upon termination of the instance. Defaults to + // false. Changing this creates a new server. + DeleteOnTermination *bool `json:"deleteOnTermination,omitempty" tf:"delete_on_termination,omitempty"` + + // The type that gets created. Currently only support "volume". Changing this creates a + // new server. + DestinationType *string `json:"destinationType,omitempty" tf:"destination_type,omitempty"` + + // A unique name for the resource. + DeviceName *string `json:"deviceName,omitempty" tf:"device_name,omitempty"` + + GuestFormat *string `json:"guestFormat,omitempty" tf:"guest_format,omitempty"` + + // The source type of the device. Must be one of + // "blank", "image", "volume", or "snapshot". Changing this creates a new server. + SourceType *string `json:"sourceType,omitempty" tf:"source_type,omitempty"` + + // The UUID of the image, volume, or snapshot. Changing + // this creates a new server. + UUID *string `json:"uuid,omitempty" tf:"uuid,omitempty"` + + // The size of the volume to create (in gigabytes). Required in the following combinations: source=image + // and destination=volume, and source=blank and destination=volume. Changing this creates a new server. + VolumeSize *float64 `json:"volumeSize,omitempty" tf:"volume_size,omitempty"` + + // Currently, the value can be SSD (ultra-I/O disk type), + // SAS (high I/O disk type), or SATA (common I/O disk type) + // OTC-API + VolumeType *string `json:"volumeType,omitempty" tf:"volume_type,omitempty"` +} + +type BlockDeviceObservation struct { + + // The boot index of the volume. It defaults to 0. Changing this creates a new server. + BootIndex *float64 `json:"bootIndex,omitempty" tf:"boot_index,omitempty"` + + // Delete the volume / block device upon termination of the instance. Defaults to + // false. Changing this creates a new server. + DeleteOnTermination *bool `json:"deleteOnTermination,omitempty" tf:"delete_on_termination,omitempty"` + + // The type that gets created. Currently only support "volume". Changing this creates a + // new server. + DestinationType *string `json:"destinationType,omitempty" tf:"destination_type,omitempty"` + + // A unique name for the resource. + DeviceName *string `json:"deviceName,omitempty" tf:"device_name,omitempty"` + + GuestFormat *string `json:"guestFormat,omitempty" tf:"guest_format,omitempty"` + + // The source type of the device. Must be one of + // "blank", "image", "volume", or "snapshot". Changing this creates a new server. + SourceType *string `json:"sourceType,omitempty" tf:"source_type,omitempty"` + + // The UUID of the image, volume, or snapshot. Changing + // this creates a new server. + UUID *string `json:"uuid,omitempty" tf:"uuid,omitempty"` + + // The size of the volume to create (in gigabytes). Required in the following combinations: source=image + // and destination=volume, and source=blank and destination=volume. Changing this creates a new server. + VolumeSize *float64 `json:"volumeSize,omitempty" tf:"volume_size,omitempty"` + + // Currently, the value can be SSD (ultra-I/O disk type), + // SAS (high I/O disk type), or SATA (common I/O disk type) + // OTC-API + VolumeType *string `json:"volumeType,omitempty" tf:"volume_type,omitempty"` +} + +type BlockDeviceParameters struct { + + // The boot index of the volume. It defaults to 0. Changing this creates a new server. + // +kubebuilder:validation:Optional + BootIndex *float64 `json:"bootIndex,omitempty" tf:"boot_index,omitempty"` + + // Delete the volume / block device upon termination of the instance. Defaults to + // false. Changing this creates a new server. + // +kubebuilder:validation:Optional + DeleteOnTermination *bool `json:"deleteOnTermination,omitempty" tf:"delete_on_termination,omitempty"` + + // The type that gets created. Currently only support "volume". Changing this creates a + // new server. + // +kubebuilder:validation:Optional + DestinationType *string `json:"destinationType,omitempty" tf:"destination_type,omitempty"` + + // A unique name for the resource. + // +kubebuilder:validation:Optional + DeviceName *string `json:"deviceName,omitempty" tf:"device_name,omitempty"` + + // +kubebuilder:validation:Optional + GuestFormat *string `json:"guestFormat,omitempty" tf:"guest_format,omitempty"` + + // The source type of the device. Must be one of + // "blank", "image", "volume", or "snapshot". Changing this creates a new server. + // +kubebuilder:validation:Optional + SourceType *string `json:"sourceType" tf:"source_type,omitempty"` + + // The UUID of the image, volume, or snapshot. Changing + // this creates a new server. + // +kubebuilder:validation:Optional + UUID *string `json:"uuid,omitempty" tf:"uuid,omitempty"` + + // The size of the volume to create (in gigabytes). Required in the following combinations: source=image + // and destination=volume, and source=blank and destination=volume. Changing this creates a new server. + // +kubebuilder:validation:Optional + VolumeSize *float64 `json:"volumeSize,omitempty" tf:"volume_size,omitempty"` + + // Currently, the value can be SSD (ultra-I/O disk type), + // SAS (high I/O disk type), or SATA (common I/O disk type) + // OTC-API + // +kubebuilder:validation:Optional + VolumeType *string `json:"volumeType,omitempty" tf:"volume_type,omitempty"` +} + +type InstanceV2InitParameters struct { + + // The first detected Fixed IPv4 address or the Floating IP. + AccessIPV4 *string `json:"accessIpV4,omitempty" tf:"access_ip_v4,omitempty"` + + // The first detected Fixed IPv6 address. + AccessIPV6 *string `json:"accessIpV6,omitempty" tf:"access_ip_v6,omitempty"` + + // Configures or deletes automatic recovery of an instance. Defaults to true. + AutoRecovery *bool `json:"autoRecovery,omitempty" tf:"auto_recovery,omitempty"` + + // The availability zone in which to create the server. Changing this creates a new + // server. + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // Configuration of block devices. The block_device structure is documented below. Changing + // this creates a new server. You can specify multiple block devices which will create an instance with multiple disks. + // This configuration is very flexible, so please see the + // following reference + // for more information. + BlockDevice []BlockDeviceInitParameters `json:"blockDevice,omitempty" tf:"block_device,omitempty"` + + // Whether to use the config_drive feature to configure the instance. Changing this creates a + // new server. + ConfigDrive *bool `json:"configDrive,omitempty" tf:"config_drive,omitempty"` + + // Server description. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The flavor ID of the desired flavor for the server. + // Changing this resizes the existing server. + FlavorID *string `json:"flavorId,omitempty" tf:"flavor_id,omitempty"` + + // The name of the desired flavor for the server. Changing + // this resizes the existing server. + FlavorName *string `json:"flavorName,omitempty" tf:"flavor_name,omitempty"` + + // The image ID of the desired image for the server. Changing this creates a new server. + ImageID *string `json:"imageId,omitempty" tf:"image_id,omitempty"` + + // The name of the desired image for the server. Changing this creates a new server. + ImageName *string `json:"imageName,omitempty" tf:"image_name,omitempty"` + + // Metadata key/value pairs to make available from within the instance. Changing this updates the + // existing server metadata. + Metadata map[string]*string `json:"metadata,omitempty" tf:"metadata,omitempty"` + + // A unique name for the resource. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // An array of one or more networks to attach to the instance. Required when there are multiple + // networks defined for the tenant. The network object structure is documented below. Changing this creates a new server. + Network []NetworkInitParameters `json:"network,omitempty" tf:"network,omitempty"` + + // Provide the VM state. Only active and shutoff are supported values. + PowerState *string `json:"powerState,omitempty" tf:"power_state,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Provide the Nova scheduler with hints on how the instance should be launched. The + // available hints are described below. + SchedulerHints []SchedulerHintsInitParameters `json:"schedulerHints,omitempty" tf:"scheduler_hints,omitempty"` + + // Whether to try stop instance gracefully before destroying it, thus giving chance + // for guest OS daemons to stop correctly. If instance doesn't stop within a timeout, it will be destroyed anyway. + StopBeforeDestroy *bool `json:"stopBeforeDestroy,omitempty" tf:"stop_before_destroy,omitempty"` + + // Tags key/value pairs to associate with the instance. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The user data to provide when launching the instance. Changing this creates a new server. + UserData *string `json:"userData,omitempty" tf:"user_data,omitempty"` +} + +type InstanceV2Observation struct { + + // The first detected Fixed IPv4 address or the Floating IP. + AccessIPV4 *string `json:"accessIpV4,omitempty" tf:"access_ip_v4,omitempty"` + + // The first detected Fixed IPv6 address. + AccessIPV6 *string `json:"accessIpV6,omitempty" tf:"access_ip_v6,omitempty"` + + AllMetadata map[string]*string `json:"allMetadata,omitempty" tf:"all_metadata,omitempty"` + + // Configures or deletes automatic recovery of an instance. Defaults to true. + AutoRecovery *bool `json:"autoRecovery,omitempty" tf:"auto_recovery,omitempty"` + + // The availability zone in which to create the server. Changing this creates a new + // server. + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // Configuration of block devices. The block_device structure is documented below. Changing + // this creates a new server. You can specify multiple block devices which will create an instance with multiple disks. + // This configuration is very flexible, so please see the + // following reference + // for more information. + BlockDevice []BlockDeviceObservation `json:"blockDevice,omitempty" tf:"block_device,omitempty"` + + // Whether to use the config_drive feature to configure the instance. Changing this creates a + // new server. + ConfigDrive *bool `json:"configDrive,omitempty" tf:"config_drive,omitempty"` + + // Server description. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The flavor ID of the desired flavor for the server. + // Changing this resizes the existing server. + FlavorID *string `json:"flavorId,omitempty" tf:"flavor_id,omitempty"` + + // The name of the desired flavor for the server. Changing + // this resizes the existing server. + FlavorName *string `json:"flavorName,omitempty" tf:"flavor_name,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The image ID of the desired image for the server. Changing this creates a new server. + ImageID *string `json:"imageId,omitempty" tf:"image_id,omitempty"` + + // The name of the desired image for the server. Changing this creates a new server. + ImageName *string `json:"imageName,omitempty" tf:"image_name,omitempty"` + + // 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. + KeyPair *string `json:"keyPair,omitempty" tf:"key_pair,omitempty"` + + // Metadata key/value pairs to make available from within the instance. Changing this updates the + // existing server metadata. + Metadata map[string]*string `json:"metadata,omitempty" tf:"metadata,omitempty"` + + // A unique name for the resource. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // An array of one or more networks to attach to the instance. Required when there are multiple + // networks defined for the tenant. The network object structure is documented below. Changing this creates a new server. + Network []NetworkObservation `json:"network,omitempty" tf:"network,omitempty"` + + // Provide the VM state. Only active and shutoff are supported values. + PowerState *string `json:"powerState,omitempty" tf:"power_state,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Provide the Nova scheduler with hints on how the instance should be launched. The + // available hints are described below. + SchedulerHints []SchedulerHintsObservation `json:"schedulerHints,omitempty" tf:"scheduler_hints,omitempty"` + + // An array of one or more security group names to associate with the server. Changing + // this results in adding/removing security groups from the existing server. + SecurityGroups []*string `json:"securityGroups,omitempty" tf:"security_groups,omitempty"` + + // Whether to try stop instance gracefully before destroying it, thus giving chance + // for guest OS daemons to stop correctly. If instance doesn't stop within a timeout, it will be destroyed anyway. + StopBeforeDestroy *bool `json:"stopBeforeDestroy,omitempty" tf:"stop_before_destroy,omitempty"` + + // Tags key/value pairs to associate with the instance. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The user data to provide when launching the instance. Changing this creates a new server. + UserData *string `json:"userData,omitempty" tf:"user_data,omitempty"` + + VolumeAttached []VolumeAttachedObservation `json:"volumeAttached,omitempty" tf:"volume_attached,omitempty"` +} + +type InstanceV2Parameters struct { + + // The first detected Fixed IPv4 address or the Floating IP. + // +kubebuilder:validation:Optional + AccessIPV4 *string `json:"accessIpV4,omitempty" tf:"access_ip_v4,omitempty"` + + // The first detected Fixed IPv6 address. + // +kubebuilder:validation:Optional + AccessIPV6 *string `json:"accessIpV6,omitempty" tf:"access_ip_v6,omitempty"` + + // The administrative password to assign to the server. Changing this changes the root password + // on the existing server. + // +kubebuilder:validation:Optional + AdminPassSecretRef *v1.SecretKeySelector `json:"adminPassSecretRef,omitempty" tf:"-"` + + // Configures or deletes automatic recovery of an instance. Defaults to true. + // +kubebuilder:validation:Optional + AutoRecovery *bool `json:"autoRecovery,omitempty" tf:"auto_recovery,omitempty"` + + // The availability zone in which to create the server. Changing this creates a new + // server. + // +kubebuilder:validation:Optional + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // Configuration of block devices. The block_device structure is documented below. Changing + // this creates a new server. You can specify multiple block devices which will create an instance with multiple disks. + // This configuration is very flexible, so please see the + // following reference + // for more information. + // +kubebuilder:validation:Optional + BlockDevice []BlockDeviceParameters `json:"blockDevice,omitempty" tf:"block_device,omitempty"` + + // Whether to use the config_drive feature to configure the instance. Changing this creates a + // new server. + // +kubebuilder:validation:Optional + ConfigDrive *bool `json:"configDrive,omitempty" tf:"config_drive,omitempty"` + + // Server description. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The flavor ID of the desired flavor for the server. + // Changing this resizes the existing server. + // +kubebuilder:validation:Optional + FlavorID *string `json:"flavorId,omitempty" tf:"flavor_id,omitempty"` + + // The name of the desired flavor for the server. Changing + // this resizes the existing server. + // +kubebuilder:validation:Optional + FlavorName *string `json:"flavorName,omitempty" tf:"flavor_name,omitempty"` + + // The image ID of the desired image for the server. Changing this creates a new server. + // +kubebuilder:validation:Optional + ImageID *string `json:"imageId,omitempty" tf:"image_id,omitempty"` + + // The name of the desired image for the server. Changing this creates a new server. + // +kubebuilder:validation:Optional + ImageName *string `json:"imageName,omitempty" tf:"image_name,omitempty"` + + // 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. + // +crossplane:generate:reference:type=KeypairV2 + // +kubebuilder:validation:Optional + KeyPair *string `json:"keyPair,omitempty" tf:"key_pair,omitempty"` + + // Reference to a KeypairV2 to populate keyPair. + // +kubebuilder:validation:Optional + KeyPairRef *v1.Reference `json:"keyPairRef,omitempty" tf:"-"` + + // Selector for a KeypairV2 to populate keyPair. + // +kubebuilder:validation:Optional + KeyPairSelector *v1.Selector `json:"keyPairSelector,omitempty" tf:"-"` + + // Metadata key/value pairs to make available from within the instance. Changing this updates the + // existing server metadata. + // +kubebuilder:validation:Optional + Metadata map[string]*string `json:"metadata,omitempty" tf:"metadata,omitempty"` + + // A unique name for the resource. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // An array of one or more networks to attach to the instance. Required when there are multiple + // networks defined for the tenant. The network object structure is documented below. Changing this creates a new server. + // +kubebuilder:validation:Optional + Network []NetworkParameters `json:"network,omitempty" tf:"network,omitempty"` + + // Provide the VM state. Only active and shutoff are supported values. + // +kubebuilder:validation:Optional + PowerState *string `json:"powerState,omitempty" tf:"power_state,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The path to the private key to use for SSH access. Required only if you want to + // get the password from the windows instance. + // +kubebuilder:validation:Optional + SSHPrivateKeyPathSecretRef *v1.SecretKeySelector `json:"sshPrivateKeyPathSecretRef,omitempty" tf:"-"` + + // Provide the Nova scheduler with hints on how the instance should be launched. The + // available hints are described below. + // +kubebuilder:validation:Optional + SchedulerHints []SchedulerHintsParameters `json:"schedulerHints,omitempty" tf:"scheduler_hints,omitempty"` + + // An array of one or more security group names to associate with the server. Changing + // this results in adding/removing security groups from the existing server. + // +crossplane:generate:reference:type=SecgroupV2 + // +kubebuilder:validation:Optional + SecurityGroups []*string `json:"securityGroups,omitempty" tf:"security_groups,omitempty"` + + // References to SecgroupV2 to populate securityGroups. + // +kubebuilder:validation:Optional + SecurityGroupsRefs []v1.Reference `json:"securityGroupsRefs,omitempty" tf:"-"` + + // Selector for a list of SecgroupV2 to populate securityGroups. + // +kubebuilder:validation:Optional + SecurityGroupsSelector *v1.Selector `json:"securityGroupsSelector,omitempty" tf:"-"` + + // Whether to try stop instance gracefully before destroying it, thus giving chance + // for guest OS daemons to stop correctly. If instance doesn't stop within a timeout, it will be destroyed anyway. + // +kubebuilder:validation:Optional + StopBeforeDestroy *bool `json:"stopBeforeDestroy,omitempty" tf:"stop_before_destroy,omitempty"` + + // Tags key/value pairs to associate with the instance. + // +kubebuilder:validation:Optional + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The user data to provide when launching the instance. Changing this creates a new server. + // +kubebuilder:validation:Optional + UserData *string `json:"userData,omitempty" tf:"user_data,omitempty"` +} + +type NetworkInitParameters struct { + + // Specifies if this network should be used for provisioning access. Accepts true or false. + // Defaults to false. + AccessNetwork *bool `json:"accessNetwork,omitempty" tf:"access_network,omitempty"` + + // Specifies a fixed IPv4 address to be used on this network. Changing this creates a new + // server. + FixedIPV4 *string `json:"fixedIpV4,omitempty" tf:"fixed_ip_v4,omitempty"` + + // Specifies a fixed IPv6 address to be used on this network. Changing this creates a new + // server. + FixedIPV6 *string `json:"fixedIpV6,omitempty" tf:"fixed_ip_v6,omitempty"` + + // The human-readable name of the network. Changing this creates + // a new server. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The port UUID of a network to attach to the server. Changing + // this creates a new server. + Port *string `json:"port,omitempty" tf:"port,omitempty"` + + // The network UUID to attach to the server. Changing this + // creates a new server. + UUID *string `json:"uuid,omitempty" tf:"uuid,omitempty"` +} + +type NetworkObservation struct { + + // Specifies if this network should be used for provisioning access. Accepts true or false. + // Defaults to false. + AccessNetwork *bool `json:"accessNetwork,omitempty" tf:"access_network,omitempty"` + + // Specifies a fixed IPv4 address to be used on this network. Changing this creates a new + // server. + FixedIPV4 *string `json:"fixedIpV4,omitempty" tf:"fixed_ip_v4,omitempty"` + + // Specifies a fixed IPv6 address to be used on this network. Changing this creates a new + // server. + FixedIPV6 *string `json:"fixedIpV6,omitempty" tf:"fixed_ip_v6,omitempty"` + + Mac *string `json:"mac,omitempty" tf:"mac,omitempty"` + + // The human-readable name of the network. Changing this creates + // a new server. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The port UUID of a network to attach to the server. Changing + // this creates a new server. + Port *string `json:"port,omitempty" tf:"port,omitempty"` + + // The network UUID to attach to the server. Changing this + // creates a new server. + UUID *string `json:"uuid,omitempty" tf:"uuid,omitempty"` +} + +type NetworkParameters struct { + + // Specifies if this network should be used for provisioning access. Accepts true or false. + // Defaults to false. + // +kubebuilder:validation:Optional + AccessNetwork *bool `json:"accessNetwork,omitempty" tf:"access_network,omitempty"` + + // Specifies a fixed IPv4 address to be used on this network. Changing this creates a new + // server. + // +kubebuilder:validation:Optional + FixedIPV4 *string `json:"fixedIpV4,omitempty" tf:"fixed_ip_v4,omitempty"` + + // Specifies a fixed IPv6 address to be used on this network. Changing this creates a new + // server. + // +kubebuilder:validation:Optional + FixedIPV6 *string `json:"fixedIpV6,omitempty" tf:"fixed_ip_v6,omitempty"` + + // The human-readable name of the network. Changing this creates + // a new server. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The port UUID of a network to attach to the server. Changing + // this creates a new server. + // +kubebuilder:validation:Optional + Port *string `json:"port,omitempty" tf:"port,omitempty"` + + // The network UUID to attach to the server. Changing this + // creates a new server. + // +kubebuilder:validation:Optional + UUID *string `json:"uuid,omitempty" tf:"uuid,omitempty"` +} + +type SchedulerHintsInitParameters struct { + + // An IP Address in CIDR form. The instance will be placed on a compute node that is in + // the same subnet. + BuildNearHostIP *string `json:"buildNearHostIp,omitempty" tf:"build_near_host_ip,omitempty"` + + // The ID of DeH. This parameter takes effect only when the value of tenancy is dedicated. + DehID *string `json:"dehId,omitempty" tf:"deh_id,omitempty"` + + // A list of instance UUIDs. The instance will be scheduled on a different host than all + // other instances. + DifferentHost []*string `json:"differentHost,omitempty" tf:"different_host,omitempty"` + + // A UUID of a Server Group. The instance will be placed into that group. + Group *string `json:"group,omitempty" tf:"group,omitempty"` + + // A conditional query that a compute node must pass in order to host an instance. + Query []*string `json:"query,omitempty" tf:"query,omitempty"` + + // A list of instance UUIDs. The instance will be scheduled on the same host of those specified. + SameHost []*string `json:"sameHost,omitempty" tf:"same_host,omitempty"` + + // The name of a cell to host the instance. + TargetCell *string `json:"targetCell,omitempty" tf:"target_cell,omitempty"` + + // The tenancy specifies whether the ECS is to be created on a Dedicated Host + // (DeH) or in a shared pool. + Tenancy *string `json:"tenancy,omitempty" tf:"tenancy,omitempty"` +} + +type SchedulerHintsObservation struct { + + // An IP Address in CIDR form. The instance will be placed on a compute node that is in + // the same subnet. + BuildNearHostIP *string `json:"buildNearHostIp,omitempty" tf:"build_near_host_ip,omitempty"` + + // The ID of DeH. This parameter takes effect only when the value of tenancy is dedicated. + DehID *string `json:"dehId,omitempty" tf:"deh_id,omitempty"` + + // A list of instance UUIDs. The instance will be scheduled on a different host than all + // other instances. + DifferentHost []*string `json:"differentHost,omitempty" tf:"different_host,omitempty"` + + // A UUID of a Server Group. The instance will be placed into that group. + Group *string `json:"group,omitempty" tf:"group,omitempty"` + + // A conditional query that a compute node must pass in order to host an instance. + Query []*string `json:"query,omitempty" tf:"query,omitempty"` + + // A list of instance UUIDs. The instance will be scheduled on the same host of those specified. + SameHost []*string `json:"sameHost,omitempty" tf:"same_host,omitempty"` + + // The name of a cell to host the instance. + TargetCell *string `json:"targetCell,omitempty" tf:"target_cell,omitempty"` + + // The tenancy specifies whether the ECS is to be created on a Dedicated Host + // (DeH) or in a shared pool. + Tenancy *string `json:"tenancy,omitempty" tf:"tenancy,omitempty"` +} + +type SchedulerHintsParameters struct { + + // An IP Address in CIDR form. The instance will be placed on a compute node that is in + // the same subnet. + // +kubebuilder:validation:Optional + BuildNearHostIP *string `json:"buildNearHostIp,omitempty" tf:"build_near_host_ip,omitempty"` + + // The ID of DeH. This parameter takes effect only when the value of tenancy is dedicated. + // +kubebuilder:validation:Optional + DehID *string `json:"dehId,omitempty" tf:"deh_id,omitempty"` + + // A list of instance UUIDs. The instance will be scheduled on a different host than all + // other instances. + // +kubebuilder:validation:Optional + DifferentHost []*string `json:"differentHost,omitempty" tf:"different_host,omitempty"` + + // A UUID of a Server Group. The instance will be placed into that group. + // +kubebuilder:validation:Optional + Group *string `json:"group,omitempty" tf:"group,omitempty"` + + // A conditional query that a compute node must pass in order to host an instance. + // +kubebuilder:validation:Optional + Query []*string `json:"query,omitempty" tf:"query,omitempty"` + + // A list of instance UUIDs. The instance will be scheduled on the same host of those specified. + // +kubebuilder:validation:Optional + SameHost []*string `json:"sameHost,omitempty" tf:"same_host,omitempty"` + + // The name of a cell to host the instance. + // +kubebuilder:validation:Optional + TargetCell *string `json:"targetCell,omitempty" tf:"target_cell,omitempty"` + + // The tenancy specifies whether the ECS is to be created on a Dedicated Host + // (DeH) or in a shared pool. + // +kubebuilder:validation:Optional + Tenancy *string `json:"tenancy,omitempty" tf:"tenancy,omitempty"` +} + +type VolumeAttachedInitParameters struct { +} + +type VolumeAttachedObservation struct { + ID *string `json:"id,omitempty" tf:"id,omitempty"` +} + +type VolumeAttachedParameters struct { +} + +// InstanceV2Spec defines the desired state of InstanceV2 +type InstanceV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider InstanceV2Parameters `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 InstanceV2InitParameters `json:"initProvider,omitempty"` +} + +// InstanceV2Status defines the observed state of InstanceV2. +type InstanceV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider InstanceV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// InstanceV2 is the Schema for the InstanceV2s API. Manages an ECS Instance resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type InstanceV2 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.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + Spec InstanceV2Spec `json:"spec"` + Status InstanceV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// InstanceV2List contains a list of InstanceV2s +type InstanceV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []InstanceV2 `json:"items"` +} + +// Repository type metadata. +var ( + InstanceV2_Kind = "InstanceV2" + InstanceV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: InstanceV2_Kind}.String() + InstanceV2_KindAPIVersion = InstanceV2_Kind + "." + CRDGroupVersion.String() + InstanceV2_GroupVersionKind = CRDGroupVersion.WithKind(InstanceV2_Kind) +) + +func init() { + SchemeBuilder.Register(&InstanceV2{}, &InstanceV2List{}) +} diff --git a/apis/compute/v1alpha1/zz_keypairv2_types.go b/apis/compute/v1alpha1/zz_keypairv2_types.go new file mode 100755 index 0000000..c74c609 --- /dev/null +++ b/apis/compute/v1alpha1/zz_keypairv2_types.go @@ -0,0 +1,143 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 KeypairV2InitParameters struct { + + // A unique name for the keypair. Changing this creates a new keypair. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // A pregenerated OpenSSH-formatted public key. + // Changing this creates a new keypair. If a public key is not specified, then + // a public/private key pair will be automatically generated. If a pair is + // created, then destroying this resource means you will lose access to that + // keypair forever. + PublicKey *string `json:"publicKey,omitempty" tf:"public_key,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Map of additional options. + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +type KeypairV2Observation struct { + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // A unique name for the keypair. Changing this creates a new keypair. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The generated private key when no public key is specified. + PrivateKey *string `json:"privateKey,omitempty" tf:"private_key,omitempty"` + + // A pregenerated OpenSSH-formatted public key. + // Changing this creates a new keypair. If a public key is not specified, then + // a public/private key pair will be automatically generated. If a pair is + // created, then destroying this resource means you will lose access to that + // keypair forever. + PublicKey *string `json:"publicKey,omitempty" tf:"public_key,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + Shared *bool `json:"shared,omitempty" tf:"shared,omitempty"` + + // Map of additional options. + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +type KeypairV2Parameters struct { + + // A unique name for the keypair. Changing this creates a new keypair. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // A pregenerated OpenSSH-formatted public key. + // Changing this creates a new keypair. If a public key is not specified, then + // a public/private key pair will be automatically generated. If a pair is + // created, then destroying this resource means you will lose access to that + // keypair forever. + // +kubebuilder:validation:Optional + PublicKey *string `json:"publicKey,omitempty" tf:"public_key,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Map of additional options. + // +kubebuilder:validation:Optional + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +// KeypairV2Spec defines the desired state of KeypairV2 +type KeypairV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider KeypairV2Parameters `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 KeypairV2InitParameters `json:"initProvider,omitempty"` +} + +// KeypairV2Status defines the observed state of KeypairV2. +type KeypairV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider KeypairV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// KeypairV2 is the Schema for the KeypairV2s API. Manages an ECS Key Management resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type KeypairV2 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.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + Spec KeypairV2Spec `json:"spec"` + Status KeypairV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// KeypairV2List contains a list of KeypairV2s +type KeypairV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []KeypairV2 `json:"items"` +} + +// Repository type metadata. +var ( + KeypairV2_Kind = "KeypairV2" + KeypairV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: KeypairV2_Kind}.String() + KeypairV2_KindAPIVersion = KeypairV2_Kind + "." + CRDGroupVersion.String() + KeypairV2_GroupVersionKind = CRDGroupVersion.WithKind(KeypairV2_Kind) +) + +func init() { + SchemeBuilder.Register(&KeypairV2{}, &KeypairV2List{}) +} diff --git a/apis/compute/v1alpha1/zz_secgroupv2_types.go b/apis/compute/v1alpha1/zz_secgroupv2_types.go new file mode 100755 index 0000000..b6a9d53 --- /dev/null +++ b/apis/compute/v1alpha1/zz_secgroupv2_types.go @@ -0,0 +1,244 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 RuleInitParameters struct { + + // Required if from_group_id or self is empty. The IP range + // that will be the source of network traffic to the security group. Use 0.0.0.0/0 + // to allow all IP addresses. Changing this creates a new security group rule. Cannot + // be combined with from_group_id or self. + Cidr *string `json:"cidr,omitempty" tf:"cidr,omitempty"` + + // Required if cidr or self is empty. The ID of a + // group from which to forward traffic to the parent group. Changing this creates a + // new security group rule. Cannot be combined with cidr or self. + FromGroupID *string `json:"fromGroupId,omitempty" tf:"from_group_id,omitempty"` + + // An integer representing the lower bound of the port + // range to open. Changing this creates a new security group rule. + FromPort *float64 `json:"fromPort,omitempty" tf:"from_port,omitempty"` + + // The protocol type that will be allowed. Changing + // this creates a new security group rule. + IPProtocol *string `json:"ipProtocol,omitempty" tf:"ip_protocol,omitempty"` + + // Required if cidr and from_group_id is empty. If true, + // the security group itself will be added as a source to this ingress rule. Cannot + // be combined with cidr or from_group_id. + Self *bool `json:"self,omitempty" tf:"self,omitempty"` + + // An integer representing the upper bound of the port + // range to open. Changing this creates a new security group rule. + ToPort *float64 `json:"toPort,omitempty" tf:"to_port,omitempty"` +} + +type RuleObservation struct { + + // Required if from_group_id or self is empty. The IP range + // that will be the source of network traffic to the security group. Use 0.0.0.0/0 + // to allow all IP addresses. Changing this creates a new security group rule. Cannot + // be combined with from_group_id or self. + Cidr *string `json:"cidr,omitempty" tf:"cidr,omitempty"` + + // Required if cidr or self is empty. The ID of a + // group from which to forward traffic to the parent group. Changing this creates a + // new security group rule. Cannot be combined with cidr or self. + FromGroupID *string `json:"fromGroupId,omitempty" tf:"from_group_id,omitempty"` + + // An integer representing the lower bound of the port + // range to open. Changing this creates a new security group rule. + FromPort *float64 `json:"fromPort,omitempty" tf:"from_port,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The protocol type that will be allowed. Changing + // this creates a new security group rule. + IPProtocol *string `json:"ipProtocol,omitempty" tf:"ip_protocol,omitempty"` + + // Required if cidr and from_group_id is empty. If true, + // the security group itself will be added as a source to this ingress rule. Cannot + // be combined with cidr or from_group_id. + Self *bool `json:"self,omitempty" tf:"self,omitempty"` + + // An integer representing the upper bound of the port + // range to open. Changing this creates a new security group rule. + ToPort *float64 `json:"toPort,omitempty" tf:"to_port,omitempty"` +} + +type RuleParameters struct { + + // Required if from_group_id or self is empty. The IP range + // that will be the source of network traffic to the security group. Use 0.0.0.0/0 + // to allow all IP addresses. Changing this creates a new security group rule. Cannot + // be combined with from_group_id or self. + // +kubebuilder:validation:Optional + Cidr *string `json:"cidr,omitempty" tf:"cidr,omitempty"` + + // Required if cidr or self is empty. The ID of a + // group from which to forward traffic to the parent group. Changing this creates a + // new security group rule. Cannot be combined with cidr or self. + // +kubebuilder:validation:Optional + FromGroupID *string `json:"fromGroupId,omitempty" tf:"from_group_id,omitempty"` + + // An integer representing the lower bound of the port + // range to open. Changing this creates a new security group rule. + // +kubebuilder:validation:Optional + FromPort *float64 `json:"fromPort" tf:"from_port,omitempty"` + + // The protocol type that will be allowed. Changing + // this creates a new security group rule. + // +kubebuilder:validation:Optional + IPProtocol *string `json:"ipProtocol" tf:"ip_protocol,omitempty"` + + // Required if cidr and from_group_id is empty. If true, + // the security group itself will be added as a source to this ingress rule. Cannot + // be combined with cidr or from_group_id. + // +kubebuilder:validation:Optional + Self *bool `json:"self,omitempty" tf:"self,omitempty"` + + // An integer representing the upper bound of the port + // range to open. Changing this creates a new security group rule. + // +kubebuilder:validation:Optional + ToPort *float64 `json:"toPort" tf:"to_port,omitempty"` +} + +type SecgroupV2InitParameters struct { + + // A description for the security group. Changing this + // updates the description of an existing security group. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // A unique name for the security group. Changing this + // updates the name of an existing security group. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // A rule describing how the security group operates. The + // rule object structure is documented below. Changing this updates the + // security group rules. As shown in the example above, multiple rule blocks + // may be used. + Rule []RuleInitParameters `json:"rule,omitempty" tf:"rule,omitempty"` +} + +type SecgroupV2Observation struct { + + // A description for the security group. Changing this + // updates the description of an existing security group. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // A unique name for the security group. Changing this + // updates the name of an existing security group. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // A rule describing how the security group operates. The + // rule object structure is documented below. Changing this updates the + // security group rules. As shown in the example above, multiple rule blocks + // may be used. + Rule []RuleObservation `json:"rule,omitempty" tf:"rule,omitempty"` +} + +type SecgroupV2Parameters struct { + + // A description for the security group. Changing this + // updates the description of an existing security group. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // A unique name for the security group. Changing this + // updates the name of an existing security group. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // A rule describing how the security group operates. The + // rule object structure is documented below. Changing this updates the + // security group rules. As shown in the example above, multiple rule blocks + // may be used. + // +kubebuilder:validation:Optional + Rule []RuleParameters `json:"rule,omitempty" tf:"rule,omitempty"` +} + +// SecgroupV2Spec defines the desired state of SecgroupV2 +type SecgroupV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider SecgroupV2Parameters `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 SecgroupV2InitParameters `json:"initProvider,omitempty"` +} + +// SecgroupV2Status defines the observed state of SecgroupV2. +type SecgroupV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider SecgroupV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// SecgroupV2 is the Schema for the SecgroupV2s API. Manages an ECS Security Group Management resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type SecgroupV2 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.description) || (has(self.initProvider) && has(self.initProvider.description))",message="spec.forProvider.description is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + Spec SecgroupV2Spec `json:"spec"` + Status SecgroupV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// SecgroupV2List contains a list of SecgroupV2s +type SecgroupV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []SecgroupV2 `json:"items"` +} + +// Repository type metadata. +var ( + SecgroupV2_Kind = "SecgroupV2" + SecgroupV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: SecgroupV2_Kind}.String() + SecgroupV2_KindAPIVersion = SecgroupV2_Kind + "." + CRDGroupVersion.String() + SecgroupV2_GroupVersionKind = CRDGroupVersion.WithKind(SecgroupV2_Kind) +) + +func init() { + SchemeBuilder.Register(&SecgroupV2{}, &SecgroupV2List{}) +} diff --git a/apis/compute/v1alpha1/zz_servergroupv2_types.go b/apis/compute/v1alpha1/zz_servergroupv2_types.go new file mode 100755 index 0000000..a47d40c --- /dev/null +++ b/apis/compute/v1alpha1/zz_servergroupv2_types.go @@ -0,0 +1,144 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 ServergroupV2InitParameters struct { + + // A unique name for the server group. Changing this creates + // a new server group. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The set of policies for the server group. Only two + // two policies are available right now, and both are mutually exclusive. See + // the Policies section for more information. Changing this creates a new + // server group. + Policies []*string `json:"policies,omitempty" tf:"policies,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Map of additional options. + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +type ServergroupV2Observation struct { + + // ID of the server group. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The instances that are part of this server group. + Members []*string `json:"members,omitempty" tf:"members,omitempty"` + + // A unique name for the server group. Changing this creates + // a new server group. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The set of policies for the server group. Only two + // two policies are available right now, and both are mutually exclusive. See + // the Policies section for more information. Changing this creates a new + // server group. + Policies []*string `json:"policies,omitempty" tf:"policies,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Map of additional options. + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +type ServergroupV2Parameters struct { + + // A unique name for the server group. Changing this creates + // a new server group. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The set of policies for the server group. Only two + // two policies are available right now, and both are mutually exclusive. See + // the Policies section for more information. Changing this creates a new + // server group. + // +kubebuilder:validation:Optional + Policies []*string `json:"policies,omitempty" tf:"policies,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Map of additional options. + // +kubebuilder:validation:Optional + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +// ServergroupV2Spec defines the desired state of ServergroupV2 +type ServergroupV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider ServergroupV2Parameters `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 ServergroupV2InitParameters `json:"initProvider,omitempty"` +} + +// ServergroupV2Status defines the observed state of ServergroupV2. +type ServergroupV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider ServergroupV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// ServergroupV2 is the Schema for the ServergroupV2s API. Manages an ECS Server Group Management resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type ServergroupV2 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.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.policies) || (has(self.initProvider) && has(self.initProvider.policies))",message="spec.forProvider.policies is a required parameter" + Spec ServergroupV2Spec `json:"spec"` + Status ServergroupV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// ServergroupV2List contains a list of ServergroupV2s +type ServergroupV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []ServergroupV2 `json:"items"` +} + +// Repository type metadata. +var ( + ServergroupV2_Kind = "ServergroupV2" + ServergroupV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: ServergroupV2_Kind}.String() + ServergroupV2_KindAPIVersion = ServergroupV2_Kind + "." + CRDGroupVersion.String() + ServergroupV2_GroupVersionKind = CRDGroupVersion.WithKind(ServergroupV2_Kind) +) + +func init() { + SchemeBuilder.Register(&ServergroupV2{}, &ServergroupV2List{}) +} diff --git a/apis/compute/v1alpha1/zz_volumeattachv2_types.go b/apis/compute/v1alpha1/zz_volumeattachv2_types.go new file mode 100755 index 0000000..cf871ef --- /dev/null +++ b/apis/compute/v1alpha1/zz_volumeattachv2_types.go @@ -0,0 +1,128 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 VolumeAttachV2InitParameters struct { + + // The device of the volume attachment (ex: /dev/vdc). + Device *string `json:"device,omitempty" tf:"device,omitempty"` + + // The ID of the Instance to attach the Volume to. + InstanceID *string `json:"instanceId,omitempty" tf:"instance_id,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The ID of the Volume to attach to an Instance. + VolumeID *string `json:"volumeId,omitempty" tf:"volume_id,omitempty"` +} + +type VolumeAttachV2Observation struct { + + // The device of the volume attachment (ex: /dev/vdc). + Device *string `json:"device,omitempty" tf:"device,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The ID of the Instance to attach the Volume to. + InstanceID *string `json:"instanceId,omitempty" tf:"instance_id,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The ID of the Volume to attach to an Instance. + VolumeID *string `json:"volumeId,omitempty" tf:"volume_id,omitempty"` +} + +type VolumeAttachV2Parameters struct { + + // The device of the volume attachment (ex: /dev/vdc). + // +kubebuilder:validation:Optional + Device *string `json:"device,omitempty" tf:"device,omitempty"` + + // The ID of the Instance to attach the Volume to. + // +kubebuilder:validation:Optional + InstanceID *string `json:"instanceId,omitempty" tf:"instance_id,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The ID of the Volume to attach to an Instance. + // +kubebuilder:validation:Optional + VolumeID *string `json:"volumeId,omitempty" tf:"volume_id,omitempty"` +} + +// VolumeAttachV2Spec defines the desired state of VolumeAttachV2 +type VolumeAttachV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider VolumeAttachV2Parameters `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 VolumeAttachV2InitParameters `json:"initProvider,omitempty"` +} + +// VolumeAttachV2Status defines the observed state of VolumeAttachV2. +type VolumeAttachV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider VolumeAttachV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// VolumeAttachV2 is the Schema for the VolumeAttachV2s API. Manages an ECS Disk Management resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type VolumeAttachV2 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.instanceId) || (has(self.initProvider) && has(self.initProvider.instanceId))",message="spec.forProvider.instanceId is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.volumeId) || (has(self.initProvider) && has(self.initProvider.volumeId))",message="spec.forProvider.volumeId is a required parameter" + Spec VolumeAttachV2Spec `json:"spec"` + Status VolumeAttachV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// VolumeAttachV2List contains a list of VolumeAttachV2s +type VolumeAttachV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []VolumeAttachV2 `json:"items"` +} + +// Repository type metadata. +var ( + VolumeAttachV2_Kind = "VolumeAttachV2" + VolumeAttachV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: VolumeAttachV2_Kind}.String() + VolumeAttachV2_KindAPIVersion = VolumeAttachV2_Kind + "." + CRDGroupVersion.String() + VolumeAttachV2_GroupVersionKind = CRDGroupVersion.WithKind(VolumeAttachV2_Kind) +) + +func init() { + SchemeBuilder.Register(&VolumeAttachV2{}, &VolumeAttachV2List{}) +} diff --git a/apis/dcs/v1alpha1/zz_generated.deepcopy.go b/apis/dcs/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..baa0b77 --- /dev/null +++ b/apis/dcs/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,2176 @@ +//go:build !ignore_autogenerated + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by controller-gen. DO NOT EDIT. + +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 *BackupPolicyInitParameters) DeepCopyInto(out *BackupPolicyInitParameters) { + *out = *in + if in.BackupAt != nil { + in, out := &in.BackupAt, &out.BackupAt + *out = make([]*float64, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(float64) + **out = **in + } + } + } + if in.BackupType != nil { + in, out := &in.BackupType, &out.BackupType + *out = new(string) + **out = **in + } + if in.BeginAt != nil { + in, out := &in.BeginAt, &out.BeginAt + *out = new(string) + **out = **in + } + if in.PeriodType != nil { + in, out := &in.PeriodType, &out.PeriodType + *out = new(string) + **out = **in + } + if in.SaveDays != nil { + in, out := &in.SaveDays, &out.SaveDays + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupPolicyInitParameters. +func (in *BackupPolicyInitParameters) DeepCopy() *BackupPolicyInitParameters { + if in == nil { + return nil + } + out := new(BackupPolicyInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BackupPolicyObservation) DeepCopyInto(out *BackupPolicyObservation) { + *out = *in + if in.BackupAt != nil { + in, out := &in.BackupAt, &out.BackupAt + *out = make([]*float64, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(float64) + **out = **in + } + } + } + if in.BackupType != nil { + in, out := &in.BackupType, &out.BackupType + *out = new(string) + **out = **in + } + if in.BeginAt != nil { + in, out := &in.BeginAt, &out.BeginAt + *out = new(string) + **out = **in + } + if in.PeriodType != nil { + in, out := &in.PeriodType, &out.PeriodType + *out = new(string) + **out = **in + } + if in.SaveDays != nil { + in, out := &in.SaveDays, &out.SaveDays + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupPolicyObservation. +func (in *BackupPolicyObservation) DeepCopy() *BackupPolicyObservation { + if in == nil { + return nil + } + out := new(BackupPolicyObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BackupPolicyParameters) DeepCopyInto(out *BackupPolicyParameters) { + *out = *in + if in.BackupAt != nil { + in, out := &in.BackupAt, &out.BackupAt + *out = make([]*float64, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(float64) + **out = **in + } + } + } + if in.BackupType != nil { + in, out := &in.BackupType, &out.BackupType + *out = new(string) + **out = **in + } + if in.BeginAt != nil { + in, out := &in.BeginAt, &out.BeginAt + *out = new(string) + **out = **in + } + if in.PeriodType != nil { + in, out := &in.PeriodType, &out.PeriodType + *out = new(string) + **out = **in + } + if in.SaveDays != nil { + in, out := &in.SaveDays, &out.SaveDays + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupPolicyParameters. +func (in *BackupPolicyParameters) DeepCopy() *BackupPolicyParameters { + if in == nil { + return nil + } + out := new(BackupPolicyParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BandwidthInfoInitParameters) DeepCopyInto(out *BandwidthInfoInitParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BandwidthInfoInitParameters. +func (in *BandwidthInfoInitParameters) DeepCopy() *BandwidthInfoInitParameters { + if in == nil { + return nil + } + out := new(BandwidthInfoInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BandwidthInfoObservation) DeepCopyInto(out *BandwidthInfoObservation) { + *out = *in + if in.Bandwidth != nil { + in, out := &in.Bandwidth, &out.Bandwidth + *out = new(float64) + **out = **in + } + if in.BeginTime != nil { + in, out := &in.BeginTime, &out.BeginTime + *out = new(string) + **out = **in + } + if in.CurrentTime != nil { + in, out := &in.CurrentTime, &out.CurrentTime + *out = new(string) + **out = **in + } + if in.EndTime != nil { + in, out := &in.EndTime, &out.EndTime + *out = new(string) + **out = **in + } + if in.ExpandCount != nil { + in, out := &in.ExpandCount, &out.ExpandCount + *out = new(float64) + **out = **in + } + if in.ExpandEffectTime != nil { + in, out := &in.ExpandEffectTime, &out.ExpandEffectTime + *out = new(float64) + **out = **in + } + if in.ExpandIntervalTime != nil { + in, out := &in.ExpandIntervalTime, &out.ExpandIntervalTime + *out = new(float64) + **out = **in + } + if in.MaxExpandCount != nil { + in, out := &in.MaxExpandCount, &out.MaxExpandCount + *out = new(float64) + **out = **in + } + if in.NextExpandTime != nil { + in, out := &in.NextExpandTime, &out.NextExpandTime + *out = new(string) + **out = **in + } + if in.TaskRunning != nil { + in, out := &in.TaskRunning, &out.TaskRunning + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BandwidthInfoObservation. +func (in *BandwidthInfoObservation) DeepCopy() *BandwidthInfoObservation { + if in == nil { + return nil + } + out := new(BandwidthInfoObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BandwidthInfoParameters) DeepCopyInto(out *BandwidthInfoParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BandwidthInfoParameters. +func (in *BandwidthInfoParameters) DeepCopy() *BandwidthInfoParameters { + if in == nil { + return nil + } + out := new(BandwidthInfoParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ConfigurationInitParameters) DeepCopyInto(out *ConfigurationInitParameters) { + *out = *in + if in.ParameterID != nil { + in, out := &in.ParameterID, &out.ParameterID + *out = new(string) + **out = **in + } + if in.ParameterName != nil { + in, out := &in.ParameterName, &out.ParameterName + *out = new(string) + **out = **in + } + if in.ParameterValue != nil { + in, out := &in.ParameterValue, &out.ParameterValue + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigurationInitParameters. +func (in *ConfigurationInitParameters) DeepCopy() *ConfigurationInitParameters { + if in == nil { + return nil + } + out := new(ConfigurationInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ConfigurationObservation) DeepCopyInto(out *ConfigurationObservation) { + *out = *in + if in.ParameterID != nil { + in, out := &in.ParameterID, &out.ParameterID + *out = new(string) + **out = **in + } + if in.ParameterName != nil { + in, out := &in.ParameterName, &out.ParameterName + *out = new(string) + **out = **in + } + if in.ParameterValue != nil { + in, out := &in.ParameterValue, &out.ParameterValue + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigurationObservation. +func (in *ConfigurationObservation) DeepCopy() *ConfigurationObservation { + if in == nil { + return nil + } + out := new(ConfigurationObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ConfigurationParameters) DeepCopyInto(out *ConfigurationParameters) { + *out = *in + if in.ParameterID != nil { + in, out := &in.ParameterID, &out.ParameterID + *out = new(string) + **out = **in + } + if in.ParameterName != nil { + in, out := &in.ParameterName, &out.ParameterName + *out = new(string) + **out = **in + } + if in.ParameterValue != nil { + in, out := &in.ParameterValue, &out.ParameterValue + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigurationParameters. +func (in *ConfigurationParameters) DeepCopy() *ConfigurationParameters { + if in == nil { + return nil + } + out := new(ConfigurationParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV1) DeepCopyInto(out *InstanceV1) { + *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 InstanceV1. +func (in *InstanceV1) DeepCopy() *InstanceV1 { + if in == nil { + return nil + } + out := new(InstanceV1) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *InstanceV1) 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 *InstanceV1InitParameters) DeepCopyInto(out *InstanceV1InitParameters) { + *out = *in + if in.AvailableZones != nil { + in, out := &in.AvailableZones, &out.AvailableZones + *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.BackupAt != nil { + in, out := &in.BackupAt, &out.BackupAt + *out = make([]*float64, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(float64) + **out = **in + } + } + } + if in.BackupPolicy != nil { + in, out := &in.BackupPolicy, &out.BackupPolicy + *out = make([]BackupPolicyInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.BackupType != nil { + in, out := &in.BackupType, &out.BackupType + *out = new(string) + **out = **in + } + if in.BeginAt != nil { + in, out := &in.BeginAt, &out.BeginAt + *out = new(string) + **out = **in + } + if in.Capacity != nil { + in, out := &in.Capacity, &out.Capacity + *out = new(float64) + **out = **in + } + if in.Configuration != nil { + in, out := &in.Configuration, &out.Configuration + *out = make([]ConfigurationInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.EnableWhitelist != nil { + in, out := &in.EnableWhitelist, &out.EnableWhitelist + *out = new(bool) + **out = **in + } + if in.Engine != nil { + in, out := &in.Engine, &out.Engine + *out = new(string) + **out = **in + } + if in.EngineVersion != nil { + in, out := &in.EngineVersion, &out.EngineVersion + *out = new(string) + **out = **in + } + if in.MaintainBegin != nil { + in, out := &in.MaintainBegin, &out.MaintainBegin + *out = new(string) + **out = **in + } + if in.MaintainEnd != nil { + in, out := &in.MaintainEnd, &out.MaintainEnd + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PeriodType != nil { + in, out := &in.PeriodType, &out.PeriodType + *out = new(string) + **out = **in + } + if in.PrivateIP != nil { + in, out := &in.PrivateIP, &out.PrivateIP + *out = new(string) + **out = **in + } + if in.ProductID != nil { + in, out := &in.ProductID, &out.ProductID + *out = new(string) + **out = **in + } + if in.SaveDays != nil { + in, out := &in.SaveDays, &out.SaveDays + *out = new(float64) + **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) + **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.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } + if in.Whitelist != nil { + in, out := &in.Whitelist, &out.Whitelist + *out = make([]WhitelistInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV1InitParameters. +func (in *InstanceV1InitParameters) DeepCopy() *InstanceV1InitParameters { + if in == nil { + return nil + } + out := new(InstanceV1InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV1List) DeepCopyInto(out *InstanceV1List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]InstanceV1, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV1List. +func (in *InstanceV1List) DeepCopy() *InstanceV1List { + if in == nil { + return nil + } + out := new(InstanceV1List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *InstanceV1List) 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 *InstanceV1Observation) DeepCopyInto(out *InstanceV1Observation) { + *out = *in + if in.AvailableZones != nil { + in, out := &in.AvailableZones, &out.AvailableZones + *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.BackupAt != nil { + in, out := &in.BackupAt, &out.BackupAt + *out = make([]*float64, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(float64) + **out = **in + } + } + } + if in.BackupPolicy != nil { + in, out := &in.BackupPolicy, &out.BackupPolicy + *out = make([]BackupPolicyObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.BackupType != nil { + in, out := &in.BackupType, &out.BackupType + *out = new(string) + **out = **in + } + if in.BeginAt != nil { + in, out := &in.BeginAt, &out.BeginAt + *out = new(string) + **out = **in + } + if in.Capacity != nil { + in, out := &in.Capacity, &out.Capacity + *out = new(float64) + **out = **in + } + if in.Configuration != nil { + in, out := &in.Configuration, &out.Configuration + *out = make([]ConfigurationObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.EnableWhitelist != nil { + in, out := &in.EnableWhitelist, &out.EnableWhitelist + *out = new(bool) + **out = **in + } + if in.Engine != nil { + in, out := &in.Engine, &out.Engine + *out = new(string) + **out = **in + } + if in.EngineVersion != nil { + in, out := &in.EngineVersion, &out.EngineVersion + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.IP != nil { + in, out := &in.IP, &out.IP + *out = new(string) + **out = **in + } + if in.InternalVersion != nil { + in, out := &in.InternalVersion, &out.InternalVersion + *out = new(string) + **out = **in + } + if in.MaintainBegin != nil { + in, out := &in.MaintainBegin, &out.MaintainBegin + *out = new(string) + **out = **in + } + if in.MaintainEnd != nil { + in, out := &in.MaintainEnd, &out.MaintainEnd + *out = new(string) + **out = **in + } + if in.MaxMemory != nil { + in, out := &in.MaxMemory, &out.MaxMemory + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NoPasswordAccess != nil { + in, out := &in.NoPasswordAccess, &out.NoPasswordAccess + *out = new(string) + **out = **in + } + if in.OrderID != nil { + in, out := &in.OrderID, &out.OrderID + *out = new(string) + **out = **in + } + if in.PeriodType != nil { + in, out := &in.PeriodType, &out.PeriodType + *out = new(string) + **out = **in + } + if in.Port != nil { + in, out := &in.Port, &out.Port + *out = new(float64) + **out = **in + } + if in.PrivateIP != nil { + in, out := &in.PrivateIP, &out.PrivateIP + *out = new(string) + **out = **in + } + if in.ProductID != nil { + in, out := &in.ProductID, &out.ProductID + *out = new(string) + **out = **in + } + if in.ResourceSpecCode != nil { + in, out := &in.ResourceSpecCode, &out.ResourceSpecCode + *out = new(string) + **out = **in + } + if in.SaveDays != nil { + in, out := &in.SaveDays, &out.SaveDays + *out = new(float64) + **out = **in + } + if in.SecurityGroupID != nil { + in, out := &in.SecurityGroupID, &out.SecurityGroupID + *out = new(string) + **out = **in + } + if in.SecurityGroupName != nil { + in, out := &in.SecurityGroupName, &out.SecurityGroupName + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(string) + **out = **in + } + if in.SubnetID != nil { + in, out := &in.SubnetID, &out.SubnetID + *out = new(string) + **out = **in + } + if in.SubnetName != nil { + in, out := &in.SubnetName, &out.SubnetName + *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.UsedMemory != nil { + in, out := &in.UsedMemory, &out.UsedMemory + *out = new(float64) + **out = **in + } + if in.UserID != nil { + in, out := &in.UserID, &out.UserID + *out = new(string) + **out = **in + } + if in.UserName != nil { + in, out := &in.UserName, &out.UserName + *out = new(string) + **out = **in + } + if in.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } + if in.VPCName != nil { + in, out := &in.VPCName, &out.VPCName + *out = new(string) + **out = **in + } + if in.Whitelist != nil { + in, out := &in.Whitelist, &out.Whitelist + *out = make([]WhitelistObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV1Observation. +func (in *InstanceV1Observation) DeepCopy() *InstanceV1Observation { + if in == nil { + return nil + } + out := new(InstanceV1Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV1Parameters) DeepCopyInto(out *InstanceV1Parameters) { + *out = *in + if in.AvailableZones != nil { + in, out := &in.AvailableZones, &out.AvailableZones + *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.BackupAt != nil { + in, out := &in.BackupAt, &out.BackupAt + *out = make([]*float64, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(float64) + **out = **in + } + } + } + if in.BackupPolicy != nil { + in, out := &in.BackupPolicy, &out.BackupPolicy + *out = make([]BackupPolicyParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.BackupType != nil { + in, out := &in.BackupType, &out.BackupType + *out = new(string) + **out = **in + } + if in.BeginAt != nil { + in, out := &in.BeginAt, &out.BeginAt + *out = new(string) + **out = **in + } + if in.Capacity != nil { + in, out := &in.Capacity, &out.Capacity + *out = new(float64) + **out = **in + } + if in.Configuration != nil { + in, out := &in.Configuration, &out.Configuration + *out = make([]ConfigurationParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.EnableWhitelist != nil { + in, out := &in.EnableWhitelist, &out.EnableWhitelist + *out = new(bool) + **out = **in + } + if in.Engine != nil { + in, out := &in.Engine, &out.Engine + *out = new(string) + **out = **in + } + if in.EngineVersion != nil { + in, out := &in.EngineVersion, &out.EngineVersion + *out = new(string) + **out = **in + } + if in.MaintainBegin != nil { + in, out := &in.MaintainBegin, &out.MaintainBegin + *out = new(string) + **out = **in + } + if in.MaintainEnd != nil { + in, out := &in.MaintainEnd, &out.MaintainEnd + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PasswordSecretRef != nil { + in, out := &in.PasswordSecretRef, &out.PasswordSecretRef + *out = new(v1.SecretKeySelector) + **out = **in + } + if in.PeriodType != nil { + in, out := &in.PeriodType, &out.PeriodType + *out = new(string) + **out = **in + } + if in.PrivateIP != nil { + in, out := &in.PrivateIP, &out.PrivateIP + *out = new(string) + **out = **in + } + if in.ProductID != nil { + in, out := &in.ProductID, &out.ProductID + *out = new(string) + **out = **in + } + if in.SaveDays != nil { + in, out := &in.SaveDays, &out.SaveDays + *out = new(float64) + **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) + **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.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } + if in.Whitelist != nil { + in, out := &in.Whitelist, &out.Whitelist + *out = make([]WhitelistParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV1Parameters. +func (in *InstanceV1Parameters) DeepCopy() *InstanceV1Parameters { + if in == nil { + return nil + } + out := new(InstanceV1Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV1Spec) DeepCopyInto(out *InstanceV1Spec) { + *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 InstanceV1Spec. +func (in *InstanceV1Spec) DeepCopy() *InstanceV1Spec { + if in == nil { + return nil + } + out := new(InstanceV1Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV1Status) DeepCopyInto(out *InstanceV1Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV1Status. +func (in *InstanceV1Status) DeepCopy() *InstanceV1Status { + if in == nil { + return nil + } + out := new(InstanceV1Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV2) DeepCopyInto(out *InstanceV2) { + *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 InstanceV2. +func (in *InstanceV2) DeepCopy() *InstanceV2 { + if in == nil { + return nil + } + out := new(InstanceV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *InstanceV2) 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 *InstanceV2BackupPolicyInitParameters) DeepCopyInto(out *InstanceV2BackupPolicyInitParameters) { + *out = *in + if in.BackupAt != nil { + in, out := &in.BackupAt, &out.BackupAt + *out = make([]*float64, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(float64) + **out = **in + } + } + } + if in.BackupType != nil { + in, out := &in.BackupType, &out.BackupType + *out = new(string) + **out = **in + } + if in.BeginAt != nil { + in, out := &in.BeginAt, &out.BeginAt + *out = new(string) + **out = **in + } + if in.PeriodType != nil { + in, out := &in.PeriodType, &out.PeriodType + *out = new(string) + **out = **in + } + if in.SaveDays != nil { + in, out := &in.SaveDays, &out.SaveDays + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV2BackupPolicyInitParameters. +func (in *InstanceV2BackupPolicyInitParameters) DeepCopy() *InstanceV2BackupPolicyInitParameters { + if in == nil { + return nil + } + out := new(InstanceV2BackupPolicyInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV2BackupPolicyObservation) DeepCopyInto(out *InstanceV2BackupPolicyObservation) { + *out = *in + if in.BackupAt != nil { + in, out := &in.BackupAt, &out.BackupAt + *out = make([]*float64, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(float64) + **out = **in + } + } + } + if in.BackupType != nil { + in, out := &in.BackupType, &out.BackupType + *out = new(string) + **out = **in + } + if in.BeginAt != nil { + in, out := &in.BeginAt, &out.BeginAt + *out = new(string) + **out = **in + } + if in.PeriodType != nil { + in, out := &in.PeriodType, &out.PeriodType + *out = new(string) + **out = **in + } + if in.SaveDays != nil { + in, out := &in.SaveDays, &out.SaveDays + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV2BackupPolicyObservation. +func (in *InstanceV2BackupPolicyObservation) DeepCopy() *InstanceV2BackupPolicyObservation { + if in == nil { + return nil + } + out := new(InstanceV2BackupPolicyObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV2BackupPolicyParameters) DeepCopyInto(out *InstanceV2BackupPolicyParameters) { + *out = *in + if in.BackupAt != nil { + in, out := &in.BackupAt, &out.BackupAt + *out = make([]*float64, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(float64) + **out = **in + } + } + } + if in.BackupType != nil { + in, out := &in.BackupType, &out.BackupType + *out = new(string) + **out = **in + } + if in.BeginAt != nil { + in, out := &in.BeginAt, &out.BeginAt + *out = new(string) + **out = **in + } + if in.PeriodType != nil { + in, out := &in.PeriodType, &out.PeriodType + *out = new(string) + **out = **in + } + if in.SaveDays != nil { + in, out := &in.SaveDays, &out.SaveDays + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV2BackupPolicyParameters. +func (in *InstanceV2BackupPolicyParameters) DeepCopy() *InstanceV2BackupPolicyParameters { + if in == nil { + return nil + } + out := new(InstanceV2BackupPolicyParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV2InitParameters) DeepCopyInto(out *InstanceV2InitParameters) { + *out = *in + if in.AccessUser != nil { + in, out := &in.AccessUser, &out.AccessUser + *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.BackupPolicy != nil { + in, out := &in.BackupPolicy, &out.BackupPolicy + *out = make([]InstanceV2BackupPolicyInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Capacity != nil { + in, out := &in.Capacity, &out.Capacity + *out = new(float64) + **out = **in + } + if in.DeletedNodes != nil { + in, out := &in.DeletedNodes, &out.DeletedNodes + *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.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.EnableWhitelist != nil { + in, out := &in.EnableWhitelist, &out.EnableWhitelist + *out = new(bool) + **out = **in + } + if in.Engine != nil { + in, out := &in.Engine, &out.Engine + *out = new(string) + **out = **in + } + if in.EngineVersion != nil { + in, out := &in.EngineVersion, &out.EngineVersion + *out = new(string) + **out = **in + } + if in.Flavor != nil { + in, out := &in.Flavor, &out.Flavor + *out = new(string) + **out = **in + } + if in.MaintainBegin != nil { + in, out := &in.MaintainBegin, &out.MaintainBegin + *out = new(string) + **out = **in + } + if in.MaintainEnd != nil { + in, out := &in.MaintainEnd, &out.MaintainEnd + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Parameters != nil { + in, out := &in.Parameters, &out.Parameters + *out = make([]ParametersInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Port != nil { + in, out := &in.Port, &out.Port + *out = new(float64) + **out = **in + } + if in.PrivateIP != nil { + in, out := &in.PrivateIP, &out.PrivateIP + *out = new(string) + **out = **in + } + if in.RenameCommands != nil { + in, out := &in.RenameCommands, &out.RenameCommands + *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.ReservedIps != nil { + in, out := &in.ReservedIps, &out.ReservedIps + *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.SSLEnable != nil { + in, out := &in.SSLEnable, &out.SSLEnable + *out = new(bool) + **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) + **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.TemplateID != nil { + in, out := &in.TemplateID, &out.TemplateID + *out = new(string) + **out = **in + } + if in.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } + if in.Whitelist != nil { + in, out := &in.Whitelist, &out.Whitelist + *out = make([]InstanceV2WhitelistInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV2InitParameters. +func (in *InstanceV2InitParameters) DeepCopy() *InstanceV2InitParameters { + if in == nil { + return nil + } + out := new(InstanceV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV2List) DeepCopyInto(out *InstanceV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]InstanceV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV2List. +func (in *InstanceV2List) DeepCopy() *InstanceV2List { + if in == nil { + return nil + } + out := new(InstanceV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *InstanceV2List) 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 *InstanceV2Observation) DeepCopyInto(out *InstanceV2Observation) { + *out = *in + if in.AccessUser != nil { + in, out := &in.AccessUser, &out.AccessUser + *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.BackupPolicy != nil { + in, out := &in.BackupPolicy, &out.BackupPolicy + *out = make([]InstanceV2BackupPolicyObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.BandwidthInfo != nil { + in, out := &in.BandwidthInfo, &out.BandwidthInfo + *out = make([]BandwidthInfoObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.CPUType != nil { + in, out := &in.CPUType, &out.CPUType + *out = new(string) + **out = **in + } + if in.CacheMode != nil { + in, out := &in.CacheMode, &out.CacheMode + *out = new(string) + **out = **in + } + if in.Capacity != nil { + in, out := &in.Capacity, &out.Capacity + *out = new(float64) + **out = **in + } + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt + *out = new(string) + **out = **in + } + if in.DeletedNodes != nil { + in, out := &in.DeletedNodes, &out.DeletedNodes + *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.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.DomainName != nil { + in, out := &in.DomainName, &out.DomainName + *out = new(string) + **out = **in + } + if in.EnableWhitelist != nil { + in, out := &in.EnableWhitelist, &out.EnableWhitelist + *out = new(bool) + **out = **in + } + if in.Engine != nil { + in, out := &in.Engine, &out.Engine + *out = new(string) + **out = **in + } + if in.EngineVersion != nil { + in, out := &in.EngineVersion, &out.EngineVersion + *out = new(string) + **out = **in + } + if in.Flavor != nil { + in, out := &in.Flavor, &out.Flavor + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.LaunchedAt != nil { + in, out := &in.LaunchedAt, &out.LaunchedAt + *out = new(string) + **out = **in + } + if in.MaintainBegin != nil { + in, out := &in.MaintainBegin, &out.MaintainBegin + *out = new(string) + **out = **in + } + if in.MaintainEnd != nil { + in, out := &in.MaintainEnd, &out.MaintainEnd + *out = new(string) + **out = **in + } + if in.MaxMemory != nil { + in, out := &in.MaxMemory, &out.MaxMemory + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Parameters != nil { + in, out := &in.Parameters, &out.Parameters + *out = make([]ParametersObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Port != nil { + in, out := &in.Port, &out.Port + *out = new(float64) + **out = **in + } + if in.PrivateIP != nil { + in, out := &in.PrivateIP, &out.PrivateIP + *out = new(string) + **out = **in + } + if in.ProductType != nil { + in, out := &in.ProductType, &out.ProductType + *out = new(string) + **out = **in + } + if in.ReadonlyDomainName != nil { + in, out := &in.ReadonlyDomainName, &out.ReadonlyDomainName + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.RenameCommands != nil { + in, out := &in.RenameCommands, &out.RenameCommands + *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.ReplicaCount != nil { + in, out := &in.ReplicaCount, &out.ReplicaCount + *out = new(float64) + **out = **in + } + if in.ReservedIps != nil { + in, out := &in.ReservedIps, &out.ReservedIps + *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.SSLEnable != nil { + in, out := &in.SSLEnable, &out.SSLEnable + *out = new(bool) + **out = **in + } + if in.SecurityGroupID != nil { + in, out := &in.SecurityGroupID, &out.SecurityGroupID + *out = new(string) + **out = **in + } + if in.SecurityGroupName != nil { + in, out := &in.SecurityGroupName, &out.SecurityGroupName + *out = new(string) + **out = **in + } + if in.ShardingCount != nil { + in, out := &in.ShardingCount, &out.ShardingCount + *out = new(float64) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(string) + **out = **in + } + if in.SubnetCidr != nil { + in, out := &in.SubnetCidr, &out.SubnetCidr + *out = new(string) + **out = **in + } + if in.SubnetID != nil { + in, out := &in.SubnetID, &out.SubnetID + *out = new(string) + **out = **in + } + if in.SubnetName != nil { + in, out := &in.SubnetName, &out.SubnetName + *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.TemplateID != nil { + in, out := &in.TemplateID, &out.TemplateID + *out = new(string) + **out = **in + } + if in.TransparentClientIPEnable != nil { + in, out := &in.TransparentClientIPEnable, &out.TransparentClientIPEnable + *out = new(bool) + **out = **in + } + if in.UsedMemory != nil { + in, out := &in.UsedMemory, &out.UsedMemory + *out = new(float64) + **out = **in + } + if in.UserID != nil { + in, out := &in.UserID, &out.UserID + *out = new(string) + **out = **in + } + if in.UserName != nil { + in, out := &in.UserName, &out.UserName + *out = new(string) + **out = **in + } + if in.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } + if in.VPCName != nil { + in, out := &in.VPCName, &out.VPCName + *out = new(string) + **out = **in + } + if in.Whitelist != nil { + in, out := &in.Whitelist, &out.Whitelist + *out = make([]InstanceV2WhitelistObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV2Observation. +func (in *InstanceV2Observation) DeepCopy() *InstanceV2Observation { + if in == nil { + return nil + } + out := new(InstanceV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV2Parameters) DeepCopyInto(out *InstanceV2Parameters) { + *out = *in + if in.AccessUser != nil { + in, out := &in.AccessUser, &out.AccessUser + *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.BackupPolicy != nil { + in, out := &in.BackupPolicy, &out.BackupPolicy + *out = make([]InstanceV2BackupPolicyParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Capacity != nil { + in, out := &in.Capacity, &out.Capacity + *out = new(float64) + **out = **in + } + if in.DeletedNodes != nil { + in, out := &in.DeletedNodes, &out.DeletedNodes + *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.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.EnableWhitelist != nil { + in, out := &in.EnableWhitelist, &out.EnableWhitelist + *out = new(bool) + **out = **in + } + if in.Engine != nil { + in, out := &in.Engine, &out.Engine + *out = new(string) + **out = **in + } + if in.EngineVersion != nil { + in, out := &in.EngineVersion, &out.EngineVersion + *out = new(string) + **out = **in + } + if in.Flavor != nil { + in, out := &in.Flavor, &out.Flavor + *out = new(string) + **out = **in + } + if in.MaintainBegin != nil { + in, out := &in.MaintainBegin, &out.MaintainBegin + *out = new(string) + **out = **in + } + if in.MaintainEnd != nil { + in, out := &in.MaintainEnd, &out.MaintainEnd + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Parameters != nil { + in, out := &in.Parameters, &out.Parameters + *out = make([]ParametersParameters, 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) + **out = **in + } + if in.Port != nil { + in, out := &in.Port, &out.Port + *out = new(float64) + **out = **in + } + if in.PrivateIP != nil { + in, out := &in.PrivateIP, &out.PrivateIP + *out = new(string) + **out = **in + } + if in.RenameCommands != nil { + in, out := &in.RenameCommands, &out.RenameCommands + *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.ReservedIps != nil { + in, out := &in.ReservedIps, &out.ReservedIps + *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.SSLEnable != nil { + in, out := &in.SSLEnable, &out.SSLEnable + *out = new(bool) + **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) + **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.TemplateID != nil { + in, out := &in.TemplateID, &out.TemplateID + *out = new(string) + **out = **in + } + if in.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } + if in.Whitelist != nil { + in, out := &in.Whitelist, &out.Whitelist + *out = make([]InstanceV2WhitelistParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV2Parameters. +func (in *InstanceV2Parameters) DeepCopy() *InstanceV2Parameters { + if in == nil { + return nil + } + out := new(InstanceV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV2Spec) DeepCopyInto(out *InstanceV2Spec) { + *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 InstanceV2Spec. +func (in *InstanceV2Spec) DeepCopy() *InstanceV2Spec { + if in == nil { + return nil + } + out := new(InstanceV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV2Status) DeepCopyInto(out *InstanceV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV2Status. +func (in *InstanceV2Status) DeepCopy() *InstanceV2Status { + if in == nil { + return nil + } + out := new(InstanceV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV2WhitelistInitParameters) DeepCopyInto(out *InstanceV2WhitelistInitParameters) { + *out = *in + if in.GroupName != nil { + in, out := &in.GroupName, &out.GroupName + *out = new(string) + **out = **in + } + if in.IPList != nil { + in, out := &in.IPList, &out.IPList + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV2WhitelistInitParameters. +func (in *InstanceV2WhitelistInitParameters) DeepCopy() *InstanceV2WhitelistInitParameters { + if in == nil { + return nil + } + out := new(InstanceV2WhitelistInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV2WhitelistObservation) DeepCopyInto(out *InstanceV2WhitelistObservation) { + *out = *in + if in.GroupName != nil { + in, out := &in.GroupName, &out.GroupName + *out = new(string) + **out = **in + } + if in.IPList != nil { + in, out := &in.IPList, &out.IPList + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV2WhitelistObservation. +func (in *InstanceV2WhitelistObservation) DeepCopy() *InstanceV2WhitelistObservation { + if in == nil { + return nil + } + out := new(InstanceV2WhitelistObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV2WhitelistParameters) DeepCopyInto(out *InstanceV2WhitelistParameters) { + *out = *in + if in.GroupName != nil { + in, out := &in.GroupName, &out.GroupName + *out = new(string) + **out = **in + } + if in.IPList != nil { + in, out := &in.IPList, &out.IPList + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV2WhitelistParameters. +func (in *InstanceV2WhitelistParameters) DeepCopy() *InstanceV2WhitelistParameters { + if in == nil { + return nil + } + out := new(InstanceV2WhitelistParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ParametersInitParameters) DeepCopyInto(out *ParametersInitParameters) { + *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.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 ParametersInitParameters. +func (in *ParametersInitParameters) DeepCopy() *ParametersInitParameters { + if in == nil { + return nil + } + out := new(ParametersInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ParametersObservation) DeepCopyInto(out *ParametersObservation) { + *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.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 ParametersObservation. +func (in *ParametersObservation) DeepCopy() *ParametersObservation { + if in == nil { + return nil + } + out := new(ParametersObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ParametersParameters) DeepCopyInto(out *ParametersParameters) { + *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.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 ParametersParameters. +func (in *ParametersParameters) DeepCopy() *ParametersParameters { + if in == nil { + return nil + } + out := new(ParametersParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *WhitelistInitParameters) DeepCopyInto(out *WhitelistInitParameters) { + *out = *in + if in.GroupName != nil { + in, out := &in.GroupName, &out.GroupName + *out = new(string) + **out = **in + } + if in.IPList != nil { + in, out := &in.IPList, &out.IPList + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WhitelistInitParameters. +func (in *WhitelistInitParameters) DeepCopy() *WhitelistInitParameters { + if in == nil { + return nil + } + out := new(WhitelistInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *WhitelistObservation) DeepCopyInto(out *WhitelistObservation) { + *out = *in + if in.GroupName != nil { + in, out := &in.GroupName, &out.GroupName + *out = new(string) + **out = **in + } + if in.IPList != nil { + in, out := &in.IPList, &out.IPList + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WhitelistObservation. +func (in *WhitelistObservation) DeepCopy() *WhitelistObservation { + if in == nil { + return nil + } + out := new(WhitelistObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *WhitelistParameters) DeepCopyInto(out *WhitelistParameters) { + *out = *in + if in.GroupName != nil { + in, out := &in.GroupName, &out.GroupName + *out = new(string) + **out = **in + } + if in.IPList != nil { + in, out := &in.IPList, &out.IPList + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WhitelistParameters. +func (in *WhitelistParameters) DeepCopy() *WhitelistParameters { + if in == nil { + return nil + } + out := new(WhitelistParameters) + in.DeepCopyInto(out) + return out +} diff --git a/apis/dcs/v1alpha1/zz_generated.managed.go b/apis/dcs/v1alpha1/zz_generated.managed.go new file mode 100644 index 0000000..9506eff --- /dev/null +++ b/apis/dcs/v1alpha1/zz_generated.managed.go @@ -0,0 +1,128 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import xpv1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + +// GetCondition of this InstanceV1. +func (mg *InstanceV1) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this InstanceV1. +func (mg *InstanceV1) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this InstanceV1. +func (mg *InstanceV1) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this InstanceV1. +func (mg *InstanceV1) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this InstanceV1. +func (mg *InstanceV1) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this InstanceV1. +func (mg *InstanceV1) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this InstanceV1. +func (mg *InstanceV1) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this InstanceV1. +func (mg *InstanceV1) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this InstanceV1. +func (mg *InstanceV1) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this InstanceV1. +func (mg *InstanceV1) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this InstanceV1. +func (mg *InstanceV1) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this InstanceV1. +func (mg *InstanceV1) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this InstanceV2. +func (mg *InstanceV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this InstanceV2. +func (mg *InstanceV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this InstanceV2. +func (mg *InstanceV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this InstanceV2. +func (mg *InstanceV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this InstanceV2. +func (mg *InstanceV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this InstanceV2. +func (mg *InstanceV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this InstanceV2. +func (mg *InstanceV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this InstanceV2. +func (mg *InstanceV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this InstanceV2. +func (mg *InstanceV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this InstanceV2. +func (mg *InstanceV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this InstanceV2. +func (mg *InstanceV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this InstanceV2. +func (mg *InstanceV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} diff --git a/apis/dcs/v1alpha1/zz_generated.managedlist.go b/apis/dcs/v1alpha1/zz_generated.managedlist.go new file mode 100644 index 0000000..b0ecb9e --- /dev/null +++ b/apis/dcs/v1alpha1/zz_generated.managedlist.go @@ -0,0 +1,26 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import resource "github.com/crossplane/crossplane-runtime/pkg/resource" + +// GetItems of this InstanceV1List. +func (l *InstanceV1List) 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 InstanceV2List. +func (l *InstanceV2List) 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/dcs/v1alpha1/zz_generated_terraformed.go b/apis/dcs/v1alpha1/zz_generated_terraformed.go new file mode 100755 index 0000000..4165c14 --- /dev/null +++ b/apis/dcs/v1alpha1/zz_generated_terraformed.go @@ -0,0 +1,186 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "github.com/pkg/errors" + + "github.com/crossplane/upjet/pkg/resource" + "github.com/crossplane/upjet/pkg/resource/json" +) + +// GetTerraformResourceType returns Terraform resource type for this InstanceV1 +func (mg *InstanceV1) GetTerraformResourceType() string { + return "opentelekomcloud_dcs_instance_v1" +} + +// GetConnectionDetailsMapping for this InstanceV1 +func (tr *InstanceV1) GetConnectionDetailsMapping() map[string]string { + return map[string]string{"password": "spec.forProvider.passwordSecretRef"} +} + +// GetObservation of this InstanceV1 +func (tr *InstanceV1) 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 InstanceV1 +func (tr *InstanceV1) 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 InstanceV1 +func (tr *InstanceV1) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this InstanceV1 +func (tr *InstanceV1) 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 InstanceV1 +func (tr *InstanceV1) 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 InstanceV1 +func (tr *InstanceV1) 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) +} + +// LateInitialize this InstanceV1 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *InstanceV1) LateInitialize(attrs []byte) (bool, error) { + params := &InstanceV1Parameters{} + 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 *InstanceV1) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this InstanceV2 +func (mg *InstanceV2) GetTerraformResourceType() string { + return "opentelekomcloud_dcs_instance_v2" +} + +// GetConnectionDetailsMapping for this InstanceV2 +func (tr *InstanceV2) GetConnectionDetailsMapping() map[string]string { + return map[string]string{"password": "spec.forProvider.passwordSecretRef"} +} + +// GetObservation of this InstanceV2 +func (tr *InstanceV2) 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 InstanceV2 +func (tr *InstanceV2) 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 InstanceV2 +func (tr *InstanceV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this InstanceV2 +func (tr *InstanceV2) 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 InstanceV2 +func (tr *InstanceV2) 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 InstanceV2 +func (tr *InstanceV2) 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) +} + +// LateInitialize this InstanceV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *InstanceV2) LateInitialize(attrs []byte) (bool, error) { + params := &InstanceV2Parameters{} + 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 *InstanceV2) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/dcs/v1alpha1/zz_groupversion_info.go b/apis/dcs/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..1a64540 --- /dev/null +++ b/apis/dcs/v1alpha1/zz_groupversion_info.go @@ -0,0 +1,36 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +// +kubebuilder:object:generate=true +// +groupName=dcs.crossplane.io +// +versionName=v1alpha1 +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +// Package type metadata. +const ( + CRDGroup = "dcs.crossplane.io" + CRDVersion = "v1alpha1" +) + +var ( + // CRDGroupVersion is the API Group Version used to register the objects + CRDGroupVersion = schema.GroupVersion{Group: CRDGroup, Version: CRDVersion} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme + SchemeBuilder = &scheme.Builder{GroupVersion: CRDGroupVersion} + + // AddToScheme adds the types in this group-version to the given scheme. + AddToScheme = SchemeBuilder.AddToScheme +) diff --git a/apis/dcs/v1alpha1/zz_instancev1_types.go b/apis/dcs/v1alpha1/zz_instancev1_types.go new file mode 100755 index 0000000..6920daf --- /dev/null +++ b/apis/dcs/v1alpha1/zz_instancev1_types.go @@ -0,0 +1,600 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 BackupPolicyInitParameters struct { + + // Day in a week on which backup starts. Range: 1–7. Where: 1 + // indicates Monday; 7 indicates Sunday. + BackupAt []*float64 `json:"backupAt,omitempty" tf:"backup_at,omitempty"` + + // Backup type. Valid values are: auto automatic backup, + // manual manual backup (default). + BackupType *string `json:"backupType,omitempty" tf:"backup_type,omitempty"` + + // Time at which backup starts. 00:00-01:00 indicates that backup + // starts at 00:00:00. + BeginAt *string `json:"beginAt,omitempty" tf:"begin_at,omitempty"` + + // Interval at which backup is performed. + // Currently, only weekly backup is supported. + PeriodType *string `json:"periodType,omitempty" tf:"period_type,omitempty"` + + // Retention time. Unit: day. Range: 1–7. + SaveDays *float64 `json:"saveDays,omitempty" tf:"save_days,omitempty"` +} + +type BackupPolicyObservation struct { + + // Day in a week on which backup starts. Range: 1–7. Where: 1 + // indicates Monday; 7 indicates Sunday. + BackupAt []*float64 `json:"backupAt,omitempty" tf:"backup_at,omitempty"` + + // Backup type. Valid values are: auto automatic backup, + // manual manual backup (default). + BackupType *string `json:"backupType,omitempty" tf:"backup_type,omitempty"` + + // Time at which backup starts. 00:00-01:00 indicates that backup + // starts at 00:00:00. + BeginAt *string `json:"beginAt,omitempty" tf:"begin_at,omitempty"` + + // Interval at which backup is performed. + // Currently, only weekly backup is supported. + PeriodType *string `json:"periodType,omitempty" tf:"period_type,omitempty"` + + // Retention time. Unit: day. Range: 1–7. + SaveDays *float64 `json:"saveDays,omitempty" tf:"save_days,omitempty"` +} + +type BackupPolicyParameters struct { + + // Day in a week on which backup starts. Range: 1–7. Where: 1 + // indicates Monday; 7 indicates Sunday. + // +kubebuilder:validation:Optional + BackupAt []*float64 `json:"backupAt" tf:"backup_at,omitempty"` + + // Backup type. Valid values are: auto automatic backup, + // manual manual backup (default). + // +kubebuilder:validation:Optional + BackupType *string `json:"backupType,omitempty" tf:"backup_type,omitempty"` + + // Time at which backup starts. 00:00-01:00 indicates that backup + // starts at 00:00:00. + // +kubebuilder:validation:Optional + BeginAt *string `json:"beginAt" tf:"begin_at,omitempty"` + + // Interval at which backup is performed. + // Currently, only weekly backup is supported. + // +kubebuilder:validation:Optional + PeriodType *string `json:"periodType" tf:"period_type,omitempty"` + + // Retention time. Unit: day. Range: 1–7. + // +kubebuilder:validation:Optional + SaveDays *float64 `json:"saveDays,omitempty" tf:"save_days,omitempty"` +} + +type ConfigurationInitParameters struct { + + // Configuration item ID. + ParameterID *string `json:"parameterId,omitempty" tf:"parameter_id,omitempty"` + + // Configuration item name. + ParameterName *string `json:"parameterName,omitempty" tf:"parameter_name,omitempty"` + + // Value of the configuration item. + ParameterValue *string `json:"parameterValue,omitempty" tf:"parameter_value,omitempty"` +} + +type ConfigurationObservation struct { + + // Configuration item ID. + ParameterID *string `json:"parameterId,omitempty" tf:"parameter_id,omitempty"` + + // Configuration item name. + ParameterName *string `json:"parameterName,omitempty" tf:"parameter_name,omitempty"` + + // Value of the configuration item. + ParameterValue *string `json:"parameterValue,omitempty" tf:"parameter_value,omitempty"` +} + +type ConfigurationParameters struct { + + // Configuration item ID. + // +kubebuilder:validation:Optional + ParameterID *string `json:"parameterId" tf:"parameter_id,omitempty"` + + // Configuration item name. + // +kubebuilder:validation:Optional + ParameterName *string `json:"parameterName" tf:"parameter_name,omitempty"` + + // Value of the configuration item. + // +kubebuilder:validation:Optional + ParameterValue *string `json:"parameterValue" tf:"parameter_value,omitempty"` +} + +type InstanceV1InitParameters struct { + + // IDs of the AZs where cache nodes reside. For details + // on how to query AZs, see Querying AZ Information + // or use opentelekomcloud_dcs_az_v1 data source: + AvailableZones []*string `json:"availableZones,omitempty" tf:"available_zones,omitempty"` + + // Day in a week on which backup starts. Range: 1–7. Where: 1 + // indicates Monday; 7 indicates Sunday. + BackupAt []*float64 `json:"backupAt,omitempty" tf:"backup_at,omitempty"` + + // Describes the backup configuration to be used with the instance. + BackupPolicy []BackupPolicyInitParameters `json:"backupPolicy,omitempty" tf:"backup_policy,omitempty"` + + // Backup type. Valid values are: auto automatic backup, + // manual manual backup (default). + BackupType *string `json:"backupType,omitempty" tf:"backup_type,omitempty"` + + // Time at which backup starts. 00:00-01:00 indicates that backup + // starts at 00:00:00. + BeginAt *string `json:"beginAt,omitempty" tf:"begin_at,omitempty"` + + // Indicates the Cache capacity. Unit: GB. + Capacity *float64 `json:"capacity,omitempty" tf:"capacity,omitempty"` + + // Describes the array of configuration items of the DCS instance. + // Configured values can be found here. + Configuration []ConfigurationInitParameters `json:"configuration,omitempty" tf:"configuration,omitempty"` + + // Indicates the description of an instance. It is a character + // string containing not more than 1024 characters. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Specifies whether to enable or disable whitelist. Only available when + // engine_version is set to 4.0/5.0. Parameter have to be used together with whitelist. + EnableWhitelist *bool `json:"enableWhitelist,omitempty" tf:"enable_whitelist,omitempty"` + + // Indicates a cache engine. Only Redis is supported. Changing this + // creates a new instance. + Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` + + // Indicates the version of a cache engine, which can be 3.0/4.0/5.0/6.0. + // Changing this creates a new instance. + EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` + + // Indicates the time at which a maintenance time window starts. + // Format: HH:mm:ss. The start time and end time of a maintenance time window must indicate the time segment of + // a supported maintenance time window. For details, see section + // Querying Maintenance Time Windows. + // The start time must be set to 22:00, 02:00, 06:00, 10:00, 14:00, or 18:00. + MaintainBegin *string `json:"maintainBegin,omitempty" tf:"maintain_begin,omitempty"` + + // Indicates the time at which a maintenance time window ends. + // Format: HH:mm:ss. The start time and end time of a maintenance time window must indicate the time segment of + // a supported maintenance time window. For details, see section + // Querying Maintenance Time Windows. + // 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. + MaintainEnd *string `json:"maintainEnd,omitempty" tf:"maintain_end,omitempty"` + + // Indicates the name of an instance. An instance name starts with a letter, + // consists of 4 to 64 characters, and supports only letters, digits, and hyphens (-). + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Interval at which backup is performed. + // Currently, only weekly backup is supported. + PeriodType *string `json:"periodType,omitempty" tf:"period_type,omitempty"` + + // IP address that is manually specified for a DCS instance. + PrivateIP *string `json:"privateIp,omitempty" tf:"private_ip,omitempty"` + + // Product ID used to differentiate DCS instance types. + // Changing this creates a new instance. + ProductID *string `json:"productId,omitempty" tf:"product_id,omitempty"` + + // Retention time. Unit: day. Range: 1–7. + SaveDays *float64 `json:"saveDays,omitempty" tf:"save_days,omitempty"` + + // Security group ID. This parameter is mandatory when engine_version is 3.0. + SecurityGroupID *string `json:"securityGroupId,omitempty" tf:"security_group_id,omitempty"` + + // Specifies the subnet Network ID. Changing this creates a new instance. + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // The key/value pairs to associate with the dcs instance. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Specifies the VPC ID. Changing this creates a new instance. + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` + + // Describes the whitelist groups to be used with the instance. Only available when + // engine_version is set to 4.0/5.0. Parameter have to be used together with enable_whitelist. + // Resource fields: + Whitelist []WhitelistInitParameters `json:"whitelist,omitempty" tf:"whitelist,omitempty"` +} + +type InstanceV1Observation struct { + + // IDs of the AZs where cache nodes reside. For details + // on how to query AZs, see Querying AZ Information + // or use opentelekomcloud_dcs_az_v1 data source: + AvailableZones []*string `json:"availableZones,omitempty" tf:"available_zones,omitempty"` + + // Day in a week on which backup starts. Range: 1–7. Where: 1 + // indicates Monday; 7 indicates Sunday. + BackupAt []*float64 `json:"backupAt,omitempty" tf:"backup_at,omitempty"` + + // Describes the backup configuration to be used with the instance. + BackupPolicy []BackupPolicyObservation `json:"backupPolicy,omitempty" tf:"backup_policy,omitempty"` + + // Backup type. Valid values are: auto automatic backup, + // manual manual backup (default). + BackupType *string `json:"backupType,omitempty" tf:"backup_type,omitempty"` + + // Time at which backup starts. 00:00-01:00 indicates that backup + // starts at 00:00:00. + BeginAt *string `json:"beginAt,omitempty" tf:"begin_at,omitempty"` + + // Indicates the Cache capacity. Unit: GB. + Capacity *float64 `json:"capacity,omitempty" tf:"capacity,omitempty"` + + // Describes the array of configuration items of the DCS instance. + // Configured values can be found here. + Configuration []ConfigurationObservation `json:"configuration,omitempty" tf:"configuration,omitempty"` + + // Time at which the DCS instance is created. For example, 2017-03-31T12:24:46.297Z. + CreatedAt *string `json:"createdAt,omitempty" tf:"created_at,omitempty"` + + // Indicates the description of an instance. It is a character + // string containing not more than 1024 characters. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Specifies whether to enable or disable whitelist. Only available when + // engine_version is set to 4.0/5.0. Parameter have to be used together with whitelist. + EnableWhitelist *bool `json:"enableWhitelist,omitempty" tf:"enable_whitelist,omitempty"` + + // Indicates a cache engine. Only Redis is supported. Changing this + // creates a new instance. + Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` + + // Indicates the version of a cache engine, which can be 3.0/4.0/5.0/6.0. + // Changing this creates a new instance. + EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Cache node's IP address in the tenant's VPC. + IP *string `json:"ip,omitempty" tf:"ip,omitempty"` + + // Internal DCS version. + InternalVersion *string `json:"internalVersion,omitempty" tf:"internal_version,omitempty"` + + // Indicates the time at which a maintenance time window starts. + // Format: HH:mm:ss. The start time and end time of a maintenance time window must indicate the time segment of + // a supported maintenance time window. For details, see section + // Querying Maintenance Time Windows. + // The start time must be set to 22:00, 02:00, 06:00, 10:00, 14:00, or 18:00. + MaintainBegin *string `json:"maintainBegin,omitempty" tf:"maintain_begin,omitempty"` + + // Indicates the time at which a maintenance time window ends. + // Format: HH:mm:ss. The start time and end time of a maintenance time window must indicate the time segment of + // a supported maintenance time window. For details, see section + // Querying Maintenance Time Windows. + // 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. + MaintainEnd *string `json:"maintainEnd,omitempty" tf:"maintain_end,omitempty"` + + // Overall memory size. Unit: MB. + MaxMemory *float64 `json:"maxMemory,omitempty" tf:"max_memory,omitempty"` + + // Indicates the name of an instance. An instance name starts with a letter, + // consists of 4 to 64 characters, and supports only letters, digits, and hyphens (-). + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // An indicator of whether a DCS instance can be accessed in password-free mode. + // true when password not set. + NoPasswordAccess *string `json:"noPasswordAccess,omitempty" tf:"no_password_access,omitempty"` + + // An order ID is generated only in the monthly or yearly billing mode. + // In other billing modes, no value is returned for this parameter. + OrderID *string `json:"orderId,omitempty" tf:"order_id,omitempty"` + + // Interval at which backup is performed. + // Currently, only weekly backup is supported. + PeriodType *string `json:"periodType,omitempty" tf:"period_type,omitempty"` + + // Port of the cache node. + Port *float64 `json:"port,omitempty" tf:"port,omitempty"` + + // IP address that is manually specified for a DCS instance. + PrivateIP *string `json:"privateIp,omitempty" tf:"private_ip,omitempty"` + + // Product ID used to differentiate DCS instance types. + // Changing this creates a new instance. + ProductID *string `json:"productId,omitempty" tf:"product_id,omitempty"` + + // Resource specifications. + ResourceSpecCode *string `json:"resourceSpecCode,omitempty" tf:"resource_spec_code,omitempty"` + + // Retention time. Unit: day. Range: 1–7. + SaveDays *float64 `json:"saveDays,omitempty" tf:"save_days,omitempty"` + + // Security group ID. This parameter is mandatory when engine_version is 3.0. + SecurityGroupID *string `json:"securityGroupId,omitempty" tf:"security_group_id,omitempty"` + + // Indicates the name of a security group. + SecurityGroupName *string `json:"securityGroupName,omitempty" tf:"security_group_name,omitempty"` + + // Cache instance status. One of CREATING, CREATEFAILED, RUNNING, ERROR, + // RESTARTING, EXTENDING, RESTORING + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + // Specifies the subnet Network ID. Changing this creates a new instance. + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // Indicates the name of a subnet. + SubnetName *string `json:"subnetName,omitempty" tf:"subnet_name,omitempty"` + + // The key/value pairs to associate with the dcs instance. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Size of the used memory. Unit: MB. + UsedMemory *float64 `json:"usedMemory,omitempty" tf:"used_memory,omitempty"` + + // Indicates a user ID. + UserID *string `json:"userId,omitempty" tf:"user_id,omitempty"` + + // Username. + UserName *string `json:"userName,omitempty" tf:"user_name,omitempty"` + + // Specifies the VPC ID. Changing this creates a new instance. + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` + + // Indicates the name of a vpc. + VPCName *string `json:"vpcName,omitempty" tf:"vpc_name,omitempty"` + + // Describes the whitelist groups to be used with the instance. Only available when + // engine_version is set to 4.0/5.0. Parameter have to be used together with enable_whitelist. + // Resource fields: + Whitelist []WhitelistObservation `json:"whitelist,omitempty" tf:"whitelist,omitempty"` +} + +type InstanceV1Parameters struct { + + // IDs of the AZs where cache nodes reside. For details + // on how to query AZs, see Querying AZ Information + // or use opentelekomcloud_dcs_az_v1 data source: + // +kubebuilder:validation:Optional + AvailableZones []*string `json:"availableZones,omitempty" tf:"available_zones,omitempty"` + + // Day in a week on which backup starts. Range: 1–7. Where: 1 + // indicates Monday; 7 indicates Sunday. + // +kubebuilder:validation:Optional + BackupAt []*float64 `json:"backupAt,omitempty" tf:"backup_at,omitempty"` + + // Describes the backup configuration to be used with the instance. + // +kubebuilder:validation:Optional + BackupPolicy []BackupPolicyParameters `json:"backupPolicy,omitempty" tf:"backup_policy,omitempty"` + + // Backup type. Valid values are: auto automatic backup, + // manual manual backup (default). + // +kubebuilder:validation:Optional + BackupType *string `json:"backupType,omitempty" tf:"backup_type,omitempty"` + + // Time at which backup starts. 00:00-01:00 indicates that backup + // starts at 00:00:00. + // +kubebuilder:validation:Optional + BeginAt *string `json:"beginAt,omitempty" tf:"begin_at,omitempty"` + + // Indicates the Cache capacity. Unit: GB. + // +kubebuilder:validation:Optional + Capacity *float64 `json:"capacity,omitempty" tf:"capacity,omitempty"` + + // Describes the array of configuration items of the DCS instance. + // Configured values can be found here. + // +kubebuilder:validation:Optional + Configuration []ConfigurationParameters `json:"configuration,omitempty" tf:"configuration,omitempty"` + + // Indicates the description of an instance. It is a character + // string containing not more than 1024 characters. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Specifies whether to enable or disable whitelist. Only available when + // engine_version is set to 4.0/5.0. Parameter have to be used together with whitelist. + // +kubebuilder:validation:Optional + EnableWhitelist *bool `json:"enableWhitelist,omitempty" tf:"enable_whitelist,omitempty"` + + // Indicates a cache engine. Only Redis is supported. Changing this + // creates a new instance. + // +kubebuilder:validation:Optional + Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` + + // Indicates the version of a cache engine, which can be 3.0/4.0/5.0/6.0. + // Changing this creates a new instance. + // +kubebuilder:validation:Optional + EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` + + // Indicates the time at which a maintenance time window starts. + // Format: HH:mm:ss. The start time and end time of a maintenance time window must indicate the time segment of + // a supported maintenance time window. For details, see section + // Querying Maintenance Time Windows. + // The start time must be set to 22:00, 02:00, 06:00, 10:00, 14:00, or 18:00. + // +kubebuilder:validation:Optional + MaintainBegin *string `json:"maintainBegin,omitempty" tf:"maintain_begin,omitempty"` + + // Indicates the time at which a maintenance time window ends. + // Format: HH:mm:ss. The start time and end time of a maintenance time window must indicate the time segment of + // a supported maintenance time window. For details, see section + // Querying Maintenance Time Windows. + // 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. + // +kubebuilder:validation:Optional + MaintainEnd *string `json:"maintainEnd,omitempty" tf:"maintain_end,omitempty"` + + // Indicates the name of an instance. An instance name starts with a letter, + // consists of 4 to 64 characters, and supports only letters, digits, and hyphens (-). + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Indicates the password of an instance. An instance password + // must meet the following complexity requirements: Must be 8 to 32 characters long. + // Must contain at least 3 of the following character types: lowercase letters, uppercase + // letters, digits, and special characters: `~!@#$^&*()-_=+|{}:,<>./? + // Changing this creates a new instance. + // +kubebuilder:validation:Optional + PasswordSecretRef *v1.SecretKeySelector `json:"passwordSecretRef,omitempty" tf:"-"` + + // Interval at which backup is performed. + // Currently, only weekly backup is supported. + // +kubebuilder:validation:Optional + PeriodType *string `json:"periodType,omitempty" tf:"period_type,omitempty"` + + // IP address that is manually specified for a DCS instance. + // +kubebuilder:validation:Optional + PrivateIP *string `json:"privateIp,omitempty" tf:"private_ip,omitempty"` + + // Product ID used to differentiate DCS instance types. + // Changing this creates a new instance. + // +kubebuilder:validation:Optional + ProductID *string `json:"productId,omitempty" tf:"product_id,omitempty"` + + // Retention time. Unit: day. Range: 1–7. + // +kubebuilder:validation:Optional + SaveDays *float64 `json:"saveDays,omitempty" tf:"save_days,omitempty"` + + // Security group ID. This parameter is mandatory when engine_version is 3.0. + // +kubebuilder:validation:Optional + SecurityGroupID *string `json:"securityGroupId,omitempty" tf:"security_group_id,omitempty"` + + // Specifies the subnet Network ID. Changing this creates a new instance. + // +kubebuilder:validation:Optional + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // The key/value pairs to associate with the dcs instance. + // +kubebuilder:validation:Optional + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Specifies the VPC ID. Changing this creates a new instance. + // +kubebuilder:validation:Optional + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` + + // Describes the whitelist groups to be used with the instance. Only available when + // engine_version is set to 4.0/5.0. Parameter have to be used together with enable_whitelist. + // Resource fields: + // +kubebuilder:validation:Optional + Whitelist []WhitelistParameters `json:"whitelist,omitempty" tf:"whitelist,omitempty"` +} + +type WhitelistInitParameters struct { + + // Whitelist group name. A maximum of four groups can be created for each instance. + GroupName *string `json:"groupName,omitempty" tf:"group_name,omitempty"` + + // List of IP addresses in the whitelist group. A maximum of 20 IP addresses or IP address + // ranges can be added to an instance. Separate multiple IP addresses or IP address ranges with commas (,). + // IP address 0.0.0.0 and IP address range 0.0.0/0 are not supported. + IPList []*string `json:"ipList,omitempty" tf:"ip_list,omitempty"` +} + +type WhitelistObservation struct { + + // Whitelist group name. A maximum of four groups can be created for each instance. + GroupName *string `json:"groupName,omitempty" tf:"group_name,omitempty"` + + // List of IP addresses in the whitelist group. A maximum of 20 IP addresses or IP address + // ranges can be added to an instance. Separate multiple IP addresses or IP address ranges with commas (,). + // IP address 0.0.0.0 and IP address range 0.0.0/0 are not supported. + IPList []*string `json:"ipList,omitempty" tf:"ip_list,omitempty"` +} + +type WhitelistParameters struct { + + // Whitelist group name. A maximum of four groups can be created for each instance. + // +kubebuilder:validation:Optional + GroupName *string `json:"groupName" tf:"group_name,omitempty"` + + // List of IP addresses in the whitelist group. A maximum of 20 IP addresses or IP address + // ranges can be added to an instance. Separate multiple IP addresses or IP address ranges with commas (,). + // IP address 0.0.0.0 and IP address range 0.0.0/0 are not supported. + // +kubebuilder:validation:Optional + IPList []*string `json:"ipList" tf:"ip_list,omitempty"` +} + +// InstanceV1Spec defines the desired state of InstanceV1 +type InstanceV1Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider InstanceV1Parameters `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 InstanceV1InitParameters `json:"initProvider,omitempty"` +} + +// InstanceV1Status defines the observed state of InstanceV1. +type InstanceV1Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider InstanceV1Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// InstanceV1 is the Schema for the InstanceV1s API. Manages a DCS Instance v1 resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type InstanceV1 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.availableZones) || (has(self.initProvider) && has(self.initProvider.availableZones))",message="spec.forProvider.availableZones is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.capacity) || (has(self.initProvider) && has(self.initProvider.capacity))",message="spec.forProvider.capacity is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.engine) || (has(self.initProvider) && has(self.initProvider.engine))",message="spec.forProvider.engine is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.engineVersion) || (has(self.initProvider) && has(self.initProvider.engineVersion))",message="spec.forProvider.engineVersion is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.productId) || (has(self.initProvider) && has(self.initProvider.productId))",message="spec.forProvider.productId 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" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.vpcId) || (has(self.initProvider) && has(self.initProvider.vpcId))",message="spec.forProvider.vpcId is a required parameter" + Spec InstanceV1Spec `json:"spec"` + Status InstanceV1Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// InstanceV1List contains a list of InstanceV1s +type InstanceV1List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []InstanceV1 `json:"items"` +} + +// Repository type metadata. +var ( + InstanceV1_Kind = "InstanceV1" + InstanceV1_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: InstanceV1_Kind}.String() + InstanceV1_KindAPIVersion = InstanceV1_Kind + "." + CRDGroupVersion.String() + InstanceV1_GroupVersionKind = CRDGroupVersion.WithKind(InstanceV1_Kind) +) + +func init() { + SchemeBuilder.Register(&InstanceV1{}, &InstanceV1List{}) +} diff --git a/apis/dcs/v1alpha1/zz_instancev2_types.go b/apis/dcs/v1alpha1/zz_instancev2_types.go new file mode 100755 index 0000000..16fda07 --- /dev/null +++ b/apis/dcs/v1alpha1/zz_instancev2_types.go @@ -0,0 +1,696 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 BandwidthInfoInitParameters struct { +} + +type BandwidthInfoObservation struct { + + // Indicates the bandwidth size, the unit is GB. + Bandwidth *float64 `json:"bandwidth,omitempty" tf:"bandwidth,omitempty"` + + // Indicates the begin time of temporary increase. + BeginTime *string `json:"beginTime,omitempty" tf:"begin_time,omitempty"` + + // Indicates the current time. + CurrentTime *string `json:"currentTime,omitempty" tf:"current_time,omitempty"` + + // Indicates the end time of temporary increase. + EndTime *string `json:"endTime,omitempty" tf:"end_time,omitempty"` + + // Indicates the number of increases. + ExpandCount *float64 `json:"expandCount,omitempty" tf:"expand_count,omitempty"` + + // Indicates the interval between temporary increases, the unit is ms. + ExpandEffectTime *float64 `json:"expandEffectTime,omitempty" tf:"expand_effect_time,omitempty"` + + // Indicates the time interval to the next increase, the unit is ms. + ExpandIntervalTime *float64 `json:"expandIntervalTime,omitempty" tf:"expand_interval_time,omitempty"` + + // Indicates the maximum number of increases. + MaxExpandCount *float64 `json:"maxExpandCount,omitempty" tf:"max_expand_count,omitempty"` + + // Indicates the next increase time. + NextExpandTime *string `json:"nextExpandTime,omitempty" tf:"next_expand_time,omitempty"` + + // Indicates whether the increase task is running. + TaskRunning *bool `json:"taskRunning,omitempty" tf:"task_running,omitempty"` +} + +type BandwidthInfoParameters struct { +} + +type InstanceV2BackupPolicyInitParameters struct { + + // Day in a week on which backup starts, the value ranges from 1 to 7. + // Where: 1 indicates Monday; 7 indicates Sunday. + BackupAt []*float64 `json:"backupAt,omitempty" tf:"backup_at,omitempty"` + + // Backup type. Default value is auto. The valid values are as follows: + BackupType *string `json:"backupType,omitempty" tf:"backup_type,omitempty"` + + // Time at which backup starts. + // Format: hh24:00-hh24:00, "00:00-01:00" indicates that backup starts at 00:00:00. + BeginAt *string `json:"beginAt,omitempty" tf:"begin_at,omitempty"` + + // Interval at which backup is performed. Default value is weekly. + // Currently, only weekly backup is supported. + PeriodType *string `json:"periodType,omitempty" tf:"period_type,omitempty"` + + // Retention time. Unit: day, the value ranges from 1 to 7. + // This parameter is required if the backup_type is auto. + SaveDays *float64 `json:"saveDays,omitempty" tf:"save_days,omitempty"` +} + +type InstanceV2BackupPolicyObservation struct { + + // Day in a week on which backup starts, the value ranges from 1 to 7. + // Where: 1 indicates Monday; 7 indicates Sunday. + BackupAt []*float64 `json:"backupAt,omitempty" tf:"backup_at,omitempty"` + + // Backup type. Default value is auto. The valid values are as follows: + BackupType *string `json:"backupType,omitempty" tf:"backup_type,omitempty"` + + // Time at which backup starts. + // Format: hh24:00-hh24:00, "00:00-01:00" indicates that backup starts at 00:00:00. + BeginAt *string `json:"beginAt,omitempty" tf:"begin_at,omitempty"` + + // Interval at which backup is performed. Default value is weekly. + // Currently, only weekly backup is supported. + PeriodType *string `json:"periodType,omitempty" tf:"period_type,omitempty"` + + // Retention time. Unit: day, the value ranges from 1 to 7. + // This parameter is required if the backup_type is auto. + SaveDays *float64 `json:"saveDays,omitempty" tf:"save_days,omitempty"` +} + +type InstanceV2BackupPolicyParameters struct { + + // Day in a week on which backup starts, the value ranges from 1 to 7. + // Where: 1 indicates Monday; 7 indicates Sunday. + // +kubebuilder:validation:Optional + BackupAt []*float64 `json:"backupAt" tf:"backup_at,omitempty"` + + // Backup type. Default value is auto. The valid values are as follows: + // +kubebuilder:validation:Optional + BackupType *string `json:"backupType,omitempty" tf:"backup_type,omitempty"` + + // Time at which backup starts. + // Format: hh24:00-hh24:00, "00:00-01:00" indicates that backup starts at 00:00:00. + // +kubebuilder:validation:Optional + BeginAt *string `json:"beginAt" tf:"begin_at,omitempty"` + + // Interval at which backup is performed. Default value is weekly. + // Currently, only weekly backup is supported. + // +kubebuilder:validation:Optional + PeriodType *string `json:"periodType,omitempty" tf:"period_type,omitempty"` + + // Retention time. Unit: day, the value ranges from 1 to 7. + // This parameter is required if the backup_type is auto. + // +kubebuilder:validation:Optional + SaveDays *float64 `json:"saveDays,omitempty" tf:"save_days,omitempty"` +} + +type InstanceV2InitParameters struct { + + // Specifies the username used for accessing a DCS instance. + // The username starts with a letter, consists of 1 to 64 characters, and supports only letters, digits, and + // hyphens (-). Changing this creates a new instance. + AccessUser *string `json:"accessUser,omitempty" tf:"access_user,omitempty"` + + // The code of the AZ where the cache node resides. + // Master/Standby, Proxy Cluster, and Redis Cluster DCS instances support cross-AZ deployment. + // You can specify an AZ for the standby node. When specifying AZs for nodes, use commas (,) to separate AZs. + // Changing this creates a new instance. + AvailabilityZones []*string `json:"availabilityZones,omitempty" tf:"availability_zones,omitempty"` + + // Specifies the backup configuration to be used with the instance. + // The structure is described below. + BackupPolicy []InstanceV2BackupPolicyInitParameters `json:"backupPolicy,omitempty" tf:"backup_policy,omitempty"` + + // Specifies the cache capacity. Unit: GB. + Capacity *float64 `json:"capacity,omitempty" tf:"capacity,omitempty"` + + // Specifies the ID of the replica to delete. This parameter is mandatory when + // you delete replicas of a master/standby DCS Redis 4.0 or 5.0 instance. Currently, only one replica can be deleted + // at a time. + DeletedNodes []*string `json:"deletedNodes,omitempty" tf:"deleted_nodes,omitempty"` + + // Specifies the description of an instance. + // It is a string that contains a maximum of 1024 characters. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Enable or disable the IP address whitelists. Defaults to true. + // If the whitelist is disabled, all IP addresses connected to the VPC can access the instance. + EnableWhitelist *bool `json:"enableWhitelist,omitempty" tf:"enable_whitelist,omitempty"` + + // Specifies a cache engine. Options: Redis and Memcached. + // Changing this creates a new instance. + Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` + + // Specifies the version of a cache engine. + // It is mandatory when the engine is Redis, the value can be 3.0, 4.0, 5.0 or 6.0. + // Changing this creates a new instance. + EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` + + // The flavor of the cache instance, which including the total memory, available memory, + // maximum number of connections allowed, maximum/assured bandwidth and reference performance. + // It also includes the modes of Redis instances. You can query the flavor as follows: + Flavor *string `json:"flavor,omitempty" tf:"flavor,omitempty"` + + // Time at which the maintenance time window starts. Defaults to 02:00:00. + MaintainBegin *string `json:"maintainBegin,omitempty" tf:"maintain_begin,omitempty"` + + // Time at which the maintenance time window ends. Defaults to 06:00:00. + MaintainEnd *string `json:"maintainEnd,omitempty" tf:"maintain_end,omitempty"` + + // Specifies the name of an instance. + // The name must be 4 to 64 characters and start with a letter. + // Only chinese, letters (case-insensitive), digits, underscores (_) ,and hyphens (-) are allowed. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specify an array of one or more parameters to be set to the DCS instance after + // launched. You can check on console to see which parameters supported. + // The parameters structure is documented below. + Parameters []ParametersInitParameters `json:"parameters,omitempty" tf:"parameters,omitempty"` + + // Port customization, which is supported only by Redis 4.0 and Redis 5.0 instances. + // Redis instance defaults to 6379. Memcached instance does not use this argument. + Port *float64 `json:"port,omitempty" tf:"port,omitempty"` + + // The IP address of the DCS instance, + // which can only be the currently available IP address the selected subnet. + // You can specify an available IP for the Redis instance (except for the Redis Cluster type). + // If omitted, the system will automatically allocate an available IP address to the Redis instance. + // Changing this creates a new instance resource. + PrivateIP *string `json:"privateIp,omitempty" tf:"private_ip,omitempty"` + + // Critical command renaming, which is supported only by Redis 4.0 and + // Redis 5.0 instances but not by Redis 3.0 instance. + // The valid commands that can be renamed are: command, keys, flushdb, flushall and hgetall. + RenameCommands map[string]*string `json:"renameCommands,omitempty" tf:"rename_commands,omitempty"` + + // Specifies IP addresses to retain. Mandatory during cluster scale-in. If this + // parameter is not set, the system randomly deletes unnecessary shards. + ReservedIps []*string `json:"reservedIps,omitempty" tf:"reserved_ips,omitempty"` + + // Specifies whether to enable the SSL. Value options: true, false. + SSLEnable *bool `json:"sslEnable,omitempty" tf:"ssl_enable,omitempty"` + + // The ID of the security group which the instance belongs to. + // This parameter is mandatory for Memcached and Redis 3.0 version. + SecurityGroupID *string `json:"securityGroupId,omitempty" tf:"security_group_id,omitempty"` + + // The ID of subnet which the instance belongs to. + // Changing this creates a new instance resource. + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // The key/value pairs to associate with the dcs instance. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The Parameter Template ID. + // Changing this creates a new instance resource. + TemplateID *string `json:"templateId,omitempty" tf:"template_id,omitempty"` + + // The ID of VPC which the instance belongs to. + // Changing this creates a new instance resource. + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` + + // Specifies the IP addresses which can access the instance. + // This parameter is valid for Redis 4.0 and 5.0 versions. The structure is described below. + Whitelist []InstanceV2WhitelistInitParameters `json:"whitelist,omitempty" tf:"whitelist,omitempty"` +} + +type InstanceV2Observation struct { + + // Specifies the username used for accessing a DCS instance. + // The username starts with a letter, consists of 1 to 64 characters, and supports only letters, digits, and + // hyphens (-). Changing this creates a new instance. + AccessUser *string `json:"accessUser,omitempty" tf:"access_user,omitempty"` + + // The code of the AZ where the cache node resides. + // Master/Standby, Proxy Cluster, and Redis Cluster DCS instances support cross-AZ deployment. + // You can specify an AZ for the standby node. When specifying AZs for nodes, use commas (,) to separate AZs. + // Changing this creates a new instance. + AvailabilityZones []*string `json:"availabilityZones,omitempty" tf:"availability_zones,omitempty"` + + // Specifies the backup configuration to be used with the instance. + // The structure is described below. + BackupPolicy []InstanceV2BackupPolicyObservation `json:"backupPolicy,omitempty" tf:"backup_policy,omitempty"` + + // Indicates the bandwidth information of the instance. + // The bandwidth_info structure is documented below. + BandwidthInfo []BandwidthInfoObservation `json:"bandwidthInfo,omitempty" tf:"bandwidth_info,omitempty"` + + // Indicates the CPU type of the instance. The value can be x86_64 or aarch64. + CPUType *string `json:"cpuType,omitempty" tf:"cpu_type,omitempty"` + + // Indicates the instance type. The value can be single, ha, cluster or proxy. + CacheMode *string `json:"cacheMode,omitempty" tf:"cache_mode,omitempty"` + + // Specifies the cache capacity. Unit: GB. + Capacity *float64 `json:"capacity,omitempty" tf:"capacity,omitempty"` + + // Indicates the time when the instance is created, in RFC3339 format. + CreatedAt *string `json:"createdAt,omitempty" tf:"created_at,omitempty"` + + // Specifies the ID of the replica to delete. This parameter is mandatory when + // you delete replicas of a master/standby DCS Redis 4.0 or 5.0 instance. Currently, only one replica can be deleted + // at a time. + DeletedNodes []*string `json:"deletedNodes,omitempty" tf:"deleted_nodes,omitempty"` + + // Specifies the description of an instance. + // It is a string that contains a maximum of 1024 characters. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Domain name of the instance. Usually, we use domain name and port to connect to the DCS instances. + DomainName *string `json:"domainName,omitempty" tf:"domain_name,omitempty"` + + // Enable or disable the IP address whitelists. Defaults to true. + // If the whitelist is disabled, all IP addresses connected to the VPC can access the instance. + EnableWhitelist *bool `json:"enableWhitelist,omitempty" tf:"enable_whitelist,omitempty"` + + // Specifies a cache engine. Options: Redis and Memcached. + // Changing this creates a new instance. + Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` + + // Specifies the version of a cache engine. + // It is mandatory when the engine is Redis, the value can be 3.0, 4.0, 5.0 or 6.0. + // Changing this creates a new instance. + EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` + + // The flavor of the cache instance, which including the total memory, available memory, + // maximum number of connections allowed, maximum/assured bandwidth and reference performance. + // It also includes the modes of Redis instances. You can query the flavor as follows: + Flavor *string `json:"flavor,omitempty" tf:"flavor,omitempty"` + + // A resource ID in UUID format. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Indicates the time when the instance is started, in RFC3339 format. + LaunchedAt *string `json:"launchedAt,omitempty" tf:"launched_at,omitempty"` + + // Time at which the maintenance time window starts. Defaults to 02:00:00. + MaintainBegin *string `json:"maintainBegin,omitempty" tf:"maintain_begin,omitempty"` + + // Time at which the maintenance time window ends. Defaults to 06:00:00. + MaintainEnd *string `json:"maintainEnd,omitempty" tf:"maintain_end,omitempty"` + + // Total memory size. Unit: MB. + MaxMemory *float64 `json:"maxMemory,omitempty" tf:"max_memory,omitempty"` + + // Specifies the name of an instance. + // The name must be 4 to 64 characters and start with a letter. + // Only chinese, letters (case-insensitive), digits, underscores (_) ,and hyphens (-) are allowed. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specify an array of one or more parameters to be set to the DCS instance after + // launched. You can check on console to see which parameters supported. + // The parameters structure is documented below. + Parameters []ParametersObservation `json:"parameters,omitempty" tf:"parameters,omitempty"` + + // Port customization, which is supported only by Redis 4.0 and Redis 5.0 instances. + // Redis instance defaults to 6379. Memcached instance does not use this argument. + Port *float64 `json:"port,omitempty" tf:"port,omitempty"` + + // The IP address of the DCS instance, + // which can only be the currently available IP address the selected subnet. + // You can specify an available IP for the Redis instance (except for the Redis Cluster type). + // If omitted, the system will automatically allocate an available IP address to the Redis instance. + // Changing this creates a new instance resource. + PrivateIP *string `json:"privateIp,omitempty" tf:"private_ip,omitempty"` + + // Indicates the product type of the instance. The value can be: generic or enterprise. + ProductType *string `json:"productType,omitempty" tf:"product_type,omitempty"` + + // Indicates the read-only domain name of the instance. This parameter is available + // only for master/standby instances. + ReadonlyDomainName *string `json:"readonlyDomainName,omitempty" tf:"readonly_domain_name,omitempty"` + + // Indicates the region in which DCS instance resource is created. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Critical command renaming, which is supported only by Redis 4.0 and + // Redis 5.0 instances but not by Redis 3.0 instance. + // The valid commands that can be renamed are: command, keys, flushdb, flushall and hgetall. + RenameCommands map[string]*string `json:"renameCommands,omitempty" tf:"rename_commands,omitempty"` + + // Indicates the number of replicas in the instance. + ReplicaCount *float64 `json:"replicaCount,omitempty" tf:"replica_count,omitempty"` + + // Specifies IP addresses to retain. Mandatory during cluster scale-in. If this + // parameter is not set, the system randomly deletes unnecessary shards. + ReservedIps []*string `json:"reservedIps,omitempty" tf:"reserved_ips,omitempty"` + + // Specifies whether to enable the SSL. Value options: true, false. + SSLEnable *bool `json:"sslEnable,omitempty" tf:"ssl_enable,omitempty"` + + // The ID of the security group which the instance belongs to. + // This parameter is mandatory for Memcached and Redis 3.0 version. + SecurityGroupID *string `json:"securityGroupId,omitempty" tf:"security_group_id,omitempty"` + + // The name of security group which the instance belongs to. + SecurityGroupName *string `json:"securityGroupName,omitempty" tf:"security_group_name,omitempty"` + + // Indicates the number of shards in a cluster instance. + ShardingCount *float64 `json:"shardingCount,omitempty" tf:"sharding_count,omitempty"` + + // Cache instance status. The valid values are as follows: + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + // Indicates the subnet segment. + SubnetCidr *string `json:"subnetCidr,omitempty" tf:"subnet_cidr,omitempty"` + + // The ID of subnet which the instance belongs to. + // Changing this creates a new instance resource. + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // The name of subnet which the instance belongs to. + SubnetName *string `json:"subnetName,omitempty" tf:"subnet_name,omitempty"` + + // The key/value pairs to associate with the dcs instance. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The Parameter Template ID. + // Changing this creates a new instance resource. + TemplateID *string `json:"templateId,omitempty" tf:"template_id,omitempty"` + + // Indicates whether client IP pass-through is enabled. + TransparentClientIPEnable *bool `json:"transparentClientIpEnable,omitempty" tf:"transparent_client_ip_enable,omitempty"` + + // Size of the used memory. Unit: MB. + UsedMemory *float64 `json:"usedMemory,omitempty" tf:"used_memory,omitempty"` + + // A resource ID in UUID format. + UserID *string `json:"userId,omitempty" tf:"user_id,omitempty"` + + // Specifies the name of an instance. + // The name must be 4 to 64 characters and start with a letter. + // Only chinese, letters (case-insensitive), digits, underscores (_) ,and hyphens (-) are allowed. + UserName *string `json:"userName,omitempty" tf:"user_name,omitempty"` + + // The ID of VPC which the instance belongs to. + // Changing this creates a new instance resource. + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` + + // The name of VPC which the instance belongs to. + VPCName *string `json:"vpcName,omitempty" tf:"vpc_name,omitempty"` + + // Specifies the IP addresses which can access the instance. + // This parameter is valid for Redis 4.0 and 5.0 versions. The structure is described below. + Whitelist []InstanceV2WhitelistObservation `json:"whitelist,omitempty" tf:"whitelist,omitempty"` +} + +type InstanceV2Parameters struct { + + // Specifies the username used for accessing a DCS instance. + // The username starts with a letter, consists of 1 to 64 characters, and supports only letters, digits, and + // hyphens (-). Changing this creates a new instance. + // +kubebuilder:validation:Optional + AccessUser *string `json:"accessUser,omitempty" tf:"access_user,omitempty"` + + // The code of the AZ where the cache node resides. + // Master/Standby, Proxy Cluster, and Redis Cluster DCS instances support cross-AZ deployment. + // You can specify an AZ for the standby node. When specifying AZs for nodes, use commas (,) to separate AZs. + // Changing this creates a new instance. + // +kubebuilder:validation:Optional + AvailabilityZones []*string `json:"availabilityZones,omitempty" tf:"availability_zones,omitempty"` + + // Specifies the backup configuration to be used with the instance. + // The structure is described below. + // +kubebuilder:validation:Optional + BackupPolicy []InstanceV2BackupPolicyParameters `json:"backupPolicy,omitempty" tf:"backup_policy,omitempty"` + + // Specifies the cache capacity. Unit: GB. + // +kubebuilder:validation:Optional + Capacity *float64 `json:"capacity,omitempty" tf:"capacity,omitempty"` + + // Specifies the ID of the replica to delete. This parameter is mandatory when + // you delete replicas of a master/standby DCS Redis 4.0 or 5.0 instance. Currently, only one replica can be deleted + // at a time. + // +kubebuilder:validation:Optional + DeletedNodes []*string `json:"deletedNodes,omitempty" tf:"deleted_nodes,omitempty"` + + // Specifies the description of an instance. + // It is a string that contains a maximum of 1024 characters. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Enable or disable the IP address whitelists. Defaults to true. + // If the whitelist is disabled, all IP addresses connected to the VPC can access the instance. + // +kubebuilder:validation:Optional + EnableWhitelist *bool `json:"enableWhitelist,omitempty" tf:"enable_whitelist,omitempty"` + + // Specifies a cache engine. Options: Redis and Memcached. + // Changing this creates a new instance. + // +kubebuilder:validation:Optional + Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` + + // Specifies the version of a cache engine. + // It is mandatory when the engine is Redis, the value can be 3.0, 4.0, 5.0 or 6.0. + // Changing this creates a new instance. + // +kubebuilder:validation:Optional + EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` + + // The flavor of the cache instance, which including the total memory, available memory, + // maximum number of connections allowed, maximum/assured bandwidth and reference performance. + // It also includes the modes of Redis instances. You can query the flavor as follows: + // +kubebuilder:validation:Optional + Flavor *string `json:"flavor,omitempty" tf:"flavor,omitempty"` + + // Time at which the maintenance time window starts. Defaults to 02:00:00. + // +kubebuilder:validation:Optional + MaintainBegin *string `json:"maintainBegin,omitempty" tf:"maintain_begin,omitempty"` + + // Time at which the maintenance time window ends. Defaults to 06:00:00. + // +kubebuilder:validation:Optional + MaintainEnd *string `json:"maintainEnd,omitempty" tf:"maintain_end,omitempty"` + + // Specifies the name of an instance. + // The name must be 4 to 64 characters and start with a letter. + // Only chinese, letters (case-insensitive), digits, underscores (_) ,and hyphens (-) are allowed. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specify an array of one or more parameters to be set to the DCS instance after + // launched. You can check on console to see which parameters supported. + // The parameters structure is documented below. + // +kubebuilder:validation:Optional + Parameters []ParametersParameters `json:"parameters,omitempty" tf:"parameters,omitempty"` + + // Specifies the password of a DCS instance. + // The password of a DCS instance must meet the following complexity requirements: + // +kubebuilder:validation:Optional + PasswordSecretRef *v1.SecretKeySelector `json:"passwordSecretRef,omitempty" tf:"-"` + + // Port customization, which is supported only by Redis 4.0 and Redis 5.0 instances. + // Redis instance defaults to 6379. Memcached instance does not use this argument. + // +kubebuilder:validation:Optional + Port *float64 `json:"port,omitempty" tf:"port,omitempty"` + + // The IP address of the DCS instance, + // which can only be the currently available IP address the selected subnet. + // You can specify an available IP for the Redis instance (except for the Redis Cluster type). + // If omitted, the system will automatically allocate an available IP address to the Redis instance. + // Changing this creates a new instance resource. + // +kubebuilder:validation:Optional + PrivateIP *string `json:"privateIp,omitempty" tf:"private_ip,omitempty"` + + // Critical command renaming, which is supported only by Redis 4.0 and + // Redis 5.0 instances but not by Redis 3.0 instance. + // The valid commands that can be renamed are: command, keys, flushdb, flushall and hgetall. + // +kubebuilder:validation:Optional + RenameCommands map[string]*string `json:"renameCommands,omitempty" tf:"rename_commands,omitempty"` + + // Specifies IP addresses to retain. Mandatory during cluster scale-in. If this + // parameter is not set, the system randomly deletes unnecessary shards. + // +kubebuilder:validation:Optional + ReservedIps []*string `json:"reservedIps,omitempty" tf:"reserved_ips,omitempty"` + + // Specifies whether to enable the SSL. Value options: true, false. + // +kubebuilder:validation:Optional + SSLEnable *bool `json:"sslEnable,omitempty" tf:"ssl_enable,omitempty"` + + // The ID of the security group which the instance belongs to. + // This parameter is mandatory for Memcached and Redis 3.0 version. + // +kubebuilder:validation:Optional + SecurityGroupID *string `json:"securityGroupId,omitempty" tf:"security_group_id,omitempty"` + + // The ID of subnet which the instance belongs to. + // Changing this creates a new instance resource. + // +kubebuilder:validation:Optional + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // The key/value pairs to associate with the dcs instance. + // +kubebuilder:validation:Optional + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The Parameter Template ID. + // Changing this creates a new instance resource. + // +kubebuilder:validation:Optional + TemplateID *string `json:"templateId,omitempty" tf:"template_id,omitempty"` + + // The ID of VPC which the instance belongs to. + // Changing this creates a new instance resource. + // +kubebuilder:validation:Optional + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` + + // Specifies the IP addresses which can access the instance. + // This parameter is valid for Redis 4.0 and 5.0 versions. The structure is described below. + // +kubebuilder:validation:Optional + Whitelist []InstanceV2WhitelistParameters `json:"whitelist,omitempty" tf:"whitelist,omitempty"` +} + +type InstanceV2WhitelistInitParameters struct { + + // Specifies the name of IP address group. + GroupName *string `json:"groupName,omitempty" tf:"group_name,omitempty"` + + // Specifies the list of IP address or CIDR which can be whitelisted for an instance. + // The maximum is 20. + IPList []*string `json:"ipList,omitempty" tf:"ip_list,omitempty"` +} + +type InstanceV2WhitelistObservation struct { + + // Specifies the name of IP address group. + GroupName *string `json:"groupName,omitempty" tf:"group_name,omitempty"` + + // Specifies the list of IP address or CIDR which can be whitelisted for an instance. + // The maximum is 20. + IPList []*string `json:"ipList,omitempty" tf:"ip_list,omitempty"` +} + +type InstanceV2WhitelistParameters struct { + + // Specifies the name of IP address group. + // +kubebuilder:validation:Optional + GroupName *string `json:"groupName" tf:"group_name,omitempty"` + + // Specifies the list of IP address or CIDR which can be whitelisted for an instance. + // The maximum is 20. + // +kubebuilder:validation:Optional + IPList []*string `json:"ipList" tf:"ip_list,omitempty"` +} + +type ParametersInitParameters struct { + + // Specifies the ID of the configuration item. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Specifies the name of the configuration item. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the value of the configuration item. + Value *string `json:"value,omitempty" tf:"value,omitempty"` +} + +type ParametersObservation struct { + + // Specifies the ID of the configuration item. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Specifies the name of the configuration item. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the value of the configuration item. + Value *string `json:"value,omitempty" tf:"value,omitempty"` +} + +type ParametersParameters struct { + + // Specifies the ID of the configuration item. + // +kubebuilder:validation:Optional + ID *string `json:"id" tf:"id,omitempty"` + + // Specifies the name of the configuration item. + // +kubebuilder:validation:Optional + Name *string `json:"name" tf:"name,omitempty"` + + // Specifies the value of the configuration item. + // +kubebuilder:validation:Optional + Value *string `json:"value" tf:"value,omitempty"` +} + +// InstanceV2Spec defines the desired state of InstanceV2 +type InstanceV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider InstanceV2Parameters `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 InstanceV2InitParameters `json:"initProvider,omitempty"` +} + +// InstanceV2Status defines the observed state of InstanceV2. +type InstanceV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider InstanceV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// InstanceV2 is the Schema for the InstanceV2s API. Manages a DCS Instance v2 resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type InstanceV2 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.capacity) || (has(self.initProvider) && has(self.initProvider.capacity))",message="spec.forProvider.capacity is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.engine) || (has(self.initProvider) && has(self.initProvider.engine))",message="spec.forProvider.engine is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.flavor) || (has(self.initProvider) && has(self.initProvider.flavor))",message="spec.forProvider.flavor is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name 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" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.vpcId) || (has(self.initProvider) && has(self.initProvider.vpcId))",message="spec.forProvider.vpcId is a required parameter" + Spec InstanceV2Spec `json:"spec"` + Status InstanceV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// InstanceV2List contains a list of InstanceV2s +type InstanceV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []InstanceV2 `json:"items"` +} + +// Repository type metadata. +var ( + InstanceV2_Kind = "InstanceV2" + InstanceV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: InstanceV2_Kind}.String() + InstanceV2_KindAPIVersion = InstanceV2_Kind + "." + CRDGroupVersion.String() + InstanceV2_GroupVersionKind = CRDGroupVersion.WithKind(InstanceV2_Kind) +) + +func init() { + SchemeBuilder.Register(&InstanceV2{}, &InstanceV2List{}) +} diff --git a/apis/dds/v1alpha1/zz_generated.deepcopy.go b/apis/dds/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..29cd29e --- /dev/null +++ b/apis/dds/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,796 @@ +//go:build !ignore_autogenerated + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by controller-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + 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 *BackupStrategyInitParameters) DeepCopyInto(out *BackupStrategyInitParameters) { + *out = *in + if in.KeepDays != nil { + in, out := &in.KeepDays, &out.KeepDays + *out = new(float64) + **out = **in + } + if in.StartTime != nil { + in, out := &in.StartTime, &out.StartTime + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupStrategyInitParameters. +func (in *BackupStrategyInitParameters) DeepCopy() *BackupStrategyInitParameters { + if in == nil { + return nil + } + out := new(BackupStrategyInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BackupStrategyObservation) DeepCopyInto(out *BackupStrategyObservation) { + *out = *in + if in.KeepDays != nil { + in, out := &in.KeepDays, &out.KeepDays + *out = new(float64) + **out = **in + } + if in.StartTime != nil { + in, out := &in.StartTime, &out.StartTime + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupStrategyObservation. +func (in *BackupStrategyObservation) DeepCopy() *BackupStrategyObservation { + if in == nil { + return nil + } + out := new(BackupStrategyObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BackupStrategyParameters) DeepCopyInto(out *BackupStrategyParameters) { + *out = *in + if in.KeepDays != nil { + in, out := &in.KeepDays, &out.KeepDays + *out = new(float64) + **out = **in + } + if in.StartTime != nil { + in, out := &in.StartTime, &out.StartTime + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupStrategyParameters. +func (in *BackupStrategyParameters) DeepCopy() *BackupStrategyParameters { + if in == nil { + return nil + } + out := new(BackupStrategyParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DatastoreInitParameters) DeepCopyInto(out *DatastoreInitParameters) { + *out = *in + if in.StorageEngine != nil { + in, out := &in.StorageEngine, &out.StorageEngine + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.Version != nil { + in, out := &in.Version, &out.Version + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatastoreInitParameters. +func (in *DatastoreInitParameters) DeepCopy() *DatastoreInitParameters { + if in == nil { + return nil + } + out := new(DatastoreInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DatastoreObservation) DeepCopyInto(out *DatastoreObservation) { + *out = *in + if in.StorageEngine != nil { + in, out := &in.StorageEngine, &out.StorageEngine + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.Version != nil { + in, out := &in.Version, &out.Version + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatastoreObservation. +func (in *DatastoreObservation) DeepCopy() *DatastoreObservation { + if in == nil { + return nil + } + out := new(DatastoreObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DatastoreParameters) DeepCopyInto(out *DatastoreParameters) { + *out = *in + if in.StorageEngine != nil { + in, out := &in.StorageEngine, &out.StorageEngine + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.Version != nil { + in, out := &in.Version, &out.Version + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatastoreParameters. +func (in *DatastoreParameters) DeepCopy() *DatastoreParameters { + if in == nil { + return nil + } + out := new(DatastoreParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FlavorInitParameters) DeepCopyInto(out *FlavorInitParameters) { + *out = *in + if in.Num != nil { + in, out := &in.Num, &out.Num + *out = new(float64) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } + if in.SpecCode != nil { + in, out := &in.SpecCode, &out.SpecCode + *out = new(string) + **out = **in + } + if in.Storage != nil { + in, out := &in.Storage, &out.Storage + *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 FlavorInitParameters. +func (in *FlavorInitParameters) DeepCopy() *FlavorInitParameters { + if in == nil { + return nil + } + out := new(FlavorInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FlavorObservation) DeepCopyInto(out *FlavorObservation) { + *out = *in + if in.Num != nil { + in, out := &in.Num, &out.Num + *out = new(float64) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } + if in.SpecCode != nil { + in, out := &in.SpecCode, &out.SpecCode + *out = new(string) + **out = **in + } + if in.Storage != nil { + in, out := &in.Storage, &out.Storage + *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 FlavorObservation. +func (in *FlavorObservation) DeepCopy() *FlavorObservation { + if in == nil { + return nil + } + out := new(FlavorObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FlavorParameters) DeepCopyInto(out *FlavorParameters) { + *out = *in + if in.Num != nil { + in, out := &in.Num, &out.Num + *out = new(float64) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } + if in.SpecCode != nil { + in, out := &in.SpecCode, &out.SpecCode + *out = new(string) + **out = **in + } + if in.Storage != nil { + in, out := &in.Storage, &out.Storage + *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 FlavorParameters. +func (in *FlavorParameters) DeepCopy() *FlavorParameters { + if in == nil { + return nil + } + out := new(FlavorParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV3) DeepCopyInto(out *InstanceV3) { + *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 InstanceV3. +func (in *InstanceV3) DeepCopy() *InstanceV3 { + if in == nil { + return nil + } + out := new(InstanceV3) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *InstanceV3) 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 *InstanceV3InitParameters) DeepCopyInto(out *InstanceV3InitParameters) { + *out = *in + if in.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *out = new(string) + **out = **in + } + if in.BackupStrategy != nil { + in, out := &in.BackupStrategy, &out.BackupStrategy + *out = make([]BackupStrategyInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Datastore != nil { + in, out := &in.Datastore, &out.Datastore + *out = make([]DatastoreInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.DiskEncryptionID != nil { + in, out := &in.DiskEncryptionID, &out.DiskEncryptionID + *out = new(string) + **out = **in + } + if in.Flavor != nil { + in, out := &in.Flavor, &out.Flavor + *out = make([]FlavorInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Mode != nil { + in, out := &in.Mode, &out.Mode + *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.SSL != nil { + in, out := &in.SSL, &out.SSL + *out = new(bool) + **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) + **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.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV3InitParameters. +func (in *InstanceV3InitParameters) DeepCopy() *InstanceV3InitParameters { + if in == nil { + return nil + } + out := new(InstanceV3InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV3List) DeepCopyInto(out *InstanceV3List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]InstanceV3, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV3List. +func (in *InstanceV3List) DeepCopy() *InstanceV3List { + if in == nil { + return nil + } + out := new(InstanceV3List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *InstanceV3List) 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 *InstanceV3Observation) DeepCopyInto(out *InstanceV3Observation) { + *out = *in + if in.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *out = new(string) + **out = **in + } + if in.BackupStrategy != nil { + in, out := &in.BackupStrategy, &out.BackupStrategy + *out = make([]BackupStrategyObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.DBUsername != nil { + in, out := &in.DBUsername, &out.DBUsername + *out = new(string) + **out = **in + } + if in.Datastore != nil { + in, out := &in.Datastore, &out.Datastore + *out = make([]DatastoreObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.DiskEncryptionID != nil { + in, out := &in.DiskEncryptionID, &out.DiskEncryptionID + *out = new(string) + **out = **in + } + if in.Flavor != nil { + in, out := &in.Flavor, &out.Flavor + *out = make([]FlavorObservation, 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.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Nodes != nil { + in, out := &in.Nodes, &out.Nodes + *out = make([]NodesObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.PayMode != nil { + in, out := &in.PayMode, &out.PayMode + *out = new(string) + **out = **in + } + if in.Port != nil { + in, out := &in.Port, &out.Port + *out = new(float64) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.SSL != nil { + in, out := &in.SSL, &out.SSL + *out = new(bool) + **out = **in + } + if in.SecurityGroupID != nil { + in, out := &in.SecurityGroupID, &out.SecurityGroupID + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *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.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV3Observation. +func (in *InstanceV3Observation) DeepCopy() *InstanceV3Observation { + if in == nil { + return nil + } + out := new(InstanceV3Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV3Parameters) DeepCopyInto(out *InstanceV3Parameters) { + *out = *in + if in.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *out = new(string) + **out = **in + } + if in.BackupStrategy != nil { + in, out := &in.BackupStrategy, &out.BackupStrategy + *out = make([]BackupStrategyParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Datastore != nil { + in, out := &in.Datastore, &out.Datastore + *out = make([]DatastoreParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.DiskEncryptionID != nil { + in, out := &in.DiskEncryptionID, &out.DiskEncryptionID + *out = new(string) + **out = **in + } + if in.Flavor != nil { + in, out := &in.Flavor, &out.Flavor + *out = make([]FlavorParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + out.PasswordSecretRef = in.PasswordSecretRef + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.SSL != nil { + in, out := &in.SSL, &out.SSL + *out = new(bool) + **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) + **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.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV3Parameters. +func (in *InstanceV3Parameters) DeepCopy() *InstanceV3Parameters { + if in == nil { + return nil + } + out := new(InstanceV3Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV3Spec) DeepCopyInto(out *InstanceV3Spec) { + *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 InstanceV3Spec. +func (in *InstanceV3Spec) DeepCopy() *InstanceV3Spec { + if in == nil { + return nil + } + out := new(InstanceV3Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV3Status) DeepCopyInto(out *InstanceV3Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV3Status. +func (in *InstanceV3Status) DeepCopy() *InstanceV3Status { + if in == nil { + return nil + } + out := new(InstanceV3Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodesInitParameters) DeepCopyInto(out *NodesInitParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodesInitParameters. +func (in *NodesInitParameters) DeepCopy() *NodesInitParameters { + if in == nil { + return nil + } + out := new(NodesInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodesObservation) DeepCopyInto(out *NodesObservation) { + *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.PrivateIP != nil { + in, out := &in.PrivateIP, &out.PrivateIP + *out = new(string) + **out = **in + } + if in.PublicIP != nil { + in, out := &in.PublicIP, &out.PublicIP + *out = new(string) + **out = **in + } + if in.Role != nil { + in, out := &in.Role, &out.Role + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *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 NodesObservation. +func (in *NodesObservation) DeepCopy() *NodesObservation { + if in == nil { + return nil + } + out := new(NodesObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodesParameters) DeepCopyInto(out *NodesParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodesParameters. +func (in *NodesParameters) DeepCopy() *NodesParameters { + if in == nil { + return nil + } + out := new(NodesParameters) + in.DeepCopyInto(out) + return out +} diff --git a/apis/dds/v1alpha1/zz_generated.managed.go b/apis/dds/v1alpha1/zz_generated.managed.go new file mode 100644 index 0000000..5a0c274 --- /dev/null +++ b/apis/dds/v1alpha1/zz_generated.managed.go @@ -0,0 +1,68 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import xpv1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + +// GetCondition of this InstanceV3. +func (mg *InstanceV3) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this InstanceV3. +func (mg *InstanceV3) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this InstanceV3. +func (mg *InstanceV3) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this InstanceV3. +func (mg *InstanceV3) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this InstanceV3. +func (mg *InstanceV3) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this InstanceV3. +func (mg *InstanceV3) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this InstanceV3. +func (mg *InstanceV3) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this InstanceV3. +func (mg *InstanceV3) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this InstanceV3. +func (mg *InstanceV3) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this InstanceV3. +func (mg *InstanceV3) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this InstanceV3. +func (mg *InstanceV3) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this InstanceV3. +func (mg *InstanceV3) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} diff --git a/apis/dds/v1alpha1/zz_generated.managedlist.go b/apis/dds/v1alpha1/zz_generated.managedlist.go new file mode 100644 index 0000000..114ba05 --- /dev/null +++ b/apis/dds/v1alpha1/zz_generated.managedlist.go @@ -0,0 +1,17 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import resource "github.com/crossplane/crossplane-runtime/pkg/resource" + +// GetItems of this InstanceV3List. +func (l *InstanceV3List) 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/dds/v1alpha1/zz_generated_terraformed.go b/apis/dds/v1alpha1/zz_generated_terraformed.go new file mode 100755 index 0000000..46dc2ba --- /dev/null +++ b/apis/dds/v1alpha1/zz_generated_terraformed.go @@ -0,0 +1,102 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "github.com/pkg/errors" + + "github.com/crossplane/upjet/pkg/resource" + "github.com/crossplane/upjet/pkg/resource/json" +) + +// GetTerraformResourceType returns Terraform resource type for this InstanceV3 +func (mg *InstanceV3) GetTerraformResourceType() string { + return "opentelekomcloud_dds_instance_v3" +} + +// GetConnectionDetailsMapping for this InstanceV3 +func (tr *InstanceV3) GetConnectionDetailsMapping() map[string]string { + return map[string]string{"password": "spec.forProvider.passwordSecretRef"} +} + +// GetObservation of this InstanceV3 +func (tr *InstanceV3) 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 InstanceV3 +func (tr *InstanceV3) 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 InstanceV3 +func (tr *InstanceV3) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this InstanceV3 +func (tr *InstanceV3) 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 InstanceV3 +func (tr *InstanceV3) 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 InstanceV3 +func (tr *InstanceV3) 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) +} + +// LateInitialize this InstanceV3 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *InstanceV3) LateInitialize(attrs []byte) (bool, error) { + params := &InstanceV3Parameters{} + 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 *InstanceV3) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/dds/v1alpha1/zz_groupversion_info.go b/apis/dds/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..6f5933e --- /dev/null +++ b/apis/dds/v1alpha1/zz_groupversion_info.go @@ -0,0 +1,36 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +// +kubebuilder:object:generate=true +// +groupName=dds.crossplane.io +// +versionName=v1alpha1 +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +// Package type metadata. +const ( + CRDGroup = "dds.crossplane.io" + CRDVersion = "v1alpha1" +) + +var ( + // CRDGroupVersion is the API Group Version used to register the objects + CRDGroupVersion = schema.GroupVersion{Group: CRDGroup, Version: CRDVersion} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme + SchemeBuilder = &scheme.Builder{GroupVersion: CRDGroupVersion} + + // AddToScheme adds the types in this group-version to the given scheme. + AddToScheme = SchemeBuilder.AddToScheme +) diff --git a/apis/dds/v1alpha1/zz_instancev3_types.go b/apis/dds/v1alpha1/zz_instancev3_types.go new file mode 100755 index 0000000..d15d658 --- /dev/null +++ b/apis/dds/v1alpha1/zz_instancev3_types.go @@ -0,0 +1,458 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 BackupStrategyInitParameters struct { + + // Specifies the number of days to retain the generated backup files. The + // value range is from 0 to 732. + KeepDays *float64 `json:"keepDays,omitempty" tf:"keep_days,omitempty"` + + // Specifies the backup time window. Automated backups will be triggered + // during the backup time window. The value cannot be empty. It must be a valid value in the + // "hh:mm-HH:MM" format. The current time is in the UTC format. + StartTime *string `json:"startTime,omitempty" tf:"start_time,omitempty"` +} + +type BackupStrategyObservation struct { + + // Specifies the number of days to retain the generated backup files. The + // value range is from 0 to 732. + KeepDays *float64 `json:"keepDays,omitempty" tf:"keep_days,omitempty"` + + // Specifies the backup time window. Automated backups will be triggered + // during the backup time window. The value cannot be empty. It must be a valid value in the + // "hh:mm-HH:MM" format. The current time is in the UTC format. + StartTime *string `json:"startTime,omitempty" tf:"start_time,omitempty"` +} + +type BackupStrategyParameters struct { + + // Specifies the number of days to retain the generated backup files. The + // value range is from 0 to 732. + // +kubebuilder:validation:Optional + KeepDays *float64 `json:"keepDays" tf:"keep_days,omitempty"` + + // Specifies the backup time window. Automated backups will be triggered + // during the backup time window. The value cannot be empty. It must be a valid value in the + // "hh:mm-HH:MM" format. The current time is in the UTC format. + // +kubebuilder:validation:Optional + StartTime *string `json:"startTime" tf:"start_time,omitempty"` +} + +type DatastoreInitParameters struct { + + // Specifies the storage engine. Currently, DDS supports the WiredTiger and RocksDB + // storage engine. The values are wiredTiger, rocksDB. + // WiredTiger engine supports versions 3.2, 3.4, 4.0 while RocksDB supports versions 4.2, 4.4 + StorageEngine *string `json:"storageEngine,omitempty" tf:"storage_engine,omitempty"` + + // Specifies the database type. DDS Community Edition is supported. + // The value is DDS-Community. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Specifies the database version. + // The values are 3.2, 3.4, 4.0, 4.2, 4.4. + Version *string `json:"version,omitempty" tf:"version,omitempty"` +} + +type DatastoreObservation struct { + + // Specifies the storage engine. Currently, DDS supports the WiredTiger and RocksDB + // storage engine. The values are wiredTiger, rocksDB. + // WiredTiger engine supports versions 3.2, 3.4, 4.0 while RocksDB supports versions 4.2, 4.4 + StorageEngine *string `json:"storageEngine,omitempty" tf:"storage_engine,omitempty"` + + // Specifies the database type. DDS Community Edition is supported. + // The value is DDS-Community. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Specifies the database version. + // The values are 3.2, 3.4, 4.0, 4.2, 4.4. + Version *string `json:"version,omitempty" tf:"version,omitempty"` +} + +type DatastoreParameters struct { + + // Specifies the storage engine. Currently, DDS supports the WiredTiger and RocksDB + // storage engine. The values are wiredTiger, rocksDB. + // WiredTiger engine supports versions 3.2, 3.4, 4.0 while RocksDB supports versions 4.2, 4.4 + // +kubebuilder:validation:Optional + StorageEngine *string `json:"storageEngine,omitempty" tf:"storage_engine,omitempty"` + + // Specifies the database type. DDS Community Edition is supported. + // The value is DDS-Community. + // +kubebuilder:validation:Optional + Type *string `json:"type" tf:"type,omitempty"` + + // Specifies the database version. + // The values are 3.2, 3.4, 4.0, 4.2, 4.4. + // +kubebuilder:validation:Optional + Version *string `json:"version" tf:"version,omitempty"` +} + +type FlavorInitParameters struct { + + // Specifies the node quantity. Valid value: + Num *float64 `json:"num,omitempty" tf:"num,omitempty"` + + // Specifies the disk size. The value must be a multiple of 10. The unit is GB. + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // Specifies the resource specification code. + SpecCode *string `json:"specCode,omitempty" tf:"spec_code,omitempty"` + + // Specifies the disk type. Valid value: ULTRAHIGH which indicates the type SSD. + Storage *string `json:"storage,omitempty" tf:"storage,omitempty"` + + // Specifies the node type. Valid value: + Type *string `json:"type,omitempty" tf:"type,omitempty"` +} + +type FlavorObservation struct { + + // Specifies the node quantity. Valid value: + Num *float64 `json:"num,omitempty" tf:"num,omitempty"` + + // Specifies the disk size. The value must be a multiple of 10. The unit is GB. + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // Specifies the resource specification code. + SpecCode *string `json:"specCode,omitempty" tf:"spec_code,omitempty"` + + // Specifies the disk type. Valid value: ULTRAHIGH which indicates the type SSD. + Storage *string `json:"storage,omitempty" tf:"storage,omitempty"` + + // Specifies the node type. Valid value: + Type *string `json:"type,omitempty" tf:"type,omitempty"` +} + +type FlavorParameters struct { + + // Specifies the node quantity. Valid value: + // +kubebuilder:validation:Optional + Num *float64 `json:"num" tf:"num,omitempty"` + + // Specifies the disk size. The value must be a multiple of 10. The unit is GB. + // +kubebuilder:validation:Optional + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // Specifies the resource specification code. + // +kubebuilder:validation:Optional + SpecCode *string `json:"specCode" tf:"spec_code,omitempty"` + + // Specifies the disk type. Valid value: ULTRAHIGH which indicates the type SSD. + // +kubebuilder:validation:Optional + Storage *string `json:"storage,omitempty" tf:"storage,omitempty"` + + // Specifies the node type. Valid value: + // +kubebuilder:validation:Optional + Type *string `json:"type" tf:"type,omitempty"` +} + +type InstanceV3InitParameters struct { + + // Specifies the ID of the availability zone. Changing + // this creates a new instance. + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // Specifies the advanced backup policy. The structure is + // described below. Changing this creates a new instance. + BackupStrategy []BackupStrategyInitParameters `json:"backupStrategy,omitempty" tf:"backup_strategy,omitempty"` + + // Specifies database information. The structure is described + // below. Changing this creates a new instance. + Datastore []DatastoreInitParameters `json:"datastore,omitempty" tf:"datastore,omitempty"` + + // Specifies the disk encryption ID of the instance. + // Changing this creates a new instance. + DiskEncryptionID *string `json:"diskEncryptionId,omitempty" tf:"disk_encryption_id,omitempty"` + + // Specifies the flavors information. The structure is described below. + // Changing this creates a new instance. + Flavor []FlavorInitParameters `json:"flavor,omitempty" tf:"flavor,omitempty"` + + // Specifies the mode of the database instance. Changing this creates + // a new instance. + Mode *string `json:"mode,omitempty" tf:"mode,omitempty"` + + // Specifies the DB instance name. The DB instance name of the same + // type is unique in the same tenant. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the region of the DDS instance. Changing this creates + // a new instance. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Specifies whether to enable or disable SSL. Defaults to true. + // -> The instance will be restarted in the background when switching SSL. Please operate with caution. + SSL *bool `json:"ssl,omitempty" tf:"ssl,omitempty"` + + // Specifies the security group ID of the DDS instance. + SecurityGroupID *string `json:"securityGroupId,omitempty" tf:"security_group_id,omitempty"` + + // Specifies the subnet Network ID. Changing this creates a new instance. + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // Tags key/value pairs to associate with the volume. + // Changing this updates the existing volume tags. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Specifies the VPC ID. Changing this creates a new instance. + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +} + +type InstanceV3Observation struct { + + // Specifies the ID of the availability zone. Changing + // this creates a new instance. + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // Specifies the advanced backup policy. The structure is + // described below. Changing this creates a new instance. + BackupStrategy []BackupStrategyObservation `json:"backupStrategy,omitempty" tf:"backup_strategy,omitempty"` + + // Indicates the DB Administator name. + DBUsername *string `json:"dbUsername,omitempty" tf:"db_username,omitempty"` + + // Specifies database information. The structure is described + // below. Changing this creates a new instance. + Datastore []DatastoreObservation `json:"datastore,omitempty" tf:"datastore,omitempty"` + + // Specifies the disk encryption ID of the instance. + // Changing this creates a new instance. + DiskEncryptionID *string `json:"diskEncryptionId,omitempty" tf:"disk_encryption_id,omitempty"` + + // Specifies the flavors information. The structure is described below. + // Changing this creates a new instance. + Flavor []FlavorObservation `json:"flavor,omitempty" tf:"flavor,omitempty"` + + // Indicates the node ID. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Specifies the mode of the database instance. Changing this creates + // a new instance. + Mode *string `json:"mode,omitempty" tf:"mode,omitempty"` + + // Specifies the DB instance name. The DB instance name of the same + // type is unique in the same tenant. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Indicates the instance nodes information. Structure is documented below. + Nodes []NodesObservation `json:"nodes,omitempty" tf:"nodes,omitempty"` + + // Indicates the billing mode. 0: indicates the pay-per-use billing mode. + PayMode *string `json:"payMode,omitempty" tf:"pay_mode,omitempty"` + + // Indicates the database port number. The port range is 2100 to 9500. + Port *float64 `json:"port,omitempty" tf:"port,omitempty"` + + // Specifies the region of the DDS instance. Changing this creates + // a new instance. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Specifies whether to enable or disable SSL. Defaults to true. + // -> The instance will be restarted in the background when switching SSL. Please operate with caution. + SSL *bool `json:"ssl,omitempty" tf:"ssl,omitempty"` + + // Specifies the security group ID of the DDS instance. + SecurityGroupID *string `json:"securityGroupId,omitempty" tf:"security_group_id,omitempty"` + + // Indicates the the DB instance status. + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + // Specifies the subnet Network ID. Changing this creates a new instance. + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // Tags key/value pairs to associate with the volume. + // Changing this updates the existing volume tags. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Specifies the VPC ID. Changing this creates a new instance. + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +} + +type InstanceV3Parameters struct { + + // Specifies the ID of the availability zone. Changing + // this creates a new instance. + // +kubebuilder:validation:Optional + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // Specifies the advanced backup policy. The structure is + // described below. Changing this creates a new instance. + // +kubebuilder:validation:Optional + BackupStrategy []BackupStrategyParameters `json:"backupStrategy,omitempty" tf:"backup_strategy,omitempty"` + + // Specifies database information. The structure is described + // below. Changing this creates a new instance. + // +kubebuilder:validation:Optional + Datastore []DatastoreParameters `json:"datastore,omitempty" tf:"datastore,omitempty"` + + // Specifies the disk encryption ID of the instance. + // Changing this creates a new instance. + // +kubebuilder:validation:Optional + DiskEncryptionID *string `json:"diskEncryptionId,omitempty" tf:"disk_encryption_id,omitempty"` + + // Specifies the flavors information. The structure is described below. + // Changing this creates a new instance. + // +kubebuilder:validation:Optional + Flavor []FlavorParameters `json:"flavor,omitempty" tf:"flavor,omitempty"` + + // Specifies the mode of the database instance. Changing this creates + // a new instance. + // +kubebuilder:validation:Optional + Mode *string `json:"mode,omitempty" tf:"mode,omitempty"` + + // Specifies the DB instance name. The DB instance name of the same + // type is unique in the same tenant. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the Administrator password of the database instance. + // +kubebuilder:validation:Optional + PasswordSecretRef v1.SecretKeySelector `json:"passwordSecretRef" tf:"-"` + + // Specifies the region of the DDS instance. Changing this creates + // a new instance. + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Specifies whether to enable or disable SSL. Defaults to true. + // -> The instance will be restarted in the background when switching SSL. Please operate with caution. + // +kubebuilder:validation:Optional + SSL *bool `json:"ssl,omitempty" tf:"ssl,omitempty"` + + // Specifies the security group ID of the DDS instance. + // +kubebuilder:validation:Optional + SecurityGroupID *string `json:"securityGroupId,omitempty" tf:"security_group_id,omitempty"` + + // Specifies the subnet Network ID. Changing this creates a new instance. + // +kubebuilder:validation:Optional + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // Tags key/value pairs to associate with the volume. + // Changing this updates the existing volume tags. + // +kubebuilder:validation:Optional + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Specifies the VPC ID. Changing this creates a new instance. + // +kubebuilder:validation:Optional + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +} + +type NodesInitParameters struct { +} + +type NodesObservation struct { + + // Indicates the node ID. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Indicates the node name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Indicates the private IP address of a node. This parameter is valid only for + // mongos nodes, replica set instances. + PrivateIP *string `json:"privateIp,omitempty" tf:"private_ip,omitempty"` + + // Indicates the EIP that has been bound on a node. This parameter is valid only for + // mongos nodes of cluster instances, primary nodes and secondary nodes of replica set instances. + PublicIP *string `json:"publicIp,omitempty" tf:"public_ip,omitempty"` + + // Indicates the node role. + Role *string `json:"role,omitempty" tf:"role,omitempty"` + + // Indicates the node status. + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + // Indicates the node type. + Type *string `json:"type,omitempty" tf:"type,omitempty"` +} + +type NodesParameters struct { +} + +// InstanceV3Spec defines the desired state of InstanceV3 +type InstanceV3Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider InstanceV3Parameters `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 InstanceV3InitParameters `json:"initProvider,omitempty"` +} + +// InstanceV3Status defines the observed state of InstanceV3. +type InstanceV3Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider InstanceV3Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// InstanceV3 is the Schema for the InstanceV3s API. Manages a DDS Instance resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type InstanceV3 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.availabilityZone) || (has(self.initProvider) && has(self.initProvider.availabilityZone))",message="spec.forProvider.availabilityZone is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.datastore) || (has(self.initProvider) && has(self.initProvider.datastore))",message="spec.forProvider.datastore is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.flavor) || (has(self.initProvider) && has(self.initProvider.flavor))",message="spec.forProvider.flavor is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.mode) || (has(self.initProvider) && has(self.initProvider.mode))",message="spec.forProvider.mode is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.passwordSecretRef)",message="spec.forProvider.passwordSecretRef is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.securityGroupId) || (has(self.initProvider) && has(self.initProvider.securityGroupId))",message="spec.forProvider.securityGroupId 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" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.vpcId) || (has(self.initProvider) && has(self.initProvider.vpcId))",message="spec.forProvider.vpcId is a required parameter" + Spec InstanceV3Spec `json:"spec"` + Status InstanceV3Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// InstanceV3List contains a list of InstanceV3s +type InstanceV3List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []InstanceV3 `json:"items"` +} + +// Repository type metadata. +var ( + InstanceV3_Kind = "InstanceV3" + InstanceV3_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: InstanceV3_Kind}.String() + InstanceV3_KindAPIVersion = InstanceV3_Kind + "." + CRDGroupVersion.String() + InstanceV3_GroupVersionKind = CRDGroupVersion.WithKind(InstanceV3_Kind) +) + +func init() { + SchemeBuilder.Register(&InstanceV3{}, &InstanceV3List{}) +} diff --git a/apis/deh/v1alpha1/zz_generated.deepcopy.go b/apis/deh/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..d3f2519 --- /dev/null +++ b/apis/deh/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,467 @@ +//go:build !ignore_autogenerated + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by controller-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + 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 *AvailableInstanceCapacitiesInitParameters) DeepCopyInto(out *AvailableInstanceCapacitiesInitParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AvailableInstanceCapacitiesInitParameters. +func (in *AvailableInstanceCapacitiesInitParameters) DeepCopy() *AvailableInstanceCapacitiesInitParameters { + if in == nil { + return nil + } + out := new(AvailableInstanceCapacitiesInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AvailableInstanceCapacitiesObservation) DeepCopyInto(out *AvailableInstanceCapacitiesObservation) { + *out = *in + if in.Flavor != nil { + in, out := &in.Flavor, &out.Flavor + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AvailableInstanceCapacitiesObservation. +func (in *AvailableInstanceCapacitiesObservation) DeepCopy() *AvailableInstanceCapacitiesObservation { + if in == nil { + return nil + } + out := new(AvailableInstanceCapacitiesObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AvailableInstanceCapacitiesParameters) DeepCopyInto(out *AvailableInstanceCapacitiesParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AvailableInstanceCapacitiesParameters. +func (in *AvailableInstanceCapacitiesParameters) DeepCopy() *AvailableInstanceCapacitiesParameters { + if in == nil { + return nil + } + out := new(AvailableInstanceCapacitiesParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *HostV1) DeepCopyInto(out *HostV1) { + *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 HostV1. +func (in *HostV1) DeepCopy() *HostV1 { + if in == nil { + return nil + } + out := new(HostV1) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *HostV1) 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 *HostV1InitParameters) DeepCopyInto(out *HostV1InitParameters) { + *out = *in + if in.AutoPlacement != nil { + in, out := &in.AutoPlacement, &out.AutoPlacement + *out = new(string) + **out = **in + } + if in.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *out = new(string) + **out = **in + } + if in.AvailableInstanceCapacities != nil { + in, out := &in.AvailableInstanceCapacities, &out.AvailableInstanceCapacities + *out = make([]AvailableInstanceCapacitiesInitParameters, len(*in)) + copy(*out, *in) + } + if in.AvailableMemory != nil { + in, out := &in.AvailableMemory, &out.AvailableMemory + *out = new(float64) + **out = **in + } + if in.AvailableVcpus != nil { + in, out := &in.AvailableVcpus, &out.AvailableVcpus + *out = new(float64) + **out = **in + } + if in.Cores != nil { + in, out := &in.Cores, &out.Cores + *out = new(float64) + **out = **in + } + if in.HostType != nil { + in, out := &in.HostType, &out.HostType + *out = new(string) + **out = **in + } + if in.HostTypeName != nil { + in, out := &in.HostTypeName, &out.HostTypeName + *out = new(string) + **out = **in + } + if in.InstanceTotal != nil { + in, out := &in.InstanceTotal, &out.InstanceTotal + *out = new(float64) + **out = **in + } + if in.InstanceUuids != nil { + in, out := &in.InstanceUuids, &out.InstanceUuids + *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.Memory != nil { + in, out := &in.Memory, &out.Memory + *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 + *out = new(string) + **out = **in + } + if in.Sockets != nil { + in, out := &in.Sockets, &out.Sockets + *out = new(float64) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(string) + **out = **in + } + if in.Vcpus != nil { + in, out := &in.Vcpus, &out.Vcpus + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostV1InitParameters. +func (in *HostV1InitParameters) DeepCopy() *HostV1InitParameters { + if in == nil { + return nil + } + out := new(HostV1InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *HostV1List) DeepCopyInto(out *HostV1List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]HostV1, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostV1List. +func (in *HostV1List) DeepCopy() *HostV1List { + if in == nil { + return nil + } + out := new(HostV1List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *HostV1List) 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 *HostV1Observation) DeepCopyInto(out *HostV1Observation) { + *out = *in + if in.AutoPlacement != nil { + in, out := &in.AutoPlacement, &out.AutoPlacement + *out = new(string) + **out = **in + } + if in.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *out = new(string) + **out = **in + } + if in.AvailableInstanceCapacities != nil { + in, out := &in.AvailableInstanceCapacities, &out.AvailableInstanceCapacities + *out = make([]AvailableInstanceCapacitiesObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.AvailableMemory != nil { + in, out := &in.AvailableMemory, &out.AvailableMemory + *out = new(float64) + **out = **in + } + if in.AvailableVcpus != nil { + in, out := &in.AvailableVcpus, &out.AvailableVcpus + *out = new(float64) + **out = **in + } + if in.Cores != nil { + in, out := &in.Cores, &out.Cores + *out = new(float64) + **out = **in + } + if in.HostType != nil { + in, out := &in.HostType, &out.HostType + *out = new(string) + **out = **in + } + if in.HostTypeName != nil { + in, out := &in.HostTypeName, &out.HostTypeName + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.InstanceTotal != nil { + in, out := &in.InstanceTotal, &out.InstanceTotal + *out = new(float64) + **out = **in + } + if in.InstanceUuids != nil { + in, out := &in.InstanceUuids, &out.InstanceUuids + *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.Memory != nil { + in, out := &in.Memory, &out.Memory + *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 + *out = new(string) + **out = **in + } + if in.Sockets != nil { + in, out := &in.Sockets, &out.Sockets + *out = new(float64) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(string) + **out = **in + } + if in.Vcpus != nil { + in, out := &in.Vcpus, &out.Vcpus + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostV1Observation. +func (in *HostV1Observation) DeepCopy() *HostV1Observation { + if in == nil { + return nil + } + out := new(HostV1Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *HostV1Parameters) DeepCopyInto(out *HostV1Parameters) { + *out = *in + if in.AutoPlacement != nil { + in, out := &in.AutoPlacement, &out.AutoPlacement + *out = new(string) + **out = **in + } + if in.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *out = new(string) + **out = **in + } + if in.AvailableInstanceCapacities != nil { + in, out := &in.AvailableInstanceCapacities, &out.AvailableInstanceCapacities + *out = make([]AvailableInstanceCapacitiesParameters, len(*in)) + copy(*out, *in) + } + if in.AvailableMemory != nil { + in, out := &in.AvailableMemory, &out.AvailableMemory + *out = new(float64) + **out = **in + } + if in.AvailableVcpus != nil { + in, out := &in.AvailableVcpus, &out.AvailableVcpus + *out = new(float64) + **out = **in + } + if in.Cores != nil { + in, out := &in.Cores, &out.Cores + *out = new(float64) + **out = **in + } + if in.HostType != nil { + in, out := &in.HostType, &out.HostType + *out = new(string) + **out = **in + } + if in.HostTypeName != nil { + in, out := &in.HostTypeName, &out.HostTypeName + *out = new(string) + **out = **in + } + if in.InstanceTotal != nil { + in, out := &in.InstanceTotal, &out.InstanceTotal + *out = new(float64) + **out = **in + } + if in.InstanceUuids != nil { + in, out := &in.InstanceUuids, &out.InstanceUuids + *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.Memory != nil { + in, out := &in.Memory, &out.Memory + *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 + *out = new(string) + **out = **in + } + if in.Sockets != nil { + in, out := &in.Sockets, &out.Sockets + *out = new(float64) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(string) + **out = **in + } + if in.Vcpus != nil { + in, out := &in.Vcpus, &out.Vcpus + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostV1Parameters. +func (in *HostV1Parameters) DeepCopy() *HostV1Parameters { + if in == nil { + return nil + } + out := new(HostV1Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *HostV1Spec) DeepCopyInto(out *HostV1Spec) { + *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 HostV1Spec. +func (in *HostV1Spec) DeepCopy() *HostV1Spec { + if in == nil { + return nil + } + out := new(HostV1Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *HostV1Status) DeepCopyInto(out *HostV1Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostV1Status. +func (in *HostV1Status) DeepCopy() *HostV1Status { + if in == nil { + return nil + } + out := new(HostV1Status) + in.DeepCopyInto(out) + return out +} diff --git a/apis/deh/v1alpha1/zz_generated.managed.go b/apis/deh/v1alpha1/zz_generated.managed.go new file mode 100644 index 0000000..16f8cbc --- /dev/null +++ b/apis/deh/v1alpha1/zz_generated.managed.go @@ -0,0 +1,68 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import xpv1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + +// GetCondition of this HostV1. +func (mg *HostV1) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this HostV1. +func (mg *HostV1) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this HostV1. +func (mg *HostV1) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this HostV1. +func (mg *HostV1) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this HostV1. +func (mg *HostV1) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this HostV1. +func (mg *HostV1) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this HostV1. +func (mg *HostV1) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this HostV1. +func (mg *HostV1) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this HostV1. +func (mg *HostV1) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this HostV1. +func (mg *HostV1) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this HostV1. +func (mg *HostV1) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this HostV1. +func (mg *HostV1) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} diff --git a/apis/deh/v1alpha1/zz_generated.managedlist.go b/apis/deh/v1alpha1/zz_generated.managedlist.go new file mode 100644 index 0000000..e7cc1ce --- /dev/null +++ b/apis/deh/v1alpha1/zz_generated.managedlist.go @@ -0,0 +1,17 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import resource "github.com/crossplane/crossplane-runtime/pkg/resource" + +// GetItems of this HostV1List. +func (l *HostV1List) 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/deh/v1alpha1/zz_generated_terraformed.go b/apis/deh/v1alpha1/zz_generated_terraformed.go new file mode 100755 index 0000000..400ed41 --- /dev/null +++ b/apis/deh/v1alpha1/zz_generated_terraformed.go @@ -0,0 +1,102 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "github.com/pkg/errors" + + "github.com/crossplane/upjet/pkg/resource" + "github.com/crossplane/upjet/pkg/resource/json" +) + +// GetTerraformResourceType returns Terraform resource type for this HostV1 +func (mg *HostV1) GetTerraformResourceType() string { + return "opentelekomcloud_deh_host_v1" +} + +// GetConnectionDetailsMapping for this HostV1 +func (tr *HostV1) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this HostV1 +func (tr *HostV1) 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 HostV1 +func (tr *HostV1) 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 HostV1 +func (tr *HostV1) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this HostV1 +func (tr *HostV1) 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 HostV1 +func (tr *HostV1) 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 HostV1 +func (tr *HostV1) 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) +} + +// LateInitialize this HostV1 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *HostV1) LateInitialize(attrs []byte) (bool, error) { + params := &HostV1Parameters{} + 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 *HostV1) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/deh/v1alpha1/zz_groupversion_info.go b/apis/deh/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..31e8d47 --- /dev/null +++ b/apis/deh/v1alpha1/zz_groupversion_info.go @@ -0,0 +1,36 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +// +kubebuilder:object:generate=true +// +groupName=deh.crossplane.io +// +versionName=v1alpha1 +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +// Package type metadata. +const ( + CRDGroup = "deh.crossplane.io" + CRDVersion = "v1alpha1" +) + +var ( + // CRDGroupVersion is the API Group Version used to register the objects + CRDGroupVersion = schema.GroupVersion{Group: CRDGroup, Version: CRDVersion} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme + SchemeBuilder = &scheme.Builder{GroupVersion: CRDGroupVersion} + + // AddToScheme adds the types in this group-version to the given scheme. + AddToScheme = SchemeBuilder.AddToScheme +) diff --git a/apis/deh/v1alpha1/zz_hostv1_types.go b/apis/deh/v1alpha1/zz_hostv1_types.go new file mode 100755 index 0000000..4309d09 --- /dev/null +++ b/apis/deh/v1alpha1/zz_hostv1_types.go @@ -0,0 +1,259 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 AvailableInstanceCapacitiesInitParameters struct { +} + +type AvailableInstanceCapacitiesObservation struct { + Flavor *string `json:"flavor,omitempty" tf:"flavor,omitempty"` +} + +type AvailableInstanceCapacitiesParameters struct { +} + +type HostV1InitParameters struct { + + // Allows a instance to be automatically placed onto the available Dedicated Hosts. The default value is on. + AutoPlacement *string `json:"autoPlacement,omitempty" tf:"auto_placement,omitempty"` + + // The Availability Zone to which the Dedicated Host belongs. Changing this parameter creates a new resource. + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // The VM flavors placed on the Dedicated Host. + AvailableInstanceCapacities []AvailableInstanceCapacitiesInitParameters `json:"availableInstanceCapacities,omitempty" tf:"available_instance_capacities,omitempty"` + + // The size of available memory for the Dedicated Host. + AvailableMemory *float64 `json:"availableMemory,omitempty" tf:"available_memory,omitempty"` + + // The number of available vCPUs for the Dedicated Host. + AvailableVcpus *float64 `json:"availableVcpus,omitempty" tf:"available_vcpus,omitempty"` + + // The number of host physical cores. + Cores *float64 `json:"cores,omitempty" tf:"cores,omitempty"` + + // The Dedicated Host type. Expected values are h1, general and d1. Changing this parameter creates a new resource. + HostType *string `json:"hostType,omitempty" tf:"host_type,omitempty"` + + // The name of the Dedicated Host type. + HostTypeName *string `json:"hostTypeName,omitempty" tf:"host_type_name,omitempty"` + + // The number of the placed VMs. + InstanceTotal *float64 `json:"instanceTotal,omitempty" tf:"instance_total,omitempty"` + + // The VMs started on the Dedicated Host. + InstanceUuids []*string `json:"instanceUuids,omitempty" tf:"instance_uuids,omitempty"` + + // The size of host physical memory (MB). + Memory *float64 `json:"memory,omitempty" tf:"memory,omitempty"` + + // The name of the Dedicated Host. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The number of host physical sockets. + Sockets *float64 `json:"sockets,omitempty" tf:"sockets,omitempty"` + + // Specifies the Dedicated Host status. + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + // The number of host vCPUs. + Vcpus *float64 `json:"vcpus,omitempty" tf:"vcpus,omitempty"` +} + +type HostV1Observation struct { + + // Allows a instance to be automatically placed onto the available Dedicated Hosts. The default value is on. + AutoPlacement *string `json:"autoPlacement,omitempty" tf:"auto_placement,omitempty"` + + // The Availability Zone to which the Dedicated Host belongs. Changing this parameter creates a new resource. + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // The VM flavors placed on the Dedicated Host. + AvailableInstanceCapacities []AvailableInstanceCapacitiesObservation `json:"availableInstanceCapacities,omitempty" tf:"available_instance_capacities,omitempty"` + + // The size of available memory for the Dedicated Host. + AvailableMemory *float64 `json:"availableMemory,omitempty" tf:"available_memory,omitempty"` + + // The number of available vCPUs for the Dedicated Host. + AvailableVcpus *float64 `json:"availableVcpus,omitempty" tf:"available_vcpus,omitempty"` + + // The number of host physical cores. + Cores *float64 `json:"cores,omitempty" tf:"cores,omitempty"` + + // The Dedicated Host type. Expected values are h1, general and d1. Changing this parameter creates a new resource. + HostType *string `json:"hostType,omitempty" tf:"host_type,omitempty"` + + // The name of the Dedicated Host type. + HostTypeName *string `json:"hostTypeName,omitempty" tf:"host_type_name,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The number of the placed VMs. + InstanceTotal *float64 `json:"instanceTotal,omitempty" tf:"instance_total,omitempty"` + + // The VMs started on the Dedicated Host. + InstanceUuids []*string `json:"instanceUuids,omitempty" tf:"instance_uuids,omitempty"` + + // The size of host physical memory (MB). + Memory *float64 `json:"memory,omitempty" tf:"memory,omitempty"` + + // The name of the Dedicated Host. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The number of host physical sockets. + Sockets *float64 `json:"sockets,omitempty" tf:"sockets,omitempty"` + + // Specifies the Dedicated Host status. + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + // The number of host vCPUs. + Vcpus *float64 `json:"vcpus,omitempty" tf:"vcpus,omitempty"` +} + +type HostV1Parameters struct { + + // Allows a instance to be automatically placed onto the available Dedicated Hosts. The default value is on. + // +kubebuilder:validation:Optional + AutoPlacement *string `json:"autoPlacement,omitempty" tf:"auto_placement,omitempty"` + + // The Availability Zone to which the Dedicated Host belongs. Changing this parameter creates a new resource. + // +kubebuilder:validation:Optional + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // The VM flavors placed on the Dedicated Host. + // +kubebuilder:validation:Optional + AvailableInstanceCapacities []AvailableInstanceCapacitiesParameters `json:"availableInstanceCapacities,omitempty" tf:"available_instance_capacities,omitempty"` + + // The size of available memory for the Dedicated Host. + // +kubebuilder:validation:Optional + AvailableMemory *float64 `json:"availableMemory,omitempty" tf:"available_memory,omitempty"` + + // The number of available vCPUs for the Dedicated Host. + // +kubebuilder:validation:Optional + AvailableVcpus *float64 `json:"availableVcpus,omitempty" tf:"available_vcpus,omitempty"` + + // The number of host physical cores. + // +kubebuilder:validation:Optional + Cores *float64 `json:"cores,omitempty" tf:"cores,omitempty"` + + // The Dedicated Host type. Expected values are h1, general and d1. Changing this parameter creates a new resource. + // +kubebuilder:validation:Optional + HostType *string `json:"hostType,omitempty" tf:"host_type,omitempty"` + + // The name of the Dedicated Host type. + // +kubebuilder:validation:Optional + HostTypeName *string `json:"hostTypeName,omitempty" tf:"host_type_name,omitempty"` + + // The number of the placed VMs. + // +kubebuilder:validation:Optional + InstanceTotal *float64 `json:"instanceTotal,omitempty" tf:"instance_total,omitempty"` + + // The VMs started on the Dedicated Host. + // +kubebuilder:validation:Optional + InstanceUuids []*string `json:"instanceUuids,omitempty" tf:"instance_uuids,omitempty"` + + // The size of host physical memory (MB). + // +kubebuilder:validation:Optional + Memory *float64 `json:"memory,omitempty" tf:"memory,omitempty"` + + // The name of the Dedicated Host. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The number of host physical sockets. + // +kubebuilder:validation:Optional + Sockets *float64 `json:"sockets,omitempty" tf:"sockets,omitempty"` + + // Specifies the Dedicated Host status. + // +kubebuilder:validation:Optional + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + // The number of host vCPUs. + // +kubebuilder:validation:Optional + Vcpus *float64 `json:"vcpus,omitempty" tf:"vcpus,omitempty"` +} + +// HostV1Spec defines the desired state of HostV1 +type HostV1Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider HostV1Parameters `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 HostV1InitParameters `json:"initProvider,omitempty"` +} + +// HostV1Status defines the observed state of HostV1. +type HostV1Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider HostV1Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// HostV1 is the Schema for the HostV1s API. Manages a DEH Host resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type HostV1 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.availabilityZone) || (has(self.initProvider) && has(self.initProvider.availabilityZone))",message="spec.forProvider.availabilityZone is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.hostType) || (has(self.initProvider) && has(self.initProvider.hostType))",message="spec.forProvider.hostType is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + Spec HostV1Spec `json:"spec"` + Status HostV1Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// HostV1List contains a list of HostV1s +type HostV1List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []HostV1 `json:"items"` +} + +// Repository type metadata. +var ( + HostV1_Kind = "HostV1" + HostV1_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: HostV1_Kind}.String() + HostV1_KindAPIVersion = HostV1_Kind + "." + CRDGroupVersion.String() + HostV1_GroupVersionKind = CRDGroupVersion.WithKind(HostV1_Kind) +) + +func init() { + SchemeBuilder.Register(&HostV1{}, &HostV1List{}) +} diff --git a/apis/dis/v1alpha1/zz_appv2_types.go b/apis/dis/v1alpha1/zz_appv2_types.go new file mode 100755 index 0000000..d600456 --- /dev/null +++ b/apis/dis/v1alpha1/zz_appv2_types.go @@ -0,0 +1,140 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 AppV2InitParameters struct { + + // Name of the consumer application to be created + // The application name contains 1 to 200 characters. Only letters, digits, hyphens (-), and underscores (_) are allowed. + Name *string `json:"name,omitempty" tf:"name,omitempty"` +} + +type AppV2Observation struct { + + // List of associated streams. + CommitCheckpointStreamNames []*string `json:"commitCheckpointStreamNames,omitempty" tf:"commit_checkpoint_stream_names,omitempty"` + + // Time when the app is created. The value is a timestamp. + Created *float64 `json:"created,omitempty" tf:"created,omitempty"` + + // Unique identifier of the app. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Name of the consumer application to be created + // The application name contains 1 to 200 characters. Only letters, digits, hyphens (-), and underscores (_) are allowed. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Associated partitions details. + PartitionConsumingStates []PartitionConsumingStatesObservation `json:"partitionConsumingStates,omitempty" tf:"partition_consuming_states,omitempty"` +} + +type AppV2Parameters struct { + + // Name of the consumer application to be created + // The application name contains 1 to 200 characters. Only letters, digits, hyphens (-), and underscores (_) are allowed. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` +} + +type PartitionConsumingStatesInitParameters struct { +} + +type PartitionConsumingStatesObservation struct { + + // : Type of the checkpoint. + CheckpointType *string `json:"checkpointType,omitempty" tf:"checkpoint_type,omitempty"` + + // : Partition data earliest offset + EarliestOffset *float64 `json:"earliestOffset,omitempty" tf:"earliest_offset,omitempty"` + + // Unique identifier of the app. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // : Partition data latest offset + LatestOffset *float64 `json:"latestOffset,omitempty" tf:"latest_offset,omitempty"` + + // : Partition Sequence Number + SequenceNumber *string `json:"sequenceNumber,omitempty" tf:"sequence_number,omitempty"` + + // : Partition Status, can be: + Status *string `json:"status,omitempty" tf:"status,omitempty"` +} + +type PartitionConsumingStatesParameters struct { +} + +// AppV2Spec defines the desired state of AppV2 +type AppV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider AppV2Parameters `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 AppV2InitParameters `json:"initProvider,omitempty"` +} + +// AppV2Status defines the observed state of AppV2. +type AppV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider AppV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// AppV2 is the Schema for the AppV2s API. Manages a DIS App resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type AppV2 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.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + Spec AppV2Spec `json:"spec"` + Status AppV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// AppV2List contains a list of AppV2s +type AppV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []AppV2 `json:"items"` +} + +// Repository type metadata. +var ( + AppV2_Kind = "AppV2" + AppV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: AppV2_Kind}.String() + AppV2_KindAPIVersion = AppV2_Kind + "." + CRDGroupVersion.String() + AppV2_GroupVersionKind = CRDGroupVersion.WithKind(AppV2_Kind) +) + +func init() { + SchemeBuilder.Register(&AppV2{}, &AppV2List{}) +} diff --git a/apis/dis/v1alpha1/zz_checkpointv2_types.go b/apis/dis/v1alpha1/zz_checkpointv2_types.go new file mode 100755 index 0000000..131100e --- /dev/null +++ b/apis/dis/v1alpha1/zz_checkpointv2_types.go @@ -0,0 +1,168 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 CheckpointV2InitParameters struct { + + // Name of the consumer application to be created + // The application name contains 1 to 200 characters. Only letters, digits, hyphens (-), and underscores (_) are allowed. + AppName *string `json:"appName,omitempty" tf:"app_name,omitempty"` + + // Type of the checkpoint. LAST_READ: Only sequence numbers are recorded in databases. + // Default value: LAST_READ + CheckpointType *string `json:"checkpointType,omitempty" tf:"checkpoint_type,omitempty"` + + // Metadata information of the consumer application. + // Maximum length: 1000 + Metadata *string `json:"metadata,omitempty" tf:"metadata,omitempty"` + + // Partition ID of the stream The value can be in either of the following formats: + PartitionID *string `json:"partitionId,omitempty" tf:"partition_id,omitempty"` + + // Sequence number to be submitted, which is used to record the consumption + // checkpoint of the stream. Ensure that the sequence number is within the valid range. + SequenceNumber *string `json:"sequenceNumber,omitempty" tf:"sequence_number,omitempty"` + + // Name of the stream. The stream name can contain 1 to 64 characters, + // including letters, digits, underscores (_), and hyphens (-). + StreamName *string `json:"streamName,omitempty" tf:"stream_name,omitempty"` +} + +type CheckpointV2Observation struct { + + // Name of the consumer application to be created + // The application name contains 1 to 200 characters. Only letters, digits, hyphens (-), and underscores (_) are allowed. + AppName *string `json:"appName,omitempty" tf:"app_name,omitempty"` + + // Type of the checkpoint. LAST_READ: Only sequence numbers are recorded in databases. + // Default value: LAST_READ + CheckpointType *string `json:"checkpointType,omitempty" tf:"checkpoint_type,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Metadata information of the consumer application. + // Maximum length: 1000 + Metadata *string `json:"metadata,omitempty" tf:"metadata,omitempty"` + + // Partition ID of the stream The value can be in either of the following formats: + PartitionID *string `json:"partitionId,omitempty" tf:"partition_id,omitempty"` + + // Sequence number to be submitted, which is used to record the consumption + // checkpoint of the stream. Ensure that the sequence number is within the valid range. + SequenceNumber *string `json:"sequenceNumber,omitempty" tf:"sequence_number,omitempty"` + + // Name of the stream. The stream name can contain 1 to 64 characters, + // including letters, digits, underscores (_), and hyphens (-). + StreamName *string `json:"streamName,omitempty" tf:"stream_name,omitempty"` +} + +type CheckpointV2Parameters struct { + + // Name of the consumer application to be created + // The application name contains 1 to 200 characters. Only letters, digits, hyphens (-), and underscores (_) are allowed. + // +kubebuilder:validation:Optional + AppName *string `json:"appName,omitempty" tf:"app_name,omitempty"` + + // Type of the checkpoint. LAST_READ: Only sequence numbers are recorded in databases. + // Default value: LAST_READ + // +kubebuilder:validation:Optional + CheckpointType *string `json:"checkpointType,omitempty" tf:"checkpoint_type,omitempty"` + + // Metadata information of the consumer application. + // Maximum length: 1000 + // +kubebuilder:validation:Optional + Metadata *string `json:"metadata,omitempty" tf:"metadata,omitempty"` + + // Partition ID of the stream The value can be in either of the following formats: + // +kubebuilder:validation:Optional + PartitionID *string `json:"partitionId,omitempty" tf:"partition_id,omitempty"` + + // Sequence number to be submitted, which is used to record the consumption + // checkpoint of the stream. Ensure that the sequence number is within the valid range. + // +kubebuilder:validation:Optional + SequenceNumber *string `json:"sequenceNumber,omitempty" tf:"sequence_number,omitempty"` + + // Name of the stream. The stream name can contain 1 to 64 characters, + // including letters, digits, underscores (_), and hyphens (-). + // +kubebuilder:validation:Optional + StreamName *string `json:"streamName,omitempty" tf:"stream_name,omitempty"` +} + +// CheckpointV2Spec defines the desired state of CheckpointV2 +type CheckpointV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider CheckpointV2Parameters `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 CheckpointV2InitParameters `json:"initProvider,omitempty"` +} + +// CheckpointV2Status defines the observed state of CheckpointV2. +type CheckpointV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider CheckpointV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// CheckpointV2 is the Schema for the CheckpointV2s API. Manages a DIS Checkpoint resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type CheckpointV2 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.appName) || (has(self.initProvider) && has(self.initProvider.appName))",message="spec.forProvider.appName is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.partitionId) || (has(self.initProvider) && has(self.initProvider.partitionId))",message="spec.forProvider.partitionId is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.sequenceNumber) || (has(self.initProvider) && has(self.initProvider.sequenceNumber))",message="spec.forProvider.sequenceNumber is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.streamName) || (has(self.initProvider) && has(self.initProvider.streamName))",message="spec.forProvider.streamName is a required parameter" + Spec CheckpointV2Spec `json:"spec"` + Status CheckpointV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// CheckpointV2List contains a list of CheckpointV2s +type CheckpointV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []CheckpointV2 `json:"items"` +} + +// Repository type metadata. +var ( + CheckpointV2_Kind = "CheckpointV2" + CheckpointV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: CheckpointV2_Kind}.String() + CheckpointV2_KindAPIVersion = CheckpointV2_Kind + "." + CRDGroupVersion.String() + CheckpointV2_GroupVersionKind = CRDGroupVersion.WithKind(CheckpointV2_Kind) +) + +func init() { + SchemeBuilder.Register(&CheckpointV2{}, &CheckpointV2List{}) +} diff --git a/apis/dis/v1alpha1/zz_dumptaskv2_types.go b/apis/dis/v1alpha1/zz_dumptaskv2_types.go new file mode 100755 index 0000000..ac75550 --- /dev/null +++ b/apis/dis/v1alpha1/zz_dumptaskv2_types.go @@ -0,0 +1,360 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 DumpTaskV2InitParameters struct { + + // Dump task operation. The value can only be start or stop. + Action *string `json:"action,omitempty" tf:"action,omitempty"` + + // Dump destination. Possible values: + // OBS: Data is dumped to OBS. + Destination *string `json:"destination,omitempty" tf:"destination,omitempty"` + + // Parameter list of OBS to which data in the DIS stream will be dumped. + ObsDestinationDescriptor []ObsDestinationDescriptorInitParameters `json:"obsDestinationDescriptor,omitempty" tf:"obs_destination_descriptor,omitempty"` + + // Dump time directory generated based on the timestamp + // of the source data and the configured partition_format. + // Directory structure of the object file written into OBS. + // The directory structure is in the format of yyyy/MM/dd/HH/mm. + ObsProcessingSchema []ObsProcessingSchemaInitParameters `json:"obsProcessingSchema,omitempty" tf:"obs_processing_schema,omitempty"` + + // Name of the stream. + StreamName *string `json:"streamName,omitempty" tf:"stream_name,omitempty"` +} + +type DumpTaskV2Observation struct { + + // Dump task operation. The value can only be start or stop. + Action *string `json:"action,omitempty" tf:"action,omitempty"` + + // Time when the dump task is created. + CreatedAt *float64 `json:"createdAt,omitempty" tf:"created_at,omitempty"` + + // Dump destination. Possible values: + // OBS: Data is dumped to OBS. + Destination *string `json:"destination,omitempty" tf:"destination,omitempty"` + + // : Unique identifier of the partition. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Latest dump time of the dump task. + LastTransferTimestamp *float64 `json:"lastTransferTimestamp,omitempty" tf:"last_transfer_timestamp,omitempty"` + + // Name of the dump task. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Parameter list of OBS to which data in the DIS stream will be dumped. + ObsDestinationDescriptor []ObsDestinationDescriptorObservation `json:"obsDestinationDescriptor,omitempty" tf:"obs_destination_descriptor,omitempty"` + + // Dump time directory generated based on the timestamp + // of the source data and the configured partition_format. + // Directory structure of the object file written into OBS. + // The directory structure is in the format of yyyy/MM/dd/HH/mm. + ObsProcessingSchema []ObsProcessingSchemaObservation `json:"obsProcessingSchema,omitempty" tf:"obs_processing_schema,omitempty"` + + // List of partition dump details. + Partitions []PartitionsObservation `json:"partitions,omitempty" tf:"partitions,omitempty"` + + // Current status of the stream, can be: + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + // Name of the stream. + StreamName *string `json:"streamName,omitempty" tf:"stream_name,omitempty"` + + // ID of the dump task. + TaskID *string `json:"taskId,omitempty" tf:"task_id,omitempty"` +} + +type DumpTaskV2Parameters struct { + + // Dump task operation. The value can only be start or stop. + // +kubebuilder:validation:Optional + Action *string `json:"action,omitempty" tf:"action,omitempty"` + + // Dump destination. Possible values: + // OBS: Data is dumped to OBS. + // +kubebuilder:validation:Optional + Destination *string `json:"destination,omitempty" tf:"destination,omitempty"` + + // Parameter list of OBS to which data in the DIS stream will be dumped. + // +kubebuilder:validation:Optional + ObsDestinationDescriptor []ObsDestinationDescriptorParameters `json:"obsDestinationDescriptor,omitempty" tf:"obs_destination_descriptor,omitempty"` + + // Dump time directory generated based on the timestamp + // of the source data and the configured partition_format. + // Directory structure of the object file written into OBS. + // The directory structure is in the format of yyyy/MM/dd/HH/mm. + // +kubebuilder:validation:Optional + ObsProcessingSchema []ObsProcessingSchemaParameters `json:"obsProcessingSchema,omitempty" tf:"obs_processing_schema,omitempty"` + + // Name of the stream. + // +kubebuilder:validation:Optional + StreamName *string `json:"streamName,omitempty" tf:"stream_name,omitempty"` +} + +type ObsDestinationDescriptorInitParameters struct { + + // Name of the agency created on IAM. DIS uses an agency to access your specified resources. + // The parameters for creating an agency are as follows: + AgencyName *string `json:"agencyName,omitempty" tf:"agency_name,omitempty"` + + // Offset. + // LATEST: Maximum offset, indicating that the latest data will be extracted. + // TRIM_HORIZON: Minimum offset, indicating that the earliest data will be extracted. + ConsumerStrategy *string `json:"consumerStrategy,omitempty" tf:"consumer_strategy,omitempty"` + + // User-defined interval at which data is imported from the current DIS stream into OBS. + // If no data is pushed to the DIS stream during the current interval, no dump file package will be generated. Value range: 30-900. + DeliverTimeInterval *float64 `json:"deliverTimeInterval,omitempty" tf:"deliver_time_interval,omitempty"` + + // Dump file format. Possible values: text + DestinationFileType *string `json:"destinationFileType,omitempty" tf:"destination_file_type,omitempty"` + + // Directory to store files that will be dumped to OBS. + // Different directory levels are separated by slashes (/) and cannot start with slashes. + FilePrefix *string `json:"filePrefix,omitempty" tf:"file_prefix,omitempty"` + + // Name of the OBS bucket used to store data from the DIS stream. + ObsBucketPath *string `json:"obsBucketPath,omitempty" tf:"obs_bucket_path,omitempty"` + + // Directory structure of the object file written into OBS. + // The directory structure is in the format of yyyy/MM/dd/HH/mm (time at which the dump task was created). + // Possible values: + PartitionFormat *string `json:"partitionFormat,omitempty" tf:"partition_format,omitempty"` + + // Delimiter for the dump file, which is used to separate the user data that is written into the dump file. + RecordDelimiter *string `json:"recordDelimiter,omitempty" tf:"record_delimiter,omitempty"` + + // Name of the dump task. The task name consists of letters, digits, hyphens (-), and underscores (_). It must be a string of 1 to 64 characters. + TaskName *string `json:"taskName,omitempty" tf:"task_name,omitempty"` +} + +type ObsDestinationDescriptorObservation struct { + + // Name of the agency created on IAM. DIS uses an agency to access your specified resources. + // The parameters for creating an agency are as follows: + AgencyName *string `json:"agencyName,omitempty" tf:"agency_name,omitempty"` + + // Offset. + // LATEST: Maximum offset, indicating that the latest data will be extracted. + // TRIM_HORIZON: Minimum offset, indicating that the earliest data will be extracted. + ConsumerStrategy *string `json:"consumerStrategy,omitempty" tf:"consumer_strategy,omitempty"` + + // User-defined interval at which data is imported from the current DIS stream into OBS. + // If no data is pushed to the DIS stream during the current interval, no dump file package will be generated. Value range: 30-900. + DeliverTimeInterval *float64 `json:"deliverTimeInterval,omitempty" tf:"deliver_time_interval,omitempty"` + + // Dump file format. Possible values: text + DestinationFileType *string `json:"destinationFileType,omitempty" tf:"destination_file_type,omitempty"` + + // Directory to store files that will be dumped to OBS. + // Different directory levels are separated by slashes (/) and cannot start with slashes. + FilePrefix *string `json:"filePrefix,omitempty" tf:"file_prefix,omitempty"` + + // Name of the OBS bucket used to store data from the DIS stream. + ObsBucketPath *string `json:"obsBucketPath,omitempty" tf:"obs_bucket_path,omitempty"` + + // Directory structure of the object file written into OBS. + // The directory structure is in the format of yyyy/MM/dd/HH/mm (time at which the dump task was created). + // Possible values: + PartitionFormat *string `json:"partitionFormat,omitempty" tf:"partition_format,omitempty"` + + // Delimiter for the dump file, which is used to separate the user data that is written into the dump file. + RecordDelimiter *string `json:"recordDelimiter,omitempty" tf:"record_delimiter,omitempty"` + + // Name of the dump task. The task name consists of letters, digits, hyphens (-), and underscores (_). It must be a string of 1 to 64 characters. + TaskName *string `json:"taskName,omitempty" tf:"task_name,omitempty"` +} + +type ObsDestinationDescriptorParameters struct { + + // Name of the agency created on IAM. DIS uses an agency to access your specified resources. + // The parameters for creating an agency are as follows: + // +kubebuilder:validation:Optional + AgencyName *string `json:"agencyName" tf:"agency_name,omitempty"` + + // Offset. + // LATEST: Maximum offset, indicating that the latest data will be extracted. + // TRIM_HORIZON: Minimum offset, indicating that the earliest data will be extracted. + // +kubebuilder:validation:Optional + ConsumerStrategy *string `json:"consumerStrategy,omitempty" tf:"consumer_strategy,omitempty"` + + // User-defined interval at which data is imported from the current DIS stream into OBS. + // If no data is pushed to the DIS stream during the current interval, no dump file package will be generated. Value range: 30-900. + // +kubebuilder:validation:Optional + DeliverTimeInterval *float64 `json:"deliverTimeInterval" tf:"deliver_time_interval,omitempty"` + + // Dump file format. Possible values: text + // +kubebuilder:validation:Optional + DestinationFileType *string `json:"destinationFileType,omitempty" tf:"destination_file_type,omitempty"` + + // Directory to store files that will be dumped to OBS. + // Different directory levels are separated by slashes (/) and cannot start with slashes. + // +kubebuilder:validation:Optional + FilePrefix *string `json:"filePrefix,omitempty" tf:"file_prefix,omitempty"` + + // Name of the OBS bucket used to store data from the DIS stream. + // +kubebuilder:validation:Optional + ObsBucketPath *string `json:"obsBucketPath" tf:"obs_bucket_path,omitempty"` + + // Directory structure of the object file written into OBS. + // The directory structure is in the format of yyyy/MM/dd/HH/mm (time at which the dump task was created). + // Possible values: + // +kubebuilder:validation:Optional + PartitionFormat *string `json:"partitionFormat,omitempty" tf:"partition_format,omitempty"` + + // Delimiter for the dump file, which is used to separate the user data that is written into the dump file. + // +kubebuilder:validation:Optional + RecordDelimiter *string `json:"recordDelimiter,omitempty" tf:"record_delimiter,omitempty"` + + // Name of the dump task. The task name consists of letters, digits, hyphens (-), and underscores (_). It must be a string of 1 to 64 characters. + // +kubebuilder:validation:Optional + TaskName *string `json:"taskName" tf:"task_name,omitempty"` +} + +type ObsProcessingSchemaInitParameters struct { + + // OBS directory generated based on the timestamp format. + // This parameter is mandatory when the timestamp type of the source data is String. + TimestampFormat *string `json:"timestampFormat,omitempty" tf:"timestamp_format,omitempty"` + + // Attribute name of the source data timestamp. + TimestampName *string `json:"timestampName,omitempty" tf:"timestamp_name,omitempty"` + + // Type of the source data timestamp. + // Possible values: + TimestampType *string `json:"timestampType,omitempty" tf:"timestamp_type,omitempty"` +} + +type ObsProcessingSchemaObservation struct { + + // OBS directory generated based on the timestamp format. + // This parameter is mandatory when the timestamp type of the source data is String. + TimestampFormat *string `json:"timestampFormat,omitempty" tf:"timestamp_format,omitempty"` + + // Attribute name of the source data timestamp. + TimestampName *string `json:"timestampName,omitempty" tf:"timestamp_name,omitempty"` + + // Type of the source data timestamp. + // Possible values: + TimestampType *string `json:"timestampType,omitempty" tf:"timestamp_type,omitempty"` +} + +type ObsProcessingSchemaParameters struct { + + // OBS directory generated based on the timestamp format. + // This parameter is mandatory when the timestamp type of the source data is String. + // +kubebuilder:validation:Optional + TimestampFormat *string `json:"timestampFormat,omitempty" tf:"timestamp_format,omitempty"` + + // Attribute name of the source data timestamp. + // +kubebuilder:validation:Optional + TimestampName *string `json:"timestampName" tf:"timestamp_name,omitempty"` + + // Type of the source data timestamp. + // Possible values: + // +kubebuilder:validation:Optional + TimestampType *string `json:"timestampType" tf:"timestamp_type,omitempty"` +} + +type PartitionsInitParameters struct { +} + +type PartitionsObservation struct { + + // : Possible value range of the hash key used by the partition. + HashRange *string `json:"hashRange,omitempty" tf:"hash_range,omitempty"` + + // : Unique identifier of the partition. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // : Parent partition. + ParentPartitions *string `json:"parentPartitions,omitempty" tf:"parent_partitions,omitempty"` + + // : Sequence number range of the partition. + SequenceNumberRange *string `json:"sequenceNumberRange,omitempty" tf:"sequence_number_range,omitempty"` + + // Current status of the stream, can be: + Status *string `json:"status,omitempty" tf:"status,omitempty"` +} + +type PartitionsParameters struct { +} + +// DumpTaskV2Spec defines the desired state of DumpTaskV2 +type DumpTaskV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider DumpTaskV2Parameters `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 DumpTaskV2InitParameters `json:"initProvider,omitempty"` +} + +// DumpTaskV2Status defines the observed state of DumpTaskV2. +type DumpTaskV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider DumpTaskV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// DumpTaskV2 is the Schema for the DumpTaskV2s API. Manages a DIS Dump Task resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type DumpTaskV2 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.streamName) || (has(self.initProvider) && has(self.initProvider.streamName))",message="spec.forProvider.streamName is a required parameter" + Spec DumpTaskV2Spec `json:"spec"` + Status DumpTaskV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// DumpTaskV2List contains a list of DumpTaskV2s +type DumpTaskV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []DumpTaskV2 `json:"items"` +} + +// Repository type metadata. +var ( + DumpTaskV2_Kind = "DumpTaskV2" + DumpTaskV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: DumpTaskV2_Kind}.String() + DumpTaskV2_KindAPIVersion = DumpTaskV2_Kind + "." + CRDGroupVersion.String() + DumpTaskV2_GroupVersionKind = CRDGroupVersion.WithKind(DumpTaskV2_Kind) +) + +func init() { + SchemeBuilder.Register(&DumpTaskV2{}, &DumpTaskV2List{}) +} diff --git a/apis/dis/v1alpha1/zz_generated.deepcopy.go b/apis/dis/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..5469c68 --- /dev/null +++ b/apis/dis/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,1521 @@ +//go:build !ignore_autogenerated + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by controller-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + 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 *AppV2) DeepCopyInto(out *AppV2) { + *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 AppV2. +func (in *AppV2) DeepCopy() *AppV2 { + if in == nil { + return nil + } + out := new(AppV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *AppV2) 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 *AppV2InitParameters) DeepCopyInto(out *AppV2InitParameters) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AppV2InitParameters. +func (in *AppV2InitParameters) DeepCopy() *AppV2InitParameters { + if in == nil { + return nil + } + out := new(AppV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AppV2List) DeepCopyInto(out *AppV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]AppV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AppV2List. +func (in *AppV2List) DeepCopy() *AppV2List { + if in == nil { + return nil + } + out := new(AppV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *AppV2List) 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 *AppV2Observation) DeepCopyInto(out *AppV2Observation) { + *out = *in + if in.CommitCheckpointStreamNames != nil { + in, out := &in.CommitCheckpointStreamNames, &out.CommitCheckpointStreamNames + *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.Created != nil { + in, out := &in.Created, &out.Created + *out = new(float64) + **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.PartitionConsumingStates != nil { + in, out := &in.PartitionConsumingStates, &out.PartitionConsumingStates + *out = make([]PartitionConsumingStatesObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AppV2Observation. +func (in *AppV2Observation) DeepCopy() *AppV2Observation { + if in == nil { + return nil + } + out := new(AppV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AppV2Parameters) DeepCopyInto(out *AppV2Parameters) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AppV2Parameters. +func (in *AppV2Parameters) DeepCopy() *AppV2Parameters { + if in == nil { + return nil + } + out := new(AppV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AppV2Spec) DeepCopyInto(out *AppV2Spec) { + *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 AppV2Spec. +func (in *AppV2Spec) DeepCopy() *AppV2Spec { + if in == nil { + return nil + } + out := new(AppV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AppV2Status) DeepCopyInto(out *AppV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AppV2Status. +func (in *AppV2Status) DeepCopy() *AppV2Status { + if in == nil { + return nil + } + out := new(AppV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CheckpointV2) DeepCopyInto(out *CheckpointV2) { + *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 CheckpointV2. +func (in *CheckpointV2) DeepCopy() *CheckpointV2 { + if in == nil { + return nil + } + out := new(CheckpointV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *CheckpointV2) 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 *CheckpointV2InitParameters) DeepCopyInto(out *CheckpointV2InitParameters) { + *out = *in + if in.AppName != nil { + in, out := &in.AppName, &out.AppName + *out = new(string) + **out = **in + } + if in.CheckpointType != nil { + in, out := &in.CheckpointType, &out.CheckpointType + *out = new(string) + **out = **in + } + if in.Metadata != nil { + in, out := &in.Metadata, &out.Metadata + *out = new(string) + **out = **in + } + if in.PartitionID != nil { + in, out := &in.PartitionID, &out.PartitionID + *out = new(string) + **out = **in + } + if in.SequenceNumber != nil { + in, out := &in.SequenceNumber, &out.SequenceNumber + *out = new(string) + **out = **in + } + if in.StreamName != nil { + in, out := &in.StreamName, &out.StreamName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CheckpointV2InitParameters. +func (in *CheckpointV2InitParameters) DeepCopy() *CheckpointV2InitParameters { + if in == nil { + return nil + } + out := new(CheckpointV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CheckpointV2List) DeepCopyInto(out *CheckpointV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]CheckpointV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CheckpointV2List. +func (in *CheckpointV2List) DeepCopy() *CheckpointV2List { + if in == nil { + return nil + } + out := new(CheckpointV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *CheckpointV2List) 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 *CheckpointV2Observation) DeepCopyInto(out *CheckpointV2Observation) { + *out = *in + if in.AppName != nil { + in, out := &in.AppName, &out.AppName + *out = new(string) + **out = **in + } + if in.CheckpointType != nil { + in, out := &in.CheckpointType, &out.CheckpointType + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Metadata != nil { + in, out := &in.Metadata, &out.Metadata + *out = new(string) + **out = **in + } + if in.PartitionID != nil { + in, out := &in.PartitionID, &out.PartitionID + *out = new(string) + **out = **in + } + if in.SequenceNumber != nil { + in, out := &in.SequenceNumber, &out.SequenceNumber + *out = new(string) + **out = **in + } + if in.StreamName != nil { + in, out := &in.StreamName, &out.StreamName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CheckpointV2Observation. +func (in *CheckpointV2Observation) DeepCopy() *CheckpointV2Observation { + if in == nil { + return nil + } + out := new(CheckpointV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CheckpointV2Parameters) DeepCopyInto(out *CheckpointV2Parameters) { + *out = *in + if in.AppName != nil { + in, out := &in.AppName, &out.AppName + *out = new(string) + **out = **in + } + if in.CheckpointType != nil { + in, out := &in.CheckpointType, &out.CheckpointType + *out = new(string) + **out = **in + } + if in.Metadata != nil { + in, out := &in.Metadata, &out.Metadata + *out = new(string) + **out = **in + } + if in.PartitionID != nil { + in, out := &in.PartitionID, &out.PartitionID + *out = new(string) + **out = **in + } + if in.SequenceNumber != nil { + in, out := &in.SequenceNumber, &out.SequenceNumber + *out = new(string) + **out = **in + } + if in.StreamName != nil { + in, out := &in.StreamName, &out.StreamName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CheckpointV2Parameters. +func (in *CheckpointV2Parameters) DeepCopy() *CheckpointV2Parameters { + if in == nil { + return nil + } + out := new(CheckpointV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CheckpointV2Spec) DeepCopyInto(out *CheckpointV2Spec) { + *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 CheckpointV2Spec. +func (in *CheckpointV2Spec) DeepCopy() *CheckpointV2Spec { + if in == nil { + return nil + } + out := new(CheckpointV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CheckpointV2Status) DeepCopyInto(out *CheckpointV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CheckpointV2Status. +func (in *CheckpointV2Status) DeepCopy() *CheckpointV2Status { + if in == nil { + return nil + } + out := new(CheckpointV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DumpTaskV2) DeepCopyInto(out *DumpTaskV2) { + *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 DumpTaskV2. +func (in *DumpTaskV2) DeepCopy() *DumpTaskV2 { + if in == nil { + return nil + } + out := new(DumpTaskV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DumpTaskV2) 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 *DumpTaskV2InitParameters) DeepCopyInto(out *DumpTaskV2InitParameters) { + *out = *in + if in.Action != nil { + in, out := &in.Action, &out.Action + *out = new(string) + **out = **in + } + if in.Destination != nil { + in, out := &in.Destination, &out.Destination + *out = new(string) + **out = **in + } + if in.ObsDestinationDescriptor != nil { + in, out := &in.ObsDestinationDescriptor, &out.ObsDestinationDescriptor + *out = make([]ObsDestinationDescriptorInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ObsProcessingSchema != nil { + in, out := &in.ObsProcessingSchema, &out.ObsProcessingSchema + *out = make([]ObsProcessingSchemaInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.StreamName != nil { + in, out := &in.StreamName, &out.StreamName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DumpTaskV2InitParameters. +func (in *DumpTaskV2InitParameters) DeepCopy() *DumpTaskV2InitParameters { + if in == nil { + return nil + } + out := new(DumpTaskV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DumpTaskV2List) DeepCopyInto(out *DumpTaskV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]DumpTaskV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DumpTaskV2List. +func (in *DumpTaskV2List) DeepCopy() *DumpTaskV2List { + if in == nil { + return nil + } + out := new(DumpTaskV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DumpTaskV2List) 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 *DumpTaskV2Observation) DeepCopyInto(out *DumpTaskV2Observation) { + *out = *in + if in.Action != nil { + in, out := &in.Action, &out.Action + *out = new(string) + **out = **in + } + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt + *out = new(float64) + **out = **in + } + if in.Destination != nil { + in, out := &in.Destination, &out.Destination + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.LastTransferTimestamp != nil { + in, out := &in.LastTransferTimestamp, &out.LastTransferTimestamp + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.ObsDestinationDescriptor != nil { + in, out := &in.ObsDestinationDescriptor, &out.ObsDestinationDescriptor + *out = make([]ObsDestinationDescriptorObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ObsProcessingSchema != nil { + in, out := &in.ObsProcessingSchema, &out.ObsProcessingSchema + *out = make([]ObsProcessingSchemaObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Partitions != nil { + in, out := &in.Partitions, &out.Partitions + *out = make([]PartitionsObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(string) + **out = **in + } + if in.StreamName != nil { + in, out := &in.StreamName, &out.StreamName + *out = new(string) + **out = **in + } + if in.TaskID != nil { + in, out := &in.TaskID, &out.TaskID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DumpTaskV2Observation. +func (in *DumpTaskV2Observation) DeepCopy() *DumpTaskV2Observation { + if in == nil { + return nil + } + out := new(DumpTaskV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DumpTaskV2Parameters) DeepCopyInto(out *DumpTaskV2Parameters) { + *out = *in + if in.Action != nil { + in, out := &in.Action, &out.Action + *out = new(string) + **out = **in + } + if in.Destination != nil { + in, out := &in.Destination, &out.Destination + *out = new(string) + **out = **in + } + if in.ObsDestinationDescriptor != nil { + in, out := &in.ObsDestinationDescriptor, &out.ObsDestinationDescriptor + *out = make([]ObsDestinationDescriptorParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ObsProcessingSchema != nil { + in, out := &in.ObsProcessingSchema, &out.ObsProcessingSchema + *out = make([]ObsProcessingSchemaParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.StreamName != nil { + in, out := &in.StreamName, &out.StreamName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DumpTaskV2Parameters. +func (in *DumpTaskV2Parameters) DeepCopy() *DumpTaskV2Parameters { + if in == nil { + return nil + } + out := new(DumpTaskV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DumpTaskV2Spec) DeepCopyInto(out *DumpTaskV2Spec) { + *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 DumpTaskV2Spec. +func (in *DumpTaskV2Spec) DeepCopy() *DumpTaskV2Spec { + if in == nil { + return nil + } + out := new(DumpTaskV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DumpTaskV2Status) DeepCopyInto(out *DumpTaskV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DumpTaskV2Status. +func (in *DumpTaskV2Status) DeepCopy() *DumpTaskV2Status { + if in == nil { + return nil + } + out := new(DumpTaskV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ObsDestinationDescriptorInitParameters) DeepCopyInto(out *ObsDestinationDescriptorInitParameters) { + *out = *in + if in.AgencyName != nil { + in, out := &in.AgencyName, &out.AgencyName + *out = new(string) + **out = **in + } + if in.ConsumerStrategy != nil { + in, out := &in.ConsumerStrategy, &out.ConsumerStrategy + *out = new(string) + **out = **in + } + if in.DeliverTimeInterval != nil { + in, out := &in.DeliverTimeInterval, &out.DeliverTimeInterval + *out = new(float64) + **out = **in + } + if in.DestinationFileType != nil { + in, out := &in.DestinationFileType, &out.DestinationFileType + *out = new(string) + **out = **in + } + if in.FilePrefix != nil { + in, out := &in.FilePrefix, &out.FilePrefix + *out = new(string) + **out = **in + } + if in.ObsBucketPath != nil { + in, out := &in.ObsBucketPath, &out.ObsBucketPath + *out = new(string) + **out = **in + } + if in.PartitionFormat != nil { + in, out := &in.PartitionFormat, &out.PartitionFormat + *out = new(string) + **out = **in + } + if in.RecordDelimiter != nil { + in, out := &in.RecordDelimiter, &out.RecordDelimiter + *out = new(string) + **out = **in + } + if in.TaskName != nil { + in, out := &in.TaskName, &out.TaskName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObsDestinationDescriptorInitParameters. +func (in *ObsDestinationDescriptorInitParameters) DeepCopy() *ObsDestinationDescriptorInitParameters { + if in == nil { + return nil + } + out := new(ObsDestinationDescriptorInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ObsDestinationDescriptorObservation) DeepCopyInto(out *ObsDestinationDescriptorObservation) { + *out = *in + if in.AgencyName != nil { + in, out := &in.AgencyName, &out.AgencyName + *out = new(string) + **out = **in + } + if in.ConsumerStrategy != nil { + in, out := &in.ConsumerStrategy, &out.ConsumerStrategy + *out = new(string) + **out = **in + } + if in.DeliverTimeInterval != nil { + in, out := &in.DeliverTimeInterval, &out.DeliverTimeInterval + *out = new(float64) + **out = **in + } + if in.DestinationFileType != nil { + in, out := &in.DestinationFileType, &out.DestinationFileType + *out = new(string) + **out = **in + } + if in.FilePrefix != nil { + in, out := &in.FilePrefix, &out.FilePrefix + *out = new(string) + **out = **in + } + if in.ObsBucketPath != nil { + in, out := &in.ObsBucketPath, &out.ObsBucketPath + *out = new(string) + **out = **in + } + if in.PartitionFormat != nil { + in, out := &in.PartitionFormat, &out.PartitionFormat + *out = new(string) + **out = **in + } + if in.RecordDelimiter != nil { + in, out := &in.RecordDelimiter, &out.RecordDelimiter + *out = new(string) + **out = **in + } + if in.TaskName != nil { + in, out := &in.TaskName, &out.TaskName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObsDestinationDescriptorObservation. +func (in *ObsDestinationDescriptorObservation) DeepCopy() *ObsDestinationDescriptorObservation { + if in == nil { + return nil + } + out := new(ObsDestinationDescriptorObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ObsDestinationDescriptorParameters) DeepCopyInto(out *ObsDestinationDescriptorParameters) { + *out = *in + if in.AgencyName != nil { + in, out := &in.AgencyName, &out.AgencyName + *out = new(string) + **out = **in + } + if in.ConsumerStrategy != nil { + in, out := &in.ConsumerStrategy, &out.ConsumerStrategy + *out = new(string) + **out = **in + } + if in.DeliverTimeInterval != nil { + in, out := &in.DeliverTimeInterval, &out.DeliverTimeInterval + *out = new(float64) + **out = **in + } + if in.DestinationFileType != nil { + in, out := &in.DestinationFileType, &out.DestinationFileType + *out = new(string) + **out = **in + } + if in.FilePrefix != nil { + in, out := &in.FilePrefix, &out.FilePrefix + *out = new(string) + **out = **in + } + if in.ObsBucketPath != nil { + in, out := &in.ObsBucketPath, &out.ObsBucketPath + *out = new(string) + **out = **in + } + if in.PartitionFormat != nil { + in, out := &in.PartitionFormat, &out.PartitionFormat + *out = new(string) + **out = **in + } + if in.RecordDelimiter != nil { + in, out := &in.RecordDelimiter, &out.RecordDelimiter + *out = new(string) + **out = **in + } + if in.TaskName != nil { + in, out := &in.TaskName, &out.TaskName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObsDestinationDescriptorParameters. +func (in *ObsDestinationDescriptorParameters) DeepCopy() *ObsDestinationDescriptorParameters { + if in == nil { + return nil + } + out := new(ObsDestinationDescriptorParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ObsProcessingSchemaInitParameters) DeepCopyInto(out *ObsProcessingSchemaInitParameters) { + *out = *in + if in.TimestampFormat != nil { + in, out := &in.TimestampFormat, &out.TimestampFormat + *out = new(string) + **out = **in + } + if in.TimestampName != nil { + in, out := &in.TimestampName, &out.TimestampName + *out = new(string) + **out = **in + } + if in.TimestampType != nil { + in, out := &in.TimestampType, &out.TimestampType + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObsProcessingSchemaInitParameters. +func (in *ObsProcessingSchemaInitParameters) DeepCopy() *ObsProcessingSchemaInitParameters { + if in == nil { + return nil + } + out := new(ObsProcessingSchemaInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ObsProcessingSchemaObservation) DeepCopyInto(out *ObsProcessingSchemaObservation) { + *out = *in + if in.TimestampFormat != nil { + in, out := &in.TimestampFormat, &out.TimestampFormat + *out = new(string) + **out = **in + } + if in.TimestampName != nil { + in, out := &in.TimestampName, &out.TimestampName + *out = new(string) + **out = **in + } + if in.TimestampType != nil { + in, out := &in.TimestampType, &out.TimestampType + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObsProcessingSchemaObservation. +func (in *ObsProcessingSchemaObservation) DeepCopy() *ObsProcessingSchemaObservation { + if in == nil { + return nil + } + out := new(ObsProcessingSchemaObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ObsProcessingSchemaParameters) DeepCopyInto(out *ObsProcessingSchemaParameters) { + *out = *in + if in.TimestampFormat != nil { + in, out := &in.TimestampFormat, &out.TimestampFormat + *out = new(string) + **out = **in + } + if in.TimestampName != nil { + in, out := &in.TimestampName, &out.TimestampName + *out = new(string) + **out = **in + } + if in.TimestampType != nil { + in, out := &in.TimestampType, &out.TimestampType + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ObsProcessingSchemaParameters. +func (in *ObsProcessingSchemaParameters) DeepCopy() *ObsProcessingSchemaParameters { + if in == nil { + return nil + } + out := new(ObsProcessingSchemaParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PartitionConsumingStatesInitParameters) DeepCopyInto(out *PartitionConsumingStatesInitParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PartitionConsumingStatesInitParameters. +func (in *PartitionConsumingStatesInitParameters) DeepCopy() *PartitionConsumingStatesInitParameters { + if in == nil { + return nil + } + out := new(PartitionConsumingStatesInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PartitionConsumingStatesObservation) DeepCopyInto(out *PartitionConsumingStatesObservation) { + *out = *in + if in.CheckpointType != nil { + in, out := &in.CheckpointType, &out.CheckpointType + *out = new(string) + **out = **in + } + if in.EarliestOffset != nil { + in, out := &in.EarliestOffset, &out.EarliestOffset + *out = new(float64) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.LatestOffset != nil { + in, out := &in.LatestOffset, &out.LatestOffset + *out = new(float64) + **out = **in + } + if in.SequenceNumber != nil { + in, out := &in.SequenceNumber, &out.SequenceNumber + *out = new(string) + **out = **in + } + 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 PartitionConsumingStatesObservation. +func (in *PartitionConsumingStatesObservation) DeepCopy() *PartitionConsumingStatesObservation { + if in == nil { + return nil + } + out := new(PartitionConsumingStatesObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PartitionConsumingStatesParameters) DeepCopyInto(out *PartitionConsumingStatesParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PartitionConsumingStatesParameters. +func (in *PartitionConsumingStatesParameters) DeepCopy() *PartitionConsumingStatesParameters { + if in == nil { + return nil + } + out := new(PartitionConsumingStatesParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PartitionsInitParameters) DeepCopyInto(out *PartitionsInitParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PartitionsInitParameters. +func (in *PartitionsInitParameters) DeepCopy() *PartitionsInitParameters { + if in == nil { + return nil + } + out := new(PartitionsInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PartitionsObservation) DeepCopyInto(out *PartitionsObservation) { + *out = *in + if in.HashRange != nil { + in, out := &in.HashRange, &out.HashRange + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.ParentPartitions != nil { + in, out := &in.ParentPartitions, &out.ParentPartitions + *out = new(string) + **out = **in + } + if in.SequenceNumberRange != nil { + in, out := &in.SequenceNumberRange, &out.SequenceNumberRange + *out = new(string) + **out = **in + } + 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 PartitionsObservation. +func (in *PartitionsObservation) DeepCopy() *PartitionsObservation { + if in == nil { + return nil + } + out := new(PartitionsObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PartitionsParameters) DeepCopyInto(out *PartitionsParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PartitionsParameters. +func (in *PartitionsParameters) DeepCopy() *PartitionsParameters { + if in == nil { + return nil + } + out := new(PartitionsParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *StreamV2) DeepCopyInto(out *StreamV2) { + *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 StreamV2. +func (in *StreamV2) DeepCopy() *StreamV2 { + if in == nil { + return nil + } + out := new(StreamV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *StreamV2) 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 *StreamV2InitParameters) DeepCopyInto(out *StreamV2InitParameters) { + *out = *in + if in.AutoScaleMaxPartitionCount != nil { + in, out := &in.AutoScaleMaxPartitionCount, &out.AutoScaleMaxPartitionCount + *out = new(float64) + **out = **in + } + if in.AutoScaleMinPartitionCount != nil { + in, out := &in.AutoScaleMinPartitionCount, &out.AutoScaleMinPartitionCount + *out = new(float64) + **out = **in + } + if in.CompressionFormat != nil { + in, out := &in.CompressionFormat, &out.CompressionFormat + *out = new(string) + **out = **in + } + if in.DataType != nil { + in, out := &in.DataType, &out.DataType + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PartitionCount != nil { + in, out := &in.PartitionCount, &out.PartitionCount + *out = new(float64) + **out = **in + } + if in.RetentionPeriod != nil { + in, out := &in.RetentionPeriod, &out.RetentionPeriod + *out = new(float64) + **out = **in + } + if in.StreamType != nil { + in, out := &in.StreamType, &out.StreamType + *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 StreamV2InitParameters. +func (in *StreamV2InitParameters) DeepCopy() *StreamV2InitParameters { + if in == nil { + return nil + } + out := new(StreamV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *StreamV2List) DeepCopyInto(out *StreamV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]StreamV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StreamV2List. +func (in *StreamV2List) DeepCopy() *StreamV2List { + if in == nil { + return nil + } + out := new(StreamV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *StreamV2List) 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 *StreamV2Observation) DeepCopyInto(out *StreamV2Observation) { + *out = *in + if in.AutoScaleMaxPartitionCount != nil { + in, out := &in.AutoScaleMaxPartitionCount, &out.AutoScaleMaxPartitionCount + *out = new(float64) + **out = **in + } + if in.AutoScaleMinPartitionCount != nil { + in, out := &in.AutoScaleMinPartitionCount, &out.AutoScaleMinPartitionCount + *out = new(float64) + **out = **in + } + if in.CompressionFormat != nil { + in, out := &in.CompressionFormat, &out.CompressionFormat + *out = new(string) + **out = **in + } + if in.Created != nil { + in, out := &in.Created, &out.Created + *out = new(float64) + **out = **in + } + if in.DataType != nil { + in, out := &in.DataType, &out.DataType + *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.PartitionCount != nil { + in, out := &in.PartitionCount, &out.PartitionCount + *out = new(float64) + **out = **in + } + if in.Partitions != nil { + in, out := &in.Partitions, &out.Partitions + *out = make([]StreamV2PartitionsObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ReadablePartitionCount != nil { + in, out := &in.ReadablePartitionCount, &out.ReadablePartitionCount + *out = new(float64) + **out = **in + } + if in.RetentionPeriod != nil { + in, out := &in.RetentionPeriod, &out.RetentionPeriod + *out = new(float64) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(string) + **out = **in + } + if in.StreamID != nil { + in, out := &in.StreamID, &out.StreamID + *out = new(string) + **out = **in + } + if in.StreamType != nil { + in, out := &in.StreamType, &out.StreamType + *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.WritablePartitionCount != nil { + in, out := &in.WritablePartitionCount, &out.WritablePartitionCount + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StreamV2Observation. +func (in *StreamV2Observation) DeepCopy() *StreamV2Observation { + if in == nil { + return nil + } + out := new(StreamV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *StreamV2Parameters) DeepCopyInto(out *StreamV2Parameters) { + *out = *in + if in.AutoScaleMaxPartitionCount != nil { + in, out := &in.AutoScaleMaxPartitionCount, &out.AutoScaleMaxPartitionCount + *out = new(float64) + **out = **in + } + if in.AutoScaleMinPartitionCount != nil { + in, out := &in.AutoScaleMinPartitionCount, &out.AutoScaleMinPartitionCount + *out = new(float64) + **out = **in + } + if in.CompressionFormat != nil { + in, out := &in.CompressionFormat, &out.CompressionFormat + *out = new(string) + **out = **in + } + if in.DataType != nil { + in, out := &in.DataType, &out.DataType + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PartitionCount != nil { + in, out := &in.PartitionCount, &out.PartitionCount + *out = new(float64) + **out = **in + } + if in.RetentionPeriod != nil { + in, out := &in.RetentionPeriod, &out.RetentionPeriod + *out = new(float64) + **out = **in + } + if in.StreamType != nil { + in, out := &in.StreamType, &out.StreamType + *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 StreamV2Parameters. +func (in *StreamV2Parameters) DeepCopy() *StreamV2Parameters { + if in == nil { + return nil + } + out := new(StreamV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *StreamV2PartitionsInitParameters) DeepCopyInto(out *StreamV2PartitionsInitParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StreamV2PartitionsInitParameters. +func (in *StreamV2PartitionsInitParameters) DeepCopy() *StreamV2PartitionsInitParameters { + if in == nil { + return nil + } + out := new(StreamV2PartitionsInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *StreamV2PartitionsObservation) DeepCopyInto(out *StreamV2PartitionsObservation) { + *out = *in + if in.HashRange != nil { + in, out := &in.HashRange, &out.HashRange + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.ParentPartitions != nil { + in, out := &in.ParentPartitions, &out.ParentPartitions + *out = new(string) + **out = **in + } + if in.SequenceNumberRange != nil { + in, out := &in.SequenceNumberRange, &out.SequenceNumberRange + *out = new(string) + **out = **in + } + 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 StreamV2PartitionsObservation. +func (in *StreamV2PartitionsObservation) DeepCopy() *StreamV2PartitionsObservation { + if in == nil { + return nil + } + out := new(StreamV2PartitionsObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *StreamV2PartitionsParameters) DeepCopyInto(out *StreamV2PartitionsParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StreamV2PartitionsParameters. +func (in *StreamV2PartitionsParameters) DeepCopy() *StreamV2PartitionsParameters { + if in == nil { + return nil + } + out := new(StreamV2PartitionsParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *StreamV2Spec) DeepCopyInto(out *StreamV2Spec) { + *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 StreamV2Spec. +func (in *StreamV2Spec) DeepCopy() *StreamV2Spec { + if in == nil { + return nil + } + out := new(StreamV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *StreamV2Status) DeepCopyInto(out *StreamV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StreamV2Status. +func (in *StreamV2Status) DeepCopy() *StreamV2Status { + if in == nil { + return nil + } + out := new(StreamV2Status) + in.DeepCopyInto(out) + return out +} diff --git a/apis/dis/v1alpha1/zz_generated.managed.go b/apis/dis/v1alpha1/zz_generated.managed.go new file mode 100644 index 0000000..2d205b3 --- /dev/null +++ b/apis/dis/v1alpha1/zz_generated.managed.go @@ -0,0 +1,248 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import xpv1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + +// GetCondition of this AppV2. +func (mg *AppV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this AppV2. +func (mg *AppV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this AppV2. +func (mg *AppV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this AppV2. +func (mg *AppV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this AppV2. +func (mg *AppV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this AppV2. +func (mg *AppV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this AppV2. +func (mg *AppV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this AppV2. +func (mg *AppV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this AppV2. +func (mg *AppV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this AppV2. +func (mg *AppV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this AppV2. +func (mg *AppV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this AppV2. +func (mg *AppV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this CheckpointV2. +func (mg *CheckpointV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this CheckpointV2. +func (mg *CheckpointV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this CheckpointV2. +func (mg *CheckpointV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this CheckpointV2. +func (mg *CheckpointV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this CheckpointV2. +func (mg *CheckpointV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this CheckpointV2. +func (mg *CheckpointV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this CheckpointV2. +func (mg *CheckpointV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this CheckpointV2. +func (mg *CheckpointV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this CheckpointV2. +func (mg *CheckpointV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this CheckpointV2. +func (mg *CheckpointV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this CheckpointV2. +func (mg *CheckpointV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this CheckpointV2. +func (mg *CheckpointV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this DumpTaskV2. +func (mg *DumpTaskV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this DumpTaskV2. +func (mg *DumpTaskV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this DumpTaskV2. +func (mg *DumpTaskV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this DumpTaskV2. +func (mg *DumpTaskV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this DumpTaskV2. +func (mg *DumpTaskV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this DumpTaskV2. +func (mg *DumpTaskV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this DumpTaskV2. +func (mg *DumpTaskV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this DumpTaskV2. +func (mg *DumpTaskV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this DumpTaskV2. +func (mg *DumpTaskV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this DumpTaskV2. +func (mg *DumpTaskV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this DumpTaskV2. +func (mg *DumpTaskV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this DumpTaskV2. +func (mg *DumpTaskV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this StreamV2. +func (mg *StreamV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this StreamV2. +func (mg *StreamV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this StreamV2. +func (mg *StreamV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this StreamV2. +func (mg *StreamV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this StreamV2. +func (mg *StreamV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this StreamV2. +func (mg *StreamV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this StreamV2. +func (mg *StreamV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this StreamV2. +func (mg *StreamV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this StreamV2. +func (mg *StreamV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this StreamV2. +func (mg *StreamV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this StreamV2. +func (mg *StreamV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this StreamV2. +func (mg *StreamV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} diff --git a/apis/dis/v1alpha1/zz_generated.managedlist.go b/apis/dis/v1alpha1/zz_generated.managedlist.go new file mode 100644 index 0000000..40e52f9 --- /dev/null +++ b/apis/dis/v1alpha1/zz_generated.managedlist.go @@ -0,0 +1,44 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import resource "github.com/crossplane/crossplane-runtime/pkg/resource" + +// GetItems of this AppV2List. +func (l *AppV2List) 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 CheckpointV2List. +func (l *CheckpointV2List) 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 DumpTaskV2List. +func (l *DumpTaskV2List) 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 StreamV2List. +func (l *StreamV2List) 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/dis/v1alpha1/zz_generated_terraformed.go b/apis/dis/v1alpha1/zz_generated_terraformed.go new file mode 100755 index 0000000..16397a7 --- /dev/null +++ b/apis/dis/v1alpha1/zz_generated_terraformed.go @@ -0,0 +1,354 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "github.com/pkg/errors" + + "github.com/crossplane/upjet/pkg/resource" + "github.com/crossplane/upjet/pkg/resource/json" +) + +// GetTerraformResourceType returns Terraform resource type for this AppV2 +func (mg *AppV2) GetTerraformResourceType() string { + return "opentelekomcloud_dis_app_v2" +} + +// GetConnectionDetailsMapping for this AppV2 +func (tr *AppV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this AppV2 +func (tr *AppV2) 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 AppV2 +func (tr *AppV2) 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 AppV2 +func (tr *AppV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this AppV2 +func (tr *AppV2) 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 AppV2 +func (tr *AppV2) 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 AppV2 +func (tr *AppV2) 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) +} + +// LateInitialize this AppV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *AppV2) LateInitialize(attrs []byte) (bool, error) { + params := &AppV2Parameters{} + 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 *AppV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this CheckpointV2 +func (mg *CheckpointV2) GetTerraformResourceType() string { + return "opentelekomcloud_dis_checkpoint_v2" +} + +// GetConnectionDetailsMapping for this CheckpointV2 +func (tr *CheckpointV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this CheckpointV2 +func (tr *CheckpointV2) 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 CheckpointV2 +func (tr *CheckpointV2) 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 CheckpointV2 +func (tr *CheckpointV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this CheckpointV2 +func (tr *CheckpointV2) 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 CheckpointV2 +func (tr *CheckpointV2) 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 CheckpointV2 +func (tr *CheckpointV2) 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) +} + +// LateInitialize this CheckpointV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *CheckpointV2) LateInitialize(attrs []byte) (bool, error) { + params := &CheckpointV2Parameters{} + 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 *CheckpointV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this DumpTaskV2 +func (mg *DumpTaskV2) GetTerraformResourceType() string { + return "opentelekomcloud_dis_dump_task_v2" +} + +// GetConnectionDetailsMapping for this DumpTaskV2 +func (tr *DumpTaskV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this DumpTaskV2 +func (tr *DumpTaskV2) 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 DumpTaskV2 +func (tr *DumpTaskV2) 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 DumpTaskV2 +func (tr *DumpTaskV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this DumpTaskV2 +func (tr *DumpTaskV2) 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 DumpTaskV2 +func (tr *DumpTaskV2) 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 DumpTaskV2 +func (tr *DumpTaskV2) 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) +} + +// LateInitialize this DumpTaskV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *DumpTaskV2) LateInitialize(attrs []byte) (bool, error) { + params := &DumpTaskV2Parameters{} + 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 *DumpTaskV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this StreamV2 +func (mg *StreamV2) GetTerraformResourceType() string { + return "opentelekomcloud_dis_stream_v2" +} + +// GetConnectionDetailsMapping for this StreamV2 +func (tr *StreamV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this StreamV2 +func (tr *StreamV2) 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 StreamV2 +func (tr *StreamV2) 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 StreamV2 +func (tr *StreamV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this StreamV2 +func (tr *StreamV2) 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 StreamV2 +func (tr *StreamV2) 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 StreamV2 +func (tr *StreamV2) 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) +} + +// LateInitialize this StreamV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *StreamV2) LateInitialize(attrs []byte) (bool, error) { + params := &StreamV2Parameters{} + 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 *StreamV2) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/dis/v1alpha1/zz_groupversion_info.go b/apis/dis/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..6f80485 --- /dev/null +++ b/apis/dis/v1alpha1/zz_groupversion_info.go @@ -0,0 +1,36 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +// +kubebuilder:object:generate=true +// +groupName=dis.crossplane.io +// +versionName=v1alpha1 +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +// Package type metadata. +const ( + CRDGroup = "dis.crossplane.io" + CRDVersion = "v1alpha1" +) + +var ( + // CRDGroupVersion is the API Group Version used to register the objects + CRDGroupVersion = schema.GroupVersion{Group: CRDGroup, Version: CRDVersion} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme + SchemeBuilder = &scheme.Builder{GroupVersion: CRDGroupVersion} + + // AddToScheme adds the types in this group-version to the given scheme. + AddToScheme = SchemeBuilder.AddToScheme +) diff --git a/apis/dis/v1alpha1/zz_streamv2_types.go b/apis/dis/v1alpha1/zz_streamv2_types.go new file mode 100755 index 0000000..daf70ac --- /dev/null +++ b/apis/dis/v1alpha1/zz_streamv2_types.go @@ -0,0 +1,248 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 StreamV2InitParameters struct { + + // Maximum number of partitions for automatic scale-up when auto-scaling is enabled. + AutoScaleMaxPartitionCount *float64 `json:"autoScaleMaxPartitionCount,omitempty" tf:"auto_scale_max_partition_count,omitempty"` + + // Minimum number of partitions for automatic scale-down + // when auto-scaling is enabled. Minimum: 1. + AutoScaleMinPartitionCount *float64 `json:"autoScaleMinPartitionCount,omitempty" tf:"auto_scale_min_partition_count,omitempty"` + + // Data compression type. The following types are available: + // snappy, gzip, zip. Data is not compressed by default. + CompressionFormat *string `json:"compressionFormat,omitempty" tf:"compression_format,omitempty"` + + // Source data type. + // BLOB: a collection of binary data stored as a single entity in a database management system. + // Default value: BLOB. + DataType *string `json:"dataType,omitempty" tf:"data_type,omitempty"` + + // Name of the stream. The stream name can contain 1 to 64 characters, + // including letters, digits, underscores (_), and hyphens (-). + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Number of partitions. Partitions are the base throughput unit of a DIS stream. + PartitionCount *float64 `json:"partitionCount,omitempty" tf:"partition_count,omitempty"` + + // Period of time for which data is retained in the stream. + // Value range: 24-72 Unit: hour. If this parameter is left blank, the default value is used. + // Maximum: 72 + // Default: 24 + RetentionPeriod *float64 `json:"retentionPeriod,omitempty" tf:"retention_period,omitempty"` + + // Stream type. + StreamType *string `json:"streamType,omitempty" tf:"stream_type,omitempty"` + + // Tags key/value pairs to associate with the instance. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +} + +type StreamV2Observation struct { + + // Maximum number of partitions for automatic scale-up when auto-scaling is enabled. + AutoScaleMaxPartitionCount *float64 `json:"autoScaleMaxPartitionCount,omitempty" tf:"auto_scale_max_partition_count,omitempty"` + + // Minimum number of partitions for automatic scale-down + // when auto-scaling is enabled. Minimum: 1. + AutoScaleMinPartitionCount *float64 `json:"autoScaleMinPartitionCount,omitempty" tf:"auto_scale_min_partition_count,omitempty"` + + // Data compression type. The following types are available: + // snappy, gzip, zip. Data is not compressed by default. + CompressionFormat *string `json:"compressionFormat,omitempty" tf:"compression_format,omitempty"` + + // Time when the stream is created. The value is a timestamp. + Created *float64 `json:"created,omitempty" tf:"created,omitempty"` + + // Source data type. + // BLOB: a collection of binary data stored as a single entity in a database management system. + // Default value: BLOB. + DataType *string `json:"dataType,omitempty" tf:"data_type,omitempty"` + + // : Unique identifier of the partition. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Name of the stream. The stream name can contain 1 to 64 characters, + // including letters, digits, underscores (_), and hyphens (-). + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Number of partitions. Partitions are the base throughput unit of a DIS stream. + PartitionCount *float64 `json:"partitionCount,omitempty" tf:"partition_count,omitempty"` + + // Stream partitions details. + Partitions []StreamV2PartitionsObservation `json:"partitions,omitempty" tf:"partitions,omitempty"` + + // Total number of readable partitions (including partitions in ACTIVE and DELETED state). + ReadablePartitionCount *float64 `json:"readablePartitionCount,omitempty" tf:"readable_partition_count,omitempty"` + + // Period of time for which data is retained in the stream. + // Value range: 24-72 Unit: hour. If this parameter is left blank, the default value is used. + // Maximum: 72 + // Default: 24 + RetentionPeriod *float64 `json:"retentionPeriod,omitempty" tf:"retention_period,omitempty"` + + // Current status of the stream, can be: + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + // Unique identifier of the stream. + StreamID *string `json:"streamId,omitempty" tf:"stream_id,omitempty"` + + // Stream type. + StreamType *string `json:"streamType,omitempty" tf:"stream_type,omitempty"` + + // Tags key/value pairs to associate with the instance. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Total number of writable partitions (including partitions in ACTIVE state only). + WritablePartitionCount *float64 `json:"writablePartitionCount,omitempty" tf:"writable_partition_count,omitempty"` +} + +type StreamV2Parameters struct { + + // Maximum number of partitions for automatic scale-up when auto-scaling is enabled. + // +kubebuilder:validation:Optional + AutoScaleMaxPartitionCount *float64 `json:"autoScaleMaxPartitionCount,omitempty" tf:"auto_scale_max_partition_count,omitempty"` + + // Minimum number of partitions for automatic scale-down + // when auto-scaling is enabled. Minimum: 1. + // +kubebuilder:validation:Optional + AutoScaleMinPartitionCount *float64 `json:"autoScaleMinPartitionCount,omitempty" tf:"auto_scale_min_partition_count,omitempty"` + + // Data compression type. The following types are available: + // snappy, gzip, zip. Data is not compressed by default. + // +kubebuilder:validation:Optional + CompressionFormat *string `json:"compressionFormat,omitempty" tf:"compression_format,omitempty"` + + // Source data type. + // BLOB: a collection of binary data stored as a single entity in a database management system. + // Default value: BLOB. + // +kubebuilder:validation:Optional + DataType *string `json:"dataType,omitempty" tf:"data_type,omitempty"` + + // Name of the stream. The stream name can contain 1 to 64 characters, + // including letters, digits, underscores (_), and hyphens (-). + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Number of partitions. Partitions are the base throughput unit of a DIS stream. + // +kubebuilder:validation:Optional + PartitionCount *float64 `json:"partitionCount,omitempty" tf:"partition_count,omitempty"` + + // Period of time for which data is retained in the stream. + // Value range: 24-72 Unit: hour. If this parameter is left blank, the default value is used. + // Maximum: 72 + // Default: 24 + // +kubebuilder:validation:Optional + RetentionPeriod *float64 `json:"retentionPeriod,omitempty" tf:"retention_period,omitempty"` + + // Stream type. + // +kubebuilder:validation:Optional + StreamType *string `json:"streamType,omitempty" tf:"stream_type,omitempty"` + + // Tags key/value pairs to associate with the instance. + // +kubebuilder:validation:Optional + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +} + +type StreamV2PartitionsInitParameters struct { +} + +type StreamV2PartitionsObservation struct { + + // : Possible value range of the hash key used by the partition. + HashRange *string `json:"hashRange,omitempty" tf:"hash_range,omitempty"` + + // : Unique identifier of the partition. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // : Parent partition. + ParentPartitions *string `json:"parentPartitions,omitempty" tf:"parent_partitions,omitempty"` + + // : Sequence number range of the partition. + SequenceNumberRange *string `json:"sequenceNumberRange,omitempty" tf:"sequence_number_range,omitempty"` + + // Current status of the stream, can be: + Status *string `json:"status,omitempty" tf:"status,omitempty"` +} + +type StreamV2PartitionsParameters struct { +} + +// StreamV2Spec defines the desired state of StreamV2 +type StreamV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider StreamV2Parameters `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 StreamV2InitParameters `json:"initProvider,omitempty"` +} + +// StreamV2Status defines the observed state of StreamV2. +type StreamV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider StreamV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// StreamV2 is the Schema for the StreamV2s API. Manages a DIS Stream resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type StreamV2 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.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.partitionCount) || (has(self.initProvider) && has(self.initProvider.partitionCount))",message="spec.forProvider.partitionCount is a required parameter" + Spec StreamV2Spec `json:"spec"` + Status StreamV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// StreamV2List contains a list of StreamV2s +type StreamV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []StreamV2 `json:"items"` +} + +// Repository type metadata. +var ( + StreamV2_Kind = "StreamV2" + StreamV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: StreamV2_Kind}.String() + StreamV2_KindAPIVersion = StreamV2_Kind + "." + CRDGroupVersion.String() + StreamV2_GroupVersionKind = CRDGroupVersion.WithKind(StreamV2_Kind) +) + +func init() { + SchemeBuilder.Register(&StreamV2{}, &StreamV2List{}) +} diff --git a/apis/dms/v1alpha1/zz_generated.deepcopy.go b/apis/dms/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..52506bc --- /dev/null +++ b/apis/dms/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,1929 @@ +//go:build !ignore_autogenerated + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by controller-gen. DO NOT EDIT. + +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 *InstanceV1) DeepCopyInto(out *InstanceV1) { + *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 InstanceV1. +func (in *InstanceV1) DeepCopy() *InstanceV1 { + if in == nil { + return nil + } + out := new(InstanceV1) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *InstanceV1) 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 *InstanceV1InitParameters) DeepCopyInto(out *InstanceV1InitParameters) { + *out = *in + if in.AccessUser != nil { + in, out := &in.AccessUser, &out.AccessUser + *out = new(string) + **out = **in + } + if in.AvailableZones != nil { + in, out := &in.AvailableZones, &out.AvailableZones + *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.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Engine != nil { + in, out := &in.Engine, &out.Engine + *out = new(string) + **out = **in + } + if in.EngineVersion != nil { + in, out := &in.EngineVersion, &out.EngineVersion + *out = new(string) + **out = **in + } + if in.MaintainBegin != nil { + in, out := &in.MaintainBegin, &out.MaintainBegin + *out = new(string) + **out = **in + } + if in.MaintainEnd != nil { + in, out := &in.MaintainEnd, &out.MaintainEnd + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PartitionNum != nil { + in, out := &in.PartitionNum, &out.PartitionNum + *out = new(float64) + **out = **in + } + if in.ProductID != nil { + in, out := &in.ProductID, &out.ProductID + *out = new(string) + **out = **in + } + if in.RetentionPolicy != nil { + in, out := &in.RetentionPolicy, &out.RetentionPolicy + *out = new(string) + **out = **in + } + if in.SecurityGroupID != nil { + in, out := &in.SecurityGroupID, &out.SecurityGroupID + *out = new(string) + **out = **in + } + if in.Specification != nil { + in, out := &in.Specification, &out.Specification + *out = new(string) + **out = **in + } + if in.StorageSpace != nil { + in, out := &in.StorageSpace, &out.StorageSpace + *out = new(float64) + **out = **in + } + if in.StorageSpecCode != nil { + in, out := &in.StorageSpecCode, &out.StorageSpecCode + *out = new(string) + **out = **in + } + if in.SubnetID != nil { + in, out := &in.SubnetID, &out.SubnetID + *out = new(string) + **out = **in + } + if in.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV1InitParameters. +func (in *InstanceV1InitParameters) DeepCopy() *InstanceV1InitParameters { + if in == nil { + return nil + } + out := new(InstanceV1InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV1List) DeepCopyInto(out *InstanceV1List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]InstanceV1, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV1List. +func (in *InstanceV1List) DeepCopy() *InstanceV1List { + if in == nil { + return nil + } + out := new(InstanceV1List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *InstanceV1List) 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 *InstanceV1Observation) DeepCopyInto(out *InstanceV1Observation) { + *out = *in + if in.AccessUser != nil { + in, out := &in.AccessUser, &out.AccessUser + *out = new(string) + **out = **in + } + if in.AvailableZones != nil { + in, out := &in.AvailableZones, &out.AvailableZones + *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.ConnectAddress != nil { + in, out := &in.ConnectAddress, &out.ConnectAddress + *out = new(string) + **out = **in + } + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Engine != nil { + in, out := &in.Engine, &out.Engine + *out = new(string) + **out = **in + } + if in.EngineVersion != nil { + in, out := &in.EngineVersion, &out.EngineVersion + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.MaintainBegin != nil { + in, out := &in.MaintainBegin, &out.MaintainBegin + *out = new(string) + **out = **in + } + if in.MaintainEnd != nil { + in, out := &in.MaintainEnd, &out.MaintainEnd + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.OrderID != nil { + in, out := &in.OrderID, &out.OrderID + *out = new(string) + **out = **in + } + if in.PartitionNum != nil { + in, out := &in.PartitionNum, &out.PartitionNum + *out = new(float64) + **out = **in + } + if in.Port != nil { + in, out := &in.Port, &out.Port + *out = new(float64) + **out = **in + } + if in.ProductID != nil { + in, out := &in.ProductID, &out.ProductID + *out = new(string) + **out = **in + } + if in.ResourceSpecCode != nil { + in, out := &in.ResourceSpecCode, &out.ResourceSpecCode + *out = new(string) + **out = **in + } + if in.RetentionPolicy != nil { + in, out := &in.RetentionPolicy, &out.RetentionPolicy + *out = new(string) + **out = **in + } + if in.SecurityGroupID != nil { + in, out := &in.SecurityGroupID, &out.SecurityGroupID + *out = new(string) + **out = **in + } + if in.SecurityGroupName != nil { + in, out := &in.SecurityGroupName, &out.SecurityGroupName + *out = new(string) + **out = **in + } + if in.Specification != nil { + in, out := &in.Specification, &out.Specification + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(string) + **out = **in + } + if in.StorageSpace != nil { + in, out := &in.StorageSpace, &out.StorageSpace + *out = new(float64) + **out = **in + } + if in.StorageSpecCode != nil { + in, out := &in.StorageSpecCode, &out.StorageSpecCode + *out = new(string) + **out = **in + } + if in.SubnetID != nil { + in, out := &in.SubnetID, &out.SubnetID + *out = new(string) + **out = **in + } + if in.SubnetName != nil { + in, out := &in.SubnetName, &out.SubnetName + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.UsedStorageSpace != nil { + in, out := &in.UsedStorageSpace, &out.UsedStorageSpace + *out = new(float64) + **out = **in + } + if in.UserID != nil { + in, out := &in.UserID, &out.UserID + *out = new(string) + **out = **in + } + if in.UserName != nil { + in, out := &in.UserName, &out.UserName + *out = new(string) + **out = **in + } + if in.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } + if in.VPCName != nil { + in, out := &in.VPCName, &out.VPCName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV1Observation. +func (in *InstanceV1Observation) DeepCopy() *InstanceV1Observation { + if in == nil { + return nil + } + out := new(InstanceV1Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV1Parameters) DeepCopyInto(out *InstanceV1Parameters) { + *out = *in + if in.AccessUser != nil { + in, out := &in.AccessUser, &out.AccessUser + *out = new(string) + **out = **in + } + if in.AvailableZones != nil { + in, out := &in.AvailableZones, &out.AvailableZones + *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.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Engine != nil { + in, out := &in.Engine, &out.Engine + *out = new(string) + **out = **in + } + if in.EngineVersion != nil { + in, out := &in.EngineVersion, &out.EngineVersion + *out = new(string) + **out = **in + } + if in.MaintainBegin != nil { + in, out := &in.MaintainBegin, &out.MaintainBegin + *out = new(string) + **out = **in + } + if in.MaintainEnd != nil { + in, out := &in.MaintainEnd, &out.MaintainEnd + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PartitionNum != nil { + in, out := &in.PartitionNum, &out.PartitionNum + *out = new(float64) + **out = **in + } + if in.PasswordSecretRef != nil { + in, out := &in.PasswordSecretRef, &out.PasswordSecretRef + *out = new(v1.SecretKeySelector) + **out = **in + } + if in.ProductID != nil { + in, out := &in.ProductID, &out.ProductID + *out = new(string) + **out = **in + } + if in.RetentionPolicy != nil { + in, out := &in.RetentionPolicy, &out.RetentionPolicy + *out = new(string) + **out = **in + } + if in.SecurityGroupID != nil { + in, out := &in.SecurityGroupID, &out.SecurityGroupID + *out = new(string) + **out = **in + } + if in.Specification != nil { + in, out := &in.Specification, &out.Specification + *out = new(string) + **out = **in + } + if in.StorageSpace != nil { + in, out := &in.StorageSpace, &out.StorageSpace + *out = new(float64) + **out = **in + } + if in.StorageSpecCode != nil { + in, out := &in.StorageSpecCode, &out.StorageSpecCode + *out = new(string) + **out = **in + } + if in.SubnetID != nil { + in, out := &in.SubnetID, &out.SubnetID + *out = new(string) + **out = **in + } + if in.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV1Parameters. +func (in *InstanceV1Parameters) DeepCopy() *InstanceV1Parameters { + if in == nil { + return nil + } + out := new(InstanceV1Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV1Spec) DeepCopyInto(out *InstanceV1Spec) { + *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 InstanceV1Spec. +func (in *InstanceV1Spec) DeepCopy() *InstanceV1Spec { + if in == nil { + return nil + } + out := new(InstanceV1Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV1Status) DeepCopyInto(out *InstanceV1Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV1Status. +func (in *InstanceV1Status) DeepCopy() *InstanceV1Status { + if in == nil { + return nil + } + out := new(InstanceV1Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV2) DeepCopyInto(out *InstanceV2) { + *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 InstanceV2. +func (in *InstanceV2) DeepCopy() *InstanceV2 { + if in == nil { + return nil + } + out := new(InstanceV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *InstanceV2) 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 *InstanceV2InitParameters) DeepCopyInto(out *InstanceV2InitParameters) { + *out = *in + if in.AccessUser != nil { + in, out := &in.AccessUser, &out.AccessUser + *out = new(string) + **out = **in + } + if in.AvailableZones != nil { + in, out := &in.AvailableZones, &out.AvailableZones + *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.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.DiskEncryptedEnable != nil { + in, out := &in.DiskEncryptedEnable, &out.DiskEncryptedEnable + *out = new(bool) + **out = **in + } + if in.DiskEncryptedKey != nil { + in, out := &in.DiskEncryptedKey, &out.DiskEncryptedKey + *out = new(string) + **out = **in + } + if in.EnablePublicip != nil { + in, out := &in.EnablePublicip, &out.EnablePublicip + *out = new(bool) + **out = **in + } + if in.Engine != nil { + in, out := &in.Engine, &out.Engine + *out = new(string) + **out = **in + } + if in.EngineVersion != nil { + in, out := &in.EngineVersion, &out.EngineVersion + *out = new(string) + **out = **in + } + if in.MaintainBegin != nil { + in, out := &in.MaintainBegin, &out.MaintainBegin + *out = new(string) + **out = **in + } + if in.MaintainEnd != nil { + in, out := &in.MaintainEnd, &out.MaintainEnd + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PartitionNum != nil { + in, out := &in.PartitionNum, &out.PartitionNum + *out = new(float64) + **out = **in + } + if in.ProductID != nil { + in, out := &in.ProductID, &out.ProductID + *out = new(string) + **out = **in + } + if in.PublicBandwidth != nil { + in, out := &in.PublicBandwidth, &out.PublicBandwidth + *out = new(float64) + **out = **in + } + if in.PublicipID != nil { + in, out := &in.PublicipID, &out.PublicipID + *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.RetentionPolicy != nil { + in, out := &in.RetentionPolicy, &out.RetentionPolicy + *out = new(string) + **out = **in + } + if in.SecurityGroupID != nil { + in, out := &in.SecurityGroupID, &out.SecurityGroupID + *out = new(string) + **out = **in + } + if in.Specification != nil { + in, out := &in.Specification, &out.Specification + *out = new(string) + **out = **in + } + if in.StorageSpace != nil { + in, out := &in.StorageSpace, &out.StorageSpace + *out = new(float64) + **out = **in + } + if in.StorageSpecCode != nil { + in, out := &in.StorageSpecCode, &out.StorageSpecCode + *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.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV2InitParameters. +func (in *InstanceV2InitParameters) DeepCopy() *InstanceV2InitParameters { + if in == nil { + return nil + } + out := new(InstanceV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV2List) DeepCopyInto(out *InstanceV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]InstanceV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV2List. +func (in *InstanceV2List) DeepCopy() *InstanceV2List { + if in == nil { + return nil + } + out := new(InstanceV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *InstanceV2List) 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 *InstanceV2Observation) DeepCopyInto(out *InstanceV2Observation) { + *out = *in + if in.AccessUser != nil { + in, out := &in.AccessUser, &out.AccessUser + *out = new(string) + **out = **in + } + if in.AvailableZones != nil { + in, out := &in.AvailableZones, &out.AvailableZones + *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.ConnectAddress != nil { + in, out := &in.ConnectAddress, &out.ConnectAddress + *out = new(string) + **out = **in + } + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.DiskEncryptedEnable != nil { + in, out := &in.DiskEncryptedEnable, &out.DiskEncryptedEnable + *out = new(bool) + **out = **in + } + if in.DiskEncryptedKey != nil { + in, out := &in.DiskEncryptedKey, &out.DiskEncryptedKey + *out = new(string) + **out = **in + } + if in.EnablePublicip != nil { + in, out := &in.EnablePublicip, &out.EnablePublicip + *out = new(bool) + **out = **in + } + if in.Engine != nil { + in, out := &in.Engine, &out.Engine + *out = new(string) + **out = **in + } + if in.EngineVersion != nil { + in, out := &in.EngineVersion, &out.EngineVersion + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.MaintainBegin != nil { + in, out := &in.MaintainBegin, &out.MaintainBegin + *out = new(string) + **out = **in + } + if in.MaintainEnd != nil { + in, out := &in.MaintainEnd, &out.MaintainEnd + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NodeNum != nil { + in, out := &in.NodeNum, &out.NodeNum + *out = new(float64) + **out = **in + } + if in.PartitionNum != nil { + in, out := &in.PartitionNum, &out.PartitionNum + *out = new(float64) + **out = **in + } + if in.Port != nil { + in, out := &in.Port, &out.Port + *out = new(float64) + **out = **in + } + if in.ProductID != nil { + in, out := &in.ProductID, &out.ProductID + *out = new(string) + **out = **in + } + if in.PublicAccessEnabled != nil { + in, out := &in.PublicAccessEnabled, &out.PublicAccessEnabled + *out = new(string) + **out = **in + } + if in.PublicBandwidth != nil { + in, out := &in.PublicBandwidth, &out.PublicBandwidth + *out = new(float64) + **out = **in + } + if in.PublicConnectAddress != nil { + in, out := &in.PublicConnectAddress, &out.PublicConnectAddress + *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.PublicipID != nil { + in, out := &in.PublicipID, &out.PublicipID + *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.ResourceSpecCode != nil { + in, out := &in.ResourceSpecCode, &out.ResourceSpecCode + *out = new(string) + **out = **in + } + if in.RetentionPolicy != nil { + in, out := &in.RetentionPolicy, &out.RetentionPolicy + *out = new(string) + **out = **in + } + if in.SSLEnable != nil { + in, out := &in.SSLEnable, &out.SSLEnable + *out = new(bool) + **out = **in + } + if in.SecurityGroupID != nil { + in, out := &in.SecurityGroupID, &out.SecurityGroupID + *out = new(string) + **out = **in + } + if in.SecurityGroupName != nil { + in, out := &in.SecurityGroupName, &out.SecurityGroupName + *out = new(string) + **out = **in + } + if in.Specification != nil { + in, out := &in.Specification, &out.Specification + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(string) + **out = **in + } + if in.StorageResourceID != nil { + in, out := &in.StorageResourceID, &out.StorageResourceID + *out = new(string) + **out = **in + } + if in.StorageSpace != nil { + in, out := &in.StorageSpace, &out.StorageSpace + *out = new(float64) + **out = **in + } + if in.StorageSpecCode != nil { + in, out := &in.StorageSpecCode, &out.StorageSpecCode + *out = new(string) + **out = **in + } + if in.SubnetCidr != nil { + in, out := &in.SubnetCidr, &out.SubnetCidr + *out = new(string) + **out = **in + } + if in.SubnetID != nil { + in, out := &in.SubnetID, &out.SubnetID + *out = new(string) + **out = **in + } + if in.SubnetName != nil { + in, out := &in.SubnetName, &out.SubnetName + *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.TotalStorageSpace != nil { + in, out := &in.TotalStorageSpace, &out.TotalStorageSpace + *out = new(float64) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.UsedStorageSpace != nil { + in, out := &in.UsedStorageSpace, &out.UsedStorageSpace + *out = new(float64) + **out = **in + } + if in.UserID != nil { + in, out := &in.UserID, &out.UserID + *out = new(string) + **out = **in + } + if in.UserName != nil { + in, out := &in.UserName, &out.UserName + *out = new(string) + **out = **in + } + if in.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } + if in.VPCName != nil { + in, out := &in.VPCName, &out.VPCName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV2Observation. +func (in *InstanceV2Observation) DeepCopy() *InstanceV2Observation { + if in == nil { + return nil + } + out := new(InstanceV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV2Parameters) DeepCopyInto(out *InstanceV2Parameters) { + *out = *in + if in.AccessUser != nil { + in, out := &in.AccessUser, &out.AccessUser + *out = new(string) + **out = **in + } + if in.AvailableZones != nil { + in, out := &in.AvailableZones, &out.AvailableZones + *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.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.DiskEncryptedEnable != nil { + in, out := &in.DiskEncryptedEnable, &out.DiskEncryptedEnable + *out = new(bool) + **out = **in + } + if in.DiskEncryptedKey != nil { + in, out := &in.DiskEncryptedKey, &out.DiskEncryptedKey + *out = new(string) + **out = **in + } + if in.EnablePublicip != nil { + in, out := &in.EnablePublicip, &out.EnablePublicip + *out = new(bool) + **out = **in + } + if in.Engine != nil { + in, out := &in.Engine, &out.Engine + *out = new(string) + **out = **in + } + if in.EngineVersion != nil { + in, out := &in.EngineVersion, &out.EngineVersion + *out = new(string) + **out = **in + } + if in.MaintainBegin != nil { + in, out := &in.MaintainBegin, &out.MaintainBegin + *out = new(string) + **out = **in + } + if in.MaintainEnd != nil { + in, out := &in.MaintainEnd, &out.MaintainEnd + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PartitionNum != nil { + in, out := &in.PartitionNum, &out.PartitionNum + *out = new(float64) + **out = **in + } + if in.PasswordSecretRef != nil { + in, out := &in.PasswordSecretRef, &out.PasswordSecretRef + *out = new(v1.SecretKeySelector) + **out = **in + } + if in.ProductID != nil { + in, out := &in.ProductID, &out.ProductID + *out = new(string) + **out = **in + } + if in.PublicBandwidth != nil { + in, out := &in.PublicBandwidth, &out.PublicBandwidth + *out = new(float64) + **out = **in + } + if in.PublicipID != nil { + in, out := &in.PublicipID, &out.PublicipID + *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.RetentionPolicy != nil { + in, out := &in.RetentionPolicy, &out.RetentionPolicy + *out = new(string) + **out = **in + } + if in.SecurityGroupID != nil { + in, out := &in.SecurityGroupID, &out.SecurityGroupID + *out = new(string) + **out = **in + } + if in.Specification != nil { + in, out := &in.Specification, &out.Specification + *out = new(string) + **out = **in + } + if in.StorageSpace != nil { + in, out := &in.StorageSpace, &out.StorageSpace + *out = new(float64) + **out = **in + } + if in.StorageSpecCode != nil { + in, out := &in.StorageSpecCode, &out.StorageSpecCode + *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.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV2Parameters. +func (in *InstanceV2Parameters) DeepCopy() *InstanceV2Parameters { + if in == nil { + return nil + } + out := new(InstanceV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV2Spec) DeepCopyInto(out *InstanceV2Spec) { + *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 InstanceV2Spec. +func (in *InstanceV2Spec) DeepCopy() *InstanceV2Spec { + if in == nil { + return nil + } + out := new(InstanceV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV2Status) DeepCopyInto(out *InstanceV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV2Status. +func (in *InstanceV2Status) DeepCopy() *InstanceV2Status { + if in == nil { + return nil + } + out := new(InstanceV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PoliciesInitParameters) DeepCopyInto(out *PoliciesInitParameters) { + *out = *in + if in.AccessPolicy != nil { + in, out := &in.AccessPolicy, &out.AccessPolicy + *out = new(string) + **out = **in + } + if in.Username != nil { + in, out := &in.Username, &out.Username + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PoliciesInitParameters. +func (in *PoliciesInitParameters) DeepCopy() *PoliciesInitParameters { + if in == nil { + return nil + } + out := new(PoliciesInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PoliciesObservation) DeepCopyInto(out *PoliciesObservation) { + *out = *in + if in.AccessPolicy != nil { + in, out := &in.AccessPolicy, &out.AccessPolicy + *out = new(string) + **out = **in + } + if in.Owner != nil { + in, out := &in.Owner, &out.Owner + *out = new(bool) + **out = **in + } + if in.Username != nil { + in, out := &in.Username, &out.Username + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PoliciesObservation. +func (in *PoliciesObservation) DeepCopy() *PoliciesObservation { + if in == nil { + return nil + } + out := new(PoliciesObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PoliciesParameters) DeepCopyInto(out *PoliciesParameters) { + *out = *in + if in.AccessPolicy != nil { + in, out := &in.AccessPolicy, &out.AccessPolicy + *out = new(string) + **out = **in + } + if in.Username != nil { + in, out := &in.Username, &out.Username + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PoliciesParameters. +func (in *PoliciesParameters) DeepCopy() *PoliciesParameters { + if in == nil { + return nil + } + out := new(PoliciesParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TopicV1) DeepCopyInto(out *TopicV1) { + *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 TopicV1. +func (in *TopicV1) DeepCopy() *TopicV1 { + if in == nil { + return nil + } + out := new(TopicV1) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *TopicV1) 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 *TopicV1InitParameters) DeepCopyInto(out *TopicV1InitParameters) { + *out = *in + if in.InstanceID != nil { + in, out := &in.InstanceID, &out.InstanceID + *out = new(string) + **out = **in + } + if in.MaxPartitions != nil { + in, out := &in.MaxPartitions, &out.MaxPartitions + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Partition != nil { + in, out := &in.Partition, &out.Partition + *out = new(float64) + **out = **in + } + if in.RemainPartitions != nil { + in, out := &in.RemainPartitions, &out.RemainPartitions + *out = new(float64) + **out = **in + } + if in.Replication != nil { + in, out := &in.Replication, &out.Replication + *out = new(float64) + **out = **in + } + if in.RetentionTime != nil { + in, out := &in.RetentionTime, &out.RetentionTime + *out = new(float64) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } + if in.SyncMessageFlush != nil { + in, out := &in.SyncMessageFlush, &out.SyncMessageFlush + *out = new(bool) + **out = **in + } + if in.SyncReplication != nil { + in, out := &in.SyncReplication, &out.SyncReplication + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TopicV1InitParameters. +func (in *TopicV1InitParameters) DeepCopy() *TopicV1InitParameters { + if in == nil { + return nil + } + out := new(TopicV1InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TopicV1List) DeepCopyInto(out *TopicV1List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]TopicV1, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TopicV1List. +func (in *TopicV1List) DeepCopy() *TopicV1List { + if in == nil { + return nil + } + out := new(TopicV1List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *TopicV1List) 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 *TopicV1Observation) DeepCopyInto(out *TopicV1Observation) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.InstanceID != nil { + in, out := &in.InstanceID, &out.InstanceID + *out = new(string) + **out = **in + } + if in.MaxPartitions != nil { + in, out := &in.MaxPartitions, &out.MaxPartitions + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Partition != nil { + in, out := &in.Partition, &out.Partition + *out = new(float64) + **out = **in + } + if in.RemainPartitions != nil { + in, out := &in.RemainPartitions, &out.RemainPartitions + *out = new(float64) + **out = **in + } + if in.Replication != nil { + in, out := &in.Replication, &out.Replication + *out = new(float64) + **out = **in + } + if in.RetentionTime != nil { + in, out := &in.RetentionTime, &out.RetentionTime + *out = new(float64) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } + if in.SyncMessageFlush != nil { + in, out := &in.SyncMessageFlush, &out.SyncMessageFlush + *out = new(bool) + **out = **in + } + if in.SyncReplication != nil { + in, out := &in.SyncReplication, &out.SyncReplication + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TopicV1Observation. +func (in *TopicV1Observation) DeepCopy() *TopicV1Observation { + if in == nil { + return nil + } + out := new(TopicV1Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TopicV1Parameters) DeepCopyInto(out *TopicV1Parameters) { + *out = *in + if in.InstanceID != nil { + in, out := &in.InstanceID, &out.InstanceID + *out = new(string) + **out = **in + } + if in.MaxPartitions != nil { + in, out := &in.MaxPartitions, &out.MaxPartitions + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Partition != nil { + in, out := &in.Partition, &out.Partition + *out = new(float64) + **out = **in + } + if in.RemainPartitions != nil { + in, out := &in.RemainPartitions, &out.RemainPartitions + *out = new(float64) + **out = **in + } + if in.Replication != nil { + in, out := &in.Replication, &out.Replication + *out = new(float64) + **out = **in + } + if in.RetentionTime != nil { + in, out := &in.RetentionTime, &out.RetentionTime + *out = new(float64) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } + if in.SyncMessageFlush != nil { + in, out := &in.SyncMessageFlush, &out.SyncMessageFlush + *out = new(bool) + **out = **in + } + if in.SyncReplication != nil { + in, out := &in.SyncReplication, &out.SyncReplication + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TopicV1Parameters. +func (in *TopicV1Parameters) DeepCopy() *TopicV1Parameters { + if in == nil { + return nil + } + out := new(TopicV1Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TopicV1Spec) DeepCopyInto(out *TopicV1Spec) { + *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 TopicV1Spec. +func (in *TopicV1Spec) DeepCopy() *TopicV1Spec { + if in == nil { + return nil + } + out := new(TopicV1Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TopicV1Status) DeepCopyInto(out *TopicV1Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TopicV1Status. +func (in *TopicV1Status) DeepCopy() *TopicV1Status { + if in == nil { + return nil + } + out := new(TopicV1Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UserPermissionV1) DeepCopyInto(out *UserPermissionV1) { + *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 UserPermissionV1. +func (in *UserPermissionV1) DeepCopy() *UserPermissionV1 { + if in == nil { + return nil + } + out := new(UserPermissionV1) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *UserPermissionV1) 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 *UserPermissionV1InitParameters) DeepCopyInto(out *UserPermissionV1InitParameters) { + *out = *in + if in.InstanceID != nil { + in, out := &in.InstanceID, &out.InstanceID + *out = new(string) + **out = **in + } + if in.Policies != nil { + in, out := &in.Policies, &out.Policies + *out = make([]PoliciesInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.TopicName != nil { + in, out := &in.TopicName, &out.TopicName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserPermissionV1InitParameters. +func (in *UserPermissionV1InitParameters) DeepCopy() *UserPermissionV1InitParameters { + if in == nil { + return nil + } + out := new(UserPermissionV1InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UserPermissionV1List) DeepCopyInto(out *UserPermissionV1List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]UserPermissionV1, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserPermissionV1List. +func (in *UserPermissionV1List) DeepCopy() *UserPermissionV1List { + if in == nil { + return nil + } + out := new(UserPermissionV1List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *UserPermissionV1List) 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 *UserPermissionV1Observation) DeepCopyInto(out *UserPermissionV1Observation) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.InstanceID != nil { + in, out := &in.InstanceID, &out.InstanceID + *out = new(string) + **out = **in + } + if in.Policies != nil { + in, out := &in.Policies, &out.Policies + *out = make([]PoliciesObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.TopicName != nil { + in, out := &in.TopicName, &out.TopicName + *out = new(string) + **out = **in + } + if in.TopicType != nil { + in, out := &in.TopicType, &out.TopicType + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserPermissionV1Observation. +func (in *UserPermissionV1Observation) DeepCopy() *UserPermissionV1Observation { + if in == nil { + return nil + } + out := new(UserPermissionV1Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UserPermissionV1Parameters) DeepCopyInto(out *UserPermissionV1Parameters) { + *out = *in + if in.InstanceID != nil { + in, out := &in.InstanceID, &out.InstanceID + *out = new(string) + **out = **in + } + if in.Policies != nil { + in, out := &in.Policies, &out.Policies + *out = make([]PoliciesParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.TopicName != nil { + in, out := &in.TopicName, &out.TopicName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserPermissionV1Parameters. +func (in *UserPermissionV1Parameters) DeepCopy() *UserPermissionV1Parameters { + if in == nil { + return nil + } + out := new(UserPermissionV1Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UserPermissionV1Spec) DeepCopyInto(out *UserPermissionV1Spec) { + *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 UserPermissionV1Spec. +func (in *UserPermissionV1Spec) DeepCopy() *UserPermissionV1Spec { + if in == nil { + return nil + } + out := new(UserPermissionV1Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UserPermissionV1Status) DeepCopyInto(out *UserPermissionV1Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserPermissionV1Status. +func (in *UserPermissionV1Status) DeepCopy() *UserPermissionV1Status { + if in == nil { + return nil + } + out := new(UserPermissionV1Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UserV2) DeepCopyInto(out *UserV2) { + *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 UserV2. +func (in *UserV2) DeepCopy() *UserV2 { + if in == nil { + return nil + } + out := new(UserV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *UserV2) 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 *UserV2InitParameters) DeepCopyInto(out *UserV2InitParameters) { + *out = *in + if in.InstanceID != nil { + in, out := &in.InstanceID, &out.InstanceID + *out = new(string) + **out = **in + } + if in.Username != nil { + in, out := &in.Username, &out.Username + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserV2InitParameters. +func (in *UserV2InitParameters) DeepCopy() *UserV2InitParameters { + if in == nil { + return nil + } + out := new(UserV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UserV2List) DeepCopyInto(out *UserV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]UserV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserV2List. +func (in *UserV2List) DeepCopy() *UserV2List { + if in == nil { + return nil + } + out := new(UserV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *UserV2List) 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 *UserV2Observation) DeepCopyInto(out *UserV2Observation) { + *out = *in + if in.CreationTime != nil { + in, out := &in.CreationTime, &out.CreationTime + *out = new(float64) + **out = **in + } + if in.DefaultApp != nil { + in, out := &in.DefaultApp, &out.DefaultApp + *out = new(bool) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.InstanceID != nil { + in, out := &in.InstanceID, &out.InstanceID + *out = new(string) + **out = **in + } + if in.Role != nil { + in, out := &in.Role, &out.Role + *out = new(string) + **out = **in + } + if in.Username != nil { + in, out := &in.Username, &out.Username + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserV2Observation. +func (in *UserV2Observation) DeepCopy() *UserV2Observation { + if in == nil { + return nil + } + out := new(UserV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UserV2Parameters) DeepCopyInto(out *UserV2Parameters) { + *out = *in + if in.InstanceID != nil { + in, out := &in.InstanceID, &out.InstanceID + *out = new(string) + **out = **in + } + out.PasswordSecretRef = in.PasswordSecretRef + if in.Username != nil { + in, out := &in.Username, &out.Username + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserV2Parameters. +func (in *UserV2Parameters) DeepCopy() *UserV2Parameters { + if in == nil { + return nil + } + out := new(UserV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UserV2Spec) DeepCopyInto(out *UserV2Spec) { + *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 UserV2Spec. +func (in *UserV2Spec) DeepCopy() *UserV2Spec { + if in == nil { + return nil + } + out := new(UserV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UserV2Status) DeepCopyInto(out *UserV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserV2Status. +func (in *UserV2Status) DeepCopy() *UserV2Status { + if in == nil { + return nil + } + out := new(UserV2Status) + in.DeepCopyInto(out) + return out +} diff --git a/apis/dms/v1alpha1/zz_generated.managed.go b/apis/dms/v1alpha1/zz_generated.managed.go new file mode 100644 index 0000000..91878ba --- /dev/null +++ b/apis/dms/v1alpha1/zz_generated.managed.go @@ -0,0 +1,308 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import xpv1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + +// GetCondition of this InstanceV1. +func (mg *InstanceV1) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this InstanceV1. +func (mg *InstanceV1) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this InstanceV1. +func (mg *InstanceV1) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this InstanceV1. +func (mg *InstanceV1) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this InstanceV1. +func (mg *InstanceV1) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this InstanceV1. +func (mg *InstanceV1) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this InstanceV1. +func (mg *InstanceV1) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this InstanceV1. +func (mg *InstanceV1) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this InstanceV1. +func (mg *InstanceV1) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this InstanceV1. +func (mg *InstanceV1) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this InstanceV1. +func (mg *InstanceV1) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this InstanceV1. +func (mg *InstanceV1) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this InstanceV2. +func (mg *InstanceV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this InstanceV2. +func (mg *InstanceV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this InstanceV2. +func (mg *InstanceV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this InstanceV2. +func (mg *InstanceV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this InstanceV2. +func (mg *InstanceV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this InstanceV2. +func (mg *InstanceV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this InstanceV2. +func (mg *InstanceV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this InstanceV2. +func (mg *InstanceV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this InstanceV2. +func (mg *InstanceV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this InstanceV2. +func (mg *InstanceV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this InstanceV2. +func (mg *InstanceV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this InstanceV2. +func (mg *InstanceV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this TopicV1. +func (mg *TopicV1) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this TopicV1. +func (mg *TopicV1) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this TopicV1. +func (mg *TopicV1) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this TopicV1. +func (mg *TopicV1) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this TopicV1. +func (mg *TopicV1) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this TopicV1. +func (mg *TopicV1) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this TopicV1. +func (mg *TopicV1) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this TopicV1. +func (mg *TopicV1) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this TopicV1. +func (mg *TopicV1) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this TopicV1. +func (mg *TopicV1) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this TopicV1. +func (mg *TopicV1) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this TopicV1. +func (mg *TopicV1) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this UserPermissionV1. +func (mg *UserPermissionV1) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this UserPermissionV1. +func (mg *UserPermissionV1) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this UserPermissionV1. +func (mg *UserPermissionV1) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this UserPermissionV1. +func (mg *UserPermissionV1) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this UserPermissionV1. +func (mg *UserPermissionV1) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this UserPermissionV1. +func (mg *UserPermissionV1) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this UserPermissionV1. +func (mg *UserPermissionV1) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this UserPermissionV1. +func (mg *UserPermissionV1) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this UserPermissionV1. +func (mg *UserPermissionV1) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this UserPermissionV1. +func (mg *UserPermissionV1) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this UserPermissionV1. +func (mg *UserPermissionV1) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this UserPermissionV1. +func (mg *UserPermissionV1) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this UserV2. +func (mg *UserV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this UserV2. +func (mg *UserV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this UserV2. +func (mg *UserV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this UserV2. +func (mg *UserV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this UserV2. +func (mg *UserV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this UserV2. +func (mg *UserV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this UserV2. +func (mg *UserV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this UserV2. +func (mg *UserV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this UserV2. +func (mg *UserV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this UserV2. +func (mg *UserV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this UserV2. +func (mg *UserV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this UserV2. +func (mg *UserV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} diff --git a/apis/dms/v1alpha1/zz_generated.managedlist.go b/apis/dms/v1alpha1/zz_generated.managedlist.go new file mode 100644 index 0000000..a70f525 --- /dev/null +++ b/apis/dms/v1alpha1/zz_generated.managedlist.go @@ -0,0 +1,53 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import resource "github.com/crossplane/crossplane-runtime/pkg/resource" + +// GetItems of this InstanceV1List. +func (l *InstanceV1List) 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 InstanceV2List. +func (l *InstanceV2List) 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 TopicV1List. +func (l *TopicV1List) 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 UserPermissionV1List. +func (l *UserPermissionV1List) 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 UserV2List. +func (l *UserV2List) 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/dms/v1alpha1/zz_generated_terraformed.go b/apis/dms/v1alpha1/zz_generated_terraformed.go new file mode 100755 index 0000000..03fea0c --- /dev/null +++ b/apis/dms/v1alpha1/zz_generated_terraformed.go @@ -0,0 +1,438 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "github.com/pkg/errors" + + "github.com/crossplane/upjet/pkg/resource" + "github.com/crossplane/upjet/pkg/resource/json" +) + +// GetTerraformResourceType returns Terraform resource type for this InstanceV1 +func (mg *InstanceV1) GetTerraformResourceType() string { + return "opentelekomcloud_dms_instance_v1" +} + +// GetConnectionDetailsMapping for this InstanceV1 +func (tr *InstanceV1) GetConnectionDetailsMapping() map[string]string { + return map[string]string{"password": "spec.forProvider.passwordSecretRef"} +} + +// GetObservation of this InstanceV1 +func (tr *InstanceV1) 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 InstanceV1 +func (tr *InstanceV1) 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 InstanceV1 +func (tr *InstanceV1) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this InstanceV1 +func (tr *InstanceV1) 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 InstanceV1 +func (tr *InstanceV1) 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 InstanceV1 +func (tr *InstanceV1) 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) +} + +// LateInitialize this InstanceV1 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *InstanceV1) LateInitialize(attrs []byte) (bool, error) { + params := &InstanceV1Parameters{} + 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 *InstanceV1) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this InstanceV2 +func (mg *InstanceV2) GetTerraformResourceType() string { + return "opentelekomcloud_dms_instance_v2" +} + +// GetConnectionDetailsMapping for this InstanceV2 +func (tr *InstanceV2) GetConnectionDetailsMapping() map[string]string { + return map[string]string{"password": "spec.forProvider.passwordSecretRef"} +} + +// GetObservation of this InstanceV2 +func (tr *InstanceV2) 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 InstanceV2 +func (tr *InstanceV2) 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 InstanceV2 +func (tr *InstanceV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this InstanceV2 +func (tr *InstanceV2) 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 InstanceV2 +func (tr *InstanceV2) 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 InstanceV2 +func (tr *InstanceV2) 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) +} + +// LateInitialize this InstanceV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *InstanceV2) LateInitialize(attrs []byte) (bool, error) { + params := &InstanceV2Parameters{} + 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 *InstanceV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this TopicV1 +func (mg *TopicV1) GetTerraformResourceType() string { + return "opentelekomcloud_dms_topic_v1" +} + +// GetConnectionDetailsMapping for this TopicV1 +func (tr *TopicV1) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this TopicV1 +func (tr *TopicV1) 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 TopicV1 +func (tr *TopicV1) 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 TopicV1 +func (tr *TopicV1) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this TopicV1 +func (tr *TopicV1) 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 TopicV1 +func (tr *TopicV1) 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 TopicV1 +func (tr *TopicV1) 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) +} + +// LateInitialize this TopicV1 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *TopicV1) LateInitialize(attrs []byte) (bool, error) { + params := &TopicV1Parameters{} + 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 *TopicV1) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this UserPermissionV1 +func (mg *UserPermissionV1) GetTerraformResourceType() string { + return "opentelekomcloud_dms_user_permission_v1" +} + +// GetConnectionDetailsMapping for this UserPermissionV1 +func (tr *UserPermissionV1) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this UserPermissionV1 +func (tr *UserPermissionV1) 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 UserPermissionV1 +func (tr *UserPermissionV1) 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 UserPermissionV1 +func (tr *UserPermissionV1) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this UserPermissionV1 +func (tr *UserPermissionV1) 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 UserPermissionV1 +func (tr *UserPermissionV1) 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 UserPermissionV1 +func (tr *UserPermissionV1) 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) +} + +// LateInitialize this UserPermissionV1 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *UserPermissionV1) LateInitialize(attrs []byte) (bool, error) { + params := &UserPermissionV1Parameters{} + 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 *UserPermissionV1) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this UserV2 +func (mg *UserV2) GetTerraformResourceType() string { + return "opentelekomcloud_dms_user_v2" +} + +// GetConnectionDetailsMapping for this UserV2 +func (tr *UserV2) GetConnectionDetailsMapping() map[string]string { + return map[string]string{"password": "spec.forProvider.passwordSecretRef"} +} + +// GetObservation of this UserV2 +func (tr *UserV2) 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 UserV2 +func (tr *UserV2) 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 UserV2 +func (tr *UserV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this UserV2 +func (tr *UserV2) 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 UserV2 +func (tr *UserV2) 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 UserV2 +func (tr *UserV2) 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) +} + +// LateInitialize this UserV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *UserV2) LateInitialize(attrs []byte) (bool, error) { + params := &UserV2Parameters{} + 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 *UserV2) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/dms/v1alpha1/zz_groupversion_info.go b/apis/dms/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..b1c8d56 --- /dev/null +++ b/apis/dms/v1alpha1/zz_groupversion_info.go @@ -0,0 +1,36 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +// +kubebuilder:object:generate=true +// +groupName=dms.crossplane.io +// +versionName=v1alpha1 +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +// Package type metadata. +const ( + CRDGroup = "dms.crossplane.io" + CRDVersion = "v1alpha1" +) + +var ( + // CRDGroupVersion is the API Group Version used to register the objects + CRDGroupVersion = schema.GroupVersion{Group: CRDGroup, Version: CRDVersion} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme + SchemeBuilder = &scheme.Builder{GroupVersion: CRDGroupVersion} + + // AddToScheme adds the types in this group-version to the given scheme. + AddToScheme = SchemeBuilder.AddToScheme +) diff --git a/apis/dms/v1alpha1/zz_instancev1_types.go b/apis/dms/v1alpha1/zz_instancev1_types.go new file mode 100755 index 0000000..e9f225c --- /dev/null +++ b/apis/dms/v1alpha1/zz_instancev1_types.go @@ -0,0 +1,355 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 InstanceV1InitParameters struct { + + // Indicates a username. A username consists of 4 to 64 characters + // and supports only letters, digits, and hyphens (-). + AccessUser *string `json:"accessUser,omitempty" tf:"access_user,omitempty"` + + // 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. + AvailableZones []*string `json:"availableZones,omitempty" tf:"available_zones,omitempty"` + + // Indicates the description of an instance. It is a character + // string containing not more than 1024 characters. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Indicates a message engine. Only kafka is supported now. + Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` + + // Indicates the version of a message engine. + // Only 2.3.0 is supported now. + EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` + + // Indicates the time at which a maintenance time window starts. + // Format: HH:mm. + MaintainBegin *string `json:"maintainBegin,omitempty" tf:"maintain_begin,omitempty"` + + // Indicates the time at which a maintenance time window ends. + // Format: HH:mm. + MaintainEnd *string `json:"maintainEnd,omitempty" tf:"maintain_end,omitempty"` + + // Indicates the name of an instance. An instance name starts with a letter, + // consists of 4 to 64 characters, and supports only letters, digits, and hyphens (-). + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // This parameter is mandatory when a kafka instance is created. + // Indicates the maximum number of topics in a Kafka instance. + PartitionNum *float64 `json:"partitionNum,omitempty" tf:"partition_num,omitempty"` + + // Indicates a product ID. + ProductID *string `json:"productId,omitempty" tf:"product_id,omitempty"` + + // Indicates the action to be taken when the memory usage reaches + // the disk capacity threshold. The possible values are: + RetentionPolicy *string `json:"retentionPolicy,omitempty" tf:"retention_policy,omitempty"` + + // Indicates the ID of a security group. + SecurityGroupID *string `json:"securityGroupId,omitempty" tf:"security_group_id,omitempty"` + + // This parameter is mandatory if the engine is kafka. + // Indicates the baseline bandwidth of a Kafka instance, that is, the maximum amount + // of data transferred per unit time. Unit: byte/s. Options: 100MB, 300MB, + // 600MB, 1200MB. + Specification *string `json:"specification,omitempty" tf:"specification,omitempty"` + + // Indicates the message storage space. Value range: + StorageSpace *float64 `json:"storageSpace,omitempty" tf:"storage_space,omitempty"` + + // Indicates the storage I/O specification. Options for a Kafka instance: + StorageSpecCode *string `json:"storageSpecCode,omitempty" tf:"storage_spec_code,omitempty"` + + // Indicates the ID of the subnet (OpenStack network ID). + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // Indicates the ID of a VPC (OpenStack router ID). + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +} + +type InstanceV1Observation struct { + + // Indicates a username. A username consists of 4 to 64 characters + // and supports only letters, digits, and hyphens (-). + AccessUser *string `json:"accessUser,omitempty" tf:"access_user,omitempty"` + + // 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. + AvailableZones []*string `json:"availableZones,omitempty" tf:"available_zones,omitempty"` + + // Indicates the IP address of an instance. + ConnectAddress *string `json:"connectAddress,omitempty" tf:"connect_address,omitempty"` + + // Indicates the time when an instance is created. The time is in the format + // of timestamp, that is, the offset milliseconds from 1970-01-01 00:00:00 UTC to the specified time. + CreatedAt *string `json:"createdAt,omitempty" tf:"created_at,omitempty"` + + // Indicates the description of an instance. It is a character + // string containing not more than 1024 characters. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Indicates a message engine. Only kafka is supported now. + Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` + + // Indicates the version of a message engine. + // Only 2.3.0 is supported now. + EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Indicates the time at which a maintenance time window starts. + // Format: HH:mm. + MaintainBegin *string `json:"maintainBegin,omitempty" tf:"maintain_begin,omitempty"` + + // Indicates the time at which a maintenance time window ends. + // Format: HH:mm. + MaintainEnd *string `json:"maintainEnd,omitempty" tf:"maintain_end,omitempty"` + + // Indicates the name of an instance. An instance name starts with a letter, + // consists of 4 to 64 characters, and supports only letters, digits, and hyphens (-). + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + OrderID *string `json:"orderId,omitempty" tf:"order_id,omitempty"` + + // This parameter is mandatory when a kafka instance is created. + // Indicates the maximum number of topics in a Kafka instance. + PartitionNum *float64 `json:"partitionNum,omitempty" tf:"partition_num,omitempty"` + + // Indicates the port number of an instance. + Port *float64 `json:"port,omitempty" tf:"port,omitempty"` + + // Indicates a product ID. + ProductID *string `json:"productId,omitempty" tf:"product_id,omitempty"` + + // Indicates a resource specifications identifier. + ResourceSpecCode *string `json:"resourceSpecCode,omitempty" tf:"resource_spec_code,omitempty"` + + // Indicates the action to be taken when the memory usage reaches + // the disk capacity threshold. The possible values are: + RetentionPolicy *string `json:"retentionPolicy,omitempty" tf:"retention_policy,omitempty"` + + // Indicates the ID of a security group. + SecurityGroupID *string `json:"securityGroupId,omitempty" tf:"security_group_id,omitempty"` + + // Indicates the name of a security group. + SecurityGroupName *string `json:"securityGroupName,omitempty" tf:"security_group_name,omitempty"` + + // This parameter is mandatory if the engine is kafka. + // Indicates the baseline bandwidth of a Kafka instance, that is, the maximum amount + // of data transferred per unit time. Unit: byte/s. Options: 100MB, 300MB, + // 600MB, 1200MB. + Specification *string `json:"specification,omitempty" tf:"specification,omitempty"` + + // Indicates the status of an instance. For details, see section Instance Status. + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + // Indicates the message storage space. Value range: + StorageSpace *float64 `json:"storageSpace,omitempty" tf:"storage_space,omitempty"` + + // Indicates the storage I/O specification. Options for a Kafka instance: + StorageSpecCode *string `json:"storageSpecCode,omitempty" tf:"storage_spec_code,omitempty"` + + // Indicates the ID of the subnet (OpenStack network ID). + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // Indicates the name of a subnet. + SubnetName *string `json:"subnetName,omitempty" tf:"subnet_name,omitempty"` + + // Indicates an instance type. Options: single and cluster. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Indicates the used message storage space. Unit: GB + UsedStorageSpace *float64 `json:"usedStorageSpace,omitempty" tf:"used_storage_space,omitempty"` + + // Indicates a user ID. + UserID *string `json:"userId,omitempty" tf:"user_id,omitempty"` + + // Indicates a username. + UserName *string `json:"userName,omitempty" tf:"user_name,omitempty"` + + // Indicates the ID of a VPC (OpenStack router ID). + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` + + // Indicates the name of an instance. An instance name starts with a letter, + // consists of 4 to 64 characters, and supports only letters, digits, and hyphens (-). + VPCName *string `json:"vpcName,omitempty" tf:"vpc_name,omitempty"` +} + +type InstanceV1Parameters struct { + + // Indicates a username. A username consists of 4 to 64 characters + // and supports only letters, digits, and hyphens (-). + // +kubebuilder:validation:Optional + AccessUser *string `json:"accessUser,omitempty" tf:"access_user,omitempty"` + + // 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. + // +kubebuilder:validation:Optional + AvailableZones []*string `json:"availableZones,omitempty" tf:"available_zones,omitempty"` + + // Indicates the description of an instance. It is a character + // string containing not more than 1024 characters. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Indicates a message engine. Only kafka is supported now. + // +kubebuilder:validation:Optional + Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` + + // Indicates the version of a message engine. + // Only 2.3.0 is supported now. + // +kubebuilder:validation:Optional + EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` + + // Indicates the time at which a maintenance time window starts. + // Format: HH:mm. + // +kubebuilder:validation:Optional + MaintainBegin *string `json:"maintainBegin,omitempty" tf:"maintain_begin,omitempty"` + + // Indicates the time at which a maintenance time window ends. + // Format: HH:mm. + // +kubebuilder:validation:Optional + MaintainEnd *string `json:"maintainEnd,omitempty" tf:"maintain_end,omitempty"` + + // Indicates the name of an instance. An instance name starts with a letter, + // consists of 4 to 64 characters, and supports only letters, digits, and hyphens (-). + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // This parameter is mandatory when a kafka instance is created. + // Indicates the maximum number of topics in a Kafka instance. + // +kubebuilder:validation:Optional + PartitionNum *float64 `json:"partitionNum,omitempty" tf:"partition_num,omitempty"` + + // Indicates the password of an instance. An instance 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 (~!@#$%^&*()-_=+\|[{}]:'",<.>/?). + // +kubebuilder:validation:Optional + PasswordSecretRef *v1.SecretKeySelector `json:"passwordSecretRef,omitempty" tf:"-"` + + // Indicates a product ID. + // +kubebuilder:validation:Optional + ProductID *string `json:"productId,omitempty" tf:"product_id,omitempty"` + + // Indicates the action to be taken when the memory usage reaches + // the disk capacity threshold. The possible values are: + // +kubebuilder:validation:Optional + RetentionPolicy *string `json:"retentionPolicy,omitempty" tf:"retention_policy,omitempty"` + + // Indicates the ID of a security group. + // +kubebuilder:validation:Optional + SecurityGroupID *string `json:"securityGroupId,omitempty" tf:"security_group_id,omitempty"` + + // This parameter is mandatory if the engine is kafka. + // Indicates the baseline bandwidth of a Kafka instance, that is, the maximum amount + // of data transferred per unit time. Unit: byte/s. Options: 100MB, 300MB, + // 600MB, 1200MB. + // +kubebuilder:validation:Optional + Specification *string `json:"specification,omitempty" tf:"specification,omitempty"` + + // Indicates the message storage space. Value range: + // +kubebuilder:validation:Optional + StorageSpace *float64 `json:"storageSpace,omitempty" tf:"storage_space,omitempty"` + + // Indicates the storage I/O specification. Options for a Kafka instance: + // +kubebuilder:validation:Optional + StorageSpecCode *string `json:"storageSpecCode,omitempty" tf:"storage_spec_code,omitempty"` + + // Indicates the ID of the subnet (OpenStack network ID). + // +kubebuilder:validation:Optional + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // Indicates the ID of a VPC (OpenStack router ID). + // +kubebuilder:validation:Optional + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +} + +// InstanceV1Spec defines the desired state of InstanceV1 +type InstanceV1Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider InstanceV1Parameters `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 InstanceV1InitParameters `json:"initProvider,omitempty"` +} + +// InstanceV1Status defines the observed state of InstanceV1. +type InstanceV1Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider InstanceV1Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// InstanceV1 is the Schema for the InstanceV1s API. Manages a DMS Instance v1 resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type InstanceV1 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.availableZones) || (has(self.initProvider) && has(self.initProvider.availableZones))",message="spec.forProvider.availableZones is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.engine) || (has(self.initProvider) && has(self.initProvider.engine))",message="spec.forProvider.engine is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.engineVersion) || (has(self.initProvider) && has(self.initProvider.engineVersion))",message="spec.forProvider.engineVersion is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.productId) || (has(self.initProvider) && has(self.initProvider.productId))",message="spec.forProvider.productId is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.securityGroupId) || (has(self.initProvider) && has(self.initProvider.securityGroupId))",message="spec.forProvider.securityGroupId is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.storageSpace) || (has(self.initProvider) && has(self.initProvider.storageSpace))",message="spec.forProvider.storageSpace is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.storageSpecCode) || (has(self.initProvider) && has(self.initProvider.storageSpecCode))",message="spec.forProvider.storageSpecCode 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" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.vpcId) || (has(self.initProvider) && has(self.initProvider.vpcId))",message="spec.forProvider.vpcId is a required parameter" + Spec InstanceV1Spec `json:"spec"` + Status InstanceV1Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// InstanceV1List contains a list of InstanceV1s +type InstanceV1List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []InstanceV1 `json:"items"` +} + +// Repository type metadata. +var ( + InstanceV1_Kind = "InstanceV1" + InstanceV1_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: InstanceV1_Kind}.String() + InstanceV1_KindAPIVersion = InstanceV1_Kind + "." + CRDGroupVersion.String() + InstanceV1_GroupVersionKind = CRDGroupVersion.WithKind(InstanceV1_Kind) +) + +func init() { + SchemeBuilder.Register(&InstanceV1{}, &InstanceV1List{}) +} diff --git a/apis/dms/v1alpha1/zz_instancev2_types.go b/apis/dms/v1alpha1/zz_instancev2_types.go new file mode 100755 index 0000000..6e6378e --- /dev/null +++ b/apis/dms/v1alpha1/zz_instancev2_types.go @@ -0,0 +1,433 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 InstanceV2InitParameters struct { + + // Indicates a username. A username consists of 4 to 64 characters + // and supports only letters, digits, and hyphens (-). + AccessUser *string `json:"accessUser,omitempty" tf:"access_user,omitempty"` + + // 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. + AvailableZones []*string `json:"availableZones,omitempty" tf:"available_zones,omitempty"` + + // Indicates the description of an instance. It is a character + // string containing not more than 1024 characters. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // - Indicates whether disk encryption is enabled. + DiskEncryptedEnable *bool `json:"diskEncryptedEnable,omitempty" tf:"disk_encrypted_enable,omitempty"` + + // - Disk encryption key. If disk encryption is not enabled, this parameter is left blank. + DiskEncryptedKey *string `json:"diskEncryptedKey,omitempty" tf:"disk_encrypted_key,omitempty"` + + // - Whether to enable public access. By default, public access is disabled. + EnablePublicip *bool `json:"enablePublicip,omitempty" tf:"enable_publicip,omitempty"` + + // Indicates a message engine. Only kafka is supported now. + Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` + + // Indicates the version of a message engine. + // Options: 1.1.0, 2.3.0, 2.7. + EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` + + // Indicates the time at which a maintenance time window starts. + // Format: HH:mm. + MaintainBegin *string `json:"maintainBegin,omitempty" tf:"maintain_begin,omitempty"` + + // Indicates the time at which a maintenance time window ends. + // Format: HH:mm. + MaintainEnd *string `json:"maintainEnd,omitempty" tf:"maintain_end,omitempty"` + + // Indicates the name of an instance. An instance name starts with a letter, + // consists of 4 to 64 characters, and supports only letters, digits, and hyphens (-). + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // This parameter is mandatory when a kafka instance is created. + // Indicates the maximum number of topics in a Kafka instance. + PartitionNum *float64 `json:"partitionNum,omitempty" tf:"partition_num,omitempty"` + + // Indicates a product ID. + ProductID *string `json:"productId,omitempty" tf:"product_id,omitempty"` + + PublicBandwidth *float64 `json:"publicBandwidth,omitempty" tf:"public_bandwidth,omitempty"` + + // - List of public ip IDs to be bound to DMS instance nodes. + PublicipID []*string `json:"publicipId,omitempty" tf:"publicip_id,omitempty"` + + // Indicates the action to be taken when the memory usage reaches + // the disk capacity threshold. The possible values are: + RetentionPolicy *string `json:"retentionPolicy,omitempty" tf:"retention_policy,omitempty"` + + // Indicates the ID of a security group. + SecurityGroupID *string `json:"securityGroupId,omitempty" tf:"security_group_id,omitempty"` + + // This parameter is mandatory if the engine is kafka. + // Indicates the baseline bandwidth of a Kafka instance, that is, the maximum amount + // of data transferred per unit time. Unit: byte/s. Options: 100MB, 300MB, + // 600MB, 1200MB. + Specification *string `json:"specification,omitempty" tf:"specification,omitempty"` + + // Indicates the message storage space. Value range: + StorageSpace *float64 `json:"storageSpace,omitempty" tf:"storage_space,omitempty"` + + // Indicates the storage I/O specification. Options for a Kafka instance: + StorageSpecCode *string `json:"storageSpecCode,omitempty" tf:"storage_spec_code,omitempty"` + + // Indicates the ID of the subnet (OpenStack network ID). + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // Tags key/value pairs to associate with the instance. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Indicates the ID of a VPC (OpenStack router ID). + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +} + +type InstanceV2Observation struct { + + // Indicates a username. A username consists of 4 to 64 characters + // and supports only letters, digits, and hyphens (-). + AccessUser *string `json:"accessUser,omitempty" tf:"access_user,omitempty"` + + // 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. + AvailableZones []*string `json:"availableZones,omitempty" tf:"available_zones,omitempty"` + + // Indicates the IP address of an instance. + ConnectAddress *string `json:"connectAddress,omitempty" tf:"connect_address,omitempty"` + + // Indicates the time when an instance is created. The time is in the format + // of timestamp, that is, the offset milliseconds from 1970-01-01 00:00:00 UTC to the specified time. + CreatedAt *string `json:"createdAt,omitempty" tf:"created_at,omitempty"` + + // Indicates the description of an instance. It is a character + // string containing not more than 1024 characters. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // - Indicates whether disk encryption is enabled. + DiskEncryptedEnable *bool `json:"diskEncryptedEnable,omitempty" tf:"disk_encrypted_enable,omitempty"` + + // - Disk encryption key. If disk encryption is not enabled, this parameter is left blank. + DiskEncryptedKey *string `json:"diskEncryptedKey,omitempty" tf:"disk_encrypted_key,omitempty"` + + // - Whether to enable public access. By default, public access is disabled. + EnablePublicip *bool `json:"enablePublicip,omitempty" tf:"enable_publicip,omitempty"` + + // Indicates a message engine. Only kafka is supported now. + Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` + + // Indicates the version of a message engine. + // Options: 1.1.0, 2.3.0, 2.7. + EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Indicates the time at which a maintenance time window starts. + // Format: HH:mm. + MaintainBegin *string `json:"maintainBegin,omitempty" tf:"maintain_begin,omitempty"` + + // Indicates the time at which a maintenance time window ends. + // Format: HH:mm. + MaintainEnd *string `json:"maintainEnd,omitempty" tf:"maintain_end,omitempty"` + + // Indicates the name of an instance. An instance name starts with a letter, + // consists of 4 to 64 characters, and supports only letters, digits, and hyphens (-). + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Node quantity. + NodeNum *float64 `json:"nodeNum,omitempty" tf:"node_num,omitempty"` + + // This parameter is mandatory when a kafka instance is created. + // Indicates the maximum number of topics in a Kafka instance. + PartitionNum *float64 `json:"partitionNum,omitempty" tf:"partition_num,omitempty"` + + // Indicates the port number of an instance. + Port *float64 `json:"port,omitempty" tf:"port,omitempty"` + + // Indicates a product ID. + ProductID *string `json:"productId,omitempty" tf:"product_id,omitempty"` + + // Time when public access was enabled for an instance. + // The value can be true, actived, closed, or false. + PublicAccessEnabled *string `json:"publicAccessEnabled,omitempty" tf:"public_access_enabled,omitempty"` + + PublicBandwidth *float64 `json:"publicBandwidth,omitempty" tf:"public_bandwidth,omitempty"` + + // Instance public access address. This parameter is available only when public access is enabled for the instance. + PublicConnectAddress []*string `json:"publicConnectAddress,omitempty" tf:"public_connect_address,omitempty"` + + // - List of public ip IDs to be bound to DMS instance nodes. + PublicipID []*string `json:"publicipId,omitempty" tf:"publicip_id,omitempty"` + + // Indicates a resource specifications identifier. + ResourceSpecCode *string `json:"resourceSpecCode,omitempty" tf:"resource_spec_code,omitempty"` + + // Indicates the action to be taken when the memory usage reaches + // the disk capacity threshold. The possible values are: + RetentionPolicy *string `json:"retentionPolicy,omitempty" tf:"retention_policy,omitempty"` + + // Indicates whether security authentication is enabled. + // Possible values: true, false. + SSLEnable *bool `json:"sslEnable,omitempty" tf:"ssl_enable,omitempty"` + + // Indicates the ID of a security group. + SecurityGroupID *string `json:"securityGroupId,omitempty" tf:"security_group_id,omitempty"` + + // Indicates the name of a security group. + SecurityGroupName *string `json:"securityGroupName,omitempty" tf:"security_group_name,omitempty"` + + // This parameter is mandatory if the engine is kafka. + // Indicates the baseline bandwidth of a Kafka instance, that is, the maximum amount + // of data transferred per unit time. Unit: byte/s. Options: 100MB, 300MB, + // 600MB, 1200MB. + Specification *string `json:"specification,omitempty" tf:"specification,omitempty"` + + // Indicates the status of an instance. For details, see section Instance Status. + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + // Storage resource ID. + StorageResourceID *string `json:"storageResourceId,omitempty" tf:"storage_resource_id,omitempty"` + + // Indicates the message storage space. Value range: + StorageSpace *float64 `json:"storageSpace,omitempty" tf:"storage_space,omitempty"` + + // Indicates the storage I/O specification. Options for a Kafka instance: + StorageSpecCode *string `json:"storageSpecCode,omitempty" tf:"storage_spec_code,omitempty"` + + // Indicates a subnet segment. + SubnetCidr *string `json:"subnetCidr,omitempty" tf:"subnet_cidr,omitempty"` + + // Indicates the ID of the subnet (OpenStack network ID). + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // Indicates the name of a subnet. + SubnetName *string `json:"subnetName,omitempty" tf:"subnet_name,omitempty"` + + // Tags key/value pairs to associate with the instance. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Total message storage space in GB. + TotalStorageSpace *float64 `json:"totalStorageSpace,omitempty" tf:"total_storage_space,omitempty"` + + // Indicates an instance type. Options: single and cluster. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Indicates the used message storage space. Unit: GB + UsedStorageSpace *float64 `json:"usedStorageSpace,omitempty" tf:"used_storage_space,omitempty"` + + // Indicates a user ID. + UserID *string `json:"userId,omitempty" tf:"user_id,omitempty"` + + // Indicates a username. + UserName *string `json:"userName,omitempty" tf:"user_name,omitempty"` + + // Indicates the ID of a VPC (OpenStack router ID). + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` + + // Indicates the name of an instance. An instance name starts with a letter, + // consists of 4 to 64 characters, and supports only letters, digits, and hyphens (-). + VPCName *string `json:"vpcName,omitempty" tf:"vpc_name,omitempty"` +} + +type InstanceV2Parameters struct { + + // Indicates a username. A username consists of 4 to 64 characters + // and supports only letters, digits, and hyphens (-). + // +kubebuilder:validation:Optional + AccessUser *string `json:"accessUser,omitempty" tf:"access_user,omitempty"` + + // 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. + // +kubebuilder:validation:Optional + AvailableZones []*string `json:"availableZones,omitempty" tf:"available_zones,omitempty"` + + // Indicates the description of an instance. It is a character + // string containing not more than 1024 characters. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // - Indicates whether disk encryption is enabled. + // +kubebuilder:validation:Optional + DiskEncryptedEnable *bool `json:"diskEncryptedEnable,omitempty" tf:"disk_encrypted_enable,omitempty"` + + // - Disk encryption key. If disk encryption is not enabled, this parameter is left blank. + // +kubebuilder:validation:Optional + DiskEncryptedKey *string `json:"diskEncryptedKey,omitempty" tf:"disk_encrypted_key,omitempty"` + + // - Whether to enable public access. By default, public access is disabled. + // +kubebuilder:validation:Optional + EnablePublicip *bool `json:"enablePublicip,omitempty" tf:"enable_publicip,omitempty"` + + // Indicates a message engine. Only kafka is supported now. + // +kubebuilder:validation:Optional + Engine *string `json:"engine,omitempty" tf:"engine,omitempty"` + + // Indicates the version of a message engine. + // Options: 1.1.0, 2.3.0, 2.7. + // +kubebuilder:validation:Optional + EngineVersion *string `json:"engineVersion,omitempty" tf:"engine_version,omitempty"` + + // Indicates the time at which a maintenance time window starts. + // Format: HH:mm. + // +kubebuilder:validation:Optional + MaintainBegin *string `json:"maintainBegin,omitempty" tf:"maintain_begin,omitempty"` + + // Indicates the time at which a maintenance time window ends. + // Format: HH:mm. + // +kubebuilder:validation:Optional + MaintainEnd *string `json:"maintainEnd,omitempty" tf:"maintain_end,omitempty"` + + // Indicates the name of an instance. An instance name starts with a letter, + // consists of 4 to 64 characters, and supports only letters, digits, and hyphens (-). + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // This parameter is mandatory when a kafka instance is created. + // Indicates the maximum number of topics in a Kafka instance. + // +kubebuilder:validation:Optional + PartitionNum *float64 `json:"partitionNum,omitempty" tf:"partition_num,omitempty"` + + // Indicates the password of an instance. An instance 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 (~!@#$%^&*()-_=+\|[{}]:'",<.>/?). + // +kubebuilder:validation:Optional + PasswordSecretRef *v1.SecretKeySelector `json:"passwordSecretRef,omitempty" tf:"-"` + + // Indicates a product ID. + // +kubebuilder:validation:Optional + ProductID *string `json:"productId,omitempty" tf:"product_id,omitempty"` + + // +kubebuilder:validation:Optional + PublicBandwidth *float64 `json:"publicBandwidth,omitempty" tf:"public_bandwidth,omitempty"` + + // - List of public ip IDs to be bound to DMS instance nodes. + // +kubebuilder:validation:Optional + PublicipID []*string `json:"publicipId,omitempty" tf:"publicip_id,omitempty"` + + // Indicates the action to be taken when the memory usage reaches + // the disk capacity threshold. The possible values are: + // +kubebuilder:validation:Optional + RetentionPolicy *string `json:"retentionPolicy,omitempty" tf:"retention_policy,omitempty"` + + // Indicates the ID of a security group. + // +kubebuilder:validation:Optional + SecurityGroupID *string `json:"securityGroupId,omitempty" tf:"security_group_id,omitempty"` + + // This parameter is mandatory if the engine is kafka. + // Indicates the baseline bandwidth of a Kafka instance, that is, the maximum amount + // of data transferred per unit time. Unit: byte/s. Options: 100MB, 300MB, + // 600MB, 1200MB. + // +kubebuilder:validation:Optional + Specification *string `json:"specification,omitempty" tf:"specification,omitempty"` + + // Indicates the message storage space. Value range: + // +kubebuilder:validation:Optional + StorageSpace *float64 `json:"storageSpace,omitempty" tf:"storage_space,omitempty"` + + // Indicates the storage I/O specification. Options for a Kafka instance: + // +kubebuilder:validation:Optional + StorageSpecCode *string `json:"storageSpecCode,omitempty" tf:"storage_spec_code,omitempty"` + + // Indicates the ID of the subnet (OpenStack network ID). + // +kubebuilder:validation:Optional + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // Tags key/value pairs to associate with the instance. + // +kubebuilder:validation:Optional + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Indicates the ID of a VPC (OpenStack router ID). + // +kubebuilder:validation:Optional + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +} + +// InstanceV2Spec defines the desired state of InstanceV2 +type InstanceV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider InstanceV2Parameters `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 InstanceV2InitParameters `json:"initProvider,omitempty"` +} + +// InstanceV2Status defines the observed state of InstanceV2. +type InstanceV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider InstanceV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// InstanceV2 is the Schema for the InstanceV2s API. Manages a DMS Instance v2 resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type InstanceV2 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.availableZones) || (has(self.initProvider) && has(self.initProvider.availableZones))",message="spec.forProvider.availableZones is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.engine) || (has(self.initProvider) && has(self.initProvider.engine))",message="spec.forProvider.engine is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.engineVersion) || (has(self.initProvider) && has(self.initProvider.engineVersion))",message="spec.forProvider.engineVersion is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.productId) || (has(self.initProvider) && has(self.initProvider.productId))",message="spec.forProvider.productId is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.securityGroupId) || (has(self.initProvider) && has(self.initProvider.securityGroupId))",message="spec.forProvider.securityGroupId is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.storageSpace) || (has(self.initProvider) && has(self.initProvider.storageSpace))",message="spec.forProvider.storageSpace is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.storageSpecCode) || (has(self.initProvider) && has(self.initProvider.storageSpecCode))",message="spec.forProvider.storageSpecCode 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" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.vpcId) || (has(self.initProvider) && has(self.initProvider.vpcId))",message="spec.forProvider.vpcId is a required parameter" + Spec InstanceV2Spec `json:"spec"` + Status InstanceV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// InstanceV2List contains a list of InstanceV2s +type InstanceV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []InstanceV2 `json:"items"` +} + +// Repository type metadata. +var ( + InstanceV2_Kind = "InstanceV2" + InstanceV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: InstanceV2_Kind}.String() + InstanceV2_KindAPIVersion = InstanceV2_Kind + "." + CRDGroupVersion.String() + InstanceV2_GroupVersionKind = CRDGroupVersion.WithKind(InstanceV2_Kind) +) + +func init() { + SchemeBuilder.Register(&InstanceV2{}, &InstanceV2List{}) +} diff --git a/apis/dms/v1alpha1/zz_topicv1_types.go b/apis/dms/v1alpha1/zz_topicv1_types.go new file mode 100755 index 0000000..d29d403 --- /dev/null +++ b/apis/dms/v1alpha1/zz_topicv1_types.go @@ -0,0 +1,214 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 TopicV1InitParameters struct { + + // Indicates the ID of primary DMS instance. + InstanceID *string `json:"instanceId,omitempty" tf:"instance_id,omitempty"` + + // Total partitions number. + MaxPartitions *float64 `json:"maxPartitions,omitempty" tf:"max_partitions,omitempty"` + + // Indicates the name of a topic. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Indicates the number of topic partitions, + // which is used to set the number of concurrently consumed messages. + // Value range: 1–20. Default value: 3. + Partition *float64 `json:"partition,omitempty" tf:"partition,omitempty"` + + // Number of remaining partitions. + RemainPartitions *float64 `json:"remainPartitions,omitempty" tf:"remain_partitions,omitempty"` + + // Indicates the number of replicas, + // which is configured to ensure data reliability. + // Value range: 1–3. Default value: 3. + Replication *float64 `json:"replication,omitempty" tf:"replication,omitempty"` + + // Indicates the retention period of a message. Its default value is 72. + // Value range: 1–720. Default value: 72. Unit: hour. + RetentionTime *float64 `json:"retentionTime,omitempty" tf:"retention_time,omitempty"` + + // The partition size of the topic. + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // Indicates whether to enable synchronous flushing. + // Default value: false. Synchronous flushing compromises performance. + SyncMessageFlush *bool `json:"syncMessageFlush,omitempty" tf:"sync_message_flush,omitempty"` + + // Indicates whether to enable synchronous replication. + // After this function is enabled, the acks parameter on the producer client must be set to –1. + // Otherwise, this parameter does not take effect. + SyncReplication *bool `json:"syncReplication,omitempty" tf:"sync_replication,omitempty"` +} + +type TopicV1Observation struct { + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Indicates the ID of primary DMS instance. + InstanceID *string `json:"instanceId,omitempty" tf:"instance_id,omitempty"` + + // Total partitions number. + MaxPartitions *float64 `json:"maxPartitions,omitempty" tf:"max_partitions,omitempty"` + + // Indicates the name of a topic. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Indicates the number of topic partitions, + // which is used to set the number of concurrently consumed messages. + // Value range: 1–20. Default value: 3. + Partition *float64 `json:"partition,omitempty" tf:"partition,omitempty"` + + // Number of remaining partitions. + RemainPartitions *float64 `json:"remainPartitions,omitempty" tf:"remain_partitions,omitempty"` + + // Indicates the number of replicas, + // which is configured to ensure data reliability. + // Value range: 1–3. Default value: 3. + Replication *float64 `json:"replication,omitempty" tf:"replication,omitempty"` + + // Indicates the retention period of a message. Its default value is 72. + // Value range: 1–720. Default value: 72. Unit: hour. + RetentionTime *float64 `json:"retentionTime,omitempty" tf:"retention_time,omitempty"` + + // The partition size of the topic. + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // Indicates whether to enable synchronous flushing. + // Default value: false. Synchronous flushing compromises performance. + SyncMessageFlush *bool `json:"syncMessageFlush,omitempty" tf:"sync_message_flush,omitempty"` + + // Indicates whether to enable synchronous replication. + // After this function is enabled, the acks parameter on the producer client must be set to –1. + // Otherwise, this parameter does not take effect. + SyncReplication *bool `json:"syncReplication,omitempty" tf:"sync_replication,omitempty"` +} + +type TopicV1Parameters struct { + + // Indicates the ID of primary DMS instance. + // +kubebuilder:validation:Optional + InstanceID *string `json:"instanceId,omitempty" tf:"instance_id,omitempty"` + + // Total partitions number. + // +kubebuilder:validation:Optional + MaxPartitions *float64 `json:"maxPartitions,omitempty" tf:"max_partitions,omitempty"` + + // Indicates the name of a topic. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Indicates the number of topic partitions, + // which is used to set the number of concurrently consumed messages. + // Value range: 1–20. Default value: 3. + // +kubebuilder:validation:Optional + Partition *float64 `json:"partition,omitempty" tf:"partition,omitempty"` + + // Number of remaining partitions. + // +kubebuilder:validation:Optional + RemainPartitions *float64 `json:"remainPartitions,omitempty" tf:"remain_partitions,omitempty"` + + // Indicates the number of replicas, + // which is configured to ensure data reliability. + // Value range: 1–3. Default value: 3. + // +kubebuilder:validation:Optional + Replication *float64 `json:"replication,omitempty" tf:"replication,omitempty"` + + // Indicates the retention period of a message. Its default value is 72. + // Value range: 1–720. Default value: 72. Unit: hour. + // +kubebuilder:validation:Optional + RetentionTime *float64 `json:"retentionTime,omitempty" tf:"retention_time,omitempty"` + + // The partition size of the topic. + // +kubebuilder:validation:Optional + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // Indicates whether to enable synchronous flushing. + // Default value: false. Synchronous flushing compromises performance. + // +kubebuilder:validation:Optional + SyncMessageFlush *bool `json:"syncMessageFlush,omitempty" tf:"sync_message_flush,omitempty"` + + // Indicates whether to enable synchronous replication. + // After this function is enabled, the acks parameter on the producer client must be set to –1. + // Otherwise, this parameter does not take effect. + // +kubebuilder:validation:Optional + SyncReplication *bool `json:"syncReplication,omitempty" tf:"sync_replication,omitempty"` +} + +// TopicV1Spec defines the desired state of TopicV1 +type TopicV1Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider TopicV1Parameters `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 TopicV1InitParameters `json:"initProvider,omitempty"` +} + +// TopicV1Status defines the observed state of TopicV1. +type TopicV1Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider TopicV1Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// TopicV1 is the Schema for the TopicV1s API. Manages a DMS Topic resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type TopicV1 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.instanceId) || (has(self.initProvider) && has(self.initProvider.instanceId))",message="spec.forProvider.instanceId is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + Spec TopicV1Spec `json:"spec"` + Status TopicV1Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// TopicV1List contains a list of TopicV1s +type TopicV1List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []TopicV1 `json:"items"` +} + +// Repository type metadata. +var ( + TopicV1_Kind = "TopicV1" + TopicV1_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: TopicV1_Kind}.String() + TopicV1_KindAPIVersion = TopicV1_Kind + "." + CRDGroupVersion.String() + TopicV1_GroupVersionKind = CRDGroupVersion.WithKind(TopicV1_Kind) +) + +func init() { + SchemeBuilder.Register(&TopicV1{}, &TopicV1List{}) +} diff --git a/apis/dms/v1alpha1/zz_userpermissionv1_types.go b/apis/dms/v1alpha1/zz_userpermissionv1_types.go new file mode 100755 index 0000000..f9382e9 --- /dev/null +++ b/apis/dms/v1alpha1/zz_userpermissionv1_types.go @@ -0,0 +1,159 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 PoliciesInitParameters struct { + + // Permission type. Possible values: + AccessPolicy *string `json:"accessPolicy,omitempty" tf:"access_policy,omitempty"` + + // DMS instance user name. + Username *string `json:"username,omitempty" tf:"username,omitempty"` +} + +type PoliciesObservation struct { + + // Permission type. Possible values: + AccessPolicy *string `json:"accessPolicy,omitempty" tf:"access_policy,omitempty"` + + // Indicates whether the user is the one selected during topic creation. + Owner *bool `json:"owner,omitempty" tf:"owner,omitempty"` + + // DMS instance user name. + Username *string `json:"username,omitempty" tf:"username,omitempty"` +} + +type PoliciesParameters struct { + + // Permission type. Possible values: + // +kubebuilder:validation:Optional + AccessPolicy *string `json:"accessPolicy" tf:"access_policy,omitempty"` + + // DMS instance user name. + // +kubebuilder:validation:Optional + Username *string `json:"username" tf:"username,omitempty"` +} + +type UserPermissionV1InitParameters struct { + + // Indicates the ID of primary DMS instance. + InstanceID *string `json:"instanceId,omitempty" tf:"instance_id,omitempty"` + + // Indicates policy configuration for the topic. + // Supported fields: + Policies []PoliciesInitParameters `json:"policies,omitempty" tf:"policies,omitempty"` + + // Indicates the name of a topic. + TopicName *string `json:"topicName,omitempty" tf:"topic_name,omitempty"` +} + +type UserPermissionV1Observation struct { + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Indicates the ID of primary DMS instance. + InstanceID *string `json:"instanceId,omitempty" tf:"instance_id,omitempty"` + + // Indicates policy configuration for the topic. + // Supported fields: + Policies []PoliciesObservation `json:"policies,omitempty" tf:"policies,omitempty"` + + // Indicates the name of a topic. + TopicName *string `json:"topicName,omitempty" tf:"topic_name,omitempty"` + + // Indicates topic type. 0: common topic; 1: system (internal) topic. + TopicType *float64 `json:"topicType,omitempty" tf:"topic_type,omitempty"` +} + +type UserPermissionV1Parameters struct { + + // Indicates the ID of primary DMS instance. + // +kubebuilder:validation:Optional + InstanceID *string `json:"instanceId,omitempty" tf:"instance_id,omitempty"` + + // Indicates policy configuration for the topic. + // Supported fields: + // +kubebuilder:validation:Optional + Policies []PoliciesParameters `json:"policies,omitempty" tf:"policies,omitempty"` + + // Indicates the name of a topic. + // +kubebuilder:validation:Optional + TopicName *string `json:"topicName,omitempty" tf:"topic_name,omitempty"` +} + +// UserPermissionV1Spec defines the desired state of UserPermissionV1 +type UserPermissionV1Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider UserPermissionV1Parameters `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 UserPermissionV1InitParameters `json:"initProvider,omitempty"` +} + +// UserPermissionV1Status defines the observed state of UserPermissionV1. +type UserPermissionV1Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider UserPermissionV1Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// UserPermissionV1 is the Schema for the UserPermissionV1s API. Manages a DMS User Permissions resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type UserPermissionV1 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.instanceId) || (has(self.initProvider) && has(self.initProvider.instanceId))",message="spec.forProvider.instanceId is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.policies) || (has(self.initProvider) && has(self.initProvider.policies))",message="spec.forProvider.policies is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.topicName) || (has(self.initProvider) && has(self.initProvider.topicName))",message="spec.forProvider.topicName is a required parameter" + Spec UserPermissionV1Spec `json:"spec"` + Status UserPermissionV1Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// UserPermissionV1List contains a list of UserPermissionV1s +type UserPermissionV1List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []UserPermissionV1 `json:"items"` +} + +// Repository type metadata. +var ( + UserPermissionV1_Kind = "UserPermissionV1" + UserPermissionV1_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: UserPermissionV1_Kind}.String() + UserPermissionV1_KindAPIVersion = UserPermissionV1_Kind + "." + CRDGroupVersion.String() + UserPermissionV1_GroupVersionKind = CRDGroupVersion.WithKind(UserPermissionV1_Kind) +) + +func init() { + SchemeBuilder.Register(&UserPermissionV1{}, &UserPermissionV1List{}) +} diff --git a/apis/dms/v1alpha1/zz_userv2_types.go b/apis/dms/v1alpha1/zz_userv2_types.go new file mode 100755 index 0000000..62cb0aa --- /dev/null +++ b/apis/dms/v1alpha1/zz_userv2_types.go @@ -0,0 +1,131 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 UserV2InitParameters struct { + + // Indicates the ID of primary DMS instance. + InstanceID *string `json:"instanceId,omitempty" tf:"instance_id,omitempty"` + + // Indicates a username. A username consists of 4 to 64 characters + // and supports only letters, digits, and hyphens (-). + Username *string `json:"username,omitempty" tf:"username,omitempty"` +} + +type UserV2Observation struct { + + // Specifies the time when a user was created. + CreationTime *float64 `json:"creationTime,omitempty" tf:"creation_time,omitempty"` + + // Specifies whether an application is the default application. + DefaultApp *bool `json:"defaultApp,omitempty" tf:"default_app,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Indicates the ID of primary DMS instance. + InstanceID *string `json:"instanceId,omitempty" tf:"instance_id,omitempty"` + + // Specifies user role. + Role *string `json:"role,omitempty" tf:"role,omitempty"` + + // Indicates a username. A username consists of 4 to 64 characters + // and supports only letters, digits, and hyphens (-). + Username *string `json:"username,omitempty" tf:"username,omitempty"` +} + +type UserV2Parameters struct { + + // Indicates the ID of primary DMS instance. + // +kubebuilder:validation:Optional + InstanceID *string `json:"instanceId,omitempty" tf:"instance_id,omitempty"` + + // Indicates the password of an instance. An instance 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 (~!@#$%^&*()-_=+\|[{}]:'",<.>/?). + // +kubebuilder:validation:Optional + PasswordSecretRef v1.SecretKeySelector `json:"passwordSecretRef" tf:"-"` + + // Indicates a username. A username consists of 4 to 64 characters + // and supports only letters, digits, and hyphens (-). + // +kubebuilder:validation:Optional + Username *string `json:"username,omitempty" tf:"username,omitempty"` +} + +// UserV2Spec defines the desired state of UserV2 +type UserV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider UserV2Parameters `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 UserV2InitParameters `json:"initProvider,omitempty"` +} + +// UserV2Status defines the observed state of UserV2. +type UserV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider UserV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// UserV2 is the Schema for the UserV2s API. Manages a DMS User resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type UserV2 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.instanceId) || (has(self.initProvider) && has(self.initProvider.instanceId))",message="spec.forProvider.instanceId is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.passwordSecretRef)",message="spec.forProvider.passwordSecretRef is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.username) || (has(self.initProvider) && has(self.initProvider.username))",message="spec.forProvider.username is a required parameter" + Spec UserV2Spec `json:"spec"` + Status UserV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// UserV2List contains a list of UserV2s +type UserV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []UserV2 `json:"items"` +} + +// Repository type metadata. +var ( + UserV2_Kind = "UserV2" + UserV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: UserV2_Kind}.String() + UserV2_KindAPIVersion = UserV2_Kind + "." + CRDGroupVersion.String() + UserV2_GroupVersionKind = CRDGroupVersion.WithKind(UserV2_Kind) +) + +func init() { + SchemeBuilder.Register(&UserV2{}, &UserV2List{}) +} diff --git a/apis/dns/v1alpha1/zz_generated.deepcopy.go b/apis/dns/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..7d64605 --- /dev/null +++ b/apis/dns/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,1075 @@ +//go:build !ignore_autogenerated + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by controller-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + 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 *PtrrecordV2) DeepCopyInto(out *PtrrecordV2) { + *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 PtrrecordV2. +func (in *PtrrecordV2) DeepCopy() *PtrrecordV2 { + if in == nil { + return nil + } + out := new(PtrrecordV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PtrrecordV2) 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 *PtrrecordV2InitParameters) DeepCopyInto(out *PtrrecordV2InitParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.FloatingipID != nil { + in, out := &in.FloatingipID, &out.FloatingipID + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.TTL != nil { + in, out := &in.TTL, &out.TTL + *out = new(float64) + **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 PtrrecordV2InitParameters. +func (in *PtrrecordV2InitParameters) DeepCopy() *PtrrecordV2InitParameters { + if in == nil { + return nil + } + out := new(PtrrecordV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PtrrecordV2List) DeepCopyInto(out *PtrrecordV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]PtrrecordV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PtrrecordV2List. +func (in *PtrrecordV2List) DeepCopy() *PtrrecordV2List { + if in == nil { + return nil + } + out := new(PtrrecordV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PtrrecordV2List) 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 *PtrrecordV2Observation) DeepCopyInto(out *PtrrecordV2Observation) { + *out = *in + if in.Address != nil { + in, out := &in.Address, &out.Address + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.FloatingipID != nil { + in, out := &in.FloatingipID, &out.FloatingipID + *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.TTL != nil { + in, out := &in.TTL, &out.TTL + *out = new(float64) + **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 PtrrecordV2Observation. +func (in *PtrrecordV2Observation) DeepCopy() *PtrrecordV2Observation { + if in == nil { + return nil + } + out := new(PtrrecordV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PtrrecordV2Parameters) DeepCopyInto(out *PtrrecordV2Parameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.FloatingipID != nil { + in, out := &in.FloatingipID, &out.FloatingipID + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.TTL != nil { + in, out := &in.TTL, &out.TTL + *out = new(float64) + **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 PtrrecordV2Parameters. +func (in *PtrrecordV2Parameters) DeepCopy() *PtrrecordV2Parameters { + if in == nil { + return nil + } + out := new(PtrrecordV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PtrrecordV2Spec) DeepCopyInto(out *PtrrecordV2Spec) { + *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 PtrrecordV2Spec. +func (in *PtrrecordV2Spec) DeepCopy() *PtrrecordV2Spec { + if in == nil { + return nil + } + out := new(PtrrecordV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PtrrecordV2Status) DeepCopyInto(out *PtrrecordV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PtrrecordV2Status. +func (in *PtrrecordV2Status) DeepCopy() *PtrrecordV2Status { + if in == nil { + return nil + } + out := new(PtrrecordV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RecordsetV2) DeepCopyInto(out *RecordsetV2) { + *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 RecordsetV2. +func (in *RecordsetV2) DeepCopy() *RecordsetV2 { + if in == nil { + return nil + } + out := new(RecordsetV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *RecordsetV2) 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 *RecordsetV2InitParameters) DeepCopyInto(out *RecordsetV2InitParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Records != nil { + in, out := &in.Records, &out.Records + *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.TTL != nil { + in, out := &in.TTL, &out.TTL + *out = new(float64) + **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.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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.ZoneID != nil { + in, out := &in.ZoneID, &out.ZoneID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RecordsetV2InitParameters. +func (in *RecordsetV2InitParameters) DeepCopy() *RecordsetV2InitParameters { + if in == nil { + return nil + } + out := new(RecordsetV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RecordsetV2List) DeepCopyInto(out *RecordsetV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]RecordsetV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RecordsetV2List. +func (in *RecordsetV2List) DeepCopy() *RecordsetV2List { + if in == nil { + return nil + } + out := new(RecordsetV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *RecordsetV2List) 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 *RecordsetV2Observation) DeepCopyInto(out *RecordsetV2Observation) { + *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.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Records != nil { + in, out := &in.Records, &out.Records + *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.Shared != nil { + in, out := &in.Shared, &out.Shared + *out = new(bool) + **out = **in + } + if in.TTL != nil { + in, out := &in.TTL, &out.TTL + *out = new(float64) + **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.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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.ZoneID != nil { + in, out := &in.ZoneID, &out.ZoneID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RecordsetV2Observation. +func (in *RecordsetV2Observation) DeepCopy() *RecordsetV2Observation { + if in == nil { + return nil + } + out := new(RecordsetV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RecordsetV2Parameters) DeepCopyInto(out *RecordsetV2Parameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Records != nil { + in, out := &in.Records, &out.Records + *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.TTL != nil { + in, out := &in.TTL, &out.TTL + *out = new(float64) + **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.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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.ZoneID != nil { + in, out := &in.ZoneID, &out.ZoneID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RecordsetV2Parameters. +func (in *RecordsetV2Parameters) DeepCopy() *RecordsetV2Parameters { + if in == nil { + return nil + } + out := new(RecordsetV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RecordsetV2Spec) DeepCopyInto(out *RecordsetV2Spec) { + *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 RecordsetV2Spec. +func (in *RecordsetV2Spec) DeepCopy() *RecordsetV2Spec { + if in == nil { + return nil + } + out := new(RecordsetV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RecordsetV2Status) DeepCopyInto(out *RecordsetV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RecordsetV2Status. +func (in *RecordsetV2Status) DeepCopy() *RecordsetV2Status { + if in == nil { + return nil + } + out := new(RecordsetV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RouterInitParameters) DeepCopyInto(out *RouterInitParameters) { + *out = *in + if in.RouterID != nil { + in, out := &in.RouterID, &out.RouterID + *out = new(string) + **out = **in + } + if in.RouterRegion != nil { + in, out := &in.RouterRegion, &out.RouterRegion + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterInitParameters. +func (in *RouterInitParameters) DeepCopy() *RouterInitParameters { + if in == nil { + return nil + } + out := new(RouterInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RouterObservation) DeepCopyInto(out *RouterObservation) { + *out = *in + if in.RouterID != nil { + in, out := &in.RouterID, &out.RouterID + *out = new(string) + **out = **in + } + if in.RouterRegion != nil { + in, out := &in.RouterRegion, &out.RouterRegion + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterObservation. +func (in *RouterObservation) DeepCopy() *RouterObservation { + if in == nil { + return nil + } + out := new(RouterObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RouterParameters) DeepCopyInto(out *RouterParameters) { + *out = *in + if in.RouterID != nil { + in, out := &in.RouterID, &out.RouterID + *out = new(string) + **out = **in + } + if in.RouterRegion != nil { + in, out := &in.RouterRegion, &out.RouterRegion + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterParameters. +func (in *RouterParameters) DeepCopy() *RouterParameters { + if in == nil { + return nil + } + out := new(RouterParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ZoneV2) DeepCopyInto(out *ZoneV2) { + *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 ZoneV2. +func (in *ZoneV2) DeepCopy() *ZoneV2 { + if in == nil { + return nil + } + out := new(ZoneV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ZoneV2) 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 *ZoneV2InitParameters) DeepCopyInto(out *ZoneV2InitParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Email != nil { + in, out := &in.Email, &out.Email + *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.Router != nil { + in, out := &in.Router, &out.Router + *out = make([]RouterInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.TTL != nil { + in, out := &in.TTL, &out.TTL + *out = new(float64) + **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.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 ZoneV2InitParameters. +func (in *ZoneV2InitParameters) DeepCopy() *ZoneV2InitParameters { + if in == nil { + return nil + } + out := new(ZoneV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ZoneV2List) DeepCopyInto(out *ZoneV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ZoneV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ZoneV2List. +func (in *ZoneV2List) DeepCopy() *ZoneV2List { + if in == nil { + return nil + } + out := new(ZoneV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ZoneV2List) 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 *ZoneV2Observation) DeepCopyInto(out *ZoneV2Observation) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Email != nil { + in, out := &in.Email, &out.Email + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Masters != nil { + in, out := &in.Masters, &out.Masters + *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.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.Router != nil { + in, out := &in.Router, &out.Router + *out = make([]RouterObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.TTL != nil { + in, out := &in.TTL, &out.TTL + *out = new(float64) + **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.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 ZoneV2Observation. +func (in *ZoneV2Observation) DeepCopy() *ZoneV2Observation { + if in == nil { + return nil + } + out := new(ZoneV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ZoneV2Parameters) DeepCopyInto(out *ZoneV2Parameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Email != nil { + in, out := &in.Email, &out.Email + *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.Router != nil { + in, out := &in.Router, &out.Router + *out = make([]RouterParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.TTL != nil { + in, out := &in.TTL, &out.TTL + *out = new(float64) + **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.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 ZoneV2Parameters. +func (in *ZoneV2Parameters) DeepCopy() *ZoneV2Parameters { + if in == nil { + return nil + } + out := new(ZoneV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ZoneV2Spec) DeepCopyInto(out *ZoneV2Spec) { + *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 ZoneV2Spec. +func (in *ZoneV2Spec) DeepCopy() *ZoneV2Spec { + if in == nil { + return nil + } + out := new(ZoneV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ZoneV2Status) DeepCopyInto(out *ZoneV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ZoneV2Status. +func (in *ZoneV2Status) DeepCopy() *ZoneV2Status { + if in == nil { + return nil + } + out := new(ZoneV2Status) + in.DeepCopyInto(out) + return out +} diff --git a/apis/dns/v1alpha1/zz_generated.managed.go b/apis/dns/v1alpha1/zz_generated.managed.go new file mode 100644 index 0000000..4ab0f4b --- /dev/null +++ b/apis/dns/v1alpha1/zz_generated.managed.go @@ -0,0 +1,188 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import xpv1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + +// GetCondition of this PtrrecordV2. +func (mg *PtrrecordV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this PtrrecordV2. +func (mg *PtrrecordV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this PtrrecordV2. +func (mg *PtrrecordV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this PtrrecordV2. +func (mg *PtrrecordV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this PtrrecordV2. +func (mg *PtrrecordV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this PtrrecordV2. +func (mg *PtrrecordV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this PtrrecordV2. +func (mg *PtrrecordV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this PtrrecordV2. +func (mg *PtrrecordV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this PtrrecordV2. +func (mg *PtrrecordV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this PtrrecordV2. +func (mg *PtrrecordV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this PtrrecordV2. +func (mg *PtrrecordV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this PtrrecordV2. +func (mg *PtrrecordV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this RecordsetV2. +func (mg *RecordsetV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this RecordsetV2. +func (mg *RecordsetV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this RecordsetV2. +func (mg *RecordsetV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this RecordsetV2. +func (mg *RecordsetV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this RecordsetV2. +func (mg *RecordsetV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this RecordsetV2. +func (mg *RecordsetV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this RecordsetV2. +func (mg *RecordsetV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this RecordsetV2. +func (mg *RecordsetV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this RecordsetV2. +func (mg *RecordsetV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this RecordsetV2. +func (mg *RecordsetV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this RecordsetV2. +func (mg *RecordsetV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this RecordsetV2. +func (mg *RecordsetV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this ZoneV2. +func (mg *ZoneV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this ZoneV2. +func (mg *ZoneV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this ZoneV2. +func (mg *ZoneV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this ZoneV2. +func (mg *ZoneV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this ZoneV2. +func (mg *ZoneV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this ZoneV2. +func (mg *ZoneV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this ZoneV2. +func (mg *ZoneV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this ZoneV2. +func (mg *ZoneV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this ZoneV2. +func (mg *ZoneV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this ZoneV2. +func (mg *ZoneV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this ZoneV2. +func (mg *ZoneV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this ZoneV2. +func (mg *ZoneV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} diff --git a/apis/dns/v1alpha1/zz_generated.managedlist.go b/apis/dns/v1alpha1/zz_generated.managedlist.go new file mode 100644 index 0000000..da587c4 --- /dev/null +++ b/apis/dns/v1alpha1/zz_generated.managedlist.go @@ -0,0 +1,35 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import resource "github.com/crossplane/crossplane-runtime/pkg/resource" + +// GetItems of this PtrrecordV2List. +func (l *PtrrecordV2List) 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 RecordsetV2List. +func (l *RecordsetV2List) 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 ZoneV2List. +func (l *ZoneV2List) 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/dns/v1alpha1/zz_generated_terraformed.go b/apis/dns/v1alpha1/zz_generated_terraformed.go new file mode 100755 index 0000000..995e4da --- /dev/null +++ b/apis/dns/v1alpha1/zz_generated_terraformed.go @@ -0,0 +1,270 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "github.com/pkg/errors" + + "github.com/crossplane/upjet/pkg/resource" + "github.com/crossplane/upjet/pkg/resource/json" +) + +// GetTerraformResourceType returns Terraform resource type for this PtrrecordV2 +func (mg *PtrrecordV2) GetTerraformResourceType() string { + return "opentelekomcloud_dns_ptrrecord_v2" +} + +// GetConnectionDetailsMapping for this PtrrecordV2 +func (tr *PtrrecordV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this PtrrecordV2 +func (tr *PtrrecordV2) 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 PtrrecordV2 +func (tr *PtrrecordV2) 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 PtrrecordV2 +func (tr *PtrrecordV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this PtrrecordV2 +func (tr *PtrrecordV2) 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 PtrrecordV2 +func (tr *PtrrecordV2) 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 PtrrecordV2 +func (tr *PtrrecordV2) 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) +} + +// LateInitialize this PtrrecordV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *PtrrecordV2) LateInitialize(attrs []byte) (bool, error) { + params := &PtrrecordV2Parameters{} + 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 *PtrrecordV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this RecordsetV2 +func (mg *RecordsetV2) GetTerraformResourceType() string { + return "opentelekomcloud_dns_recordset_v2" +} + +// GetConnectionDetailsMapping for this RecordsetV2 +func (tr *RecordsetV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this RecordsetV2 +func (tr *RecordsetV2) 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 RecordsetV2 +func (tr *RecordsetV2) 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 RecordsetV2 +func (tr *RecordsetV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this RecordsetV2 +func (tr *RecordsetV2) 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 RecordsetV2 +func (tr *RecordsetV2) 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 RecordsetV2 +func (tr *RecordsetV2) 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) +} + +// LateInitialize this RecordsetV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *RecordsetV2) LateInitialize(attrs []byte) (bool, error) { + params := &RecordsetV2Parameters{} + 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 *RecordsetV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this ZoneV2 +func (mg *ZoneV2) GetTerraformResourceType() string { + return "opentelekomcloud_dns_zone_v2" +} + +// GetConnectionDetailsMapping for this ZoneV2 +func (tr *ZoneV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this ZoneV2 +func (tr *ZoneV2) 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 ZoneV2 +func (tr *ZoneV2) 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 ZoneV2 +func (tr *ZoneV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this ZoneV2 +func (tr *ZoneV2) 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 ZoneV2 +func (tr *ZoneV2) 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 ZoneV2 +func (tr *ZoneV2) 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) +} + +// LateInitialize this ZoneV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *ZoneV2) LateInitialize(attrs []byte) (bool, error) { + params := &ZoneV2Parameters{} + 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 *ZoneV2) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/dns/v1alpha1/zz_groupversion_info.go b/apis/dns/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..283e986 --- /dev/null +++ b/apis/dns/v1alpha1/zz_groupversion_info.go @@ -0,0 +1,36 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +// +kubebuilder:object:generate=true +// +groupName=dns.crossplane.io +// +versionName=v1alpha1 +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +// Package type metadata. +const ( + CRDGroup = "dns.crossplane.io" + CRDVersion = "v1alpha1" +) + +var ( + // CRDGroupVersion is the API Group Version used to register the objects + CRDGroupVersion = schema.GroupVersion{Group: CRDGroup, Version: CRDVersion} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme + SchemeBuilder = &scheme.Builder{GroupVersion: CRDGroupVersion} + + // AddToScheme adds the types in this group-version to the given scheme. + AddToScheme = SchemeBuilder.AddToScheme +) diff --git a/apis/dns/v1alpha1/zz_ptrrecordv2_types.go b/apis/dns/v1alpha1/zz_ptrrecordv2_types.go new file mode 100755 index 0000000..e361473 --- /dev/null +++ b/apis/dns/v1alpha1/zz_ptrrecordv2_types.go @@ -0,0 +1,151 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 PtrrecordV2InitParameters struct { + + // Description of the PTR record. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The ID of the FloatingIP/EIP. + FloatingipID *string `json:"floatingipId,omitempty" tf:"floatingip_id,omitempty"` + + // Domain name of the PTR record. A domain name is case insensitive. + // Uppercase letters will also be converted into lowercase letters. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The time to live (TTL) of the record set (in seconds). The value + // range is 300–2147483647. The default value is 300. + TTL *float64 `json:"ttl,omitempty" tf:"ttl,omitempty"` + + // Tags key/value pairs to associate with the PTR record. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +} + +type PtrrecordV2Observation struct { + + // The address of the FloatingIP/EIP. + Address *string `json:"address,omitempty" tf:"address,omitempty"` + + // Description of the PTR record. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The ID of the FloatingIP/EIP. + FloatingipID *string `json:"floatingipId,omitempty" tf:"floatingip_id,omitempty"` + + // The PTR record ID, which is in {region}:{floatingip_id} format. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Domain name of the PTR record. A domain name is case insensitive. + // Uppercase letters will also be converted into lowercase letters. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The time to live (TTL) of the record set (in seconds). The value + // range is 300–2147483647. The default value is 300. + TTL *float64 `json:"ttl,omitempty" tf:"ttl,omitempty"` + + // Tags key/value pairs to associate with the PTR record. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +} + +type PtrrecordV2Parameters struct { + + // Description of the PTR record. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The ID of the FloatingIP/EIP. + // +kubebuilder:validation:Optional + FloatingipID *string `json:"floatingipId,omitempty" tf:"floatingip_id,omitempty"` + + // Domain name of the PTR record. A domain name is case insensitive. + // Uppercase letters will also be converted into lowercase letters. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The time to live (TTL) of the record set (in seconds). The value + // range is 300–2147483647. The default value is 300. + // +kubebuilder:validation:Optional + TTL *float64 `json:"ttl,omitempty" tf:"ttl,omitempty"` + + // Tags key/value pairs to associate with the PTR record. + // +kubebuilder:validation:Optional + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +} + +// PtrrecordV2Spec defines the desired state of PtrrecordV2 +type PtrrecordV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider PtrrecordV2Parameters `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 PtrrecordV2InitParameters `json:"initProvider,omitempty"` +} + +// PtrrecordV2Status defines the observed state of PtrrecordV2. +type PtrrecordV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider PtrrecordV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// PtrrecordV2 is the Schema for the PtrrecordV2s API. Manages a DNS PTR Record resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type PtrrecordV2 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.floatingipId) || (has(self.initProvider) && has(self.initProvider.floatingipId))",message="spec.forProvider.floatingipId is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + Spec PtrrecordV2Spec `json:"spec"` + Status PtrrecordV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// PtrrecordV2List contains a list of PtrrecordV2s +type PtrrecordV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []PtrrecordV2 `json:"items"` +} + +// Repository type metadata. +var ( + PtrrecordV2_Kind = "PtrrecordV2" + PtrrecordV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: PtrrecordV2_Kind}.String() + PtrrecordV2_KindAPIVersion = PtrrecordV2_Kind + "." + CRDGroupVersion.String() + PtrrecordV2_GroupVersionKind = CRDGroupVersion.WithKind(PtrrecordV2_Kind) +) + +func init() { + SchemeBuilder.Register(&PtrrecordV2{}, &PtrrecordV2List{}) +} diff --git a/apis/dns/v1alpha1/zz_recordsetv2_types.go b/apis/dns/v1alpha1/zz_recordsetv2_types.go new file mode 100755 index 0000000..de8b8dd --- /dev/null +++ b/apis/dns/v1alpha1/zz_recordsetv2_types.go @@ -0,0 +1,191 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 RecordsetV2InitParameters struct { + + // A description of the record set. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The name of the record set. Changing this creates a new DNS record set. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // An array of DNS records. + Records []*string `json:"records,omitempty" tf:"records,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The time to live (TTL) of the record set. + TTL *float64 `json:"ttl,omitempty" tf:"ttl,omitempty"` + + // The key/value pairs to associate with the zone. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The type of record set. Examples: "A", "MX". + // Changing this creates a new DNS record set. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Map of additional options. Changing this creates a + // new record set. + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` + + // The ID of the zone in which to create the record set. + // Changing this creates a new DNS record set. + ZoneID *string `json:"zoneId,omitempty" tf:"zone_id,omitempty"` +} + +type RecordsetV2Observation struct { + + // A description of the record set. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The name of the record set. Changing this creates a new DNS record set. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // An array of DNS records. + Records []*string `json:"records,omitempty" tf:"records,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + Shared *bool `json:"shared,omitempty" tf:"shared,omitempty"` + + // The time to live (TTL) of the record set. + TTL *float64 `json:"ttl,omitempty" tf:"ttl,omitempty"` + + // The key/value pairs to associate with the zone. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The type of record set. Examples: "A", "MX". + // Changing this creates a new DNS record set. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Map of additional options. Changing this creates a + // new record set. + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` + + // The ID of the zone in which to create the record set. + // Changing this creates a new DNS record set. + ZoneID *string `json:"zoneId,omitempty" tf:"zone_id,omitempty"` +} + +type RecordsetV2Parameters struct { + + // A description of the record set. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The name of the record set. Changing this creates a new DNS record set. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // An array of DNS records. + // +kubebuilder:validation:Optional + Records []*string `json:"records,omitempty" tf:"records,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The time to live (TTL) of the record set. + // +kubebuilder:validation:Optional + TTL *float64 `json:"ttl,omitempty" tf:"ttl,omitempty"` + + // The key/value pairs to associate with the zone. + // +kubebuilder:validation:Optional + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The type of record set. Examples: "A", "MX". + // Changing this creates a new DNS record set. + // +kubebuilder:validation:Optional + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Map of additional options. Changing this creates a + // new record set. + // +kubebuilder:validation:Optional + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` + + // The ID of the zone in which to create the record set. + // Changing this creates a new DNS record set. + // +kubebuilder:validation:Optional + ZoneID *string `json:"zoneId,omitempty" tf:"zone_id,omitempty"` +} + +// RecordsetV2Spec defines the desired state of RecordsetV2 +type RecordsetV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider RecordsetV2Parameters `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 RecordsetV2InitParameters `json:"initProvider,omitempty"` +} + +// RecordsetV2Status defines the observed state of RecordsetV2. +type RecordsetV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider RecordsetV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// RecordsetV2 is the Schema for the RecordsetV2s API. Manages a DNS Recordset resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type RecordsetV2 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.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.records) || (has(self.initProvider) && has(self.initProvider.records))",message="spec.forProvider.records 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.zoneId) || (has(self.initProvider) && has(self.initProvider.zoneId))",message="spec.forProvider.zoneId is a required parameter" + Spec RecordsetV2Spec `json:"spec"` + Status RecordsetV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// RecordsetV2List contains a list of RecordsetV2s +type RecordsetV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []RecordsetV2 `json:"items"` +} + +// Repository type metadata. +var ( + RecordsetV2_Kind = "RecordsetV2" + RecordsetV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: RecordsetV2_Kind}.String() + RecordsetV2_KindAPIVersion = RecordsetV2_Kind + "." + CRDGroupVersion.String() + RecordsetV2_GroupVersionKind = CRDGroupVersion.WithKind(RecordsetV2_Kind) +) + +func init() { + SchemeBuilder.Register(&RecordsetV2{}, &RecordsetV2List{}) +} diff --git a/apis/dns/v1alpha1/zz_zonev2_types.go b/apis/dns/v1alpha1/zz_zonev2_types.go new file mode 100755 index 0000000..57715f3 --- /dev/null +++ b/apis/dns/v1alpha1/zz_zonev2_types.go @@ -0,0 +1,218 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 RouterInitParameters struct { + + // The Router(VPC) ID. which VPC network will assicate with. + RouterID *string `json:"routerId,omitempty" tf:"router_id,omitempty"` + + // The Region name for this private zone. + RouterRegion *string `json:"routerRegion,omitempty" tf:"router_region,omitempty"` +} + +type RouterObservation struct { + + // The Router(VPC) ID. which VPC network will assicate with. + RouterID *string `json:"routerId,omitempty" tf:"router_id,omitempty"` + + // The Region name for this private zone. + RouterRegion *string `json:"routerRegion,omitempty" tf:"router_region,omitempty"` +} + +type RouterParameters struct { + + // The Router(VPC) ID. which VPC network will assicate with. + // +kubebuilder:validation:Optional + RouterID *string `json:"routerId" tf:"router_id,omitempty"` + + // The Region name for this private zone. + // +kubebuilder:validation:Optional + RouterRegion *string `json:"routerRegion" tf:"router_region,omitempty"` +} + +type ZoneV2InitParameters struct { + + // A description of the zone. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The email contact for the zone record. + Email *string `json:"email,omitempty" tf:"email,omitempty"` + + // The name of the zone. Changing this creates a new DNS zone. + // -> Note: The . at the end of the name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The Routers(VPCs) configuration for the private zone. + // it is required when type is private. + Router []RouterInitParameters `json:"router,omitempty" tf:"router,omitempty"` + + // The time to live (TTL) of the zone. + TTL *float64 `json:"ttl,omitempty" tf:"ttl,omitempty"` + + // The key/value pairs to associate with the zone. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The type of zone. Can either be public or private. + // Changing this creates a new zone. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Map of additional options. Changing this creates a new zone. + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +type ZoneV2Observation struct { + + // A description of the zone. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The email contact for the zone record. + Email *string `json:"email,omitempty" tf:"email,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // An array of master DNS servers. + Masters []*string `json:"masters,omitempty" tf:"masters,omitempty"` + + // The name of the zone. Changing this creates a new DNS zone. + // -> Note: The . at the end of the name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The Routers(VPCs) configuration for the private zone. + // it is required when type is private. + Router []RouterObservation `json:"router,omitempty" tf:"router,omitempty"` + + // The time to live (TTL) of the zone. + TTL *float64 `json:"ttl,omitempty" tf:"ttl,omitempty"` + + // The key/value pairs to associate with the zone. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The type of zone. Can either be public or private. + // Changing this creates a new zone. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Map of additional options. Changing this creates a new zone. + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +type ZoneV2Parameters struct { + + // A description of the zone. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The email contact for the zone record. + // +kubebuilder:validation:Optional + Email *string `json:"email,omitempty" tf:"email,omitempty"` + + // The name of the zone. Changing this creates a new DNS zone. + // -> Note: The . at the end of the name. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The Routers(VPCs) configuration for the private zone. + // it is required when type is private. + // +kubebuilder:validation:Optional + Router []RouterParameters `json:"router,omitempty" tf:"router,omitempty"` + + // The time to live (TTL) of the zone. + // +kubebuilder:validation:Optional + TTL *float64 `json:"ttl,omitempty" tf:"ttl,omitempty"` + + // The key/value pairs to associate with the zone. + // +kubebuilder:validation:Optional + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The type of zone. Can either be public or private. + // Changing this creates a new zone. + // +kubebuilder:validation:Optional + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Map of additional options. Changing this creates a new zone. + // +kubebuilder:validation:Optional + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +// ZoneV2Spec defines the desired state of ZoneV2 +type ZoneV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider ZoneV2Parameters `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 ZoneV2InitParameters `json:"initProvider,omitempty"` +} + +// ZoneV2Status defines the observed state of ZoneV2. +type ZoneV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider ZoneV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// ZoneV2 is the Schema for the ZoneV2s API. Manages a DNS Zones resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type ZoneV2 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.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + Spec ZoneV2Spec `json:"spec"` + Status ZoneV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// ZoneV2List contains a list of ZoneV2s +type ZoneV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []ZoneV2 `json:"items"` +} + +// Repository type metadata. +var ( + ZoneV2_Kind = "ZoneV2" + ZoneV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: ZoneV2_Kind}.String() + ZoneV2_KindAPIVersion = ZoneV2_Kind + "." + CRDGroupVersion.String() + ZoneV2_GroupVersionKind = CRDGroupVersion.WithKind(ZoneV2_Kind) +) + +func init() { + SchemeBuilder.Register(&ZoneV2{}, &ZoneV2List{}) +} diff --git a/apis/ecs/v1alpha1/zz_generated.deepcopy.go b/apis/ecs/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..89dc6a2 --- /dev/null +++ b/apis/ecs/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,749 @@ +//go:build !ignore_autogenerated + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by controller-gen. DO NOT EDIT. + +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 *DataDisksInitParameters) DeepCopyInto(out *DataDisksInitParameters) { + *out = *in + if in.KMSID != nil { + in, out := &in.KMSID, &out.KMSID + *out = new(string) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } + if in.SnapshotID != nil { + in, out := &in.SnapshotID, &out.SnapshotID + *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 DataDisksInitParameters. +func (in *DataDisksInitParameters) DeepCopy() *DataDisksInitParameters { + if in == nil { + return nil + } + out := new(DataDisksInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DataDisksObservation) DeepCopyInto(out *DataDisksObservation) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.KMSID != nil { + in, out := &in.KMSID, &out.KMSID + *out = new(string) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } + if in.SnapshotID != nil { + in, out := &in.SnapshotID, &out.SnapshotID + *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 DataDisksObservation. +func (in *DataDisksObservation) DeepCopy() *DataDisksObservation { + if in == nil { + return nil + } + out := new(DataDisksObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DataDisksParameters) DeepCopyInto(out *DataDisksParameters) { + *out = *in + if in.KMSID != nil { + in, out := &in.KMSID, &out.KMSID + *out = new(string) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } + if in.SnapshotID != nil { + in, out := &in.SnapshotID, &out.SnapshotID + *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 DataDisksParameters. +func (in *DataDisksParameters) DeepCopy() *DataDisksParameters { + if in == nil { + return nil + } + out := new(DataDisksParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV1) DeepCopyInto(out *InstanceV1) { + *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 InstanceV1. +func (in *InstanceV1) DeepCopy() *InstanceV1 { + if in == nil { + return nil + } + out := new(InstanceV1) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *InstanceV1) 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 *InstanceV1InitParameters) DeepCopyInto(out *InstanceV1InitParameters) { + *out = *in + if in.AutoRecovery != nil { + in, out := &in.AutoRecovery, &out.AutoRecovery + *out = new(bool) + **out = **in + } + if in.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *out = new(string) + **out = **in + } + if in.DataDisks != nil { + in, out := &in.DataDisks, &out.DataDisks + *out = make([]DataDisksInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.DeleteDisksOnTermination != nil { + in, out := &in.DeleteDisksOnTermination, &out.DeleteDisksOnTermination + *out = new(bool) + **out = **in + } + if in.Flavor != nil { + in, out := &in.Flavor, &out.Flavor + *out = new(string) + **out = **in + } + if in.ImageID != nil { + in, out := &in.ImageID, &out.ImageID + *out = new(string) + **out = **in + } + if in.KeyName != nil { + in, out := &in.KeyName, &out.KeyName + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Nics != nil { + in, out := &in.Nics, &out.Nics + *out = make([]NicsInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.SystemDiskKMSID != nil { + in, out := &in.SystemDiskKMSID, &out.SystemDiskKMSID + *out = new(string) + **out = **in + } + if in.SystemDiskSize != nil { + in, out := &in.SystemDiskSize, &out.SystemDiskSize + *out = new(float64) + **out = **in + } + if in.SystemDiskType != nil { + in, out := &in.SystemDiskType, &out.SystemDiskType + *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.UserData != nil { + in, out := &in.UserData, &out.UserData + *out = new(string) + **out = **in + } + if in.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV1InitParameters. +func (in *InstanceV1InitParameters) DeepCopy() *InstanceV1InitParameters { + if in == nil { + return nil + } + out := new(InstanceV1InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV1List) DeepCopyInto(out *InstanceV1List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]InstanceV1, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV1List. +func (in *InstanceV1List) DeepCopy() *InstanceV1List { + if in == nil { + return nil + } + out := new(InstanceV1List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *InstanceV1List) 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 *InstanceV1Observation) DeepCopyInto(out *InstanceV1Observation) { + *out = *in + if in.AutoRecovery != nil { + in, out := &in.AutoRecovery, &out.AutoRecovery + *out = new(bool) + **out = **in + } + if in.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *out = new(string) + **out = **in + } + if in.DataDisks != nil { + in, out := &in.DataDisks, &out.DataDisks + *out = make([]DataDisksObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.DeleteDisksOnTermination != nil { + in, out := &in.DeleteDisksOnTermination, &out.DeleteDisksOnTermination + *out = new(bool) + **out = **in + } + if in.Flavor != nil { + in, out := &in.Flavor, &out.Flavor + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.ImageID != nil { + in, out := &in.ImageID, &out.ImageID + *out = new(string) + **out = **in + } + if in.KeyName != nil { + in, out := &in.KeyName, &out.KeyName + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Nics != nil { + in, out := &in.Nics, &out.Nics + *out = make([]NicsObservation, 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)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.SystemDiskID != nil { + in, out := &in.SystemDiskID, &out.SystemDiskID + *out = new(string) + **out = **in + } + if in.SystemDiskKMSID != nil { + in, out := &in.SystemDiskKMSID, &out.SystemDiskKMSID + *out = new(string) + **out = **in + } + if in.SystemDiskSize != nil { + in, out := &in.SystemDiskSize, &out.SystemDiskSize + *out = new(float64) + **out = **in + } + if in.SystemDiskType != nil { + in, out := &in.SystemDiskType, &out.SystemDiskType + *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.UserData != nil { + in, out := &in.UserData, &out.UserData + *out = new(string) + **out = **in + } + if in.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } + if in.VolumesAttached != nil { + in, out := &in.VolumesAttached, &out.VolumesAttached + *out = make([]VolumesAttachedObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV1Observation. +func (in *InstanceV1Observation) DeepCopy() *InstanceV1Observation { + if in == nil { + return nil + } + out := new(InstanceV1Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV1Parameters) DeepCopyInto(out *InstanceV1Parameters) { + *out = *in + if in.AutoRecovery != nil { + in, out := &in.AutoRecovery, &out.AutoRecovery + *out = new(bool) + **out = **in + } + if in.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *out = new(string) + **out = **in + } + if in.DataDisks != nil { + in, out := &in.DataDisks, &out.DataDisks + *out = make([]DataDisksParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.DeleteDisksOnTermination != nil { + in, out := &in.DeleteDisksOnTermination, &out.DeleteDisksOnTermination + *out = new(bool) + **out = **in + } + if in.Flavor != nil { + in, out := &in.Flavor, &out.Flavor + *out = new(string) + **out = **in + } + if in.ImageID != nil { + in, out := &in.ImageID, &out.ImageID + *out = new(string) + **out = **in + } + if in.KeyName != nil { + in, out := &in.KeyName, &out.KeyName + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Nics != nil { + in, out := &in.Nics, &out.Nics + *out = make([]NicsParameters, 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) + **out = **in + } + if in.SecurityGroups != nil { + in, out := &in.SecurityGroups, &out.SecurityGroups + *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.SecurityGroupsRefs != nil { + in, out := &in.SecurityGroupsRefs, &out.SecurityGroupsRefs + *out = make([]v1.Reference, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.SecurityGroupsSelector != nil { + in, out := &in.SecurityGroupsSelector, &out.SecurityGroupsSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } + if in.SystemDiskKMSID != nil { + in, out := &in.SystemDiskKMSID, &out.SystemDiskKMSID + *out = new(string) + **out = **in + } + if in.SystemDiskSize != nil { + in, out := &in.SystemDiskSize, &out.SystemDiskSize + *out = new(float64) + **out = **in + } + if in.SystemDiskType != nil { + in, out := &in.SystemDiskType, &out.SystemDiskType + *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.UserData != nil { + in, out := &in.UserData, &out.UserData + *out = new(string) + **out = **in + } + if in.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV1Parameters. +func (in *InstanceV1Parameters) DeepCopy() *InstanceV1Parameters { + if in == nil { + return nil + } + out := new(InstanceV1Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV1Spec) DeepCopyInto(out *InstanceV1Spec) { + *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 InstanceV1Spec. +func (in *InstanceV1Spec) DeepCopy() *InstanceV1Spec { + if in == nil { + return nil + } + out := new(InstanceV1Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV1Status) DeepCopyInto(out *InstanceV1Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV1Status. +func (in *InstanceV1Status) DeepCopy() *InstanceV1Status { + if in == nil { + return nil + } + out := new(InstanceV1Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NicsInitParameters) DeepCopyInto(out *NicsInitParameters) { + *out = *in + if in.IPAddress != nil { + in, out := &in.IPAddress, &out.IPAddress + *out = new(string) + **out = **in + } + if in.NetworkID != nil { + in, out := &in.NetworkID, &out.NetworkID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NicsInitParameters. +func (in *NicsInitParameters) DeepCopy() *NicsInitParameters { + if in == nil { + return nil + } + out := new(NicsInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NicsObservation) DeepCopyInto(out *NicsObservation) { + *out = *in + if in.IPAddress != nil { + in, out := &in.IPAddress, &out.IPAddress + *out = new(string) + **out = **in + } + if in.MacAddress != nil { + in, out := &in.MacAddress, &out.MacAddress + *out = new(string) + **out = **in + } + if in.NetworkID != nil { + in, out := &in.NetworkID, &out.NetworkID + *out = new(string) + **out = **in + } + if in.PortID != nil { + in, out := &in.PortID, &out.PortID + *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 NicsObservation. +func (in *NicsObservation) DeepCopy() *NicsObservation { + if in == nil { + return nil + } + out := new(NicsObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NicsParameters) DeepCopyInto(out *NicsParameters) { + *out = *in + if in.IPAddress != nil { + in, out := &in.IPAddress, &out.IPAddress + *out = new(string) + **out = **in + } + if in.NetworkID != nil { + in, out := &in.NetworkID, &out.NetworkID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NicsParameters. +func (in *NicsParameters) DeepCopy() *NicsParameters { + if in == nil { + return nil + } + out := new(NicsParameters) + 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 +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumesAttachedInitParameters. +func (in *VolumesAttachedInitParameters) DeepCopy() *VolumesAttachedInitParameters { + if in == nil { + return nil + } + out := new(VolumesAttachedInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VolumesAttachedObservation) DeepCopyInto(out *VolumesAttachedObservation) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.KMSID != nil { + in, out := &in.KMSID, &out.KMSID + *out = new(string) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } + if in.SnapshotID != nil { + in, out := &in.SnapshotID, &out.SnapshotID + *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 VolumesAttachedObservation. +func (in *VolumesAttachedObservation) DeepCopy() *VolumesAttachedObservation { + if in == nil { + return nil + } + out := new(VolumesAttachedObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VolumesAttachedParameters) DeepCopyInto(out *VolumesAttachedParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumesAttachedParameters. +func (in *VolumesAttachedParameters) DeepCopy() *VolumesAttachedParameters { + if in == nil { + return nil + } + out := new(VolumesAttachedParameters) + in.DeepCopyInto(out) + return out +} diff --git a/apis/ecs/v1alpha1/zz_generated.managed.go b/apis/ecs/v1alpha1/zz_generated.managed.go new file mode 100644 index 0000000..4a7da6e --- /dev/null +++ b/apis/ecs/v1alpha1/zz_generated.managed.go @@ -0,0 +1,68 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import xpv1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + +// GetCondition of this InstanceV1. +func (mg *InstanceV1) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this InstanceV1. +func (mg *InstanceV1) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this InstanceV1. +func (mg *InstanceV1) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this InstanceV1. +func (mg *InstanceV1) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this InstanceV1. +func (mg *InstanceV1) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this InstanceV1. +func (mg *InstanceV1) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this InstanceV1. +func (mg *InstanceV1) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this InstanceV1. +func (mg *InstanceV1) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this InstanceV1. +func (mg *InstanceV1) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this InstanceV1. +func (mg *InstanceV1) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this InstanceV1. +func (mg *InstanceV1) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this InstanceV1. +func (mg *InstanceV1) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} diff --git a/apis/ecs/v1alpha1/zz_generated.managedlist.go b/apis/ecs/v1alpha1/zz_generated.managedlist.go new file mode 100644 index 0000000..475d8cc --- /dev/null +++ b/apis/ecs/v1alpha1/zz_generated.managedlist.go @@ -0,0 +1,17 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import resource "github.com/crossplane/crossplane-runtime/pkg/resource" + +// GetItems of this InstanceV1List. +func (l *InstanceV1List) 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/ecs/v1alpha1/zz_generated.resolvers.go b/apis/ecs/v1alpha1/zz_generated.resolvers.go new file mode 100644 index 0000000..ebdcea7 --- /dev/null +++ b/apis/ecs/v1alpha1/zz_generated.resolvers.go @@ -0,0 +1,39 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "context" + reference "github.com/crossplane/crossplane-runtime/pkg/reference" + errors "github.com/pkg/errors" + client "sigs.k8s.io/controller-runtime/pkg/client" +) + +// ResolveReferences of this InstanceV1. +func (mg *InstanceV1) ResolveReferences(ctx context.Context, c client.Reader) error { + r := reference.NewAPIResolver(c, mg) + + var mrsp reference.MultiResolutionResponse + var err error + + mrsp, err = r.ResolveMultiple(ctx, reference.MultiResolutionRequest{ + CurrentValues: reference.FromPtrValues(mg.Spec.ForProvider.SecurityGroups), + Extract: reference.ExternalName(), + References: mg.Spec.ForProvider.SecurityGroupsRefs, + Selector: mg.Spec.ForProvider.SecurityGroupsSelector, + To: reference.To{ + List: &SecgroupV2List{}, + Managed: &SecgroupV2{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.SecurityGroups") + } + mg.Spec.ForProvider.SecurityGroups = reference.ToPtrValues(mrsp.ResolvedValues) + mg.Spec.ForProvider.SecurityGroupsRefs = mrsp.ResolvedReferences + + return nil +} diff --git a/apis/ecs/v1alpha1/zz_generated_terraformed.go b/apis/ecs/v1alpha1/zz_generated_terraformed.go new file mode 100755 index 0000000..368f807 --- /dev/null +++ b/apis/ecs/v1alpha1/zz_generated_terraformed.go @@ -0,0 +1,102 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "github.com/pkg/errors" + + "github.com/crossplane/upjet/pkg/resource" + "github.com/crossplane/upjet/pkg/resource/json" +) + +// GetTerraformResourceType returns Terraform resource type for this InstanceV1 +func (mg *InstanceV1) GetTerraformResourceType() string { + return "opentelekomcloud_ecs_instance_v1" +} + +// GetConnectionDetailsMapping for this InstanceV1 +func (tr *InstanceV1) GetConnectionDetailsMapping() map[string]string { + return map[string]string{"password": "spec.forProvider.passwordSecretRef"} +} + +// GetObservation of this InstanceV1 +func (tr *InstanceV1) 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 InstanceV1 +func (tr *InstanceV1) 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 InstanceV1 +func (tr *InstanceV1) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this InstanceV1 +func (tr *InstanceV1) 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 InstanceV1 +func (tr *InstanceV1) 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 InstanceV1 +func (tr *InstanceV1) 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) +} + +// LateInitialize this InstanceV1 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *InstanceV1) LateInitialize(attrs []byte) (bool, error) { + params := &InstanceV1Parameters{} + 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 *InstanceV1) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/ecs/v1alpha1/zz_groupversion_info.go b/apis/ecs/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..063df97 --- /dev/null +++ b/apis/ecs/v1alpha1/zz_groupversion_info.go @@ -0,0 +1,36 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +// +kubebuilder:object:generate=true +// +groupName=ecs.crossplane.io +// +versionName=v1alpha1 +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +// Package type metadata. +const ( + CRDGroup = "ecs.crossplane.io" + CRDVersion = "v1alpha1" +) + +var ( + // CRDGroupVersion is the API Group Version used to register the objects + CRDGroupVersion = schema.GroupVersion{Group: CRDGroup, Version: CRDVersion} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme + SchemeBuilder = &scheme.Builder{GroupVersion: CRDGroupVersion} + + // AddToScheme adds the types in this group-version to the given scheme. + AddToScheme = SchemeBuilder.AddToScheme +) diff --git a/apis/ecs/v1alpha1/zz_instancev1_types.go b/apis/ecs/v1alpha1/zz_instancev1_types.go new file mode 100755 index 0000000..17483ba --- /dev/null +++ b/apis/ecs/v1alpha1/zz_instancev1_types.go @@ -0,0 +1,439 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 DataDisksInitParameters struct { + + // The Encryption KMS ID of the data disk. Changing this + // creates a new server. + KMSID *string `json:"kmsId,omitempty" tf:"kms_id,omitempty"` + + // The size of the data disk in GB. The value range is 10 to 32768. + // Changing this creates a new server. + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // Specifies the snapshot ID or ID of the original data disk contained in the full-ECS image. + // Changing this creates a new server. + SnapshotID *string `json:"snapshotId,omitempty" tf:"snapshot_id,omitempty"` + + // 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: + Type *string `json:"type,omitempty" tf:"type,omitempty"` +} + +type DataDisksObservation struct { + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The Encryption KMS ID of the data disk. Changing this + // creates a new server. + KMSID *string `json:"kmsId,omitempty" tf:"kms_id,omitempty"` + + // The size of the data disk in GB. The value range is 10 to 32768. + // Changing this creates a new server. + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // Specifies the snapshot ID or ID of the original data disk contained in the full-ECS image. + // Changing this creates a new server. + SnapshotID *string `json:"snapshotId,omitempty" tf:"snapshot_id,omitempty"` + + // 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: + Type *string `json:"type,omitempty" tf:"type,omitempty"` +} + +type DataDisksParameters struct { + + // The Encryption KMS ID of the data disk. Changing this + // creates a new server. + // +kubebuilder:validation:Optional + KMSID *string `json:"kmsId,omitempty" tf:"kms_id,omitempty"` + + // The size of the data disk in GB. The value range is 10 to 32768. + // Changing this creates a new server. + // +kubebuilder:validation:Optional + Size *float64 `json:"size" tf:"size,omitempty"` + + // Specifies the snapshot ID or ID of the original data disk contained in the full-ECS image. + // Changing this creates a new server. + // +kubebuilder:validation:Optional + SnapshotID *string `json:"snapshotId,omitempty" tf:"snapshot_id,omitempty"` + + // 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: + // +kubebuilder:validation:Optional + Type *string `json:"type" tf:"type,omitempty"` +} + +type InstanceV1InitParameters struct { + + // Whether configure automatic recovery of an instance. + AutoRecovery *bool `json:"autoRecovery,omitempty" tf:"auto_recovery,omitempty"` + + // The availability zone in which to create the server. + // Changing this creates a new server. + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // 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. + DataDisks []DataDisksInitParameters `json:"dataDisks,omitempty" tf:"data_disks,omitempty"` + + // Delete the data disks upon termination of the instance. + // Defaults to false. Changing this creates a new server. + DeleteDisksOnTermination *bool `json:"deleteDisksOnTermination,omitempty" tf:"delete_disks_on_termination,omitempty"` + + // The name of the desired flavor for the server. + Flavor *string `json:"flavor,omitempty" tf:"flavor,omitempty"` + + // The ID of the desired image for the server. Changing this creates a new server. + ImageID *string `json:"imageId,omitempty" tf:"image_id,omitempty"` + + // 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. + KeyName *string `json:"keyName,omitempty" tf:"key_name,omitempty"` + + // A unique name for the instance. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // 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 []NicsInitParameters `json:"nics,omitempty" tf:"nics,omitempty"` + + // The Encryption KMS ID of the system disk. Changing this + // creates a new server. + SystemDiskKMSID *string `json:"systemDiskKmsId,omitempty" tf:"system_disk_kms_id,omitempty"` + + // The system disk size in GB, The value range is 1 to 1024. + // Changing this creates a new server. + SystemDiskSize *float64 `json:"systemDiskSize,omitempty" tf:"system_disk_size,omitempty"` + + // 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: + SystemDiskType *string `json:"systemDiskType,omitempty" tf:"system_disk_type,omitempty"` + + // Tags key/value pairs to associate with the instance. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The user data to provide when launching the instance. + // Changing this creates a new server. + UserData *string `json:"userData,omitempty" tf:"user_data,omitempty"` + + // The ID of the desired VPC for the server. Changing this creates a new server. + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +} + +type InstanceV1Observation struct { + + // Whether configure automatic recovery of an instance. + AutoRecovery *bool `json:"autoRecovery,omitempty" tf:"auto_recovery,omitempty"` + + // The availability zone in which to create the server. + // Changing this creates a new server. + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // 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. + DataDisks []DataDisksObservation `json:"dataDisks,omitempty" tf:"data_disks,omitempty"` + + // Delete the data disks upon termination of the instance. + // Defaults to false. Changing this creates a new server. + DeleteDisksOnTermination *bool `json:"deleteDisksOnTermination,omitempty" tf:"delete_disks_on_termination,omitempty"` + + // The name of the desired flavor for the server. + Flavor *string `json:"flavor,omitempty" tf:"flavor,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The ID of the desired image for the server. Changing this creates a new server. + ImageID *string `json:"imageId,omitempty" tf:"image_id,omitempty"` + + // 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. + KeyName *string `json:"keyName,omitempty" tf:"key_name,omitempty"` + + // A unique name for the instance. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // 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 []NicsObservation `json:"nics,omitempty" tf:"nics,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. + SecurityGroups []*string `json:"securityGroups,omitempty" tf:"security_groups,omitempty"` + + // 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 + // creates a new server. + SystemDiskKMSID *string `json:"systemDiskKmsId,omitempty" tf:"system_disk_kms_id,omitempty"` + + // The system disk size in GB, The value range is 1 to 1024. + // Changing this creates a new server. + SystemDiskSize *float64 `json:"systemDiskSize,omitempty" tf:"system_disk_size,omitempty"` + + // 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: + SystemDiskType *string `json:"systemDiskType,omitempty" tf:"system_disk_type,omitempty"` + + // Tags key/value pairs to associate with the instance. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The user data to provide when launching the instance. + // Changing this creates a new server. + UserData *string `json:"userData,omitempty" tf:"user_data,omitempty"` + + // The ID of the desired VPC for the server. Changing this creates a new server. + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` + + VolumesAttached []VolumesAttachedObservation `json:"volumesAttached,omitempty" tf:"volumes_attached,omitempty"` +} + +type InstanceV1Parameters struct { + + // Whether configure automatic recovery of an instance. + // +kubebuilder:validation:Optional + AutoRecovery *bool `json:"autoRecovery,omitempty" tf:"auto_recovery,omitempty"` + + // The availability zone in which to create the server. + // Changing this creates a new server. + // +kubebuilder:validation:Optional + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // 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. + // +kubebuilder:validation:Optional + DataDisks []DataDisksParameters `json:"dataDisks,omitempty" tf:"data_disks,omitempty"` + + // Delete the data disks upon termination of the instance. + // Defaults to false. Changing this creates a new server. + // +kubebuilder:validation:Optional + DeleteDisksOnTermination *bool `json:"deleteDisksOnTermination,omitempty" tf:"delete_disks_on_termination,omitempty"` + + // The name of the desired flavor for the server. + // +kubebuilder:validation:Optional + Flavor *string `json:"flavor,omitempty" tf:"flavor,omitempty"` + + // The ID of the desired image for the server. Changing this creates a new server. + // +kubebuilder:validation:Optional + ImageID *string `json:"imageId,omitempty" tf:"image_id,omitempty"` + + // 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. + // +kubebuilder:validation:Optional + KeyName *string `json:"keyName,omitempty" tf:"key_name,omitempty"` + + // A unique name for the instance. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // 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. + // +kubebuilder:validation:Optional + Nics []NicsParameters `json:"nics,omitempty" tf:"nics,omitempty"` + + // The administrative password to assign to the server. + // Changing this creates a new server. + // +kubebuilder:validation:Optional + PasswordSecretRef *v1.SecretKeySelector `json:"passwordSecretRef,omitempty" tf:"-"` + + // 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. + // +crossplane:generate:reference:type=SecgroupV2 + // +kubebuilder:validation:Optional + SecurityGroups []*string `json:"securityGroups,omitempty" tf:"security_groups,omitempty"` + + // References to SecgroupV2 to populate securityGroups. + // +kubebuilder:validation:Optional + SecurityGroupsRefs []v1.Reference `json:"securityGroupsRefs,omitempty" tf:"-"` + + // Selector for a list of SecgroupV2 to populate securityGroups. + // +kubebuilder:validation:Optional + SecurityGroupsSelector *v1.Selector `json:"securityGroupsSelector,omitempty" tf:"-"` + + // The Encryption KMS ID of the system disk. Changing this + // creates a new server. + // +kubebuilder:validation:Optional + SystemDiskKMSID *string `json:"systemDiskKmsId,omitempty" tf:"system_disk_kms_id,omitempty"` + + // The system disk size in GB, The value range is 1 to 1024. + // Changing this creates a new server. + // +kubebuilder:validation:Optional + SystemDiskSize *float64 `json:"systemDiskSize,omitempty" tf:"system_disk_size,omitempty"` + + // 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: + // +kubebuilder:validation:Optional + SystemDiskType *string `json:"systemDiskType,omitempty" tf:"system_disk_type,omitempty"` + + // Tags key/value pairs to associate with the instance. + // +kubebuilder:validation:Optional + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The user data to provide when launching the instance. + // Changing this creates a new server. + // +kubebuilder:validation:Optional + UserData *string `json:"userData,omitempty" tf:"user_data,omitempty"` + + // The ID of the desired VPC for the server. Changing this creates a new server. + // +kubebuilder:validation:Optional + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +} + +type NicsInitParameters struct { + + // Specifies a fixed IPv4 address to be used on this + // network. Changing this creates a new server. + IPAddress *string `json:"ipAddress,omitempty" tf:"ip_address,omitempty"` + + // The network UUID to attach to the server. Changing this creates a new server. + NetworkID *string `json:"networkId,omitempty" tf:"network_id,omitempty"` +} + +type NicsObservation struct { + + // Specifies a fixed IPv4 address to be used on this + // network. Changing this creates a new server. + IPAddress *string `json:"ipAddress,omitempty" tf:"ip_address,omitempty"` + + MacAddress *string `json:"macAddress,omitempty" tf:"mac_address,omitempty"` + + // The network UUID to attach to the server. Changing this creates a new server. + NetworkID *string `json:"networkId,omitempty" tf:"network_id,omitempty"` + + PortID *string `json:"portId,omitempty" tf:"port_id,omitempty"` + + // 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: + Type *string `json:"type,omitempty" tf:"type,omitempty"` +} + +type NicsParameters struct { + + // Specifies a fixed IPv4 address to be used on this + // network. Changing this creates a new server. + // +kubebuilder:validation:Optional + IPAddress *string `json:"ipAddress,omitempty" tf:"ip_address,omitempty"` + + // The network UUID to attach to the server. Changing this creates a new server. + // +kubebuilder:validation:Optional + NetworkID *string `json:"networkId" tf:"network_id,omitempty"` +} + +type VolumesAttachedInitParameters struct { +} + +type VolumesAttachedObservation struct { + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The Encryption KMS ID of the data disk. Changing this + // creates a new server. + KMSID *string `json:"kmsId,omitempty" tf:"kms_id,omitempty"` + + // The size of the data disk in GB. The value range is 10 to 32768. + // Changing this creates a new server. + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // Specifies the snapshot ID or ID of the original data disk contained in the full-ECS image. + // Changing this creates a new server. + SnapshotID *string `json:"snapshotId,omitempty" tf:"snapshot_id,omitempty"` + + // 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: + Type *string `json:"type,omitempty" tf:"type,omitempty"` +} + +type VolumesAttachedParameters struct { +} + +// InstanceV1Spec defines the desired state of InstanceV1 +type InstanceV1Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider InstanceV1Parameters `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 InstanceV1InitParameters `json:"initProvider,omitempty"` +} + +// InstanceV1Status defines the observed state of InstanceV1. +type InstanceV1Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider InstanceV1Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// InstanceV1 is the Schema for the InstanceV1s API. Manages a ECS Instance resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type InstanceV1 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.availabilityZone) || (has(self.initProvider) && has(self.initProvider.availabilityZone))",message="spec.forProvider.availabilityZone is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.flavor) || (has(self.initProvider) && has(self.initProvider.flavor))",message="spec.forProvider.flavor is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.imageId) || (has(self.initProvider) && has(self.initProvider.imageId))",message="spec.forProvider.imageId is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.nics) || (has(self.initProvider) && has(self.initProvider.nics))",message="spec.forProvider.nics is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.vpcId) || (has(self.initProvider) && has(self.initProvider.vpcId))",message="spec.forProvider.vpcId is a required parameter" + Spec InstanceV1Spec `json:"spec"` + Status InstanceV1Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// InstanceV1List contains a list of InstanceV1s +type InstanceV1List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []InstanceV1 `json:"items"` +} + +// Repository type metadata. +var ( + InstanceV1_Kind = "InstanceV1" + InstanceV1_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: InstanceV1_Kind}.String() + InstanceV1_KindAPIVersion = InstanceV1_Kind + "." + CRDGroupVersion.String() + InstanceV1_GroupVersionKind = CRDGroupVersion.WithKind(InstanceV1_Kind) +) + +func init() { + SchemeBuilder.Register(&InstanceV1{}, &InstanceV1List{}) +} diff --git a/apis/evs/v1alpha1/zz_generated.deepcopy.go b/apis/evs/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..96bfb56 --- /dev/null +++ b/apis/evs/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,457 @@ +//go:build !ignore_autogenerated + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by controller-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + 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 *AttachmentInitParameters) DeepCopyInto(out *AttachmentInitParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AttachmentInitParameters. +func (in *AttachmentInitParameters) DeepCopy() *AttachmentInitParameters { + if in == nil { + return nil + } + out := new(AttachmentInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AttachmentObservation) DeepCopyInto(out *AttachmentObservation) { + *out = *in + if in.Device != nil { + in, out := &in.Device, &out.Device + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.InstanceID != nil { + in, out := &in.InstanceID, &out.InstanceID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AttachmentObservation. +func (in *AttachmentObservation) DeepCopy() *AttachmentObservation { + if in == nil { + return nil + } + out := new(AttachmentObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AttachmentParameters) DeepCopyInto(out *AttachmentParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AttachmentParameters. +func (in *AttachmentParameters) DeepCopy() *AttachmentParameters { + if in == nil { + return nil + } + out := new(AttachmentParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VolumeV3) DeepCopyInto(out *VolumeV3) { + *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 VolumeV3. +func (in *VolumeV3) DeepCopy() *VolumeV3 { + if in == nil { + return nil + } + out := new(VolumeV3) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *VolumeV3) 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 *VolumeV3InitParameters) DeepCopyInto(out *VolumeV3InitParameters) { + *out = *in + if in.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *out = new(string) + **out = **in + } + if in.BackupID != nil { + in, out := &in.BackupID, &out.BackupID + *out = new(string) + **out = **in + } + if in.Cascade != nil { + in, out := &in.Cascade, &out.Cascade + *out = new(bool) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.DeviceType != nil { + in, out := &in.DeviceType, &out.DeviceType + *out = new(string) + **out = **in + } + if in.ImageID != nil { + in, out := &in.ImageID, &out.ImageID + *out = new(string) + **out = **in + } + if in.KMSID != nil { + in, out := &in.KMSID, &out.KMSID + *out = new(string) + **out = **in + } + if in.Multiattach != nil { + in, out := &in.Multiattach, &out.Multiattach + *out = new(bool) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } + if in.SnapshotID != nil { + in, out := &in.SnapshotID, &out.SnapshotID + *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.VolumeType != nil { + in, out := &in.VolumeType, &out.VolumeType + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeV3InitParameters. +func (in *VolumeV3InitParameters) DeepCopy() *VolumeV3InitParameters { + if in == nil { + return nil + } + out := new(VolumeV3InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VolumeV3List) DeepCopyInto(out *VolumeV3List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]VolumeV3, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeV3List. +func (in *VolumeV3List) DeepCopy() *VolumeV3List { + if in == nil { + return nil + } + out := new(VolumeV3List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *VolumeV3List) 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 *VolumeV3Observation) DeepCopyInto(out *VolumeV3Observation) { + *out = *in + if in.Attachment != nil { + in, out := &in.Attachment, &out.Attachment + *out = make([]AttachmentObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *out = new(string) + **out = **in + } + if in.BackupID != nil { + in, out := &in.BackupID, &out.BackupID + *out = new(string) + **out = **in + } + if in.Cascade != nil { + in, out := &in.Cascade, &out.Cascade + *out = new(bool) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.DeviceType != nil { + in, out := &in.DeviceType, &out.DeviceType + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.ImageID != nil { + in, out := &in.ImageID, &out.ImageID + *out = new(string) + **out = **in + } + if in.KMSID != nil { + in, out := &in.KMSID, &out.KMSID + *out = new(string) + **out = **in + } + if in.Multiattach != nil { + in, out := &in.Multiattach, &out.Multiattach + *out = new(bool) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } + if in.SnapshotID != nil { + in, out := &in.SnapshotID, &out.SnapshotID + *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.VolumeType != nil { + in, out := &in.VolumeType, &out.VolumeType + *out = new(string) + **out = **in + } + if in.Wwn != nil { + in, out := &in.Wwn, &out.Wwn + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeV3Observation. +func (in *VolumeV3Observation) DeepCopy() *VolumeV3Observation { + if in == nil { + return nil + } + out := new(VolumeV3Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VolumeV3Parameters) DeepCopyInto(out *VolumeV3Parameters) { + *out = *in + if in.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *out = new(string) + **out = **in + } + if in.BackupID != nil { + in, out := &in.BackupID, &out.BackupID + *out = new(string) + **out = **in + } + if in.Cascade != nil { + in, out := &in.Cascade, &out.Cascade + *out = new(bool) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.DeviceType != nil { + in, out := &in.DeviceType, &out.DeviceType + *out = new(string) + **out = **in + } + if in.ImageID != nil { + in, out := &in.ImageID, &out.ImageID + *out = new(string) + **out = **in + } + if in.KMSID != nil { + in, out := &in.KMSID, &out.KMSID + *out = new(string) + **out = **in + } + if in.Multiattach != nil { + in, out := &in.Multiattach, &out.Multiattach + *out = new(bool) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } + if in.SnapshotID != nil { + in, out := &in.SnapshotID, &out.SnapshotID + *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.VolumeType != nil { + in, out := &in.VolumeType, &out.VolumeType + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeV3Parameters. +func (in *VolumeV3Parameters) DeepCopy() *VolumeV3Parameters { + if in == nil { + return nil + } + out := new(VolumeV3Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VolumeV3Spec) DeepCopyInto(out *VolumeV3Spec) { + *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 VolumeV3Spec. +func (in *VolumeV3Spec) DeepCopy() *VolumeV3Spec { + if in == nil { + return nil + } + out := new(VolumeV3Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VolumeV3Status) DeepCopyInto(out *VolumeV3Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VolumeV3Status. +func (in *VolumeV3Status) DeepCopy() *VolumeV3Status { + if in == nil { + return nil + } + out := new(VolumeV3Status) + in.DeepCopyInto(out) + return out +} diff --git a/apis/evs/v1alpha1/zz_generated.managed.go b/apis/evs/v1alpha1/zz_generated.managed.go new file mode 100644 index 0000000..da40287 --- /dev/null +++ b/apis/evs/v1alpha1/zz_generated.managed.go @@ -0,0 +1,68 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import xpv1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + +// GetCondition of this VolumeV3. +func (mg *VolumeV3) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this VolumeV3. +func (mg *VolumeV3) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this VolumeV3. +func (mg *VolumeV3) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this VolumeV3. +func (mg *VolumeV3) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this VolumeV3. +func (mg *VolumeV3) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this VolumeV3. +func (mg *VolumeV3) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this VolumeV3. +func (mg *VolumeV3) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this VolumeV3. +func (mg *VolumeV3) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this VolumeV3. +func (mg *VolumeV3) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this VolumeV3. +func (mg *VolumeV3) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this VolumeV3. +func (mg *VolumeV3) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this VolumeV3. +func (mg *VolumeV3) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} diff --git a/apis/evs/v1alpha1/zz_generated.managedlist.go b/apis/evs/v1alpha1/zz_generated.managedlist.go new file mode 100644 index 0000000..7c98582 --- /dev/null +++ b/apis/evs/v1alpha1/zz_generated.managedlist.go @@ -0,0 +1,17 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import resource "github.com/crossplane/crossplane-runtime/pkg/resource" + +// GetItems of this VolumeV3List. +func (l *VolumeV3List) 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/evs/v1alpha1/zz_generated_terraformed.go b/apis/evs/v1alpha1/zz_generated_terraformed.go new file mode 100755 index 0000000..17b80cf --- /dev/null +++ b/apis/evs/v1alpha1/zz_generated_terraformed.go @@ -0,0 +1,102 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "github.com/pkg/errors" + + "github.com/crossplane/upjet/pkg/resource" + "github.com/crossplane/upjet/pkg/resource/json" +) + +// GetTerraformResourceType returns Terraform resource type for this VolumeV3 +func (mg *VolumeV3) GetTerraformResourceType() string { + return "opentelekomcloud_evs_volume_v3" +} + +// GetConnectionDetailsMapping for this VolumeV3 +func (tr *VolumeV3) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this VolumeV3 +func (tr *VolumeV3) 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 VolumeV3 +func (tr *VolumeV3) 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 VolumeV3 +func (tr *VolumeV3) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this VolumeV3 +func (tr *VolumeV3) 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 VolumeV3 +func (tr *VolumeV3) 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 VolumeV3 +func (tr *VolumeV3) 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) +} + +// LateInitialize this VolumeV3 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *VolumeV3) LateInitialize(attrs []byte) (bool, error) { + params := &VolumeV3Parameters{} + 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 *VolumeV3) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/evs/v1alpha1/zz_groupversion_info.go b/apis/evs/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..ad1dd26 --- /dev/null +++ b/apis/evs/v1alpha1/zz_groupversion_info.go @@ -0,0 +1,36 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +// +kubebuilder:object:generate=true +// +groupName=evs.crossplane.io +// +versionName=v1alpha1 +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +// Package type metadata. +const ( + CRDGroup = "evs.crossplane.io" + CRDVersion = "v1alpha1" +) + +var ( + // CRDGroupVersion is the API Group Version used to register the objects + CRDGroupVersion = schema.GroupVersion{Group: CRDGroup, Version: CRDVersion} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme + SchemeBuilder = &scheme.Builder{GroupVersion: CRDGroupVersion} + + // AddToScheme adds the types in this group-version to the given scheme. + AddToScheme = SchemeBuilder.AddToScheme +) diff --git a/apis/evs/v1alpha1/zz_volumev3_types.go b/apis/evs/v1alpha1/zz_volumev3_types.go new file mode 100755 index 0000000..c603728 --- /dev/null +++ b/apis/evs/v1alpha1/zz_volumev3_types.go @@ -0,0 +1,278 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 AttachmentInitParameters struct { +} + +type AttachmentObservation struct { + Device *string `json:"device,omitempty" tf:"device,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + InstanceID *string `json:"instanceId,omitempty" tf:"instance_id,omitempty"` +} + +type AttachmentParameters struct { +} + +type VolumeV3InitParameters struct { + + // The availability zone for the volume. + // Changing this creates a new volume. + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // The backup ID from which to create the volume. + // Changing this creates a new volume. + BackupID *string `json:"backupId,omitempty" tf:"backup_id,omitempty"` + + // Specifies to delete all snapshots associated with the EVS disk. Default is false. + Cascade *bool `json:"cascade,omitempty" tf:"cascade,omitempty"` + + // A description of the volume. Changing this updates the volume's description. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The device type of volume to create. Valid options are VBD and SCSI. + // Defaults to VBD. Changing this creates a new volume. + DeviceType *string `json:"deviceType,omitempty" tf:"device_type,omitempty"` + + // The image ID from which to create the volume. + // Changing this creates a new volume. + ImageID *string `json:"imageId,omitempty" tf:"image_id,omitempty"` + + // The Encryption KMS ID to create the volume. + // Changing this creates a new volume. + KMSID *string `json:"kmsId,omitempty" tf:"kms_id,omitempty"` + + // Specifies whether the disk is shareable. The default value is false. + // Changing this creates a new volume. + Multiattach *bool `json:"multiattach,omitempty" tf:"multiattach,omitempty"` + + // A unique name for the volume. Changing this updates the volume's name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The size of the volume to create (in gigabytes). This parameter is mandatory when + // you create an empty EVS disk or use an image or a snapshot to create an EVS disk. + // Decreasing this value creates a new volume. + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // The snapshot ID from which to create the volume. + // Changing this creates a new volume. + SnapshotID *string `json:"snapshotId,omitempty" tf:"snapshot_id,omitempty"` + + // Tags key/value pairs to associate with the volume. + // Changing this updates the existing volume tags. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The type of volume to create. + // Currently, the value can be SSD, SAS, SATA, co-p1, or uh-l1. + // Changing this creates a new volume. + VolumeType *string `json:"volumeType,omitempty" tf:"volume_type,omitempty"` +} + +type VolumeV3Observation struct { + + // If a volume is attached to an instance, this attribute will + // display the Attachment ID, Instance ID, and the Device as the Instance sees it. + Attachment []AttachmentObservation `json:"attachment,omitempty" tf:"attachment,omitempty"` + + // The availability zone for the volume. + // Changing this creates a new volume. + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // The backup ID from which to create the volume. + // Changing this creates a new volume. + BackupID *string `json:"backupId,omitempty" tf:"backup_id,omitempty"` + + // Specifies to delete all snapshots associated with the EVS disk. Default is false. + Cascade *bool `json:"cascade,omitempty" tf:"cascade,omitempty"` + + // A description of the volume. Changing this updates the volume's description. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The device type of volume to create. Valid options are VBD and SCSI. + // Defaults to VBD. Changing this creates a new volume. + DeviceType *string `json:"deviceType,omitempty" tf:"device_type,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The image ID from which to create the volume. + // Changing this creates a new volume. + ImageID *string `json:"imageId,omitempty" tf:"image_id,omitempty"` + + // The Encryption KMS ID to create the volume. + // Changing this creates a new volume. + KMSID *string `json:"kmsId,omitempty" tf:"kms_id,omitempty"` + + // Specifies whether the disk is shareable. The default value is false. + // Changing this creates a new volume. + Multiattach *bool `json:"multiattach,omitempty" tf:"multiattach,omitempty"` + + // A unique name for the volume. Changing this updates the volume's name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The size of the volume to create (in gigabytes). This parameter is mandatory when + // you create an empty EVS disk or use an image or a snapshot to create an EVS disk. + // Decreasing this value creates a new volume. + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // The snapshot ID from which to create the volume. + // Changing this creates a new volume. + SnapshotID *string `json:"snapshotId,omitempty" tf:"snapshot_id,omitempty"` + + // Tags key/value pairs to associate with the volume. + // Changing this updates the existing volume tags. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The type of volume to create. + // Currently, the value can be SSD, SAS, SATA, co-p1, or uh-l1. + // Changing this creates a new volume. + VolumeType *string `json:"volumeType,omitempty" tf:"volume_type,omitempty"` + + // Specifies the unique identifier used for mounting the EVS disk. + Wwn *string `json:"wwn,omitempty" tf:"wwn,omitempty"` +} + +type VolumeV3Parameters struct { + + // The availability zone for the volume. + // Changing this creates a new volume. + // +kubebuilder:validation:Optional + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // The backup ID from which to create the volume. + // Changing this creates a new volume. + // +kubebuilder:validation:Optional + BackupID *string `json:"backupId,omitempty" tf:"backup_id,omitempty"` + + // Specifies to delete all snapshots associated with the EVS disk. Default is false. + // +kubebuilder:validation:Optional + Cascade *bool `json:"cascade,omitempty" tf:"cascade,omitempty"` + + // A description of the volume. Changing this updates the volume's description. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The device type of volume to create. Valid options are VBD and SCSI. + // Defaults to VBD. Changing this creates a new volume. + // +kubebuilder:validation:Optional + DeviceType *string `json:"deviceType,omitempty" tf:"device_type,omitempty"` + + // The image ID from which to create the volume. + // Changing this creates a new volume. + // +kubebuilder:validation:Optional + ImageID *string `json:"imageId,omitempty" tf:"image_id,omitempty"` + + // The Encryption KMS ID to create the volume. + // Changing this creates a new volume. + // +kubebuilder:validation:Optional + KMSID *string `json:"kmsId,omitempty" tf:"kms_id,omitempty"` + + // Specifies whether the disk is shareable. The default value is false. + // Changing this creates a new volume. + // +kubebuilder:validation:Optional + Multiattach *bool `json:"multiattach,omitempty" tf:"multiattach,omitempty"` + + // A unique name for the volume. Changing this updates the volume's name. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The size of the volume to create (in gigabytes). This parameter is mandatory when + // you create an empty EVS disk or use an image or a snapshot to create an EVS disk. + // Decreasing this value creates a new volume. + // +kubebuilder:validation:Optional + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // The snapshot ID from which to create the volume. + // Changing this creates a new volume. + // +kubebuilder:validation:Optional + SnapshotID *string `json:"snapshotId,omitempty" tf:"snapshot_id,omitempty"` + + // Tags key/value pairs to associate with the volume. + // Changing this updates the existing volume tags. + // +kubebuilder:validation:Optional + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The type of volume to create. + // Currently, the value can be SSD, SAS, SATA, co-p1, or uh-l1. + // Changing this creates a new volume. + // +kubebuilder:validation:Optional + VolumeType *string `json:"volumeType,omitempty" tf:"volume_type,omitempty"` +} + +// VolumeV3Spec defines the desired state of VolumeV3 +type VolumeV3Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider VolumeV3Parameters `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 VolumeV3InitParameters `json:"initProvider,omitempty"` +} + +// VolumeV3Status defines the observed state of VolumeV3. +type VolumeV3Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider VolumeV3Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// VolumeV3 is the Schema for the VolumeV3s API. Manages an EVS resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type VolumeV3 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.availabilityZone) || (has(self.initProvider) && has(self.initProvider.availabilityZone))",message="spec.forProvider.availabilityZone is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.volumeType) || (has(self.initProvider) && has(self.initProvider.volumeType))",message="spec.forProvider.volumeType is a required parameter" + Spec VolumeV3Spec `json:"spec"` + Status VolumeV3Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// VolumeV3List contains a list of VolumeV3s +type VolumeV3List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []VolumeV3 `json:"items"` +} + +// Repository type metadata. +var ( + VolumeV3_Kind = "VolumeV3" + VolumeV3_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: VolumeV3_Kind}.String() + VolumeV3_KindAPIVersion = VolumeV3_Kind + "." + CRDGroupVersion.String() + VolumeV3_GroupVersionKind = CRDGroupVersion.WithKind(VolumeV3_Kind) +) + +func init() { + SchemeBuilder.Register(&VolumeV3{}, &VolumeV3List{}) +} diff --git a/apis/fgs/v1alpha1/zz_asyncinvokeconfigv2_types.go b/apis/fgs/v1alpha1/zz_asyncinvokeconfigv2_types.go new file mode 100755 index 0000000..d245fb5 --- /dev/null +++ b/apis/fgs/v1alpha1/zz_asyncinvokeconfigv2_types.go @@ -0,0 +1,225 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 AsyncInvokeConfigV2InitParameters struct { + + // Specifies the function URN to which the asynchronous invocation belongs. + // Changing this will create a new resource. + FunctionUrn *string `json:"functionUrn,omitempty" tf:"function_urn,omitempty"` + + // Specifies the maximum validity period of a message. + MaxAsyncEventAgeInSeconds *float64 `json:"maxAsyncEventAgeInSeconds,omitempty" tf:"max_async_event_age_in_seconds,omitempty"` + + // Specifies the maximum number of retry attempts to be made if + // asynchronous invocation fails. + MaxAsyncRetryAttempts *float64 `json:"maxAsyncRetryAttempts,omitempty" tf:"max_async_retry_attempts,omitempty"` + + // Specifies the target to be invoked when a function fails to be executed due to a + // system error or an internal error. + // The object structure is documented below. + OnFailure []OnFailureInitParameters `json:"onFailure,omitempty" tf:"on_failure,omitempty"` + + // Specifies the target to be invoked when a function is successfully executed. + // The object structure is documented below. + OnSuccess []OnSuccessInitParameters `json:"onSuccess,omitempty" tf:"on_success,omitempty"` +} + +type AsyncInvokeConfigV2Observation struct { + + // Specifies the function URN to which the asynchronous invocation belongs. + // Changing this will create a new resource. + FunctionUrn *string `json:"functionUrn,omitempty" tf:"function_urn,omitempty"` + + // Specifies a resource ID in UUID format. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Specifies the maximum validity period of a message. + MaxAsyncEventAgeInSeconds *float64 `json:"maxAsyncEventAgeInSeconds,omitempty" tf:"max_async_event_age_in_seconds,omitempty"` + + // Specifies the maximum number of retry attempts to be made if + // asynchronous invocation fails. + MaxAsyncRetryAttempts *float64 `json:"maxAsyncRetryAttempts,omitempty" tf:"max_async_retry_attempts,omitempty"` + + // Specifies the target to be invoked when a function fails to be executed due to a + // system error or an internal error. + // The object structure is documented below. + OnFailure []OnFailureObservation `json:"onFailure,omitempty" tf:"on_failure,omitempty"` + + // Specifies the target to be invoked when a function is successfully executed. + // The object structure is documented below. + OnSuccess []OnSuccessObservation `json:"onSuccess,omitempty" tf:"on_success,omitempty"` + + // Specifies the region in which the asynchronous invocation is configured. + Region *string `json:"region,omitempty" tf:"region,omitempty"` +} + +type AsyncInvokeConfigV2Parameters struct { + + // Specifies the function URN to which the asynchronous invocation belongs. + // Changing this will create a new resource. + // +kubebuilder:validation:Optional + FunctionUrn *string `json:"functionUrn,omitempty" tf:"function_urn,omitempty"` + + // Specifies the maximum validity period of a message. + // +kubebuilder:validation:Optional + MaxAsyncEventAgeInSeconds *float64 `json:"maxAsyncEventAgeInSeconds,omitempty" tf:"max_async_event_age_in_seconds,omitempty"` + + // Specifies the maximum number of retry attempts to be made if + // asynchronous invocation fails. + // +kubebuilder:validation:Optional + MaxAsyncRetryAttempts *float64 `json:"maxAsyncRetryAttempts,omitempty" tf:"max_async_retry_attempts,omitempty"` + + // Specifies the target to be invoked when a function fails to be executed due to a + // system error or an internal error. + // The object structure is documented below. + // +kubebuilder:validation:Optional + OnFailure []OnFailureParameters `json:"onFailure,omitempty" tf:"on_failure,omitempty"` + + // Specifies the target to be invoked when a function is successfully executed. + // The object structure is documented below. + // +kubebuilder:validation:Optional + OnSuccess []OnSuccessParameters `json:"onSuccess,omitempty" tf:"on_success,omitempty"` +} + +type OnFailureInitParameters struct { + + // Specifies the object type. + // The valid values are as follows: + Destination *string `json:"destination,omitempty" tf:"destination,omitempty"` + + // Specifies the parameters (map object in JSON format) corresponding to the target service. + Param *string `json:"param,omitempty" tf:"param,omitempty"` +} + +type OnFailureObservation struct { + + // Specifies the object type. + // The valid values are as follows: + Destination *string `json:"destination,omitempty" tf:"destination,omitempty"` + + // Specifies the parameters (map object in JSON format) corresponding to the target service. + Param *string `json:"param,omitempty" tf:"param,omitempty"` +} + +type OnFailureParameters struct { + + // Specifies the object type. + // The valid values are as follows: + // +kubebuilder:validation:Optional + Destination *string `json:"destination" tf:"destination,omitempty"` + + // Specifies the parameters (map object in JSON format) corresponding to the target service. + // +kubebuilder:validation:Optional + Param *string `json:"param" tf:"param,omitempty"` +} + +type OnSuccessInitParameters struct { + + // Specifies the object type. + // The valid values are as follows: + Destination *string `json:"destination,omitempty" tf:"destination,omitempty"` + + // Specifies the parameters (map object in JSON format) corresponding to the target service. + Param *string `json:"param,omitempty" tf:"param,omitempty"` +} + +type OnSuccessObservation struct { + + // Specifies the object type. + // The valid values are as follows: + Destination *string `json:"destination,omitempty" tf:"destination,omitempty"` + + // Specifies the parameters (map object in JSON format) corresponding to the target service. + Param *string `json:"param,omitempty" tf:"param,omitempty"` +} + +type OnSuccessParameters struct { + + // Specifies the object type. + // The valid values are as follows: + // +kubebuilder:validation:Optional + Destination *string `json:"destination" tf:"destination,omitempty"` + + // Specifies the parameters (map object in JSON format) corresponding to the target service. + // +kubebuilder:validation:Optional + Param *string `json:"param" tf:"param,omitempty"` +} + +// AsyncInvokeConfigV2Spec defines the desired state of AsyncInvokeConfigV2 +type AsyncInvokeConfigV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider AsyncInvokeConfigV2Parameters `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 AsyncInvokeConfigV2InitParameters `json:"initProvider,omitempty"` +} + +// AsyncInvokeConfigV2Status defines the observed state of AsyncInvokeConfigV2. +type AsyncInvokeConfigV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider AsyncInvokeConfigV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// AsyncInvokeConfigV2 is the Schema for the AsyncInvokeConfigV2s API. Manages an FGS Async Invoke Config resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type AsyncInvokeConfigV2 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.functionUrn) || (has(self.initProvider) && has(self.initProvider.functionUrn))",message="spec.forProvider.functionUrn is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.maxAsyncEventAgeInSeconds) || (has(self.initProvider) && has(self.initProvider.maxAsyncEventAgeInSeconds))",message="spec.forProvider.maxAsyncEventAgeInSeconds is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.maxAsyncRetryAttempts) || (has(self.initProvider) && has(self.initProvider.maxAsyncRetryAttempts))",message="spec.forProvider.maxAsyncRetryAttempts is a required parameter" + Spec AsyncInvokeConfigV2Spec `json:"spec"` + Status AsyncInvokeConfigV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// AsyncInvokeConfigV2List contains a list of AsyncInvokeConfigV2s +type AsyncInvokeConfigV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []AsyncInvokeConfigV2 `json:"items"` +} + +// Repository type metadata. +var ( + AsyncInvokeConfigV2_Kind = "AsyncInvokeConfigV2" + AsyncInvokeConfigV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: AsyncInvokeConfigV2_Kind}.String() + AsyncInvokeConfigV2_KindAPIVersion = AsyncInvokeConfigV2_Kind + "." + CRDGroupVersion.String() + AsyncInvokeConfigV2_GroupVersionKind = CRDGroupVersion.WithKind(AsyncInvokeConfigV2_Kind) +) + +func init() { + SchemeBuilder.Register(&AsyncInvokeConfigV2{}, &AsyncInvokeConfigV2List{}) +} diff --git a/apis/fgs/v1alpha1/zz_eventv2_types.go b/apis/fgs/v1alpha1/zz_eventv2_types.go new file mode 100755 index 0000000..49dd941 --- /dev/null +++ b/apis/fgs/v1alpha1/zz_eventv2_types.go @@ -0,0 +1,135 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 EventV2InitParameters struct { + + // Specifies the function event content. + // The value is the base64 encoding of the JSON string. + Content *string `json:"content,omitempty" tf:"content,omitempty"` + + // Specifies the URN of the function to which the event belongs. + FunctionUrn *string `json:"functionUrn,omitempty" tf:"function_urn,omitempty"` + + // Specifies the function event name. + // The name can contain a maximum of 25, only letters, digits, underscores (_) and hyphens (-) are allowed. + Name *string `json:"name,omitempty" tf:"name,omitempty"` +} + +type EventV2Observation struct { + + // Specifies the function event content. + // The value is the base64 encoding of the JSON string. + Content *string `json:"content,omitempty" tf:"content,omitempty"` + + // Specifies the URN of the function to which the event belongs. + FunctionUrn *string `json:"functionUrn,omitempty" tf:"function_urn,omitempty"` + + // The resource ID in UUID format. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Specifies the function event name. + // The name can contain a maximum of 25, only letters, digits, underscores (_) and hyphens (-) are allowed. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The region in which function graph resource is created. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The latest update time of the function event. + UpdatedAt *float64 `json:"updatedAt,omitempty" tf:"updated_at,omitempty"` +} + +type EventV2Parameters struct { + + // Specifies the function event content. + // The value is the base64 encoding of the JSON string. + // +kubebuilder:validation:Optional + Content *string `json:"content,omitempty" tf:"content,omitempty"` + + // Specifies the URN of the function to which the event belongs. + // +kubebuilder:validation:Optional + FunctionUrn *string `json:"functionUrn,omitempty" tf:"function_urn,omitempty"` + + // Specifies the function event name. + // The name can contain a maximum of 25, only letters, digits, underscores (_) and hyphens (-) are allowed. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` +} + +// EventV2Spec defines the desired state of EventV2 +type EventV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider EventV2Parameters `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 EventV2InitParameters `json:"initProvider,omitempty"` +} + +// EventV2Status defines the observed state of EventV2. +type EventV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider EventV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// EventV2 is the Schema for the EventV2s API. Manages an FGS Event resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type EventV2 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.content) || (has(self.initProvider) && has(self.initProvider.content))",message="spec.forProvider.content is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.functionUrn) || (has(self.initProvider) && has(self.initProvider.functionUrn))",message="spec.forProvider.functionUrn is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + Spec EventV2Spec `json:"spec"` + Status EventV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// EventV2List contains a list of EventV2s +type EventV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []EventV2 `json:"items"` +} + +// Repository type metadata. +var ( + EventV2_Kind = "EventV2" + EventV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: EventV2_Kind}.String() + EventV2_KindAPIVersion = EventV2_Kind + "." + CRDGroupVersion.String() + EventV2_GroupVersionKind = CRDGroupVersion.WithKind(EventV2_Kind) +) + +func init() { + SchemeBuilder.Register(&EventV2{}, &EventV2List{}) +} diff --git a/apis/fgs/v1alpha1/zz_functionv2_types.go b/apis/fgs/v1alpha1/zz_functionv2_types.go new file mode 100755 index 0000000..c015270 --- /dev/null +++ b/apis/fgs/v1alpha1/zz_functionv2_types.go @@ -0,0 +1,806 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 AliasesInitParameters struct { + + // Specifies the description of the function. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Specifies the version name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` +} + +type AliasesObservation struct { + + // Specifies the description of the function. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Specifies the version name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` +} + +type AliasesParameters struct { + + // Specifies the description of the function. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Specifies the version name. + // +kubebuilder:validation:Optional + Name *string `json:"name" tf:"name,omitempty"` +} + +type CronConfigsInitParameters struct { + + // Specifies the number of reserved instance to which the policy belongs. + // The valid value ranges from 0 to 1,000. + Count *float64 `json:"count,omitempty" tf:"count,omitempty"` + + // Specifies the cron expression. + Cron *string `json:"cron,omitempty" tf:"cron,omitempty"` + + // Specifies the expiration timestamp of the policy. The unit is s, e.g. 1740560074. + ExpiredTime *float64 `json:"expiredTime,omitempty" tf:"expired_time,omitempty"` + + // Specifies the version name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the effective timestamp of policy. The unit is s, e.g. 1740560074. + StartTime *float64 `json:"startTime,omitempty" tf:"start_time,omitempty"` +} + +type CronConfigsObservation struct { + + // Specifies the number of reserved instance to which the policy belongs. + // The valid value ranges from 0 to 1,000. + Count *float64 `json:"count,omitempty" tf:"count,omitempty"` + + // Specifies the cron expression. + Cron *string `json:"cron,omitempty" tf:"cron,omitempty"` + + // Specifies the expiration timestamp of the policy. The unit is s, e.g. 1740560074. + ExpiredTime *float64 `json:"expiredTime,omitempty" tf:"expired_time,omitempty"` + + // Specifies the version name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the effective timestamp of policy. The unit is s, e.g. 1740560074. + StartTime *float64 `json:"startTime,omitempty" tf:"start_time,omitempty"` +} + +type CronConfigsParameters struct { + + // Specifies the number of reserved instance to which the policy belongs. + // The valid value ranges from 0 to 1,000. + // +kubebuilder:validation:Optional + Count *float64 `json:"count" tf:"count,omitempty"` + + // Specifies the cron expression. + // +kubebuilder:validation:Optional + Cron *string `json:"cron" tf:"cron,omitempty"` + + // Specifies the expiration timestamp of the policy. The unit is s, e.g. 1740560074. + // +kubebuilder:validation:Optional + ExpiredTime *float64 `json:"expiredTime" tf:"expired_time,omitempty"` + + // Specifies the version name. + // +kubebuilder:validation:Optional + Name *string `json:"name" tf:"name,omitempty"` + + // Specifies the effective timestamp of policy. The unit is s, e.g. 1740560074. + // +kubebuilder:validation:Optional + StartTime *float64 `json:"startTime" tf:"start_time,omitempty"` +} + +type CustomImageInitParameters struct { + + // Specifies the URL of SWR image, the URL must start with swr.. + URL *string `json:"url,omitempty" tf:"url,omitempty"` +} + +type CustomImageObservation struct { + + // Specifies the URL of SWR image, the URL must start with swr.. + URL *string `json:"url,omitempty" tf:"url,omitempty"` +} + +type CustomImageParameters struct { + + // Specifies the URL of SWR image, the URL must start with swr.. + // +kubebuilder:validation:Optional + URL *string `json:"url" tf:"url,omitempty"` +} + +type FuncMountsInitParameters struct { + + // Specifies the function access path. + LocalMountPath *string `json:"localMountPath,omitempty" tf:"local_mount_path,omitempty"` + + // Specifies the ID of the mounted resource (corresponding cloud service). + MountResource *string `json:"mountResource,omitempty" tf:"mount_resource,omitempty"` + + // Specifies the remote mount path. Example: 192.168.0.12:/data. + MountSharePath *string `json:"mountSharePath,omitempty" tf:"mount_share_path,omitempty"` + + // Specifies the mount type. + MountType *string `json:"mountType,omitempty" tf:"mount_type,omitempty"` +} + +type FuncMountsObservation struct { + + // Specifies the function access path. + LocalMountPath *string `json:"localMountPath,omitempty" tf:"local_mount_path,omitempty"` + + // Specifies the ID of the mounted resource (corresponding cloud service). + MountResource *string `json:"mountResource,omitempty" tf:"mount_resource,omitempty"` + + // Specifies the remote mount path. Example: 192.168.0.12:/data. + MountSharePath *string `json:"mountSharePath,omitempty" tf:"mount_share_path,omitempty"` + + // Specifies the mount type. + MountType *string `json:"mountType,omitempty" tf:"mount_type,omitempty"` +} + +type FuncMountsParameters struct { + + // Specifies the function access path. + // +kubebuilder:validation:Optional + LocalMountPath *string `json:"localMountPath" tf:"local_mount_path,omitempty"` + + // Specifies the ID of the mounted resource (corresponding cloud service). + // +kubebuilder:validation:Optional + MountResource *string `json:"mountResource" tf:"mount_resource,omitempty"` + + // Specifies the remote mount path. Example: 192.168.0.12:/data. + // +kubebuilder:validation:Optional + MountSharePath *string `json:"mountSharePath" tf:"mount_share_path,omitempty"` + + // Specifies the mount type. + // +kubebuilder:validation:Optional + MountType *string `json:"mountType" tf:"mount_type,omitempty"` +} + +type FunctionV2InitParameters struct { + + // Specifies the agency. This parameter is mandatory if the function needs to access other + // cloud services. + Agency *string `json:"agency,omitempty" tf:"agency,omitempty"` + + // Specifies the group to which the function belongs. + App *string `json:"app,omitempty" tf:"app,omitempty"` + + // Specifies the execution agency enables you to obtain a token or an AK/SK for + // accessing other cloud services. + AppAgency *string `json:"appAgency,omitempty" tf:"app_agency,omitempty"` + + // Specifies the name of a function file. + // Required if the code_type is set to jar or zip. + CodeFilename *string `json:"codeFilename,omitempty" tf:"code_filename,omitempty"` + + // Specifies the function code type, which can be: + CodeType *string `json:"codeType,omitempty" tf:"code_type,omitempty"` + + // Specifies the code url. + // Required if the code_type is set to obs. + CodeURL *string `json:"codeUrl,omitempty" tf:"code_url,omitempty"` + + // Specifies the number of concurrent requests of the function. + // The valid value ranges from 1 to 1,000, the default value is 1. + ConcurrencyNum *float64 `json:"concurrencyNum,omitempty" tf:"concurrency_num,omitempty"` + + // Specifies the custom image configuration for creating function. + // The custom_image structure is documented below. + CustomImage []CustomImageInitParameters `json:"customImage,omitempty" tf:"custom_image,omitempty"` + + // Specifies the ID list of the dependencies. + DependList []*string `json:"dependList,omitempty" tf:"depend_list,omitempty"` + + // Specifies the description of the function. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Specifies the function code. + // The code value can be encoded using Base64 or just with the text code. + // Required if the code_type is set to inline, zip, or jar. + FuncCode *string `json:"funcCode,omitempty" tf:"func_code,omitempty"` + + // Specifies the file system list. The func_mounts object structure is documented + // below. + FuncMounts []FuncMountsInitParameters `json:"funcMounts,omitempty" tf:"func_mounts,omitempty"` + + // Specifies the FunctionGraph version, default value is v2. + // The valid values are as follows: + FunctiongraphVersion *string `json:"functiongraphVersion,omitempty" tf:"functiongraph_version,omitempty"` + + // Specifies the GPU memory size allocated to the function, in MByte (MB). + // The valid value ranges form 1,024 to 16,384, the value must be a multiple of 1,024. + // If not specified, the GPU function is disabled. + GpuMemory *float64 `json:"gpuMemory,omitempty" tf:"gpu_memory,omitempty"` + + // Specifies the entry point of the function. + Handler *string `json:"handler,omitempty" tf:"handler,omitempty"` + + // Specifies the initializer of the function. + InitializerHandler *string `json:"initializerHandler,omitempty" tf:"initializer_handler,omitempty"` + + // Specifies the maximum duration the function can be initialized. Value range: + // 1s to 300s. + InitializerTimeout *float64 `json:"initializerTimeout,omitempty" tf:"initializer_timeout,omitempty"` + + // Specifies the ID of the LTS log group. + LogGroupID *string `json:"logGroupId,omitempty" tf:"log_group_id,omitempty"` + + // Specifies the name of the LTS log group. + LogGroupName *string `json:"logGroupName,omitempty" tf:"log_group_name,omitempty"` + + // Specifies the ID of the LTS log stream. + LogTopicID *string `json:"logTopicId,omitempty" tf:"log_topic_id,omitempty"` + + // Specifies the name of the LTS stream. + LogTopicName *string `json:"logTopicName,omitempty" tf:"log_topic_name,omitempty"` + + // Specifies the maximum number of instances of the function. + // The valid value ranges from -1 to 1,000, defaults to 400. + MaxInstanceNum *string `json:"maxInstanceNum,omitempty" tf:"max_instance_num,omitempty"` + + // Specifies the memory size allocated to the function, in MByte (MB). + MemorySize *float64 `json:"memorySize,omitempty" tf:"memory_size,omitempty"` + + // Specifies the user group ID, a non-0 integer from –1 to 65,534. + // Defaults to -1. + MountUserGroupID *float64 `json:"mountUserGroupId,omitempty" tf:"mount_user_group_id,omitempty"` + + // Specifies the user ID, a non-0 integer from –1 to 65,534. + // Defaults to -1. + MountUserID *float64 `json:"mountUserId,omitempty" tf:"mount_user_id,omitempty"` + + // Specifies the name of the function. + // Changing this will create a new resource. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the network ID of subnet. + NetworkID *string `json:"networkId,omitempty" tf:"network_id,omitempty"` + + // Specifies the reserved instance policies of the function. + // The reserved_instances structure is documented below. + ReservedInstances []ReservedInstancesInitParameters `json:"reservedInstances,omitempty" tf:"reserved_instances,omitempty"` + + // Specifies the environment for executing the function. + // The valid values are as follows: + Runtime *string `json:"runtime,omitempty" tf:"runtime,omitempty"` + + // Specifies the key/value pairs to associate with the function. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Specifies the timeout interval of the function, in seconds. + // The value ranges from 3 to 900. + Timeout *float64 `json:"timeout,omitempty" tf:"timeout,omitempty"` + + // Specifies the Key/Value information defined for the function. + UserData *string `json:"userData,omitempty" tf:"user_data,omitempty"` + + // Specifies the ID of VPC. + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` + + // Specifies the versions management of the function. + // The versions structure is documented below. + Versions []VersionsInitParameters `json:"versions,omitempty" tf:"versions,omitempty"` +} + +type FunctionV2Observation struct { + + // Specifies the agency. This parameter is mandatory if the function needs to access other + // cloud services. + Agency *string `json:"agency,omitempty" tf:"agency,omitempty"` + + // Specifies the group to which the function belongs. + App *string `json:"app,omitempty" tf:"app,omitempty"` + + // Specifies the execution agency enables you to obtain a token or an AK/SK for + // accessing other cloud services. + AppAgency *string `json:"appAgency,omitempty" tf:"app_agency,omitempty"` + + // Specifies the name of a function file. + // Required if the code_type is set to jar or zip. + CodeFilename *string `json:"codeFilename,omitempty" tf:"code_filename,omitempty"` + + // Specifies the function code type, which can be: + CodeType *string `json:"codeType,omitempty" tf:"code_type,omitempty"` + + // Specifies the code url. + // Required if the code_type is set to obs. + CodeURL *string `json:"codeUrl,omitempty" tf:"code_url,omitempty"` + + // Specifies the number of concurrent requests of the function. + // The valid value ranges from 1 to 1,000, the default value is 1. + ConcurrencyNum *float64 `json:"concurrencyNum,omitempty" tf:"concurrency_num,omitempty"` + + // Specifies the custom image configuration for creating function. + // The custom_image structure is documented below. + CustomImage []CustomImageObservation `json:"customImage,omitempty" tf:"custom_image,omitempty"` + + // The private DNS configuration of the function network. + DNSList *string `json:"dnsList,omitempty" tf:"dns_list,omitempty"` + + // Specifies the ID list of the dependencies. + DependList []*string `json:"dependList,omitempty" tf:"depend_list,omitempty"` + + // Specifies the description of the function. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Specifies the function code. + // The code value can be encoded using Base64 or just with the text code. + // Required if the code_type is set to inline, zip, or jar. + FuncCode *string `json:"funcCode,omitempty" tf:"func_code,omitempty"` + + // Specifies the file system list. The func_mounts object structure is documented + // below. + FuncMounts []FuncMountsObservation `json:"funcMounts,omitempty" tf:"func_mounts,omitempty"` + + // Specifies the FunctionGraph version, default value is v2. + // The valid values are as follows: + FunctiongraphVersion *string `json:"functiongraphVersion,omitempty" tf:"functiongraph_version,omitempty"` + + // Specifies the GPU memory size allocated to the function, in MByte (MB). + // The valid value ranges form 1,024 to 16,384, the value must be a multiple of 1,024. + // If not specified, the GPU function is disabled. + GpuMemory *float64 `json:"gpuMemory,omitempty" tf:"gpu_memory,omitempty"` + + GpuType *string `json:"gpuType,omitempty" tf:"gpu_type,omitempty"` + + // Specifies the entry point of the function. + Handler *string `json:"handler,omitempty" tf:"handler,omitempty"` + + // The resource ID, consist of urn and current version, the format is :. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Specifies the initializer of the function. + InitializerHandler *string `json:"initializerHandler,omitempty" tf:"initializer_handler,omitempty"` + + // Specifies the maximum duration the function can be initialized. Value range: + // 1s to 300s. + InitializerTimeout *float64 `json:"initializerTimeout,omitempty" tf:"initializer_timeout,omitempty"` + + // Specifies the ID of the LTS log group. + LogGroupID *string `json:"logGroupId,omitempty" tf:"log_group_id,omitempty"` + + // Specifies the name of the LTS log group. + LogGroupName *string `json:"logGroupName,omitempty" tf:"log_group_name,omitempty"` + + // Specifies the ID of the LTS log stream. + LogTopicID *string `json:"logTopicId,omitempty" tf:"log_topic_id,omitempty"` + + // Specifies the name of the LTS stream. + LogTopicName *string `json:"logTopicName,omitempty" tf:"log_topic_name,omitempty"` + + // Specifies the maximum number of instances of the function. + // The valid value ranges from -1 to 1,000, defaults to 400. + MaxInstanceNum *string `json:"maxInstanceNum,omitempty" tf:"max_instance_num,omitempty"` + + // Specifies the memory size allocated to the function, in MByte (MB). + MemorySize *float64 `json:"memorySize,omitempty" tf:"memory_size,omitempty"` + + // Specifies the user group ID, a non-0 integer from –1 to 65,534. + // Defaults to -1. + MountUserGroupID *float64 `json:"mountUserGroupId,omitempty" tf:"mount_user_group_id,omitempty"` + + // Specifies the user ID, a non-0 integer from –1 to 65,534. + // Defaults to -1. + MountUserID *float64 `json:"mountUserId,omitempty" tf:"mount_user_id,omitempty"` + + // Specifies the name of the function. + // Changing this will create a new resource. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the network ID of subnet. + NetworkID *string `json:"networkId,omitempty" tf:"network_id,omitempty"` + + // The region in which function graph resource is created. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Specifies the reserved instance policies of the function. + // The reserved_instances structure is documented below. + ReservedInstances []ReservedInstancesObservation `json:"reservedInstances,omitempty" tf:"reserved_instances,omitempty"` + + // Specifies the environment for executing the function. + // The valid values are as follows: + Runtime *string `json:"runtime,omitempty" tf:"runtime,omitempty"` + + // Specifies the key/value pairs to associate with the function. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Specifies the timeout interval of the function, in seconds. + // The value ranges from 3 to 900. + Timeout *float64 `json:"timeout,omitempty" tf:"timeout,omitempty"` + + // Uniform Resource Name. + Urn *string `json:"urn,omitempty" tf:"urn,omitempty"` + + // Specifies the Key/Value information defined for the function. + UserData *string `json:"userData,omitempty" tf:"user_data,omitempty"` + + // Specifies the ID of VPC. + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` + + // The version of the function. + Version *string `json:"version,omitempty" tf:"version,omitempty"` + + // Specifies the versions management of the function. + // The versions structure is documented below. + Versions []VersionsObservation `json:"versions,omitempty" tf:"versions,omitempty"` +} + +type FunctionV2Parameters struct { + + // Specifies the agency. This parameter is mandatory if the function needs to access other + // cloud services. + // +kubebuilder:validation:Optional + Agency *string `json:"agency,omitempty" tf:"agency,omitempty"` + + // Specifies the group to which the function belongs. + // +kubebuilder:validation:Optional + App *string `json:"app,omitempty" tf:"app,omitempty"` + + // Specifies the execution agency enables you to obtain a token or an AK/SK for + // accessing other cloud services. + // +kubebuilder:validation:Optional + AppAgency *string `json:"appAgency,omitempty" tf:"app_agency,omitempty"` + + // Specifies the name of a function file. + // Required if the code_type is set to jar or zip. + // +kubebuilder:validation:Optional + CodeFilename *string `json:"codeFilename,omitempty" tf:"code_filename,omitempty"` + + // Specifies the function code type, which can be: + // +kubebuilder:validation:Optional + CodeType *string `json:"codeType,omitempty" tf:"code_type,omitempty"` + + // Specifies the code url. + // Required if the code_type is set to obs. + // +kubebuilder:validation:Optional + CodeURL *string `json:"codeUrl,omitempty" tf:"code_url,omitempty"` + + // Specifies the number of concurrent requests of the function. + // The valid value ranges from 1 to 1,000, the default value is 1. + // +kubebuilder:validation:Optional + ConcurrencyNum *float64 `json:"concurrencyNum,omitempty" tf:"concurrency_num,omitempty"` + + // Specifies the custom image configuration for creating function. + // The custom_image structure is documented below. + // +kubebuilder:validation:Optional + CustomImage []CustomImageParameters `json:"customImage,omitempty" tf:"custom_image,omitempty"` + + // Specifies the ID list of the dependencies. + // +kubebuilder:validation:Optional + DependList []*string `json:"dependList,omitempty" tf:"depend_list,omitempty"` + + // Specifies the description of the function. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Specifies the key/value information defined to be encrypted for the + // function. + // +kubebuilder:validation:Optional + EncryptedUserDataSecretRef *v1.SecretKeySelector `json:"encryptedUserDataSecretRef,omitempty" tf:"-"` + + // Specifies the function code. + // The code value can be encoded using Base64 or just with the text code. + // Required if the code_type is set to inline, zip, or jar. + // +kubebuilder:validation:Optional + FuncCode *string `json:"funcCode,omitempty" tf:"func_code,omitempty"` + + // Specifies the file system list. The func_mounts object structure is documented + // below. + // +kubebuilder:validation:Optional + FuncMounts []FuncMountsParameters `json:"funcMounts,omitempty" tf:"func_mounts,omitempty"` + + // Specifies the FunctionGraph version, default value is v2. + // The valid values are as follows: + // +kubebuilder:validation:Optional + FunctiongraphVersion *string `json:"functiongraphVersion,omitempty" tf:"functiongraph_version,omitempty"` + + // Specifies the GPU memory size allocated to the function, in MByte (MB). + // The valid value ranges form 1,024 to 16,384, the value must be a multiple of 1,024. + // If not specified, the GPU function is disabled. + // +kubebuilder:validation:Optional + GpuMemory *float64 `json:"gpuMemory,omitempty" tf:"gpu_memory,omitempty"` + + // Specifies the entry point of the function. + // +kubebuilder:validation:Optional + Handler *string `json:"handler,omitempty" tf:"handler,omitempty"` + + // Specifies the initializer of the function. + // +kubebuilder:validation:Optional + InitializerHandler *string `json:"initializerHandler,omitempty" tf:"initializer_handler,omitempty"` + + // Specifies the maximum duration the function can be initialized. Value range: + // 1s to 300s. + // +kubebuilder:validation:Optional + InitializerTimeout *float64 `json:"initializerTimeout,omitempty" tf:"initializer_timeout,omitempty"` + + // Specifies the ID of the LTS log group. + // +kubebuilder:validation:Optional + LogGroupID *string `json:"logGroupId,omitempty" tf:"log_group_id,omitempty"` + + // Specifies the name of the LTS log group. + // +kubebuilder:validation:Optional + LogGroupName *string `json:"logGroupName,omitempty" tf:"log_group_name,omitempty"` + + // Specifies the ID of the LTS log stream. + // +kubebuilder:validation:Optional + LogTopicID *string `json:"logTopicId,omitempty" tf:"log_topic_id,omitempty"` + + // Specifies the name of the LTS stream. + // +kubebuilder:validation:Optional + LogTopicName *string `json:"logTopicName,omitempty" tf:"log_topic_name,omitempty"` + + // Specifies the maximum number of instances of the function. + // The valid value ranges from -1 to 1,000, defaults to 400. + // +kubebuilder:validation:Optional + MaxInstanceNum *string `json:"maxInstanceNum,omitempty" tf:"max_instance_num,omitempty"` + + // Specifies the memory size allocated to the function, in MByte (MB). + // +kubebuilder:validation:Optional + MemorySize *float64 `json:"memorySize,omitempty" tf:"memory_size,omitempty"` + + // Specifies the user group ID, a non-0 integer from –1 to 65,534. + // Defaults to -1. + // +kubebuilder:validation:Optional + MountUserGroupID *float64 `json:"mountUserGroupId,omitempty" tf:"mount_user_group_id,omitempty"` + + // Specifies the user ID, a non-0 integer from –1 to 65,534. + // Defaults to -1. + // +kubebuilder:validation:Optional + MountUserID *float64 `json:"mountUserId,omitempty" tf:"mount_user_id,omitempty"` + + // Specifies the name of the function. + // Changing this will create a new resource. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the network ID of subnet. + // +kubebuilder:validation:Optional + NetworkID *string `json:"networkId,omitempty" tf:"network_id,omitempty"` + + // Specifies the reserved instance policies of the function. + // The reserved_instances structure is documented below. + // +kubebuilder:validation:Optional + ReservedInstances []ReservedInstancesParameters `json:"reservedInstances,omitempty" tf:"reserved_instances,omitempty"` + + // Specifies the environment for executing the function. + // The valid values are as follows: + // +kubebuilder:validation:Optional + Runtime *string `json:"runtime,omitempty" tf:"runtime,omitempty"` + + // Specifies the key/value pairs to associate with the function. + // +kubebuilder:validation:Optional + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Specifies the timeout interval of the function, in seconds. + // The value ranges from 3 to 900. + // +kubebuilder:validation:Optional + Timeout *float64 `json:"timeout,omitempty" tf:"timeout,omitempty"` + + // Specifies the Key/Value information defined for the function. + // +kubebuilder:validation:Optional + UserData *string `json:"userData,omitempty" tf:"user_data,omitempty"` + + // Specifies the ID of VPC. + // +kubebuilder:validation:Optional + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` + + // Specifies the versions management of the function. + // The versions structure is documented below. + // +kubebuilder:validation:Optional + Versions []VersionsParameters `json:"versions,omitempty" tf:"versions,omitempty"` +} + +type ReservedInstancesInitParameters struct { + + // Specifies the number of reserved instance. + // The valid value ranges from 0 to 1,000. + // If this parameter is set to 0, the reserved instance will not run. + Count *float64 `json:"count,omitempty" tf:"count,omitempty"` + + // Specifies whether to enable the idle mode. The default value is false. + // If this parameter is enabled, reserved instances are initialized and the mode change needs some time to take effect. + // You will still be billed at the price of reserved instances for non-idle mode in this period. + IdleMode *bool `json:"idleMode,omitempty" tf:"idle_mode,omitempty"` + + // Specifies the version name or alias name. + QualifierName *string `json:"qualifierName,omitempty" tf:"qualifier_name,omitempty"` + + // Specifies qualifier type of reserved instance. The valid values are as follows: + QualifierType *string `json:"qualifierType,omitempty" tf:"qualifier_type,omitempty"` + + // Specifies the auto scaling policies for reserved instance. + // The tactics_config structure is documented below. + TacticsConfig []TacticsConfigInitParameters `json:"tacticsConfig,omitempty" tf:"tactics_config,omitempty"` +} + +type ReservedInstancesObservation struct { + + // Specifies the number of reserved instance. + // The valid value ranges from 0 to 1,000. + // If this parameter is set to 0, the reserved instance will not run. + Count *float64 `json:"count,omitempty" tf:"count,omitempty"` + + // Specifies whether to enable the idle mode. The default value is false. + // If this parameter is enabled, reserved instances are initialized and the mode change needs some time to take effect. + // You will still be billed at the price of reserved instances for non-idle mode in this period. + IdleMode *bool `json:"idleMode,omitempty" tf:"idle_mode,omitempty"` + + // Specifies the version name or alias name. + QualifierName *string `json:"qualifierName,omitempty" tf:"qualifier_name,omitempty"` + + // Specifies qualifier type of reserved instance. The valid values are as follows: + QualifierType *string `json:"qualifierType,omitempty" tf:"qualifier_type,omitempty"` + + // Specifies the auto scaling policies for reserved instance. + // The tactics_config structure is documented below. + TacticsConfig []TacticsConfigObservation `json:"tacticsConfig,omitempty" tf:"tactics_config,omitempty"` +} + +type ReservedInstancesParameters struct { + + // Specifies the number of reserved instance. + // The valid value ranges from 0 to 1,000. + // If this parameter is set to 0, the reserved instance will not run. + // +kubebuilder:validation:Optional + Count *float64 `json:"count" tf:"count,omitempty"` + + // Specifies whether to enable the idle mode. The default value is false. + // If this parameter is enabled, reserved instances are initialized and the mode change needs some time to take effect. + // You will still be billed at the price of reserved instances for non-idle mode in this period. + // +kubebuilder:validation:Optional + IdleMode *bool `json:"idleMode,omitempty" tf:"idle_mode,omitempty"` + + // Specifies the version name or alias name. + // +kubebuilder:validation:Optional + QualifierName *string `json:"qualifierName" tf:"qualifier_name,omitempty"` + + // Specifies qualifier type of reserved instance. The valid values are as follows: + // +kubebuilder:validation:Optional + QualifierType *string `json:"qualifierType" tf:"qualifier_type,omitempty"` + + // Specifies the auto scaling policies for reserved instance. + // The tactics_config structure is documented below. + // +kubebuilder:validation:Optional + TacticsConfig []TacticsConfigParameters `json:"tacticsConfig,omitempty" tf:"tactics_config,omitempty"` +} + +type TacticsConfigInitParameters struct { + + // Specifies the list of scheduled policy configurations. + // The cron_configs structure is documented below. + CronConfigs []CronConfigsInitParameters `json:"cronConfigs,omitempty" tf:"cron_configs,omitempty"` +} + +type TacticsConfigObservation struct { + + // Specifies the list of scheduled policy configurations. + // The cron_configs structure is documented below. + CronConfigs []CronConfigsObservation `json:"cronConfigs,omitempty" tf:"cron_configs,omitempty"` +} + +type TacticsConfigParameters struct { + + // Specifies the list of scheduled policy configurations. + // The cron_configs structure is documented below. + // +kubebuilder:validation:Optional + CronConfigs []CronConfigsParameters `json:"cronConfigs,omitempty" tf:"cron_configs,omitempty"` +} + +type VersionsInitParameters struct { + + // Specifies the aliases management for specified version. + // The aliases structure is documented below. + Aliases []AliasesInitParameters `json:"aliases,omitempty" tf:"aliases,omitempty"` + + // Specifies the version name. + // The version name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` +} + +type VersionsObservation struct { + + // Specifies the aliases management for specified version. + // The aliases structure is documented below. + Aliases []AliasesObservation `json:"aliases,omitempty" tf:"aliases,omitempty"` + + // Specifies the version name. + // The version name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` +} + +type VersionsParameters struct { + + // Specifies the aliases management for specified version. + // The aliases structure is documented below. + // +kubebuilder:validation:Optional + Aliases []AliasesParameters `json:"aliases,omitempty" tf:"aliases,omitempty"` + + // Specifies the version name. + // The version name. + // +kubebuilder:validation:Optional + Name *string `json:"name" tf:"name,omitempty"` +} + +// FunctionV2Spec defines the desired state of FunctionV2 +type FunctionV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider FunctionV2Parameters `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 FunctionV2InitParameters `json:"initProvider,omitempty"` +} + +// FunctionV2Status defines the observed state of FunctionV2. +type FunctionV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider FunctionV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// FunctionV2 is the Schema for the FunctionV2s API. Manages an FGS Function resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type FunctionV2 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.memorySize) || (has(self.initProvider) && has(self.initProvider.memorySize))",message="spec.forProvider.memorySize is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.runtime) || (has(self.initProvider) && has(self.initProvider.runtime))",message="spec.forProvider.runtime 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" + Spec FunctionV2Spec `json:"spec"` + Status FunctionV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// FunctionV2List contains a list of FunctionV2s +type FunctionV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []FunctionV2 `json:"items"` +} + +// Repository type metadata. +var ( + FunctionV2_Kind = "FunctionV2" + FunctionV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: FunctionV2_Kind}.String() + FunctionV2_KindAPIVersion = FunctionV2_Kind + "." + CRDGroupVersion.String() + FunctionV2_GroupVersionKind = CRDGroupVersion.WithKind(FunctionV2_Kind) +) + +func init() { + SchemeBuilder.Register(&FunctionV2{}, &FunctionV2List{}) +} diff --git a/apis/fgs/v1alpha1/zz_generated.deepcopy.go b/apis/fgs/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..c672a95 --- /dev/null +++ b/apis/fgs/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,2210 @@ +//go:build !ignore_autogenerated + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by controller-gen. DO NOT EDIT. + +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 *AliasesInitParameters) DeepCopyInto(out *AliasesInitParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AliasesInitParameters. +func (in *AliasesInitParameters) DeepCopy() *AliasesInitParameters { + if in == nil { + return nil + } + out := new(AliasesInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AliasesObservation) DeepCopyInto(out *AliasesObservation) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AliasesObservation. +func (in *AliasesObservation) DeepCopy() *AliasesObservation { + if in == nil { + return nil + } + out := new(AliasesObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AliasesParameters) DeepCopyInto(out *AliasesParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AliasesParameters. +func (in *AliasesParameters) DeepCopy() *AliasesParameters { + if in == nil { + return nil + } + out := new(AliasesParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AsyncInvokeConfigV2) DeepCopyInto(out *AsyncInvokeConfigV2) { + *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 AsyncInvokeConfigV2. +func (in *AsyncInvokeConfigV2) DeepCopy() *AsyncInvokeConfigV2 { + if in == nil { + return nil + } + out := new(AsyncInvokeConfigV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *AsyncInvokeConfigV2) 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 *AsyncInvokeConfigV2InitParameters) DeepCopyInto(out *AsyncInvokeConfigV2InitParameters) { + *out = *in + if in.FunctionUrn != nil { + in, out := &in.FunctionUrn, &out.FunctionUrn + *out = new(string) + **out = **in + } + if in.MaxAsyncEventAgeInSeconds != nil { + in, out := &in.MaxAsyncEventAgeInSeconds, &out.MaxAsyncEventAgeInSeconds + *out = new(float64) + **out = **in + } + if in.MaxAsyncRetryAttempts != nil { + in, out := &in.MaxAsyncRetryAttempts, &out.MaxAsyncRetryAttempts + *out = new(float64) + **out = **in + } + if in.OnFailure != nil { + in, out := &in.OnFailure, &out.OnFailure + *out = make([]OnFailureInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.OnSuccess != nil { + in, out := &in.OnSuccess, &out.OnSuccess + *out = make([]OnSuccessInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AsyncInvokeConfigV2InitParameters. +func (in *AsyncInvokeConfigV2InitParameters) DeepCopy() *AsyncInvokeConfigV2InitParameters { + if in == nil { + return nil + } + out := new(AsyncInvokeConfigV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AsyncInvokeConfigV2List) DeepCopyInto(out *AsyncInvokeConfigV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]AsyncInvokeConfigV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AsyncInvokeConfigV2List. +func (in *AsyncInvokeConfigV2List) DeepCopy() *AsyncInvokeConfigV2List { + if in == nil { + return nil + } + out := new(AsyncInvokeConfigV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *AsyncInvokeConfigV2List) 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 *AsyncInvokeConfigV2Observation) DeepCopyInto(out *AsyncInvokeConfigV2Observation) { + *out = *in + if in.FunctionUrn != nil { + in, out := &in.FunctionUrn, &out.FunctionUrn + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.MaxAsyncEventAgeInSeconds != nil { + in, out := &in.MaxAsyncEventAgeInSeconds, &out.MaxAsyncEventAgeInSeconds + *out = new(float64) + **out = **in + } + if in.MaxAsyncRetryAttempts != nil { + in, out := &in.MaxAsyncRetryAttempts, &out.MaxAsyncRetryAttempts + *out = new(float64) + **out = **in + } + if in.OnFailure != nil { + in, out := &in.OnFailure, &out.OnFailure + *out = make([]OnFailureObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.OnSuccess != nil { + in, out := &in.OnSuccess, &out.OnSuccess + *out = make([]OnSuccessObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AsyncInvokeConfigV2Observation. +func (in *AsyncInvokeConfigV2Observation) DeepCopy() *AsyncInvokeConfigV2Observation { + if in == nil { + return nil + } + out := new(AsyncInvokeConfigV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AsyncInvokeConfigV2Parameters) DeepCopyInto(out *AsyncInvokeConfigV2Parameters) { + *out = *in + if in.FunctionUrn != nil { + in, out := &in.FunctionUrn, &out.FunctionUrn + *out = new(string) + **out = **in + } + if in.MaxAsyncEventAgeInSeconds != nil { + in, out := &in.MaxAsyncEventAgeInSeconds, &out.MaxAsyncEventAgeInSeconds + *out = new(float64) + **out = **in + } + if in.MaxAsyncRetryAttempts != nil { + in, out := &in.MaxAsyncRetryAttempts, &out.MaxAsyncRetryAttempts + *out = new(float64) + **out = **in + } + if in.OnFailure != nil { + in, out := &in.OnFailure, &out.OnFailure + *out = make([]OnFailureParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.OnSuccess != nil { + in, out := &in.OnSuccess, &out.OnSuccess + *out = make([]OnSuccessParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AsyncInvokeConfigV2Parameters. +func (in *AsyncInvokeConfigV2Parameters) DeepCopy() *AsyncInvokeConfigV2Parameters { + if in == nil { + return nil + } + out := new(AsyncInvokeConfigV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AsyncInvokeConfigV2Spec) DeepCopyInto(out *AsyncInvokeConfigV2Spec) { + *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 AsyncInvokeConfigV2Spec. +func (in *AsyncInvokeConfigV2Spec) DeepCopy() *AsyncInvokeConfigV2Spec { + if in == nil { + return nil + } + out := new(AsyncInvokeConfigV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AsyncInvokeConfigV2Status) DeepCopyInto(out *AsyncInvokeConfigV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AsyncInvokeConfigV2Status. +func (in *AsyncInvokeConfigV2Status) DeepCopy() *AsyncInvokeConfigV2Status { + if in == nil { + return nil + } + out := new(AsyncInvokeConfigV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CronConfigsInitParameters) DeepCopyInto(out *CronConfigsInitParameters) { + *out = *in + if in.Count != nil { + in, out := &in.Count, &out.Count + *out = new(float64) + **out = **in + } + if in.Cron != nil { + in, out := &in.Cron, &out.Cron + *out = new(string) + **out = **in + } + if in.ExpiredTime != nil { + in, out := &in.ExpiredTime, &out.ExpiredTime + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.StartTime != nil { + in, out := &in.StartTime, &out.StartTime + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CronConfigsInitParameters. +func (in *CronConfigsInitParameters) DeepCopy() *CronConfigsInitParameters { + if in == nil { + return nil + } + out := new(CronConfigsInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CronConfigsObservation) DeepCopyInto(out *CronConfigsObservation) { + *out = *in + if in.Count != nil { + in, out := &in.Count, &out.Count + *out = new(float64) + **out = **in + } + if in.Cron != nil { + in, out := &in.Cron, &out.Cron + *out = new(string) + **out = **in + } + if in.ExpiredTime != nil { + in, out := &in.ExpiredTime, &out.ExpiredTime + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.StartTime != nil { + in, out := &in.StartTime, &out.StartTime + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CronConfigsObservation. +func (in *CronConfigsObservation) DeepCopy() *CronConfigsObservation { + if in == nil { + return nil + } + out := new(CronConfigsObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CronConfigsParameters) DeepCopyInto(out *CronConfigsParameters) { + *out = *in + if in.Count != nil { + in, out := &in.Count, &out.Count + *out = new(float64) + **out = **in + } + if in.Cron != nil { + in, out := &in.Cron, &out.Cron + *out = new(string) + **out = **in + } + if in.ExpiredTime != nil { + in, out := &in.ExpiredTime, &out.ExpiredTime + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.StartTime != nil { + in, out := &in.StartTime, &out.StartTime + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CronConfigsParameters. +func (in *CronConfigsParameters) DeepCopy() *CronConfigsParameters { + if in == nil { + return nil + } + out := new(CronConfigsParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CustomImageInitParameters) DeepCopyInto(out *CustomImageInitParameters) { + *out = *in + if in.URL != nil { + in, out := &in.URL, &out.URL + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomImageInitParameters. +func (in *CustomImageInitParameters) DeepCopy() *CustomImageInitParameters { + if in == nil { + return nil + } + out := new(CustomImageInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CustomImageObservation) DeepCopyInto(out *CustomImageObservation) { + *out = *in + if in.URL != nil { + in, out := &in.URL, &out.URL + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomImageObservation. +func (in *CustomImageObservation) DeepCopy() *CustomImageObservation { + if in == nil { + return nil + } + out := new(CustomImageObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CustomImageParameters) DeepCopyInto(out *CustomImageParameters) { + *out = *in + if in.URL != nil { + in, out := &in.URL, &out.URL + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CustomImageParameters. +func (in *CustomImageParameters) DeepCopy() *CustomImageParameters { + if in == nil { + return nil + } + out := new(CustomImageParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EventV2) DeepCopyInto(out *EventV2) { + *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 EventV2. +func (in *EventV2) DeepCopy() *EventV2 { + if in == nil { + return nil + } + out := new(EventV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *EventV2) 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 *EventV2InitParameters) DeepCopyInto(out *EventV2InitParameters) { + *out = *in + if in.Content != nil { + in, out := &in.Content, &out.Content + *out = new(string) + **out = **in + } + if in.FunctionUrn != nil { + in, out := &in.FunctionUrn, &out.FunctionUrn + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventV2InitParameters. +func (in *EventV2InitParameters) DeepCopy() *EventV2InitParameters { + if in == nil { + return nil + } + out := new(EventV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EventV2List) DeepCopyInto(out *EventV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]EventV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventV2List. +func (in *EventV2List) DeepCopy() *EventV2List { + if in == nil { + return nil + } + out := new(EventV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *EventV2List) 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 *EventV2Observation) DeepCopyInto(out *EventV2Observation) { + *out = *in + if in.Content != nil { + in, out := &in.Content, &out.Content + *out = new(string) + **out = **in + } + if in.FunctionUrn != nil { + in, out := &in.FunctionUrn, &out.FunctionUrn + *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.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.UpdatedAt != nil { + in, out := &in.UpdatedAt, &out.UpdatedAt + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventV2Observation. +func (in *EventV2Observation) DeepCopy() *EventV2Observation { + if in == nil { + return nil + } + out := new(EventV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EventV2Parameters) DeepCopyInto(out *EventV2Parameters) { + *out = *in + if in.Content != nil { + in, out := &in.Content, &out.Content + *out = new(string) + **out = **in + } + if in.FunctionUrn != nil { + in, out := &in.FunctionUrn, &out.FunctionUrn + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventV2Parameters. +func (in *EventV2Parameters) DeepCopy() *EventV2Parameters { + if in == nil { + return nil + } + out := new(EventV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EventV2Spec) DeepCopyInto(out *EventV2Spec) { + *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 EventV2Spec. +func (in *EventV2Spec) DeepCopy() *EventV2Spec { + if in == nil { + return nil + } + out := new(EventV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EventV2Status) DeepCopyInto(out *EventV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventV2Status. +func (in *EventV2Status) DeepCopy() *EventV2Status { + if in == nil { + return nil + } + out := new(EventV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FuncMountsInitParameters) DeepCopyInto(out *FuncMountsInitParameters) { + *out = *in + if in.LocalMountPath != nil { + in, out := &in.LocalMountPath, &out.LocalMountPath + *out = new(string) + **out = **in + } + if in.MountResource != nil { + in, out := &in.MountResource, &out.MountResource + *out = new(string) + **out = **in + } + if in.MountSharePath != nil { + in, out := &in.MountSharePath, &out.MountSharePath + *out = new(string) + **out = **in + } + if in.MountType != nil { + in, out := &in.MountType, &out.MountType + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FuncMountsInitParameters. +func (in *FuncMountsInitParameters) DeepCopy() *FuncMountsInitParameters { + if in == nil { + return nil + } + out := new(FuncMountsInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FuncMountsObservation) DeepCopyInto(out *FuncMountsObservation) { + *out = *in + if in.LocalMountPath != nil { + in, out := &in.LocalMountPath, &out.LocalMountPath + *out = new(string) + **out = **in + } + if in.MountResource != nil { + in, out := &in.MountResource, &out.MountResource + *out = new(string) + **out = **in + } + if in.MountSharePath != nil { + in, out := &in.MountSharePath, &out.MountSharePath + *out = new(string) + **out = **in + } + if in.MountType != nil { + in, out := &in.MountType, &out.MountType + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FuncMountsObservation. +func (in *FuncMountsObservation) DeepCopy() *FuncMountsObservation { + if in == nil { + return nil + } + out := new(FuncMountsObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FuncMountsParameters) DeepCopyInto(out *FuncMountsParameters) { + *out = *in + if in.LocalMountPath != nil { + in, out := &in.LocalMountPath, &out.LocalMountPath + *out = new(string) + **out = **in + } + if in.MountResource != nil { + in, out := &in.MountResource, &out.MountResource + *out = new(string) + **out = **in + } + if in.MountSharePath != nil { + in, out := &in.MountSharePath, &out.MountSharePath + *out = new(string) + **out = **in + } + if in.MountType != nil { + in, out := &in.MountType, &out.MountType + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FuncMountsParameters. +func (in *FuncMountsParameters) DeepCopy() *FuncMountsParameters { + if in == nil { + return nil + } + out := new(FuncMountsParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FunctionV2) DeepCopyInto(out *FunctionV2) { + *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 FunctionV2. +func (in *FunctionV2) DeepCopy() *FunctionV2 { + if in == nil { + return nil + } + out := new(FunctionV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *FunctionV2) 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 *FunctionV2InitParameters) DeepCopyInto(out *FunctionV2InitParameters) { + *out = *in + if in.Agency != nil { + in, out := &in.Agency, &out.Agency + *out = new(string) + **out = **in + } + if in.App != nil { + in, out := &in.App, &out.App + *out = new(string) + **out = **in + } + if in.AppAgency != nil { + in, out := &in.AppAgency, &out.AppAgency + *out = new(string) + **out = **in + } + if in.CodeFilename != nil { + in, out := &in.CodeFilename, &out.CodeFilename + *out = new(string) + **out = **in + } + if in.CodeType != nil { + in, out := &in.CodeType, &out.CodeType + *out = new(string) + **out = **in + } + if in.CodeURL != nil { + in, out := &in.CodeURL, &out.CodeURL + *out = new(string) + **out = **in + } + if in.ConcurrencyNum != nil { + in, out := &in.ConcurrencyNum, &out.ConcurrencyNum + *out = new(float64) + **out = **in + } + if in.CustomImage != nil { + in, out := &in.CustomImage, &out.CustomImage + *out = make([]CustomImageInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.DependList != nil { + in, out := &in.DependList, &out.DependList + *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.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.FuncCode != nil { + in, out := &in.FuncCode, &out.FuncCode + *out = new(string) + **out = **in + } + if in.FuncMounts != nil { + in, out := &in.FuncMounts, &out.FuncMounts + *out = make([]FuncMountsInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.FunctiongraphVersion != nil { + in, out := &in.FunctiongraphVersion, &out.FunctiongraphVersion + *out = new(string) + **out = **in + } + if in.GpuMemory != nil { + in, out := &in.GpuMemory, &out.GpuMemory + *out = new(float64) + **out = **in + } + if in.Handler != nil { + in, out := &in.Handler, &out.Handler + *out = new(string) + **out = **in + } + if in.InitializerHandler != nil { + in, out := &in.InitializerHandler, &out.InitializerHandler + *out = new(string) + **out = **in + } + if in.InitializerTimeout != nil { + in, out := &in.InitializerTimeout, &out.InitializerTimeout + *out = new(float64) + **out = **in + } + if in.LogGroupID != nil { + in, out := &in.LogGroupID, &out.LogGroupID + *out = new(string) + **out = **in + } + if in.LogGroupName != nil { + in, out := &in.LogGroupName, &out.LogGroupName + *out = new(string) + **out = **in + } + if in.LogTopicID != nil { + in, out := &in.LogTopicID, &out.LogTopicID + *out = new(string) + **out = **in + } + if in.LogTopicName != nil { + in, out := &in.LogTopicName, &out.LogTopicName + *out = new(string) + **out = **in + } + if in.MaxInstanceNum != nil { + in, out := &in.MaxInstanceNum, &out.MaxInstanceNum + *out = new(string) + **out = **in + } + if in.MemorySize != nil { + in, out := &in.MemorySize, &out.MemorySize + *out = new(float64) + **out = **in + } + if in.MountUserGroupID != nil { + in, out := &in.MountUserGroupID, &out.MountUserGroupID + *out = new(float64) + **out = **in + } + if in.MountUserID != nil { + in, out := &in.MountUserID, &out.MountUserID + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NetworkID != nil { + in, out := &in.NetworkID, &out.NetworkID + *out = new(string) + **out = **in + } + if in.ReservedInstances != nil { + in, out := &in.ReservedInstances, &out.ReservedInstances + *out = make([]ReservedInstancesInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Runtime != nil { + in, out := &in.Runtime, &out.Runtime + *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.Timeout != nil { + in, out := &in.Timeout, &out.Timeout + *out = new(float64) + **out = **in + } + if in.UserData != nil { + in, out := &in.UserData, &out.UserData + *out = new(string) + **out = **in + } + if in.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } + if in.Versions != nil { + in, out := &in.Versions, &out.Versions + *out = make([]VersionsInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FunctionV2InitParameters. +func (in *FunctionV2InitParameters) DeepCopy() *FunctionV2InitParameters { + if in == nil { + return nil + } + out := new(FunctionV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FunctionV2List) DeepCopyInto(out *FunctionV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]FunctionV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FunctionV2List. +func (in *FunctionV2List) DeepCopy() *FunctionV2List { + if in == nil { + return nil + } + out := new(FunctionV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *FunctionV2List) 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 *FunctionV2Observation) DeepCopyInto(out *FunctionV2Observation) { + *out = *in + if in.Agency != nil { + in, out := &in.Agency, &out.Agency + *out = new(string) + **out = **in + } + if in.App != nil { + in, out := &in.App, &out.App + *out = new(string) + **out = **in + } + if in.AppAgency != nil { + in, out := &in.AppAgency, &out.AppAgency + *out = new(string) + **out = **in + } + if in.CodeFilename != nil { + in, out := &in.CodeFilename, &out.CodeFilename + *out = new(string) + **out = **in + } + if in.CodeType != nil { + in, out := &in.CodeType, &out.CodeType + *out = new(string) + **out = **in + } + if in.CodeURL != nil { + in, out := &in.CodeURL, &out.CodeURL + *out = new(string) + **out = **in + } + if in.ConcurrencyNum != nil { + in, out := &in.ConcurrencyNum, &out.ConcurrencyNum + *out = new(float64) + **out = **in + } + if in.CustomImage != nil { + in, out := &in.CustomImage, &out.CustomImage + *out = make([]CustomImageObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.DNSList != nil { + in, out := &in.DNSList, &out.DNSList + *out = new(string) + **out = **in + } + if in.DependList != nil { + in, out := &in.DependList, &out.DependList + *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.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.FuncCode != nil { + in, out := &in.FuncCode, &out.FuncCode + *out = new(string) + **out = **in + } + if in.FuncMounts != nil { + in, out := &in.FuncMounts, &out.FuncMounts + *out = make([]FuncMountsObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.FunctiongraphVersion != nil { + in, out := &in.FunctiongraphVersion, &out.FunctiongraphVersion + *out = new(string) + **out = **in + } + if in.GpuMemory != nil { + in, out := &in.GpuMemory, &out.GpuMemory + *out = new(float64) + **out = **in + } + if in.GpuType != nil { + in, out := &in.GpuType, &out.GpuType + *out = new(string) + **out = **in + } + if in.Handler != nil { + in, out := &in.Handler, &out.Handler + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.InitializerHandler != nil { + in, out := &in.InitializerHandler, &out.InitializerHandler + *out = new(string) + **out = **in + } + if in.InitializerTimeout != nil { + in, out := &in.InitializerTimeout, &out.InitializerTimeout + *out = new(float64) + **out = **in + } + if in.LogGroupID != nil { + in, out := &in.LogGroupID, &out.LogGroupID + *out = new(string) + **out = **in + } + if in.LogGroupName != nil { + in, out := &in.LogGroupName, &out.LogGroupName + *out = new(string) + **out = **in + } + if in.LogTopicID != nil { + in, out := &in.LogTopicID, &out.LogTopicID + *out = new(string) + **out = **in + } + if in.LogTopicName != nil { + in, out := &in.LogTopicName, &out.LogTopicName + *out = new(string) + **out = **in + } + if in.MaxInstanceNum != nil { + in, out := &in.MaxInstanceNum, &out.MaxInstanceNum + *out = new(string) + **out = **in + } + if in.MemorySize != nil { + in, out := &in.MemorySize, &out.MemorySize + *out = new(float64) + **out = **in + } + if in.MountUserGroupID != nil { + in, out := &in.MountUserGroupID, &out.MountUserGroupID + *out = new(float64) + **out = **in + } + if in.MountUserID != nil { + in, out := &in.MountUserID, &out.MountUserID + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NetworkID != nil { + in, out := &in.NetworkID, &out.NetworkID + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.ReservedInstances != nil { + in, out := &in.ReservedInstances, &out.ReservedInstances + *out = make([]ReservedInstancesObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Runtime != nil { + in, out := &in.Runtime, &out.Runtime + *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.Timeout != nil { + in, out := &in.Timeout, &out.Timeout + *out = new(float64) + **out = **in + } + if in.Urn != nil { + in, out := &in.Urn, &out.Urn + *out = new(string) + **out = **in + } + if in.UserData != nil { + in, out := &in.UserData, &out.UserData + *out = new(string) + **out = **in + } + if in.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } + if in.Version != nil { + in, out := &in.Version, &out.Version + *out = new(string) + **out = **in + } + if in.Versions != nil { + in, out := &in.Versions, &out.Versions + *out = make([]VersionsObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FunctionV2Observation. +func (in *FunctionV2Observation) DeepCopy() *FunctionV2Observation { + if in == nil { + return nil + } + out := new(FunctionV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FunctionV2Parameters) DeepCopyInto(out *FunctionV2Parameters) { + *out = *in + if in.Agency != nil { + in, out := &in.Agency, &out.Agency + *out = new(string) + **out = **in + } + if in.App != nil { + in, out := &in.App, &out.App + *out = new(string) + **out = **in + } + if in.AppAgency != nil { + in, out := &in.AppAgency, &out.AppAgency + *out = new(string) + **out = **in + } + if in.CodeFilename != nil { + in, out := &in.CodeFilename, &out.CodeFilename + *out = new(string) + **out = **in + } + if in.CodeType != nil { + in, out := &in.CodeType, &out.CodeType + *out = new(string) + **out = **in + } + if in.CodeURL != nil { + in, out := &in.CodeURL, &out.CodeURL + *out = new(string) + **out = **in + } + if in.ConcurrencyNum != nil { + in, out := &in.ConcurrencyNum, &out.ConcurrencyNum + *out = new(float64) + **out = **in + } + if in.CustomImage != nil { + in, out := &in.CustomImage, &out.CustomImage + *out = make([]CustomImageParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.DependList != nil { + in, out := &in.DependList, &out.DependList + *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.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.EncryptedUserDataSecretRef != nil { + in, out := &in.EncryptedUserDataSecretRef, &out.EncryptedUserDataSecretRef + *out = new(v1.SecretKeySelector) + **out = **in + } + if in.FuncCode != nil { + in, out := &in.FuncCode, &out.FuncCode + *out = new(string) + **out = **in + } + if in.FuncMounts != nil { + in, out := &in.FuncMounts, &out.FuncMounts + *out = make([]FuncMountsParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.FunctiongraphVersion != nil { + in, out := &in.FunctiongraphVersion, &out.FunctiongraphVersion + *out = new(string) + **out = **in + } + if in.GpuMemory != nil { + in, out := &in.GpuMemory, &out.GpuMemory + *out = new(float64) + **out = **in + } + if in.Handler != nil { + in, out := &in.Handler, &out.Handler + *out = new(string) + **out = **in + } + if in.InitializerHandler != nil { + in, out := &in.InitializerHandler, &out.InitializerHandler + *out = new(string) + **out = **in + } + if in.InitializerTimeout != nil { + in, out := &in.InitializerTimeout, &out.InitializerTimeout + *out = new(float64) + **out = **in + } + if in.LogGroupID != nil { + in, out := &in.LogGroupID, &out.LogGroupID + *out = new(string) + **out = **in + } + if in.LogGroupName != nil { + in, out := &in.LogGroupName, &out.LogGroupName + *out = new(string) + **out = **in + } + if in.LogTopicID != nil { + in, out := &in.LogTopicID, &out.LogTopicID + *out = new(string) + **out = **in + } + if in.LogTopicName != nil { + in, out := &in.LogTopicName, &out.LogTopicName + *out = new(string) + **out = **in + } + if in.MaxInstanceNum != nil { + in, out := &in.MaxInstanceNum, &out.MaxInstanceNum + *out = new(string) + **out = **in + } + if in.MemorySize != nil { + in, out := &in.MemorySize, &out.MemorySize + *out = new(float64) + **out = **in + } + if in.MountUserGroupID != nil { + in, out := &in.MountUserGroupID, &out.MountUserGroupID + *out = new(float64) + **out = **in + } + if in.MountUserID != nil { + in, out := &in.MountUserID, &out.MountUserID + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NetworkID != nil { + in, out := &in.NetworkID, &out.NetworkID + *out = new(string) + **out = **in + } + if in.ReservedInstances != nil { + in, out := &in.ReservedInstances, &out.ReservedInstances + *out = make([]ReservedInstancesParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Runtime != nil { + in, out := &in.Runtime, &out.Runtime + *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.Timeout != nil { + in, out := &in.Timeout, &out.Timeout + *out = new(float64) + **out = **in + } + if in.UserData != nil { + in, out := &in.UserData, &out.UserData + *out = new(string) + **out = **in + } + if in.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } + if in.Versions != nil { + in, out := &in.Versions, &out.Versions + *out = make([]VersionsParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FunctionV2Parameters. +func (in *FunctionV2Parameters) DeepCopy() *FunctionV2Parameters { + if in == nil { + return nil + } + out := new(FunctionV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FunctionV2Spec) DeepCopyInto(out *FunctionV2Spec) { + *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 FunctionV2Spec. +func (in *FunctionV2Spec) DeepCopy() *FunctionV2Spec { + if in == nil { + return nil + } + out := new(FunctionV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FunctionV2Status) DeepCopyInto(out *FunctionV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FunctionV2Status. +func (in *FunctionV2Status) DeepCopy() *FunctionV2Status { + if in == nil { + return nil + } + out := new(FunctionV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OnFailureInitParameters) DeepCopyInto(out *OnFailureInitParameters) { + *out = *in + if in.Destination != nil { + in, out := &in.Destination, &out.Destination + *out = new(string) + **out = **in + } + if in.Param != nil { + in, out := &in.Param, &out.Param + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OnFailureInitParameters. +func (in *OnFailureInitParameters) DeepCopy() *OnFailureInitParameters { + if in == nil { + return nil + } + out := new(OnFailureInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OnFailureObservation) DeepCopyInto(out *OnFailureObservation) { + *out = *in + if in.Destination != nil { + in, out := &in.Destination, &out.Destination + *out = new(string) + **out = **in + } + if in.Param != nil { + in, out := &in.Param, &out.Param + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OnFailureObservation. +func (in *OnFailureObservation) DeepCopy() *OnFailureObservation { + if in == nil { + return nil + } + out := new(OnFailureObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OnFailureParameters) DeepCopyInto(out *OnFailureParameters) { + *out = *in + if in.Destination != nil { + in, out := &in.Destination, &out.Destination + *out = new(string) + **out = **in + } + if in.Param != nil { + in, out := &in.Param, &out.Param + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OnFailureParameters. +func (in *OnFailureParameters) DeepCopy() *OnFailureParameters { + if in == nil { + return nil + } + out := new(OnFailureParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OnSuccessInitParameters) DeepCopyInto(out *OnSuccessInitParameters) { + *out = *in + if in.Destination != nil { + in, out := &in.Destination, &out.Destination + *out = new(string) + **out = **in + } + if in.Param != nil { + in, out := &in.Param, &out.Param + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OnSuccessInitParameters. +func (in *OnSuccessInitParameters) DeepCopy() *OnSuccessInitParameters { + if in == nil { + return nil + } + out := new(OnSuccessInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OnSuccessObservation) DeepCopyInto(out *OnSuccessObservation) { + *out = *in + if in.Destination != nil { + in, out := &in.Destination, &out.Destination + *out = new(string) + **out = **in + } + if in.Param != nil { + in, out := &in.Param, &out.Param + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OnSuccessObservation. +func (in *OnSuccessObservation) DeepCopy() *OnSuccessObservation { + if in == nil { + return nil + } + out := new(OnSuccessObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OnSuccessParameters) DeepCopyInto(out *OnSuccessParameters) { + *out = *in + if in.Destination != nil { + in, out := &in.Destination, &out.Destination + *out = new(string) + **out = **in + } + if in.Param != nil { + in, out := &in.Param, &out.Param + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OnSuccessParameters. +func (in *OnSuccessParameters) DeepCopy() *OnSuccessParameters { + if in == nil { + return nil + } + out := new(OnSuccessParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ReservedInstancesInitParameters) DeepCopyInto(out *ReservedInstancesInitParameters) { + *out = *in + if in.Count != nil { + in, out := &in.Count, &out.Count + *out = new(float64) + **out = **in + } + if in.IdleMode != nil { + in, out := &in.IdleMode, &out.IdleMode + *out = new(bool) + **out = **in + } + if in.QualifierName != nil { + in, out := &in.QualifierName, &out.QualifierName + *out = new(string) + **out = **in + } + if in.QualifierType != nil { + in, out := &in.QualifierType, &out.QualifierType + *out = new(string) + **out = **in + } + if in.TacticsConfig != nil { + in, out := &in.TacticsConfig, &out.TacticsConfig + *out = make([]TacticsConfigInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReservedInstancesInitParameters. +func (in *ReservedInstancesInitParameters) DeepCopy() *ReservedInstancesInitParameters { + if in == nil { + return nil + } + out := new(ReservedInstancesInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ReservedInstancesObservation) DeepCopyInto(out *ReservedInstancesObservation) { + *out = *in + if in.Count != nil { + in, out := &in.Count, &out.Count + *out = new(float64) + **out = **in + } + if in.IdleMode != nil { + in, out := &in.IdleMode, &out.IdleMode + *out = new(bool) + **out = **in + } + if in.QualifierName != nil { + in, out := &in.QualifierName, &out.QualifierName + *out = new(string) + **out = **in + } + if in.QualifierType != nil { + in, out := &in.QualifierType, &out.QualifierType + *out = new(string) + **out = **in + } + if in.TacticsConfig != nil { + in, out := &in.TacticsConfig, &out.TacticsConfig + *out = make([]TacticsConfigObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReservedInstancesObservation. +func (in *ReservedInstancesObservation) DeepCopy() *ReservedInstancesObservation { + if in == nil { + return nil + } + out := new(ReservedInstancesObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ReservedInstancesParameters) DeepCopyInto(out *ReservedInstancesParameters) { + *out = *in + if in.Count != nil { + in, out := &in.Count, &out.Count + *out = new(float64) + **out = **in + } + if in.IdleMode != nil { + in, out := &in.IdleMode, &out.IdleMode + *out = new(bool) + **out = **in + } + if in.QualifierName != nil { + in, out := &in.QualifierName, &out.QualifierName + *out = new(string) + **out = **in + } + if in.QualifierType != nil { + in, out := &in.QualifierType, &out.QualifierType + *out = new(string) + **out = **in + } + if in.TacticsConfig != nil { + in, out := &in.TacticsConfig, &out.TacticsConfig + *out = make([]TacticsConfigParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReservedInstancesParameters. +func (in *ReservedInstancesParameters) DeepCopy() *ReservedInstancesParameters { + if in == nil { + return nil + } + out := new(ReservedInstancesParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TacticsConfigInitParameters) DeepCopyInto(out *TacticsConfigInitParameters) { + *out = *in + if in.CronConfigs != nil { + in, out := &in.CronConfigs, &out.CronConfigs + *out = make([]CronConfigsInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TacticsConfigInitParameters. +func (in *TacticsConfigInitParameters) DeepCopy() *TacticsConfigInitParameters { + if in == nil { + return nil + } + out := new(TacticsConfigInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TacticsConfigObservation) DeepCopyInto(out *TacticsConfigObservation) { + *out = *in + if in.CronConfigs != nil { + in, out := &in.CronConfigs, &out.CronConfigs + *out = make([]CronConfigsObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TacticsConfigObservation. +func (in *TacticsConfigObservation) DeepCopy() *TacticsConfigObservation { + if in == nil { + return nil + } + out := new(TacticsConfigObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TacticsConfigParameters) DeepCopyInto(out *TacticsConfigParameters) { + *out = *in + if in.CronConfigs != nil { + in, out := &in.CronConfigs, &out.CronConfigs + *out = make([]CronConfigsParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TacticsConfigParameters. +func (in *TacticsConfigParameters) DeepCopy() *TacticsConfigParameters { + if in == nil { + return nil + } + out := new(TacticsConfigParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TriggerV2) DeepCopyInto(out *TriggerV2) { + *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 TriggerV2. +func (in *TriggerV2) DeepCopy() *TriggerV2 { + if in == nil { + return nil + } + out := new(TriggerV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *TriggerV2) 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 *TriggerV2InitParameters) DeepCopyInto(out *TriggerV2InitParameters) { + *out = *in + if in.EventData != nil { + in, out := &in.EventData, &out.EventData + *out = new(string) + **out = **in + } + if in.FunctionUrn != nil { + in, out := &in.FunctionUrn, &out.FunctionUrn + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *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 TriggerV2InitParameters. +func (in *TriggerV2InitParameters) DeepCopy() *TriggerV2InitParameters { + if in == nil { + return nil + } + out := new(TriggerV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TriggerV2List) DeepCopyInto(out *TriggerV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]TriggerV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TriggerV2List. +func (in *TriggerV2List) DeepCopy() *TriggerV2List { + if in == nil { + return nil + } + out := new(TriggerV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *TriggerV2List) 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 *TriggerV2Observation) DeepCopyInto(out *TriggerV2Observation) { + *out = *in + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt + *out = new(string) + **out = **in + } + if in.EventData != nil { + in, out := &in.EventData, &out.EventData + *out = new(string) + **out = **in + } + if in.FunctionUrn != nil { + in, out := &in.FunctionUrn, &out.FunctionUrn + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + 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 TriggerV2Observation. +func (in *TriggerV2Observation) DeepCopy() *TriggerV2Observation { + if in == nil { + return nil + } + out := new(TriggerV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TriggerV2Parameters) DeepCopyInto(out *TriggerV2Parameters) { + *out = *in + if in.EventData != nil { + in, out := &in.EventData, &out.EventData + *out = new(string) + **out = **in + } + if in.FunctionUrn != nil { + in, out := &in.FunctionUrn, &out.FunctionUrn + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *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 TriggerV2Parameters. +func (in *TriggerV2Parameters) DeepCopy() *TriggerV2Parameters { + if in == nil { + return nil + } + out := new(TriggerV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TriggerV2Spec) DeepCopyInto(out *TriggerV2Spec) { + *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 TriggerV2Spec. +func (in *TriggerV2Spec) DeepCopy() *TriggerV2Spec { + if in == nil { + return nil + } + out := new(TriggerV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TriggerV2Status) DeepCopyInto(out *TriggerV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TriggerV2Status. +func (in *TriggerV2Status) DeepCopy() *TriggerV2Status { + if in == nil { + return nil + } + out := new(TriggerV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VersionsInitParameters) DeepCopyInto(out *VersionsInitParameters) { + *out = *in + if in.Aliases != nil { + in, out := &in.Aliases, &out.Aliases + *out = make([]AliasesInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VersionsInitParameters. +func (in *VersionsInitParameters) DeepCopy() *VersionsInitParameters { + if in == nil { + return nil + } + out := new(VersionsInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VersionsObservation) DeepCopyInto(out *VersionsObservation) { + *out = *in + if in.Aliases != nil { + in, out := &in.Aliases, &out.Aliases + *out = make([]AliasesObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VersionsObservation. +func (in *VersionsObservation) DeepCopy() *VersionsObservation { + if in == nil { + return nil + } + out := new(VersionsObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VersionsParameters) DeepCopyInto(out *VersionsParameters) { + *out = *in + if in.Aliases != nil { + in, out := &in.Aliases, &out.Aliases + *out = make([]AliasesParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VersionsParameters. +func (in *VersionsParameters) DeepCopy() *VersionsParameters { + if in == nil { + return nil + } + out := new(VersionsParameters) + in.DeepCopyInto(out) + return out +} diff --git a/apis/fgs/v1alpha1/zz_generated.managed.go b/apis/fgs/v1alpha1/zz_generated.managed.go new file mode 100644 index 0000000..050f9f0 --- /dev/null +++ b/apis/fgs/v1alpha1/zz_generated.managed.go @@ -0,0 +1,248 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import xpv1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + +// GetCondition of this AsyncInvokeConfigV2. +func (mg *AsyncInvokeConfigV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this AsyncInvokeConfigV2. +func (mg *AsyncInvokeConfigV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this AsyncInvokeConfigV2. +func (mg *AsyncInvokeConfigV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this AsyncInvokeConfigV2. +func (mg *AsyncInvokeConfigV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this AsyncInvokeConfigV2. +func (mg *AsyncInvokeConfigV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this AsyncInvokeConfigV2. +func (mg *AsyncInvokeConfigV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this AsyncInvokeConfigV2. +func (mg *AsyncInvokeConfigV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this AsyncInvokeConfigV2. +func (mg *AsyncInvokeConfigV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this AsyncInvokeConfigV2. +func (mg *AsyncInvokeConfigV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this AsyncInvokeConfigV2. +func (mg *AsyncInvokeConfigV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this AsyncInvokeConfigV2. +func (mg *AsyncInvokeConfigV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this AsyncInvokeConfigV2. +func (mg *AsyncInvokeConfigV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this EventV2. +func (mg *EventV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this EventV2. +func (mg *EventV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this EventV2. +func (mg *EventV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this EventV2. +func (mg *EventV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this EventV2. +func (mg *EventV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this EventV2. +func (mg *EventV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this EventV2. +func (mg *EventV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this EventV2. +func (mg *EventV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this EventV2. +func (mg *EventV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this EventV2. +func (mg *EventV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this EventV2. +func (mg *EventV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this EventV2. +func (mg *EventV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this FunctionV2. +func (mg *FunctionV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this FunctionV2. +func (mg *FunctionV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this FunctionV2. +func (mg *FunctionV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this FunctionV2. +func (mg *FunctionV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this FunctionV2. +func (mg *FunctionV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this FunctionV2. +func (mg *FunctionV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this FunctionV2. +func (mg *FunctionV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this FunctionV2. +func (mg *FunctionV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this FunctionV2. +func (mg *FunctionV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this FunctionV2. +func (mg *FunctionV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this FunctionV2. +func (mg *FunctionV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this FunctionV2. +func (mg *FunctionV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this TriggerV2. +func (mg *TriggerV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this TriggerV2. +func (mg *TriggerV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this TriggerV2. +func (mg *TriggerV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this TriggerV2. +func (mg *TriggerV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this TriggerV2. +func (mg *TriggerV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this TriggerV2. +func (mg *TriggerV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this TriggerV2. +func (mg *TriggerV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this TriggerV2. +func (mg *TriggerV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this TriggerV2. +func (mg *TriggerV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this TriggerV2. +func (mg *TriggerV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this TriggerV2. +func (mg *TriggerV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this TriggerV2. +func (mg *TriggerV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} diff --git a/apis/fgs/v1alpha1/zz_generated.managedlist.go b/apis/fgs/v1alpha1/zz_generated.managedlist.go new file mode 100644 index 0000000..ce01a3e --- /dev/null +++ b/apis/fgs/v1alpha1/zz_generated.managedlist.go @@ -0,0 +1,44 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import resource "github.com/crossplane/crossplane-runtime/pkg/resource" + +// GetItems of this AsyncInvokeConfigV2List. +func (l *AsyncInvokeConfigV2List) 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 EventV2List. +func (l *EventV2List) 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 FunctionV2List. +func (l *FunctionV2List) 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 TriggerV2List. +func (l *TriggerV2List) 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/fgs/v1alpha1/zz_generated_terraformed.go b/apis/fgs/v1alpha1/zz_generated_terraformed.go new file mode 100755 index 0000000..78ecee8 --- /dev/null +++ b/apis/fgs/v1alpha1/zz_generated_terraformed.go @@ -0,0 +1,354 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "github.com/pkg/errors" + + "github.com/crossplane/upjet/pkg/resource" + "github.com/crossplane/upjet/pkg/resource/json" +) + +// GetTerraformResourceType returns Terraform resource type for this AsyncInvokeConfigV2 +func (mg *AsyncInvokeConfigV2) GetTerraformResourceType() string { + return "opentelekomcloud_fgs_async_invoke_config_v2" +} + +// GetConnectionDetailsMapping for this AsyncInvokeConfigV2 +func (tr *AsyncInvokeConfigV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this AsyncInvokeConfigV2 +func (tr *AsyncInvokeConfigV2) 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 AsyncInvokeConfigV2 +func (tr *AsyncInvokeConfigV2) 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 AsyncInvokeConfigV2 +func (tr *AsyncInvokeConfigV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this AsyncInvokeConfigV2 +func (tr *AsyncInvokeConfigV2) 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 AsyncInvokeConfigV2 +func (tr *AsyncInvokeConfigV2) 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 AsyncInvokeConfigV2 +func (tr *AsyncInvokeConfigV2) 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) +} + +// LateInitialize this AsyncInvokeConfigV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *AsyncInvokeConfigV2) LateInitialize(attrs []byte) (bool, error) { + params := &AsyncInvokeConfigV2Parameters{} + 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 *AsyncInvokeConfigV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this EventV2 +func (mg *EventV2) GetTerraformResourceType() string { + return "opentelekomcloud_fgs_event_v2" +} + +// GetConnectionDetailsMapping for this EventV2 +func (tr *EventV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this EventV2 +func (tr *EventV2) 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 EventV2 +func (tr *EventV2) 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 EventV2 +func (tr *EventV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this EventV2 +func (tr *EventV2) 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 EventV2 +func (tr *EventV2) 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 EventV2 +func (tr *EventV2) 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) +} + +// LateInitialize this EventV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *EventV2) LateInitialize(attrs []byte) (bool, error) { + params := &EventV2Parameters{} + 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 *EventV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this FunctionV2 +func (mg *FunctionV2) GetTerraformResourceType() string { + return "opentelekomcloud_fgs_function_v2" +} + +// GetConnectionDetailsMapping for this FunctionV2 +func (tr *FunctionV2) GetConnectionDetailsMapping() map[string]string { + return map[string]string{"encrypted_user_data": "spec.forProvider.encryptedUserDataSecretRef"} +} + +// GetObservation of this FunctionV2 +func (tr *FunctionV2) 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 FunctionV2 +func (tr *FunctionV2) 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 FunctionV2 +func (tr *FunctionV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this FunctionV2 +func (tr *FunctionV2) 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 FunctionV2 +func (tr *FunctionV2) 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 FunctionV2 +func (tr *FunctionV2) 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) +} + +// LateInitialize this FunctionV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *FunctionV2) LateInitialize(attrs []byte) (bool, error) { + params := &FunctionV2Parameters{} + 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 *FunctionV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this TriggerV2 +func (mg *TriggerV2) GetTerraformResourceType() string { + return "opentelekomcloud_fgs_trigger_v2" +} + +// GetConnectionDetailsMapping for this TriggerV2 +func (tr *TriggerV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this TriggerV2 +func (tr *TriggerV2) 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 TriggerV2 +func (tr *TriggerV2) 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 TriggerV2 +func (tr *TriggerV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this TriggerV2 +func (tr *TriggerV2) 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 TriggerV2 +func (tr *TriggerV2) 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 TriggerV2 +func (tr *TriggerV2) 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) +} + +// LateInitialize this TriggerV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *TriggerV2) LateInitialize(attrs []byte) (bool, error) { + params := &TriggerV2Parameters{} + 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 *TriggerV2) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/fgs/v1alpha1/zz_groupversion_info.go b/apis/fgs/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..5951d61 --- /dev/null +++ b/apis/fgs/v1alpha1/zz_groupversion_info.go @@ -0,0 +1,36 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +// +kubebuilder:object:generate=true +// +groupName=fgs.crossplane.io +// +versionName=v1alpha1 +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +// Package type metadata. +const ( + CRDGroup = "fgs.crossplane.io" + CRDVersion = "v1alpha1" +) + +var ( + // CRDGroupVersion is the API Group Version used to register the objects + CRDGroupVersion = schema.GroupVersion{Group: CRDGroup, Version: CRDVersion} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme + SchemeBuilder = &scheme.Builder{GroupVersion: CRDGroupVersion} + + // AddToScheme adds the types in this group-version to the given scheme. + AddToScheme = SchemeBuilder.AddToScheme +) diff --git a/apis/fgs/v1alpha1/zz_triggerv2_types.go b/apis/fgs/v1alpha1/zz_triggerv2_types.go new file mode 100755 index 0000000..5c3f41c --- /dev/null +++ b/apis/fgs/v1alpha1/zz_triggerv2_types.go @@ -0,0 +1,157 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 TriggerV2InitParameters struct { + + // Specifies the detailed configuration of the function trigger event. + // For various types of trigger parameter configurations, please refer to the + // documentation. + EventData *string `json:"eventData,omitempty" tf:"event_data,omitempty"` + + // Specifies the function URN to which the function trigger belongs. + FunctionUrn *string `json:"functionUrn,omitempty" tf:"function_urn,omitempty"` + + // Specifies the status of the function trigger. + // The valid values are ACTIVE and DISABLED. + // For DDS and Kafka triggers the default value is DISABLED, for other triggers= the default value is ACTIVE. + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + // Specifies the type of the function trigger. + // The valid values are TIMER, APIG, CTS, DDS, DEDICATEDGATEWAY, etc. + Type *string `json:"type,omitempty" tf:"type,omitempty"` +} + +type TriggerV2Observation struct { + + // The creation time of the function trigger. + CreatedAt *string `json:"createdAt,omitempty" tf:"created_at,omitempty"` + + // Specifies the detailed configuration of the function trigger event. + // For various types of trigger parameter configurations, please refer to the + // documentation. + EventData *string `json:"eventData,omitempty" tf:"event_data,omitempty"` + + // Specifies the function URN to which the function trigger belongs. + FunctionUrn *string `json:"functionUrn,omitempty" tf:"function_urn,omitempty"` + + // resource ID in UUID format. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The region where the function trigger is located. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Specifies the status of the function trigger. + // The valid values are ACTIVE and DISABLED. + // For DDS and Kafka triggers the default value is DISABLED, for other triggers= the default value is ACTIVE. + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + // Specifies the type of the function trigger. + // The valid values are TIMER, APIG, CTS, DDS, DEDICATEDGATEWAY, etc. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // The latest update time of the function trigger. + UpdatedAt *string `json:"updatedAt,omitempty" tf:"updated_at,omitempty"` +} + +type TriggerV2Parameters struct { + + // Specifies the detailed configuration of the function trigger event. + // For various types of trigger parameter configurations, please refer to the + // documentation. + // +kubebuilder:validation:Optional + EventData *string `json:"eventData,omitempty" tf:"event_data,omitempty"` + + // Specifies the function URN to which the function trigger belongs. + // +kubebuilder:validation:Optional + FunctionUrn *string `json:"functionUrn,omitempty" tf:"function_urn,omitempty"` + + // Specifies the status of the function trigger. + // The valid values are ACTIVE and DISABLED. + // For DDS and Kafka triggers the default value is DISABLED, for other triggers= the default value is ACTIVE. + // +kubebuilder:validation:Optional + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + // Specifies the type of the function trigger. + // The valid values are TIMER, APIG, CTS, DDS, DEDICATEDGATEWAY, etc. + // +kubebuilder:validation:Optional + Type *string `json:"type,omitempty" tf:"type,omitempty"` +} + +// TriggerV2Spec defines the desired state of TriggerV2 +type TriggerV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider TriggerV2Parameters `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 TriggerV2InitParameters `json:"initProvider,omitempty"` +} + +// TriggerV2Status defines the observed state of TriggerV2. +type TriggerV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider TriggerV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// TriggerV2 is the Schema for the TriggerV2s API. Manages an FGS Trigger resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type TriggerV2 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.eventData) || (has(self.initProvider) && has(self.initProvider.eventData))",message="spec.forProvider.eventData is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.functionUrn) || (has(self.initProvider) && has(self.initProvider.functionUrn))",message="spec.forProvider.functionUrn 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 TriggerV2Spec `json:"spec"` + Status TriggerV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// TriggerV2List contains a list of TriggerV2s +type TriggerV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []TriggerV2 `json:"items"` +} + +// Repository type metadata. +var ( + TriggerV2_Kind = "TriggerV2" + TriggerV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: TriggerV2_Kind}.String() + TriggerV2_KindAPIVersion = TriggerV2_Kind + "." + CRDGroupVersion.String() + TriggerV2_GroupVersionKind = CRDGroupVersion.WithKind(TriggerV2_Kind) +) + +func init() { + SchemeBuilder.Register(&TriggerV2{}, &TriggerV2List{}) +} diff --git a/apis/fw/v1alpha1/zz_firewallgroupv2_types.go b/apis/fw/v1alpha1/zz_firewallgroupv2_types.go new file mode 100755 index 0000000..cf62492 --- /dev/null +++ b/apis/fw/v1alpha1/zz_firewallgroupv2_types.go @@ -0,0 +1,206 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 FirewallGroupV2InitParameters struct { + + // Administrative up/down status for the firewall group + // (must be "true" or "false" if provided - defaults to "true"). + // Changing this updates the admin_state_up of an existing firewall group. + AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` + + // A description for the firewall group. Changing this + // updates the description of an existing firewall group. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The egress policy resource id for the firewall group. Changing + // this updates the egress_policy_id of an existing firewall group. + EgressPolicyID *string `json:"egressPolicyId,omitempty" tf:"egress_policy_id,omitempty"` + + // The ingress policy resource id for the firewall group. Changing + // this updates the ingress_policy_id of an existing firewall group. + IngressPolicyID *string `json:"ingressPolicyId,omitempty" tf:"ingress_policy_id,omitempty"` + + // A name for the firewall group. Changing this + // updates the name of an existing firewall group. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Port(s) to associate this firewall group instance + // with. Must be a list of strings. Changing this updates the associated routers + // of an existing firewall group. + Ports []*string `json:"ports,omitempty" tf:"ports,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The owner of the floating IP. Required if admin wants + // to create a firewall group for another tenant. Changing this creates a new + // firewall group. + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // Map of additional options. + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +type FirewallGroupV2Observation struct { + + // Administrative up/down status for the firewall group + // (must be "true" or "false" if provided - defaults to "true"). + // Changing this updates the admin_state_up of an existing firewall group. + AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` + + // A description for the firewall group. Changing this + // updates the description of an existing firewall group. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The egress policy resource id for the firewall group. Changing + // this updates the egress_policy_id of an existing firewall group. + EgressPolicyID *string `json:"egressPolicyId,omitempty" tf:"egress_policy_id,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The ingress policy resource id for the firewall group. Changing + // this updates the ingress_policy_id of an existing firewall group. + IngressPolicyID *string `json:"ingressPolicyId,omitempty" tf:"ingress_policy_id,omitempty"` + + // A name for the firewall group. Changing this + // updates the name of an existing firewall group. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Port(s) to associate this firewall group instance + // with. Must be a list of strings. Changing this updates the associated routers + // of an existing firewall group. + Ports []*string `json:"ports,omitempty" tf:"ports,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The owner of the floating IP. Required if admin wants + // to create a firewall group for another tenant. Changing this creates a new + // firewall group. + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // Map of additional options. + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +type FirewallGroupV2Parameters struct { + + // Administrative up/down status for the firewall group + // (must be "true" or "false" if provided - defaults to "true"). + // Changing this updates the admin_state_up of an existing firewall group. + // +kubebuilder:validation:Optional + AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` + + // A description for the firewall group. Changing this + // updates the description of an existing firewall group. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The egress policy resource id for the firewall group. Changing + // this updates the egress_policy_id of an existing firewall group. + // +kubebuilder:validation:Optional + EgressPolicyID *string `json:"egressPolicyId,omitempty" tf:"egress_policy_id,omitempty"` + + // The ingress policy resource id for the firewall group. Changing + // this updates the ingress_policy_id of an existing firewall group. + // +kubebuilder:validation:Optional + IngressPolicyID *string `json:"ingressPolicyId,omitempty" tf:"ingress_policy_id,omitempty"` + + // A name for the firewall group. Changing this + // updates the name of an existing firewall group. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Port(s) to associate this firewall group instance + // with. Must be a list of strings. Changing this updates the associated routers + // of an existing firewall group. + // +kubebuilder:validation:Optional + Ports []*string `json:"ports,omitempty" tf:"ports,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The owner of the floating IP. Required if admin wants + // to create a firewall group for another tenant. Changing this creates a new + // firewall group. + // +kubebuilder:validation:Optional + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // Map of additional options. + // +kubebuilder:validation:Optional + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +// FirewallGroupV2Spec defines the desired state of FirewallGroupV2 +type FirewallGroupV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider FirewallGroupV2Parameters `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 FirewallGroupV2InitParameters `json:"initProvider,omitempty"` +} + +// FirewallGroupV2Status defines the observed state of FirewallGroupV2. +type FirewallGroupV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider FirewallGroupV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// FirewallGroupV2 is the Schema for the FirewallGroupV2s API. Manages a VPC Firewall Group resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type FirewallGroupV2 struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec FirewallGroupV2Spec `json:"spec"` + Status FirewallGroupV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// FirewallGroupV2List contains a list of FirewallGroupV2s +type FirewallGroupV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []FirewallGroupV2 `json:"items"` +} + +// Repository type metadata. +var ( + FirewallGroupV2_Kind = "FirewallGroupV2" + FirewallGroupV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: FirewallGroupV2_Kind}.String() + FirewallGroupV2_KindAPIVersion = FirewallGroupV2_Kind + "." + CRDGroupVersion.String() + FirewallGroupV2_GroupVersionKind = CRDGroupVersion.WithKind(FirewallGroupV2_Kind) +) + +func init() { + SchemeBuilder.Register(&FirewallGroupV2{}, &FirewallGroupV2List{}) +} diff --git a/apis/fw/v1alpha1/zz_generated.deepcopy.go b/apis/fw/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..b130078 --- /dev/null +++ b/apis/fw/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,1030 @@ +//go:build !ignore_autogenerated + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by controller-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + 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 *FirewallGroupV2) DeepCopyInto(out *FirewallGroupV2) { + *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 FirewallGroupV2. +func (in *FirewallGroupV2) DeepCopy() *FirewallGroupV2 { + if in == nil { + return nil + } + out := new(FirewallGroupV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *FirewallGroupV2) 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 *FirewallGroupV2InitParameters) DeepCopyInto(out *FirewallGroupV2InitParameters) { + *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.EgressPolicyID != nil { + in, out := &in.EgressPolicyID, &out.EgressPolicyID + *out = new(string) + **out = **in + } + if in.IngressPolicyID != nil { + in, out := &in.IngressPolicyID, &out.IngressPolicyID + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Ports != nil { + in, out := &in.Ports, &out.Ports + *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.TenantID != nil { + in, out := &in.TenantID, &out.TenantID + *out = new(string) + **out = **in + } + if in.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 FirewallGroupV2InitParameters. +func (in *FirewallGroupV2InitParameters) DeepCopy() *FirewallGroupV2InitParameters { + if in == nil { + return nil + } + out := new(FirewallGroupV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FirewallGroupV2List) DeepCopyInto(out *FirewallGroupV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]FirewallGroupV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FirewallGroupV2List. +func (in *FirewallGroupV2List) DeepCopy() *FirewallGroupV2List { + if in == nil { + return nil + } + out := new(FirewallGroupV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *FirewallGroupV2List) 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 *FirewallGroupV2Observation) DeepCopyInto(out *FirewallGroupV2Observation) { + *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.EgressPolicyID != nil { + in, out := &in.EgressPolicyID, &out.EgressPolicyID + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.IngressPolicyID != nil { + in, out := &in.IngressPolicyID, &out.IngressPolicyID + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Ports != nil { + in, out := &in.Ports, &out.Ports + *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.TenantID != nil { + in, out := &in.TenantID, &out.TenantID + *out = new(string) + **out = **in + } + if in.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 FirewallGroupV2Observation. +func (in *FirewallGroupV2Observation) DeepCopy() *FirewallGroupV2Observation { + if in == nil { + return nil + } + out := new(FirewallGroupV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FirewallGroupV2Parameters) DeepCopyInto(out *FirewallGroupV2Parameters) { + *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.EgressPolicyID != nil { + in, out := &in.EgressPolicyID, &out.EgressPolicyID + *out = new(string) + **out = **in + } + if in.IngressPolicyID != nil { + in, out := &in.IngressPolicyID, &out.IngressPolicyID + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Ports != nil { + in, out := &in.Ports, &out.Ports + *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.TenantID != nil { + in, out := &in.TenantID, &out.TenantID + *out = new(string) + **out = **in + } + if in.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 FirewallGroupV2Parameters. +func (in *FirewallGroupV2Parameters) DeepCopy() *FirewallGroupV2Parameters { + if in == nil { + return nil + } + out := new(FirewallGroupV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FirewallGroupV2Spec) DeepCopyInto(out *FirewallGroupV2Spec) { + *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 FirewallGroupV2Spec. +func (in *FirewallGroupV2Spec) DeepCopy() *FirewallGroupV2Spec { + if in == nil { + return nil + } + out := new(FirewallGroupV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FirewallGroupV2Status) DeepCopyInto(out *FirewallGroupV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FirewallGroupV2Status. +func (in *FirewallGroupV2Status) DeepCopy() *FirewallGroupV2Status { + if in == nil { + return nil + } + out := new(FirewallGroupV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PolicyV2) DeepCopyInto(out *PolicyV2) { + *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 PolicyV2. +func (in *PolicyV2) DeepCopy() *PolicyV2 { + if in == nil { + return nil + } + out := new(PolicyV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PolicyV2) 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 *PolicyV2InitParameters) DeepCopyInto(out *PolicyV2InitParameters) { + *out = *in + if in.Audited != nil { + in, out := &in.Audited, &out.Audited + *out = new(bool) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *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.Rules != nil { + in, out := &in.Rules, &out.Rules + *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.Shared != nil { + in, out := &in.Shared, &out.Shared + *out = new(bool) + **out = **in + } + if in.TenantID != nil { + in, out := &in.TenantID, &out.TenantID + *out = new(string) + **out = **in + } + if in.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 PolicyV2InitParameters. +func (in *PolicyV2InitParameters) DeepCopy() *PolicyV2InitParameters { + if in == nil { + return nil + } + out := new(PolicyV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PolicyV2List) DeepCopyInto(out *PolicyV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]PolicyV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyV2List. +func (in *PolicyV2List) DeepCopy() *PolicyV2List { + if in == nil { + return nil + } + out := new(PolicyV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PolicyV2List) 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 *PolicyV2Observation) DeepCopyInto(out *PolicyV2Observation) { + *out = *in + if in.Audited != nil { + in, out := &in.Audited, &out.Audited + *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.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.Rules != nil { + in, out := &in.Rules, &out.Rules + *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.Shared != nil { + in, out := &in.Shared, &out.Shared + *out = new(bool) + **out = **in + } + if in.TenantID != nil { + in, out := &in.TenantID, &out.TenantID + *out = new(string) + **out = **in + } + if in.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 PolicyV2Observation. +func (in *PolicyV2Observation) DeepCopy() *PolicyV2Observation { + if in == nil { + return nil + } + out := new(PolicyV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PolicyV2Parameters) DeepCopyInto(out *PolicyV2Parameters) { + *out = *in + if in.Audited != nil { + in, out := &in.Audited, &out.Audited + *out = new(bool) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *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.Rules != nil { + in, out := &in.Rules, &out.Rules + *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.Shared != nil { + in, out := &in.Shared, &out.Shared + *out = new(bool) + **out = **in + } + if in.TenantID != nil { + in, out := &in.TenantID, &out.TenantID + *out = new(string) + **out = **in + } + if in.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 PolicyV2Parameters. +func (in *PolicyV2Parameters) DeepCopy() *PolicyV2Parameters { + if in == nil { + return nil + } + out := new(PolicyV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PolicyV2Spec) DeepCopyInto(out *PolicyV2Spec) { + *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 PolicyV2Spec. +func (in *PolicyV2Spec) DeepCopy() *PolicyV2Spec { + if in == nil { + return nil + } + out := new(PolicyV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PolicyV2Status) DeepCopyInto(out *PolicyV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PolicyV2Status. +func (in *PolicyV2Status) DeepCopy() *PolicyV2Status { + if in == nil { + return nil + } + out := new(PolicyV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RuleV2) DeepCopyInto(out *RuleV2) { + *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 RuleV2. +func (in *RuleV2) DeepCopy() *RuleV2 { + if in == nil { + return nil + } + out := new(RuleV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *RuleV2) 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 *RuleV2InitParameters) DeepCopyInto(out *RuleV2InitParameters) { + *out = *in + 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.DestinationIPAddress != nil { + in, out := &in.DestinationIPAddress, &out.DestinationIPAddress + *out = new(string) + **out = **in + } + if in.DestinationPort != nil { + in, out := &in.DestinationPort, &out.DestinationPort + *out = new(string) + **out = **in + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.IPVersion != nil { + in, out := &in.IPVersion, &out.IPVersion + *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.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.SourceIPAddress != nil { + in, out := &in.SourceIPAddress, &out.SourceIPAddress + *out = new(string) + **out = **in + } + if in.SourcePort != nil { + in, out := &in.SourcePort, &out.SourcePort + *out = new(string) + **out = **in + } + if in.TenantID != nil { + in, out := &in.TenantID, &out.TenantID + *out = new(string) + **out = **in + } + if in.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 RuleV2InitParameters. +func (in *RuleV2InitParameters) DeepCopy() *RuleV2InitParameters { + if in == nil { + return nil + } + out := new(RuleV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RuleV2List) DeepCopyInto(out *RuleV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]RuleV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RuleV2List. +func (in *RuleV2List) DeepCopy() *RuleV2List { + if in == nil { + return nil + } + out := new(RuleV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *RuleV2List) 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 *RuleV2Observation) DeepCopyInto(out *RuleV2Observation) { + *out = *in + 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.DestinationIPAddress != nil { + in, out := &in.DestinationIPAddress, &out.DestinationIPAddress + *out = new(string) + **out = **in + } + if in.DestinationPort != nil { + in, out := &in.DestinationPort, &out.DestinationPort + *out = new(string) + **out = **in + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **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(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.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.SourceIPAddress != nil { + in, out := &in.SourceIPAddress, &out.SourceIPAddress + *out = new(string) + **out = **in + } + if in.SourcePort != nil { + in, out := &in.SourcePort, &out.SourcePort + *out = new(string) + **out = **in + } + if in.TenantID != nil { + in, out := &in.TenantID, &out.TenantID + *out = new(string) + **out = **in + } + if in.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 RuleV2Observation. +func (in *RuleV2Observation) DeepCopy() *RuleV2Observation { + if in == nil { + return nil + } + out := new(RuleV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RuleV2Parameters) DeepCopyInto(out *RuleV2Parameters) { + *out = *in + 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.DestinationIPAddress != nil { + in, out := &in.DestinationIPAddress, &out.DestinationIPAddress + *out = new(string) + **out = **in + } + if in.DestinationPort != nil { + in, out := &in.DestinationPort, &out.DestinationPort + *out = new(string) + **out = **in + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.IPVersion != nil { + in, out := &in.IPVersion, &out.IPVersion + *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.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.SourceIPAddress != nil { + in, out := &in.SourceIPAddress, &out.SourceIPAddress + *out = new(string) + **out = **in + } + if in.SourcePort != nil { + in, out := &in.SourcePort, &out.SourcePort + *out = new(string) + **out = **in + } + if in.TenantID != nil { + in, out := &in.TenantID, &out.TenantID + *out = new(string) + **out = **in + } + if in.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 RuleV2Parameters. +func (in *RuleV2Parameters) DeepCopy() *RuleV2Parameters { + if in == nil { + return nil + } + out := new(RuleV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RuleV2Spec) DeepCopyInto(out *RuleV2Spec) { + *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 RuleV2Spec. +func (in *RuleV2Spec) DeepCopy() *RuleV2Spec { + if in == nil { + return nil + } + out := new(RuleV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RuleV2Status) DeepCopyInto(out *RuleV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RuleV2Status. +func (in *RuleV2Status) DeepCopy() *RuleV2Status { + if in == nil { + return nil + } + out := new(RuleV2Status) + in.DeepCopyInto(out) + return out +} diff --git a/apis/fw/v1alpha1/zz_generated.managed.go b/apis/fw/v1alpha1/zz_generated.managed.go new file mode 100644 index 0000000..bc29c13 --- /dev/null +++ b/apis/fw/v1alpha1/zz_generated.managed.go @@ -0,0 +1,188 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import xpv1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + +// GetCondition of this FirewallGroupV2. +func (mg *FirewallGroupV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this FirewallGroupV2. +func (mg *FirewallGroupV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this FirewallGroupV2. +func (mg *FirewallGroupV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this FirewallGroupV2. +func (mg *FirewallGroupV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this FirewallGroupV2. +func (mg *FirewallGroupV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this FirewallGroupV2. +func (mg *FirewallGroupV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this FirewallGroupV2. +func (mg *FirewallGroupV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this FirewallGroupV2. +func (mg *FirewallGroupV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this FirewallGroupV2. +func (mg *FirewallGroupV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this FirewallGroupV2. +func (mg *FirewallGroupV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this FirewallGroupV2. +func (mg *FirewallGroupV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this FirewallGroupV2. +func (mg *FirewallGroupV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this PolicyV2. +func (mg *PolicyV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this PolicyV2. +func (mg *PolicyV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this PolicyV2. +func (mg *PolicyV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this PolicyV2. +func (mg *PolicyV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this PolicyV2. +func (mg *PolicyV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this PolicyV2. +func (mg *PolicyV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this PolicyV2. +func (mg *PolicyV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this PolicyV2. +func (mg *PolicyV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this PolicyV2. +func (mg *PolicyV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this PolicyV2. +func (mg *PolicyV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this PolicyV2. +func (mg *PolicyV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this PolicyV2. +func (mg *PolicyV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this RuleV2. +func (mg *RuleV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this RuleV2. +func (mg *RuleV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this RuleV2. +func (mg *RuleV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this RuleV2. +func (mg *RuleV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this RuleV2. +func (mg *RuleV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this RuleV2. +func (mg *RuleV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this RuleV2. +func (mg *RuleV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this RuleV2. +func (mg *RuleV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this RuleV2. +func (mg *RuleV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this RuleV2. +func (mg *RuleV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this RuleV2. +func (mg *RuleV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this RuleV2. +func (mg *RuleV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} diff --git a/apis/fw/v1alpha1/zz_generated.managedlist.go b/apis/fw/v1alpha1/zz_generated.managedlist.go new file mode 100644 index 0000000..c90e050 --- /dev/null +++ b/apis/fw/v1alpha1/zz_generated.managedlist.go @@ -0,0 +1,35 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import resource "github.com/crossplane/crossplane-runtime/pkg/resource" + +// GetItems of this FirewallGroupV2List. +func (l *FirewallGroupV2List) 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 PolicyV2List. +func (l *PolicyV2List) 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 RuleV2List. +func (l *RuleV2List) 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/fw/v1alpha1/zz_generated_terraformed.go b/apis/fw/v1alpha1/zz_generated_terraformed.go new file mode 100755 index 0000000..a41a256 --- /dev/null +++ b/apis/fw/v1alpha1/zz_generated_terraformed.go @@ -0,0 +1,270 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "github.com/pkg/errors" + + "github.com/crossplane/upjet/pkg/resource" + "github.com/crossplane/upjet/pkg/resource/json" +) + +// GetTerraformResourceType returns Terraform resource type for this FirewallGroupV2 +func (mg *FirewallGroupV2) GetTerraformResourceType() string { + return "opentelekomcloud_fw_firewall_group_v2" +} + +// GetConnectionDetailsMapping for this FirewallGroupV2 +func (tr *FirewallGroupV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this FirewallGroupV2 +func (tr *FirewallGroupV2) 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 FirewallGroupV2 +func (tr *FirewallGroupV2) 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 FirewallGroupV2 +func (tr *FirewallGroupV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this FirewallGroupV2 +func (tr *FirewallGroupV2) 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 FirewallGroupV2 +func (tr *FirewallGroupV2) 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 FirewallGroupV2 +func (tr *FirewallGroupV2) 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) +} + +// LateInitialize this FirewallGroupV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *FirewallGroupV2) LateInitialize(attrs []byte) (bool, error) { + params := &FirewallGroupV2Parameters{} + 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 *FirewallGroupV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this PolicyV2 +func (mg *PolicyV2) GetTerraformResourceType() string { + return "opentelekomcloud_fw_policy_v2" +} + +// GetConnectionDetailsMapping for this PolicyV2 +func (tr *PolicyV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this PolicyV2 +func (tr *PolicyV2) 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 PolicyV2 +func (tr *PolicyV2) 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 PolicyV2 +func (tr *PolicyV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this PolicyV2 +func (tr *PolicyV2) 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 PolicyV2 +func (tr *PolicyV2) 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 PolicyV2 +func (tr *PolicyV2) 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) +} + +// LateInitialize this PolicyV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *PolicyV2) LateInitialize(attrs []byte) (bool, error) { + params := &PolicyV2Parameters{} + 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 *PolicyV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this RuleV2 +func (mg *RuleV2) GetTerraformResourceType() string { + return "opentelekomcloud_fw_rule_v2" +} + +// GetConnectionDetailsMapping for this RuleV2 +func (tr *RuleV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this RuleV2 +func (tr *RuleV2) 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 RuleV2 +func (tr *RuleV2) 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 RuleV2 +func (tr *RuleV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this RuleV2 +func (tr *RuleV2) 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 RuleV2 +func (tr *RuleV2) 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 RuleV2 +func (tr *RuleV2) 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) +} + +// LateInitialize this RuleV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *RuleV2) LateInitialize(attrs []byte) (bool, error) { + params := &RuleV2Parameters{} + 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 *RuleV2) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/fw/v1alpha1/zz_groupversion_info.go b/apis/fw/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..72453c0 --- /dev/null +++ b/apis/fw/v1alpha1/zz_groupversion_info.go @@ -0,0 +1,36 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +// +kubebuilder:object:generate=true +// +groupName=fw.crossplane.io +// +versionName=v1alpha1 +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +// Package type metadata. +const ( + CRDGroup = "fw.crossplane.io" + CRDVersion = "v1alpha1" +) + +var ( + // CRDGroupVersion is the API Group Version used to register the objects + CRDGroupVersion = schema.GroupVersion{Group: CRDGroup, Version: CRDVersion} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme + SchemeBuilder = &scheme.Builder{GroupVersion: CRDGroupVersion} + + // AddToScheme adds the types in this group-version to the given scheme. + AddToScheme = SchemeBuilder.AddToScheme +) diff --git a/apis/fw/v1alpha1/zz_policyv2_types.go b/apis/fw/v1alpha1/zz_policyv2_types.go new file mode 100755 index 0000000..4e957bd --- /dev/null +++ b/apis/fw/v1alpha1/zz_policyv2_types.go @@ -0,0 +1,199 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 PolicyV2InitParameters struct { + + // Audit status of the firewall policy + // (must be "true" or "false" if provided - defaults to "false"). + // This status is set to "false" whenever the firewall policy or any of its + // rules are changed. Changing this updates the audited status of an existing + // firewall policy. + Audited *bool `json:"audited,omitempty" tf:"audited,omitempty"` + + // A description for the firewall policy. Changing + // this updates the description of an existing firewall policy. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // A name for the firewall policy. Changing this + // updates the name of an existing firewall policy. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // An array of one or more firewall rules that comprise + // the policy. Changing this results in adding/removing rules from the + // existing firewall policy. + Rules []*string `json:"rules,omitempty" tf:"rules,omitempty"` + + // Sharing status of the firewall policy (must be "true" + // or "false" if provided). If this is "true" the policy is visible to, and + // can be used in, firewalls in other tenants. Changing this updates the + // shared status of an existing firewall policy. Only administrative users + // can specify if the policy should be shared. + Shared *bool `json:"shared,omitempty" tf:"shared,omitempty"` + + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // Map of additional options. + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +type PolicyV2Observation struct { + + // Audit status of the firewall policy + // (must be "true" or "false" if provided - defaults to "false"). + // This status is set to "false" whenever the firewall policy or any of its + // rules are changed. Changing this updates the audited status of an existing + // firewall policy. + Audited *bool `json:"audited,omitempty" tf:"audited,omitempty"` + + // A description for the firewall policy. Changing + // this updates the description of an existing firewall policy. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // A name for the firewall policy. Changing this + // updates the name of an existing firewall policy. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // An array of one or more firewall rules that comprise + // the policy. Changing this results in adding/removing rules from the + // existing firewall policy. + Rules []*string `json:"rules,omitempty" tf:"rules,omitempty"` + + // Sharing status of the firewall policy (must be "true" + // or "false" if provided). If this is "true" the policy is visible to, and + // can be used in, firewalls in other tenants. Changing this updates the + // shared status of an existing firewall policy. Only administrative users + // can specify if the policy should be shared. + Shared *bool `json:"shared,omitempty" tf:"shared,omitempty"` + + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // Map of additional options. + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +type PolicyV2Parameters struct { + + // Audit status of the firewall policy + // (must be "true" or "false" if provided - defaults to "false"). + // This status is set to "false" whenever the firewall policy or any of its + // rules are changed. Changing this updates the audited status of an existing + // firewall policy. + // +kubebuilder:validation:Optional + Audited *bool `json:"audited,omitempty" tf:"audited,omitempty"` + + // A description for the firewall policy. Changing + // this updates the description of an existing firewall policy. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // A name for the firewall policy. Changing this + // updates the name of an existing firewall policy. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // An array of one or more firewall rules that comprise + // the policy. Changing this results in adding/removing rules from the + // existing firewall policy. + // +kubebuilder:validation:Optional + Rules []*string `json:"rules,omitempty" tf:"rules,omitempty"` + + // Sharing status of the firewall policy (must be "true" + // or "false" if provided). If this is "true" the policy is visible to, and + // can be used in, firewalls in other tenants. Changing this updates the + // shared status of an existing firewall policy. Only administrative users + // can specify if the policy should be shared. + // +kubebuilder:validation:Optional + Shared *bool `json:"shared,omitempty" tf:"shared,omitempty"` + + // +kubebuilder:validation:Optional + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // Map of additional options. + // +kubebuilder:validation:Optional + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +// PolicyV2Spec defines the desired state of PolicyV2 +type PolicyV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider PolicyV2Parameters `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 PolicyV2InitParameters `json:"initProvider,omitempty"` +} + +// PolicyV2Status defines the observed state of PolicyV2. +type PolicyV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider PolicyV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// PolicyV2 is the Schema for the PolicyV2s API. Manages a VPC Firewall Policy resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type PolicyV2 struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec PolicyV2Spec `json:"spec"` + Status PolicyV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// PolicyV2List contains a list of PolicyV2s +type PolicyV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []PolicyV2 `json:"items"` +} + +// Repository type metadata. +var ( + PolicyV2_Kind = "PolicyV2" + PolicyV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: PolicyV2_Kind}.String() + PolicyV2_KindAPIVersion = PolicyV2_Kind + "." + CRDGroupVersion.String() + PolicyV2_GroupVersionKind = CRDGroupVersion.WithKind(PolicyV2_Kind) +) + +func init() { + SchemeBuilder.Register(&PolicyV2{}, &PolicyV2List{}) +} diff --git a/apis/fw/v1alpha1/zz_rulev2_types.go b/apis/fw/v1alpha1/zz_rulev2_types.go new file mode 100755 index 0000000..df9b84f --- /dev/null +++ b/apis/fw/v1alpha1/zz_rulev2_types.go @@ -0,0 +1,275 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 RuleV2InitParameters struct { + + // Action to be taken ( must be "allow" or "deny") when the + // firewall rule matches. Changing this updates the action of an existing + // firewall rule. + Action *string `json:"action,omitempty" tf:"action,omitempty"` + + // A description for the firewall rule. Changing this + // updates the description of an existing firewall rule. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The destination IP address on which the + // firewall rule operates. Changing this updates the destination_ip_address + // of an existing firewall rule. + DestinationIPAddress *string `json:"destinationIpAddress,omitempty" tf:"destination_ip_address,omitempty"` + + // The destination port on which the firewall + // rule operates. Changing this updates the destination_port of an existing + // firewall rule. + DestinationPort *string `json:"destinationPort,omitempty" tf:"destination_port,omitempty"` + + // Enabled status for the firewall rule (must be "true" + // or "false" if provided - defaults to "true"). Changing this updates the + // enabled status of an existing firewall rule. + Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + + // IP version, either 4 (default) or 6. Changing this + // updates the ip_version of an existing firewall rule. + IPVersion *float64 `json:"ipVersion,omitempty" tf:"ip_version,omitempty"` + + // A unique name for the firewall rule. Changing this + // updates the name of an existing firewall rule. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The protocol type on which the firewall rule operates. + // Valid values are: tcp, udp, icmp, and any. Changing this updates the + // protocol of an existing firewall rule. + Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The source IP address on which the firewall + // rule operates. Changing this updates the source_ip_address of an existing + // firewall rule. + SourceIPAddress *string `json:"sourceIpAddress,omitempty" tf:"source_ip_address,omitempty"` + + // The source port on which the firewall + // rule operates. Changing this updates the source_port of an existing + // firewall rule. + SourcePort *string `json:"sourcePort,omitempty" tf:"source_port,omitempty"` + + // The owner of the firewall rule. Required if admin + // wants to create a firewall rule for another tenant. Changing this creates a + // new firewall rule. + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // Map of additional options. + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +type RuleV2Observation struct { + + // Action to be taken ( must be "allow" or "deny") when the + // firewall rule matches. Changing this updates the action of an existing + // firewall rule. + Action *string `json:"action,omitempty" tf:"action,omitempty"` + + // A description for the firewall rule. Changing this + // updates the description of an existing firewall rule. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The destination IP address on which the + // firewall rule operates. Changing this updates the destination_ip_address + // of an existing firewall rule. + DestinationIPAddress *string `json:"destinationIpAddress,omitempty" tf:"destination_ip_address,omitempty"` + + // The destination port on which the firewall + // rule operates. Changing this updates the destination_port of an existing + // firewall rule. + DestinationPort *string `json:"destinationPort,omitempty" tf:"destination_port,omitempty"` + + // Enabled status for the firewall rule (must be "true" + // or "false" if provided - defaults to "true"). Changing this updates the + // enabled status of an existing firewall rule. + Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // IP version, either 4 (default) or 6. Changing this + // updates the ip_version of an existing firewall rule. + IPVersion *float64 `json:"ipVersion,omitempty" tf:"ip_version,omitempty"` + + // A unique name for the firewall rule. Changing this + // updates the name of an existing firewall rule. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The protocol type on which the firewall rule operates. + // Valid values are: tcp, udp, icmp, and any. Changing this updates the + // protocol of an existing firewall rule. + Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The source IP address on which the firewall + // rule operates. Changing this updates the source_ip_address of an existing + // firewall rule. + SourceIPAddress *string `json:"sourceIpAddress,omitempty" tf:"source_ip_address,omitempty"` + + // The source port on which the firewall + // rule operates. Changing this updates the source_port of an existing + // firewall rule. + SourcePort *string `json:"sourcePort,omitempty" tf:"source_port,omitempty"` + + // The owner of the firewall rule. Required if admin + // wants to create a firewall rule for another tenant. Changing this creates a + // new firewall rule. + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // Map of additional options. + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +type RuleV2Parameters struct { + + // Action to be taken ( must be "allow" or "deny") when the + // firewall rule matches. Changing this updates the action of an existing + // firewall rule. + // +kubebuilder:validation:Optional + Action *string `json:"action,omitempty" tf:"action,omitempty"` + + // A description for the firewall rule. Changing this + // updates the description of an existing firewall rule. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The destination IP address on which the + // firewall rule operates. Changing this updates the destination_ip_address + // of an existing firewall rule. + // +kubebuilder:validation:Optional + DestinationIPAddress *string `json:"destinationIpAddress,omitempty" tf:"destination_ip_address,omitempty"` + + // The destination port on which the firewall + // rule operates. Changing this updates the destination_port of an existing + // firewall rule. + // +kubebuilder:validation:Optional + DestinationPort *string `json:"destinationPort,omitempty" tf:"destination_port,omitempty"` + + // Enabled status for the firewall rule (must be "true" + // or "false" if provided - defaults to "true"). Changing this updates the + // enabled status of an existing firewall rule. + // +kubebuilder:validation:Optional + Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + + // IP version, either 4 (default) or 6. Changing this + // updates the ip_version of an existing firewall rule. + // +kubebuilder:validation:Optional + IPVersion *float64 `json:"ipVersion,omitempty" tf:"ip_version,omitempty"` + + // A unique name for the firewall rule. Changing this + // updates the name of an existing firewall rule. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The protocol type on which the firewall rule operates. + // Valid values are: tcp, udp, icmp, and any. Changing this updates the + // protocol of an existing firewall rule. + // +kubebuilder:validation:Optional + Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The source IP address on which the firewall + // rule operates. Changing this updates the source_ip_address of an existing + // firewall rule. + // +kubebuilder:validation:Optional + SourceIPAddress *string `json:"sourceIpAddress,omitempty" tf:"source_ip_address,omitempty"` + + // The source port on which the firewall + // rule operates. Changing this updates the source_port of an existing + // firewall rule. + // +kubebuilder:validation:Optional + SourcePort *string `json:"sourcePort,omitempty" tf:"source_port,omitempty"` + + // The owner of the firewall rule. Required if admin + // wants to create a firewall rule for another tenant. Changing this creates a + // new firewall rule. + // +kubebuilder:validation:Optional + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // Map of additional options. + // +kubebuilder:validation:Optional + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +// RuleV2Spec defines the desired state of RuleV2 +type RuleV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider RuleV2Parameters `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 RuleV2InitParameters `json:"initProvider,omitempty"` +} + +// RuleV2Status defines the observed state of RuleV2. +type RuleV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider RuleV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// RuleV2 is the Schema for the RuleV2s API. Manages a VPC Firewall Rule resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type RuleV2 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.protocol) || (has(self.initProvider) && has(self.initProvider.protocol))",message="spec.forProvider.protocol is a required parameter" + Spec RuleV2Spec `json:"spec"` + Status RuleV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// RuleV2List contains a list of RuleV2s +type RuleV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []RuleV2 `json:"items"` +} + +// Repository type metadata. +var ( + RuleV2_Kind = "RuleV2" + RuleV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: RuleV2_Kind}.String() + RuleV2_KindAPIVersion = RuleV2_Kind + "." + CRDGroupVersion.String() + RuleV2_GroupVersionKind = CRDGroupVersion.WithKind(RuleV2_Kind) +) + +func init() { + SchemeBuilder.Register(&RuleV2{}, &RuleV2List{}) +} diff --git a/apis/identity/v1alpha1/zz_agencyv3_types.go b/apis/identity/v1alpha1/zz_agencyv3_types.go new file mode 100755 index 0000000..fa336c9 --- /dev/null +++ b/apis/identity/v1alpha1/zz_agencyv3_types.go @@ -0,0 +1,193 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 AgencyV3InitParameters struct { + + // The name of delegated domain. + DelegatedDomainName *string `json:"delegatedDomainName,omitempty" tf:"delegated_domain_name,omitempty"` + + // Provides supplementary information about the + // agency. The value is a string of 0 to 255 characters. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // An array of role names which stand for the + // permissions to be granted to agency on domain. + DomainRoles []*string `json:"domainRoles,omitempty" tf:"domain_roles,omitempty"` + + // The name of agency. The name is a string of 1 to 64 + // characters. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // An array of roles and projects which are used to + // grant permissions to agency on project. The structure is documented below. + ProjectRole []ProjectRoleInitParameters `json:"projectRole,omitempty" tf:"project_role,omitempty"` +} + +type AgencyV3Observation struct { + + // The time when the agency was created. + CreateTime *string `json:"createTime,omitempty" tf:"create_time,omitempty"` + + // The name of delegated domain. + DelegatedDomainName *string `json:"delegatedDomainName,omitempty" tf:"delegated_domain_name,omitempty"` + + // Provides supplementary information about the + // agency. The value is a string of 0 to 255 characters. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // An array of role names which stand for the + // permissions to be granted to agency on domain. + DomainRoles []*string `json:"domainRoles,omitempty" tf:"domain_roles,omitempty"` + + // Validity period of an agency. The default value is null, + // indicating that the agency is permanently valid. + Duration *string `json:"duration,omitempty" tf:"duration,omitempty"` + + // The expiration time of agency + ExpireTime *string `json:"expireTime,omitempty" tf:"expire_time,omitempty"` + + // The agency ID. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The name of agency. The name is a string of 1 to 64 + // characters. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // An array of roles and projects which are used to + // grant permissions to agency on project. The structure is documented below. + ProjectRole []ProjectRoleObservation `json:"projectRole,omitempty" tf:"project_role,omitempty"` +} + +type AgencyV3Parameters struct { + + // The name of delegated domain. + // +kubebuilder:validation:Optional + DelegatedDomainName *string `json:"delegatedDomainName,omitempty" tf:"delegated_domain_name,omitempty"` + + // Provides supplementary information about the + // agency. The value is a string of 0 to 255 characters. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // An array of role names which stand for the + // permissions to be granted to agency on domain. + // +kubebuilder:validation:Optional + DomainRoles []*string `json:"domainRoles,omitempty" tf:"domain_roles,omitempty"` + + // The name of agency. The name is a string of 1 to 64 + // characters. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // An array of roles and projects which are used to + // grant permissions to agency on project. The structure is documented below. + // +kubebuilder:validation:Optional + ProjectRole []ProjectRoleParameters `json:"projectRole,omitempty" tf:"project_role,omitempty"` +} + +type ProjectRoleInitParameters struct { + + // The name of project + Project *string `json:"project,omitempty" tf:"project,omitempty"` + + // An array of role names + Roles []*string `json:"roles,omitempty" tf:"roles,omitempty"` +} + +type ProjectRoleObservation struct { + + // The name of project + Project *string `json:"project,omitempty" tf:"project,omitempty"` + + // An array of role names + Roles []*string `json:"roles,omitempty" tf:"roles,omitempty"` +} + +type ProjectRoleParameters struct { + + // The name of project + // +kubebuilder:validation:Optional + Project *string `json:"project" tf:"project,omitempty"` + + // An array of role names + // +kubebuilder:validation:Optional + Roles []*string `json:"roles" tf:"roles,omitempty"` +} + +// AgencyV3Spec defines the desired state of AgencyV3 +type AgencyV3Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider AgencyV3Parameters `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 AgencyV3InitParameters `json:"initProvider,omitempty"` +} + +// AgencyV3Status defines the observed state of AgencyV3. +type AgencyV3Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider AgencyV3Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// AgencyV3 is the Schema for the AgencyV3s API. Manages a IAM Cgency resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type AgencyV3 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.delegatedDomainName) || (has(self.initProvider) && has(self.initProvider.delegatedDomainName))",message="spec.forProvider.delegatedDomainName is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + Spec AgencyV3Spec `json:"spec"` + Status AgencyV3Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// AgencyV3List contains a list of AgencyV3s +type AgencyV3List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []AgencyV3 `json:"items"` +} + +// Repository type metadata. +var ( + AgencyV3_Kind = "AgencyV3" + AgencyV3_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: AgencyV3_Kind}.String() + AgencyV3_KindAPIVersion = AgencyV3_Kind + "." + CRDGroupVersion.String() + AgencyV3_GroupVersionKind = CRDGroupVersion.WithKind(AgencyV3_Kind) +) + +func init() { + SchemeBuilder.Register(&AgencyV3{}, &AgencyV3List{}) +} diff --git a/apis/identity/v1alpha1/zz_credentialv3_types.go b/apis/identity/v1alpha1/zz_credentialv3_types.go new file mode 100755 index 0000000..32b954d --- /dev/null +++ b/apis/identity/v1alpha1/zz_credentialv3_types.go @@ -0,0 +1,140 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 CredentialV3InitParameters struct { + + // Description of the access key. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Either a base-64 encoded PGP public key, or a keybase username in the form + // keybase:some_person_that_exists. Changing this creates a new resource. + PgpKey *string `json:"pgpKey,omitempty" tf:"pgp_key,omitempty"` + + // Status of the access key to be changed to. The value can be active or inactive. + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + // IAM user ID. If not set, will create AK/SK for yourself. + UserID *string `json:"userId,omitempty" tf:"user_id,omitempty"` +} + +type CredentialV3Observation struct { + + // Time of the access key creation. + CreateTime *string `json:"createTime,omitempty" tf:"create_time,omitempty"` + + // Description of the access key. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + KeyFingerprint *string `json:"keyFingerprint,omitempty" tf:"key_fingerprint,omitempty"` + + // Time of the access key last usage. + LastUseTime *string `json:"lastUseTime,omitempty" tf:"last_use_time,omitempty"` + + // Either a base-64 encoded PGP public key, or a keybase username in the form + // keybase:some_person_that_exists. Changing this creates a new resource. + PgpKey *string `json:"pgpKey,omitempty" tf:"pgp_key,omitempty"` + + // Status of the access key to be changed to. The value can be active or inactive. + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + // IAM user ID. If not set, will create AK/SK for yourself. + UserID *string `json:"userId,omitempty" tf:"user_id,omitempty"` +} + +type CredentialV3Parameters struct { + + // Description of the access key. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Either a base-64 encoded PGP public key, or a keybase username in the form + // keybase:some_person_that_exists. Changing this creates a new resource. + // +kubebuilder:validation:Optional + PgpKey *string `json:"pgpKey,omitempty" tf:"pgp_key,omitempty"` + + // Status of the access key to be changed to. The value can be active or inactive. + // +kubebuilder:validation:Optional + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + // IAM user ID. If not set, will create AK/SK for yourself. + // +kubebuilder:validation:Optional + UserID *string `json:"userId,omitempty" tf:"user_id,omitempty"` +} + +// CredentialV3Spec defines the desired state of CredentialV3 +type CredentialV3Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider CredentialV3Parameters `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 CredentialV3InitParameters `json:"initProvider,omitempty"` +} + +// CredentialV3Status defines the observed state of CredentialV3. +type CredentialV3Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider CredentialV3Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// CredentialV3 is the Schema for the CredentialV3s API. Manages a IAM Credential resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type CredentialV3 struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec CredentialV3Spec `json:"spec"` + Status CredentialV3Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// CredentialV3List contains a list of CredentialV3s +type CredentialV3List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []CredentialV3 `json:"items"` +} + +// Repository type metadata. +var ( + CredentialV3_Kind = "CredentialV3" + CredentialV3_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: CredentialV3_Kind}.String() + CredentialV3_KindAPIVersion = CredentialV3_Kind + "." + CRDGroupVersion.String() + CredentialV3_GroupVersionKind = CRDGroupVersion.WithKind(CredentialV3_Kind) +) + +func init() { + SchemeBuilder.Register(&CredentialV3{}, &CredentialV3List{}) +} diff --git a/apis/identity/v1alpha1/zz_generated.deepcopy.go b/apis/identity/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..b8fb15d --- /dev/null +++ b/apis/identity/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,4630 @@ +//go:build !ignore_autogenerated + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by controller-gen. DO NOT EDIT. + +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 *AccessConfigInitParameters) DeepCopyInto(out *AccessConfigInitParameters) { + *out = *in + if in.AccessType != nil { + in, out := &in.AccessType, &out.AccessType + *out = new(string) + **out = **in + } + if in.AuthorizationEndpoint != nil { + in, out := &in.AuthorizationEndpoint, &out.AuthorizationEndpoint + *out = new(string) + **out = **in + } + if in.ClientID != nil { + in, out := &in.ClientID, &out.ClientID + *out = new(string) + **out = **in + } + if in.ProviderURL != nil { + in, out := &in.ProviderURL, &out.ProviderURL + *out = new(string) + **out = **in + } + if in.ResponseMode != nil { + in, out := &in.ResponseMode, &out.ResponseMode + *out = new(string) + **out = **in + } + if in.ResponseType != nil { + in, out := &in.ResponseType, &out.ResponseType + *out = new(string) + **out = **in + } + if in.Scopes != nil { + in, out := &in.Scopes, &out.Scopes + *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.SigningKey != nil { + in, out := &in.SigningKey, &out.SigningKey + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AccessConfigInitParameters. +func (in *AccessConfigInitParameters) DeepCopy() *AccessConfigInitParameters { + if in == nil { + return nil + } + out := new(AccessConfigInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AccessConfigObservation) DeepCopyInto(out *AccessConfigObservation) { + *out = *in + if in.AccessType != nil { + in, out := &in.AccessType, &out.AccessType + *out = new(string) + **out = **in + } + if in.AuthorizationEndpoint != nil { + in, out := &in.AuthorizationEndpoint, &out.AuthorizationEndpoint + *out = new(string) + **out = **in + } + if in.ClientID != nil { + in, out := &in.ClientID, &out.ClientID + *out = new(string) + **out = **in + } + if in.ProviderURL != nil { + in, out := &in.ProviderURL, &out.ProviderURL + *out = new(string) + **out = **in + } + if in.ResponseMode != nil { + in, out := &in.ResponseMode, &out.ResponseMode + *out = new(string) + **out = **in + } + if in.ResponseType != nil { + in, out := &in.ResponseType, &out.ResponseType + *out = new(string) + **out = **in + } + if in.Scopes != nil { + in, out := &in.Scopes, &out.Scopes + *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.SigningKey != nil { + in, out := &in.SigningKey, &out.SigningKey + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AccessConfigObservation. +func (in *AccessConfigObservation) DeepCopy() *AccessConfigObservation { + if in == nil { + return nil + } + out := new(AccessConfigObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AccessConfigParameters) DeepCopyInto(out *AccessConfigParameters) { + *out = *in + if in.AccessType != nil { + in, out := &in.AccessType, &out.AccessType + *out = new(string) + **out = **in + } + if in.AuthorizationEndpoint != nil { + in, out := &in.AuthorizationEndpoint, &out.AuthorizationEndpoint + *out = new(string) + **out = **in + } + if in.ClientID != nil { + in, out := &in.ClientID, &out.ClientID + *out = new(string) + **out = **in + } + if in.ProviderURL != nil { + in, out := &in.ProviderURL, &out.ProviderURL + *out = new(string) + **out = **in + } + if in.ResponseMode != nil { + in, out := &in.ResponseMode, &out.ResponseMode + *out = new(string) + **out = **in + } + if in.ResponseType != nil { + in, out := &in.ResponseType, &out.ResponseType + *out = new(string) + **out = **in + } + if in.Scopes != nil { + in, out := &in.Scopes, &out.Scopes + *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.SigningKey != nil { + in, out := &in.SigningKey, &out.SigningKey + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AccessConfigParameters. +func (in *AccessConfigParameters) DeepCopy() *AccessConfigParameters { + if in == nil { + return nil + } + out := new(AccessConfigParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AgencyV3) DeepCopyInto(out *AgencyV3) { + *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 AgencyV3. +func (in *AgencyV3) DeepCopy() *AgencyV3 { + if in == nil { + return nil + } + out := new(AgencyV3) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *AgencyV3) 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 *AgencyV3InitParameters) DeepCopyInto(out *AgencyV3InitParameters) { + *out = *in + if in.DelegatedDomainName != nil { + in, out := &in.DelegatedDomainName, &out.DelegatedDomainName + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.DomainRoles != nil { + in, out := &in.DomainRoles, &out.DomainRoles + *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.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.ProjectRole != nil { + in, out := &in.ProjectRole, &out.ProjectRole + *out = make([]ProjectRoleInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgencyV3InitParameters. +func (in *AgencyV3InitParameters) DeepCopy() *AgencyV3InitParameters { + if in == nil { + return nil + } + out := new(AgencyV3InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AgencyV3List) DeepCopyInto(out *AgencyV3List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]AgencyV3, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgencyV3List. +func (in *AgencyV3List) DeepCopy() *AgencyV3List { + if in == nil { + return nil + } + out := new(AgencyV3List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *AgencyV3List) 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 *AgencyV3Observation) DeepCopyInto(out *AgencyV3Observation) { + *out = *in + if in.CreateTime != nil { + in, out := &in.CreateTime, &out.CreateTime + *out = new(string) + **out = **in + } + if in.DelegatedDomainName != nil { + in, out := &in.DelegatedDomainName, &out.DelegatedDomainName + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.DomainRoles != nil { + in, out := &in.DomainRoles, &out.DomainRoles + *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.Duration != nil { + in, out := &in.Duration, &out.Duration + *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.ProjectRole != nil { + in, out := &in.ProjectRole, &out.ProjectRole + *out = make([]ProjectRoleObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgencyV3Observation. +func (in *AgencyV3Observation) DeepCopy() *AgencyV3Observation { + if in == nil { + return nil + } + out := new(AgencyV3Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AgencyV3Parameters) DeepCopyInto(out *AgencyV3Parameters) { + *out = *in + if in.DelegatedDomainName != nil { + in, out := &in.DelegatedDomainName, &out.DelegatedDomainName + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.DomainRoles != nil { + in, out := &in.DomainRoles, &out.DomainRoles + *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.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.ProjectRole != nil { + in, out := &in.ProjectRole, &out.ProjectRole + *out = make([]ProjectRoleParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgencyV3Parameters. +func (in *AgencyV3Parameters) DeepCopy() *AgencyV3Parameters { + if in == nil { + return nil + } + out := new(AgencyV3Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AgencyV3Spec) DeepCopyInto(out *AgencyV3Spec) { + *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 AgencyV3Spec. +func (in *AgencyV3Spec) DeepCopy() *AgencyV3Spec { + if in == nil { + return nil + } + out := new(AgencyV3Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AgencyV3Status) DeepCopyInto(out *AgencyV3Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AgencyV3Status. +func (in *AgencyV3Status) DeepCopy() *AgencyV3Status { + if in == nil { + return nil + } + out := new(AgencyV3Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ConversionRulesInitParameters) DeepCopyInto(out *ConversionRulesInitParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConversionRulesInitParameters. +func (in *ConversionRulesInitParameters) DeepCopy() *ConversionRulesInitParameters { + if in == nil { + return nil + } + out := new(ConversionRulesInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ConversionRulesObservation) DeepCopyInto(out *ConversionRulesObservation) { + *out = *in + if in.Local != nil { + in, out := &in.Local, &out.Local + *out = make([]LocalObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Remote != nil { + in, out := &in.Remote, &out.Remote + *out = make([]RemoteObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConversionRulesObservation. +func (in *ConversionRulesObservation) DeepCopy() *ConversionRulesObservation { + if in == nil { + return nil + } + out := new(ConversionRulesObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ConversionRulesParameters) DeepCopyInto(out *ConversionRulesParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConversionRulesParameters. +func (in *ConversionRulesParameters) DeepCopy() *ConversionRulesParameters { + if in == nil { + return nil + } + out := new(ConversionRulesParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CredentialV3) DeepCopyInto(out *CredentialV3) { + *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 CredentialV3. +func (in *CredentialV3) DeepCopy() *CredentialV3 { + if in == nil { + return nil + } + out := new(CredentialV3) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *CredentialV3) 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 *CredentialV3InitParameters) DeepCopyInto(out *CredentialV3InitParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.PgpKey != nil { + in, out := &in.PgpKey, &out.PgpKey + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(string) + **out = **in + } + if in.UserID != nil { + in, out := &in.UserID, &out.UserID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CredentialV3InitParameters. +func (in *CredentialV3InitParameters) DeepCopy() *CredentialV3InitParameters { + if in == nil { + return nil + } + out := new(CredentialV3InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CredentialV3List) DeepCopyInto(out *CredentialV3List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]CredentialV3, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CredentialV3List. +func (in *CredentialV3List) DeepCopy() *CredentialV3List { + if in == nil { + return nil + } + out := new(CredentialV3List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *CredentialV3List) 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 *CredentialV3Observation) DeepCopyInto(out *CredentialV3Observation) { + *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.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.KeyFingerprint != nil { + in, out := &in.KeyFingerprint, &out.KeyFingerprint + *out = new(string) + **out = **in + } + if in.LastUseTime != nil { + in, out := &in.LastUseTime, &out.LastUseTime + *out = new(string) + **out = **in + } + if in.PgpKey != nil { + in, out := &in.PgpKey, &out.PgpKey + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(string) + **out = **in + } + if in.UserID != nil { + in, out := &in.UserID, &out.UserID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CredentialV3Observation. +func (in *CredentialV3Observation) DeepCopy() *CredentialV3Observation { + if in == nil { + return nil + } + out := new(CredentialV3Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CredentialV3Parameters) DeepCopyInto(out *CredentialV3Parameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.PgpKey != nil { + in, out := &in.PgpKey, &out.PgpKey + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(string) + **out = **in + } + if in.UserID != nil { + in, out := &in.UserID, &out.UserID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CredentialV3Parameters. +func (in *CredentialV3Parameters) DeepCopy() *CredentialV3Parameters { + if in == nil { + return nil + } + out := new(CredentialV3Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CredentialV3Spec) DeepCopyInto(out *CredentialV3Spec) { + *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 CredentialV3Spec. +func (in *CredentialV3Spec) DeepCopy() *CredentialV3Spec { + if in == nil { + return nil + } + out := new(CredentialV3Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CredentialV3Status) DeepCopyInto(out *CredentialV3Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CredentialV3Status. +func (in *CredentialV3Status) DeepCopy() *CredentialV3Status { + if in == nil { + return nil + } + out := new(CredentialV3Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *GroupMembershipV3) DeepCopyInto(out *GroupMembershipV3) { + *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 GroupMembershipV3. +func (in *GroupMembershipV3) DeepCopy() *GroupMembershipV3 { + if in == nil { + return nil + } + out := new(GroupMembershipV3) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *GroupMembershipV3) 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 *GroupMembershipV3InitParameters) DeepCopyInto(out *GroupMembershipV3InitParameters) { + *out = *in + if in.Group != nil { + in, out := &in.Group, &out.Group + *out = new(string) + **out = **in + } + if in.Users != nil { + in, out := &in.Users, &out.Users + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupMembershipV3InitParameters. +func (in *GroupMembershipV3InitParameters) DeepCopy() *GroupMembershipV3InitParameters { + if in == nil { + return nil + } + out := new(GroupMembershipV3InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *GroupMembershipV3List) DeepCopyInto(out *GroupMembershipV3List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]GroupMembershipV3, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupMembershipV3List. +func (in *GroupMembershipV3List) DeepCopy() *GroupMembershipV3List { + if in == nil { + return nil + } + out := new(GroupMembershipV3List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *GroupMembershipV3List) 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 *GroupMembershipV3Observation) DeepCopyInto(out *GroupMembershipV3Observation) { + *out = *in + if in.Group != nil { + in, out := &in.Group, &out.Group + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Users != nil { + in, out := &in.Users, &out.Users + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupMembershipV3Observation. +func (in *GroupMembershipV3Observation) DeepCopy() *GroupMembershipV3Observation { + if in == nil { + return nil + } + out := new(GroupMembershipV3Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *GroupMembershipV3Parameters) DeepCopyInto(out *GroupMembershipV3Parameters) { + *out = *in + if in.Group != nil { + in, out := &in.Group, &out.Group + *out = new(string) + **out = **in + } + if in.Users != nil { + in, out := &in.Users, &out.Users + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupMembershipV3Parameters. +func (in *GroupMembershipV3Parameters) DeepCopy() *GroupMembershipV3Parameters { + if in == nil { + return nil + } + out := new(GroupMembershipV3Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *GroupMembershipV3Spec) DeepCopyInto(out *GroupMembershipV3Spec) { + *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 GroupMembershipV3Spec. +func (in *GroupMembershipV3Spec) DeepCopy() *GroupMembershipV3Spec { + if in == nil { + return nil + } + out := new(GroupMembershipV3Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *GroupMembershipV3Status) DeepCopyInto(out *GroupMembershipV3Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupMembershipV3Status. +func (in *GroupMembershipV3Status) DeepCopy() *GroupMembershipV3Status { + if in == nil { + return nil + } + out := new(GroupMembershipV3Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *GroupV3) DeepCopyInto(out *GroupV3) { + *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 GroupV3. +func (in *GroupV3) DeepCopy() *GroupV3 { + if in == nil { + return nil + } + out := new(GroupV3) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *GroupV3) 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 *GroupV3InitParameters) DeepCopyInto(out *GroupV3InitParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.DomainID != nil { + in, out := &in.DomainID, &out.DomainID + *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 + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupV3InitParameters. +func (in *GroupV3InitParameters) DeepCopy() *GroupV3InitParameters { + if in == nil { + return nil + } + out := new(GroupV3InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *GroupV3List) DeepCopyInto(out *GroupV3List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]GroupV3, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupV3List. +func (in *GroupV3List) DeepCopy() *GroupV3List { + if in == nil { + return nil + } + out := new(GroupV3List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *GroupV3List) 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 *GroupV3Observation) DeepCopyInto(out *GroupV3Observation) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.DomainID != nil { + in, out := &in.DomainID, &out.DomainID + *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.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupV3Observation. +func (in *GroupV3Observation) DeepCopy() *GroupV3Observation { + if in == nil { + return nil + } + out := new(GroupV3Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *GroupV3Parameters) DeepCopyInto(out *GroupV3Parameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.DomainID != nil { + in, out := &in.DomainID, &out.DomainID + *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 + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupV3Parameters. +func (in *GroupV3Parameters) DeepCopy() *GroupV3Parameters { + if in == nil { + return nil + } + out := new(GroupV3Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *GroupV3Spec) DeepCopyInto(out *GroupV3Spec) { + *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 GroupV3Spec. +func (in *GroupV3Spec) DeepCopy() *GroupV3Spec { + if in == nil { + return nil + } + out := new(GroupV3Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *GroupV3Status) DeepCopyInto(out *GroupV3Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GroupV3Status. +func (in *GroupV3Status) DeepCopy() *GroupV3Status { + if in == nil { + return nil + } + out := new(GroupV3Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LocalInitParameters) DeepCopyInto(out *LocalInitParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LocalInitParameters. +func (in *LocalInitParameters) DeepCopy() *LocalInitParameters { + if in == nil { + return nil + } + out := new(LocalInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LocalObservation) DeepCopyInto(out *LocalObservation) { + *out = *in + if in.Group != nil { + in, out := &in.Group, &out.Group + *out = new(string) + **out = **in + } + if in.Groups != nil { + in, out := &in.Groups, &out.Groups + *out = new(string) + **out = **in + } + if in.Username != nil { + in, out := &in.Username, &out.Username + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LocalObservation. +func (in *LocalObservation) DeepCopy() *LocalObservation { + if in == nil { + return nil + } + out := new(LocalObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LocalParameters) DeepCopyInto(out *LocalParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LocalParameters. +func (in *LocalParameters) DeepCopy() *LocalParameters { + if in == nil { + return nil + } + out := new(LocalParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LoginPolicyV3) DeepCopyInto(out *LoginPolicyV3) { + *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 LoginPolicyV3. +func (in *LoginPolicyV3) DeepCopy() *LoginPolicyV3 { + if in == nil { + return nil + } + out := new(LoginPolicyV3) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *LoginPolicyV3) 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 *LoginPolicyV3InitParameters) DeepCopyInto(out *LoginPolicyV3InitParameters) { + *out = *in + if in.AccountValidityPeriod != nil { + in, out := &in.AccountValidityPeriod, &out.AccountValidityPeriod + *out = new(float64) + **out = **in + } + if in.CustomInfoForLogin != nil { + in, out := &in.CustomInfoForLogin, &out.CustomInfoForLogin + *out = new(string) + **out = **in + } + if in.LockoutDuration != nil { + in, out := &in.LockoutDuration, &out.LockoutDuration + *out = new(float64) + **out = **in + } + if in.LoginFailedTimes != nil { + in, out := &in.LoginFailedTimes, &out.LoginFailedTimes + *out = new(float64) + **out = **in + } + if in.PeriodWithLoginFailures != nil { + in, out := &in.PeriodWithLoginFailures, &out.PeriodWithLoginFailures + *out = new(float64) + **out = **in + } + if in.SessionTimeout != nil { + in, out := &in.SessionTimeout, &out.SessionTimeout + *out = new(float64) + **out = **in + } + if in.ShowRecentLoginInfo != nil { + in, out := &in.ShowRecentLoginInfo, &out.ShowRecentLoginInfo + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoginPolicyV3InitParameters. +func (in *LoginPolicyV3InitParameters) DeepCopy() *LoginPolicyV3InitParameters { + if in == nil { + return nil + } + out := new(LoginPolicyV3InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LoginPolicyV3List) DeepCopyInto(out *LoginPolicyV3List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]LoginPolicyV3, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoginPolicyV3List. +func (in *LoginPolicyV3List) DeepCopy() *LoginPolicyV3List { + if in == nil { + return nil + } + out := new(LoginPolicyV3List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *LoginPolicyV3List) 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 *LoginPolicyV3Observation) DeepCopyInto(out *LoginPolicyV3Observation) { + *out = *in + if in.AccountValidityPeriod != nil { + in, out := &in.AccountValidityPeriod, &out.AccountValidityPeriod + *out = new(float64) + **out = **in + } + if in.CustomInfoForLogin != nil { + in, out := &in.CustomInfoForLogin, &out.CustomInfoForLogin + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.LockoutDuration != nil { + in, out := &in.LockoutDuration, &out.LockoutDuration + *out = new(float64) + **out = **in + } + if in.LoginFailedTimes != nil { + in, out := &in.LoginFailedTimes, &out.LoginFailedTimes + *out = new(float64) + **out = **in + } + if in.PeriodWithLoginFailures != nil { + in, out := &in.PeriodWithLoginFailures, &out.PeriodWithLoginFailures + *out = new(float64) + **out = **in + } + if in.SessionTimeout != nil { + in, out := &in.SessionTimeout, &out.SessionTimeout + *out = new(float64) + **out = **in + } + if in.ShowRecentLoginInfo != nil { + in, out := &in.ShowRecentLoginInfo, &out.ShowRecentLoginInfo + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoginPolicyV3Observation. +func (in *LoginPolicyV3Observation) DeepCopy() *LoginPolicyV3Observation { + if in == nil { + return nil + } + out := new(LoginPolicyV3Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LoginPolicyV3Parameters) DeepCopyInto(out *LoginPolicyV3Parameters) { + *out = *in + if in.AccountValidityPeriod != nil { + in, out := &in.AccountValidityPeriod, &out.AccountValidityPeriod + *out = new(float64) + **out = **in + } + if in.CustomInfoForLogin != nil { + in, out := &in.CustomInfoForLogin, &out.CustomInfoForLogin + *out = new(string) + **out = **in + } + if in.LockoutDuration != nil { + in, out := &in.LockoutDuration, &out.LockoutDuration + *out = new(float64) + **out = **in + } + if in.LoginFailedTimes != nil { + in, out := &in.LoginFailedTimes, &out.LoginFailedTimes + *out = new(float64) + **out = **in + } + if in.PeriodWithLoginFailures != nil { + in, out := &in.PeriodWithLoginFailures, &out.PeriodWithLoginFailures + *out = new(float64) + **out = **in + } + if in.SessionTimeout != nil { + in, out := &in.SessionTimeout, &out.SessionTimeout + *out = new(float64) + **out = **in + } + if in.ShowRecentLoginInfo != nil { + in, out := &in.ShowRecentLoginInfo, &out.ShowRecentLoginInfo + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoginPolicyV3Parameters. +func (in *LoginPolicyV3Parameters) DeepCopy() *LoginPolicyV3Parameters { + if in == nil { + return nil + } + out := new(LoginPolicyV3Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LoginPolicyV3Spec) DeepCopyInto(out *LoginPolicyV3Spec) { + *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 LoginPolicyV3Spec. +func (in *LoginPolicyV3Spec) DeepCopy() *LoginPolicyV3Spec { + if in == nil { + return nil + } + out := new(LoginPolicyV3Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LoginPolicyV3Status) DeepCopyInto(out *LoginPolicyV3Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoginPolicyV3Status. +func (in *LoginPolicyV3Status) DeepCopy() *LoginPolicyV3Status { + if in == nil { + return nil + } + out := new(LoginPolicyV3Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LoginProtectionInitParameters) DeepCopyInto(out *LoginProtectionInitParameters) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.VerificationMethod != nil { + in, out := &in.VerificationMethod, &out.VerificationMethod + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoginProtectionInitParameters. +func (in *LoginProtectionInitParameters) DeepCopy() *LoginProtectionInitParameters { + if in == nil { + return nil + } + out := new(LoginProtectionInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LoginProtectionObservation) DeepCopyInto(out *LoginProtectionObservation) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.VerificationMethod != nil { + in, out := &in.VerificationMethod, &out.VerificationMethod + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoginProtectionObservation. +func (in *LoginProtectionObservation) DeepCopy() *LoginProtectionObservation { + if in == nil { + return nil + } + out := new(LoginProtectionObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LoginProtectionParameters) DeepCopyInto(out *LoginProtectionParameters) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.VerificationMethod != nil { + in, out := &in.VerificationMethod, &out.VerificationMethod + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoginProtectionParameters. +func (in *LoginProtectionParameters) DeepCopy() *LoginProtectionParameters { + if in == nil { + return nil + } + out := new(LoginProtectionParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MappingV3) DeepCopyInto(out *MappingV3) { + *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 MappingV3. +func (in *MappingV3) DeepCopy() *MappingV3 { + if in == nil { + return nil + } + out := new(MappingV3) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *MappingV3) 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 *MappingV3InitParameters) DeepCopyInto(out *MappingV3InitParameters) { + *out = *in + if in.MappingID != nil { + in, out := &in.MappingID, &out.MappingID + *out = new(string) + **out = **in + } + if in.Rules != nil { + in, out := &in.Rules, &out.Rules + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MappingV3InitParameters. +func (in *MappingV3InitParameters) DeepCopy() *MappingV3InitParameters { + if in == nil { + return nil + } + out := new(MappingV3InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MappingV3List) DeepCopyInto(out *MappingV3List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]MappingV3, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MappingV3List. +func (in *MappingV3List) DeepCopy() *MappingV3List { + if in == nil { + return nil + } + out := new(MappingV3List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *MappingV3List) 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 *MappingV3Observation) DeepCopyInto(out *MappingV3Observation) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Links != nil { + in, out := &in.Links, &out.Links + *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.MappingID != nil { + in, out := &in.MappingID, &out.MappingID + *out = new(string) + **out = **in + } + if in.Rules != nil { + in, out := &in.Rules, &out.Rules + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MappingV3Observation. +func (in *MappingV3Observation) DeepCopy() *MappingV3Observation { + if in == nil { + return nil + } + out := new(MappingV3Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MappingV3Parameters) DeepCopyInto(out *MappingV3Parameters) { + *out = *in + if in.MappingID != nil { + in, out := &in.MappingID, &out.MappingID + *out = new(string) + **out = **in + } + if in.Rules != nil { + in, out := &in.Rules, &out.Rules + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MappingV3Parameters. +func (in *MappingV3Parameters) DeepCopy() *MappingV3Parameters { + if in == nil { + return nil + } + out := new(MappingV3Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MappingV3Spec) DeepCopyInto(out *MappingV3Spec) { + *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 MappingV3Spec. +func (in *MappingV3Spec) DeepCopy() *MappingV3Spec { + if in == nil { + return nil + } + out := new(MappingV3Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MappingV3Status) DeepCopyInto(out *MappingV3Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MappingV3Status. +func (in *MappingV3Status) DeepCopy() *MappingV3Status { + if in == nil { + return nil + } + out := new(MappingV3Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MetadataInitParameters) DeepCopyInto(out *MetadataInitParameters) { + *out = *in + if in.DomainID != nil { + in, out := &in.DomainID, &out.DomainID + *out = new(string) + **out = **in + } + if in.Metadata != nil { + in, out := &in.Metadata, &out.Metadata + *out = new(string) + **out = **in + } + if in.XaccountType != nil { + in, out := &in.XaccountType, &out.XaccountType + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetadataInitParameters. +func (in *MetadataInitParameters) DeepCopy() *MetadataInitParameters { + if in == nil { + return nil + } + out := new(MetadataInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MetadataObservation) DeepCopyInto(out *MetadataObservation) { + *out = *in + if in.DomainID != nil { + in, out := &in.DomainID, &out.DomainID + *out = new(string) + **out = **in + } + if in.Metadata != nil { + in, out := &in.Metadata, &out.Metadata + *out = new(string) + **out = **in + } + if in.XaccountType != nil { + in, out := &in.XaccountType, &out.XaccountType + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetadataObservation. +func (in *MetadataObservation) DeepCopy() *MetadataObservation { + if in == nil { + return nil + } + out := new(MetadataObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *MetadataParameters) DeepCopyInto(out *MetadataParameters) { + *out = *in + if in.DomainID != nil { + in, out := &in.DomainID, &out.DomainID + *out = new(string) + **out = **in + } + if in.Metadata != nil { + in, out := &in.Metadata, &out.Metadata + *out = new(string) + **out = **in + } + if in.XaccountType != nil { + in, out := &in.XaccountType, &out.XaccountType + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetadataParameters. +func (in *MetadataParameters) DeepCopy() *MetadataParameters { + if in == nil { + return nil + } + out := new(MetadataParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PasswordPolicyV3) DeepCopyInto(out *PasswordPolicyV3) { + *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 PasswordPolicyV3. +func (in *PasswordPolicyV3) DeepCopy() *PasswordPolicyV3 { + if in == nil { + return nil + } + out := new(PasswordPolicyV3) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PasswordPolicyV3) 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 *PasswordPolicyV3InitParameters) DeepCopyInto(out *PasswordPolicyV3InitParameters) { + *out = *in + if in.MaximumConsecutiveIdenticalChars != nil { + in, out := &in.MaximumConsecutiveIdenticalChars, &out.MaximumConsecutiveIdenticalChars + *out = new(float64) + **out = **in + } + if in.MinimumPasswordAge != nil { + in, out := &in.MinimumPasswordAge, &out.MinimumPasswordAge + *out = new(float64) + **out = **in + } + if in.MinimumPasswordLength != nil { + in, out := &in.MinimumPasswordLength, &out.MinimumPasswordLength + *out = new(float64) + **out = **in + } + if in.NumberOfRecentPasswordsDisallowed != nil { + in, out := &in.NumberOfRecentPasswordsDisallowed, &out.NumberOfRecentPasswordsDisallowed + *out = new(float64) + **out = **in + } + if in.PasswordNotUsernameOrInvert != nil { + in, out := &in.PasswordNotUsernameOrInvert, &out.PasswordNotUsernameOrInvert + *out = new(bool) + **out = **in + } + if in.PasswordValidityPeriod != nil { + in, out := &in.PasswordValidityPeriod, &out.PasswordValidityPeriod + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PasswordPolicyV3InitParameters. +func (in *PasswordPolicyV3InitParameters) DeepCopy() *PasswordPolicyV3InitParameters { + if in == nil { + return nil + } + out := new(PasswordPolicyV3InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PasswordPolicyV3List) DeepCopyInto(out *PasswordPolicyV3List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]PasswordPolicyV3, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PasswordPolicyV3List. +func (in *PasswordPolicyV3List) DeepCopy() *PasswordPolicyV3List { + if in == nil { + return nil + } + out := new(PasswordPolicyV3List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PasswordPolicyV3List) 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 *PasswordPolicyV3Observation) DeepCopyInto(out *PasswordPolicyV3Observation) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.MaximumConsecutiveIdenticalChars != nil { + in, out := &in.MaximumConsecutiveIdenticalChars, &out.MaximumConsecutiveIdenticalChars + *out = new(float64) + **out = **in + } + if in.MaximumPasswordLength != nil { + in, out := &in.MaximumPasswordLength, &out.MaximumPasswordLength + *out = new(float64) + **out = **in + } + if in.MinimumPasswordAge != nil { + in, out := &in.MinimumPasswordAge, &out.MinimumPasswordAge + *out = new(float64) + **out = **in + } + if in.MinimumPasswordLength != nil { + in, out := &in.MinimumPasswordLength, &out.MinimumPasswordLength + *out = new(float64) + **out = **in + } + if in.NumberOfRecentPasswordsDisallowed != nil { + in, out := &in.NumberOfRecentPasswordsDisallowed, &out.NumberOfRecentPasswordsDisallowed + *out = new(float64) + **out = **in + } + if in.PasswordNotUsernameOrInvert != nil { + in, out := &in.PasswordNotUsernameOrInvert, &out.PasswordNotUsernameOrInvert + *out = new(bool) + **out = **in + } + if in.PasswordRequirements != nil { + in, out := &in.PasswordRequirements, &out.PasswordRequirements + *out = new(string) + **out = **in + } + if in.PasswordValidityPeriod != nil { + in, out := &in.PasswordValidityPeriod, &out.PasswordValidityPeriod + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PasswordPolicyV3Observation. +func (in *PasswordPolicyV3Observation) DeepCopy() *PasswordPolicyV3Observation { + if in == nil { + return nil + } + out := new(PasswordPolicyV3Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PasswordPolicyV3Parameters) DeepCopyInto(out *PasswordPolicyV3Parameters) { + *out = *in + if in.MaximumConsecutiveIdenticalChars != nil { + in, out := &in.MaximumConsecutiveIdenticalChars, &out.MaximumConsecutiveIdenticalChars + *out = new(float64) + **out = **in + } + if in.MinimumPasswordAge != nil { + in, out := &in.MinimumPasswordAge, &out.MinimumPasswordAge + *out = new(float64) + **out = **in + } + if in.MinimumPasswordLength != nil { + in, out := &in.MinimumPasswordLength, &out.MinimumPasswordLength + *out = new(float64) + **out = **in + } + if in.NumberOfRecentPasswordsDisallowed != nil { + in, out := &in.NumberOfRecentPasswordsDisallowed, &out.NumberOfRecentPasswordsDisallowed + *out = new(float64) + **out = **in + } + if in.PasswordNotUsernameOrInvert != nil { + in, out := &in.PasswordNotUsernameOrInvert, &out.PasswordNotUsernameOrInvert + *out = new(bool) + **out = **in + } + if in.PasswordValidityPeriod != nil { + in, out := &in.PasswordValidityPeriod, &out.PasswordValidityPeriod + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PasswordPolicyV3Parameters. +func (in *PasswordPolicyV3Parameters) DeepCopy() *PasswordPolicyV3Parameters { + if in == nil { + return nil + } + out := new(PasswordPolicyV3Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PasswordPolicyV3Spec) DeepCopyInto(out *PasswordPolicyV3Spec) { + *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 PasswordPolicyV3Spec. +func (in *PasswordPolicyV3Spec) DeepCopy() *PasswordPolicyV3Spec { + if in == nil { + return nil + } + out := new(PasswordPolicyV3Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PasswordPolicyV3Status) DeepCopyInto(out *PasswordPolicyV3Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PasswordPolicyV3Status. +func (in *PasswordPolicyV3Status) DeepCopy() *PasswordPolicyV3Status { + if in == nil { + return nil + } + out := new(PasswordPolicyV3Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectRoleInitParameters) DeepCopyInto(out *ProjectRoleInitParameters) { + *out = *in + if in.Project != nil { + in, out := &in.Project, &out.Project + *out = new(string) + **out = **in + } + if in.Roles != nil { + in, out := &in.Roles, &out.Roles + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectRoleInitParameters. +func (in *ProjectRoleInitParameters) DeepCopy() *ProjectRoleInitParameters { + if in == nil { + return nil + } + out := new(ProjectRoleInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectRoleObservation) DeepCopyInto(out *ProjectRoleObservation) { + *out = *in + if in.Project != nil { + in, out := &in.Project, &out.Project + *out = new(string) + **out = **in + } + if in.Roles != nil { + in, out := &in.Roles, &out.Roles + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectRoleObservation. +func (in *ProjectRoleObservation) DeepCopy() *ProjectRoleObservation { + if in == nil { + return nil + } + out := new(ProjectRoleObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectRoleParameters) DeepCopyInto(out *ProjectRoleParameters) { + *out = *in + if in.Project != nil { + in, out := &in.Project, &out.Project + *out = new(string) + **out = **in + } + if in.Roles != nil { + in, out := &in.Roles, &out.Roles + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectRoleParameters. +func (in *ProjectRoleParameters) DeepCopy() *ProjectRoleParameters { + if in == nil { + return nil + } + out := new(ProjectRoleParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectV3) DeepCopyInto(out *ProjectV3) { + *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 ProjectV3. +func (in *ProjectV3) DeepCopy() *ProjectV3 { + if in == nil { + return nil + } + out := new(ProjectV3) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ProjectV3) 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 *ProjectV3InitParameters) DeepCopyInto(out *ProjectV3InitParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.DomainID != nil { + in, out := &in.DomainID, &out.DomainID + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.ParentID != nil { + in, out := &in.ParentID, &out.ParentID + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectV3InitParameters. +func (in *ProjectV3InitParameters) DeepCopy() *ProjectV3InitParameters { + if in == nil { + return nil + } + out := new(ProjectV3InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectV3List) DeepCopyInto(out *ProjectV3List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ProjectV3, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectV3List. +func (in *ProjectV3List) DeepCopy() *ProjectV3List { + if in == nil { + return nil + } + out := new(ProjectV3List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ProjectV3List) 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 *ProjectV3Observation) DeepCopyInto(out *ProjectV3Observation) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.DomainID != nil { + in, out := &in.DomainID, &out.DomainID + *out = new(string) + **out = **in + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.IsDomain != nil { + in, out := &in.IsDomain, &out.IsDomain + *out = new(bool) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.ParentID != nil { + in, out := &in.ParentID, &out.ParentID + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectV3Observation. +func (in *ProjectV3Observation) DeepCopy() *ProjectV3Observation { + if in == nil { + return nil + } + out := new(ProjectV3Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectV3Parameters) DeepCopyInto(out *ProjectV3Parameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.DomainID != nil { + in, out := &in.DomainID, &out.DomainID + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.ParentID != nil { + in, out := &in.ParentID, &out.ParentID + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectV3Parameters. +func (in *ProjectV3Parameters) DeepCopy() *ProjectV3Parameters { + if in == nil { + return nil + } + out := new(ProjectV3Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectV3Spec) DeepCopyInto(out *ProjectV3Spec) { + *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 ProjectV3Spec. +func (in *ProjectV3Spec) DeepCopy() *ProjectV3Spec { + if in == nil { + return nil + } + out := new(ProjectV3Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProjectV3Status) DeepCopyInto(out *ProjectV3Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProjectV3Status. +func (in *ProjectV3Status) DeepCopy() *ProjectV3Status { + if in == nil { + return nil + } + out := new(ProjectV3Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProtectionPolicyV3) DeepCopyInto(out *ProtectionPolicyV3) { + *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 ProtectionPolicyV3. +func (in *ProtectionPolicyV3) DeepCopy() *ProtectionPolicyV3 { + if in == nil { + return nil + } + out := new(ProtectionPolicyV3) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ProtectionPolicyV3) 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 *ProtectionPolicyV3InitParameters) DeepCopyInto(out *ProtectionPolicyV3InitParameters) { + *out = *in + if in.EnableOperationProtectionPolicy != nil { + in, out := &in.EnableOperationProtectionPolicy, &out.EnableOperationProtectionPolicy + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProtectionPolicyV3InitParameters. +func (in *ProtectionPolicyV3InitParameters) DeepCopy() *ProtectionPolicyV3InitParameters { + if in == nil { + return nil + } + out := new(ProtectionPolicyV3InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProtectionPolicyV3List) DeepCopyInto(out *ProtectionPolicyV3List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ProtectionPolicyV3, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProtectionPolicyV3List. +func (in *ProtectionPolicyV3List) DeepCopy() *ProtectionPolicyV3List { + if in == nil { + return nil + } + out := new(ProtectionPolicyV3List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ProtectionPolicyV3List) 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 *ProtectionPolicyV3Observation) DeepCopyInto(out *ProtectionPolicyV3Observation) { + *out = *in + if in.EnableOperationProtectionPolicy != nil { + in, out := &in.EnableOperationProtectionPolicy, &out.EnableOperationProtectionPolicy + *out = new(bool) + **out = **in + } + 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 ProtectionPolicyV3Observation. +func (in *ProtectionPolicyV3Observation) DeepCopy() *ProtectionPolicyV3Observation { + if in == nil { + return nil + } + out := new(ProtectionPolicyV3Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProtectionPolicyV3Parameters) DeepCopyInto(out *ProtectionPolicyV3Parameters) { + *out = *in + if in.EnableOperationProtectionPolicy != nil { + in, out := &in.EnableOperationProtectionPolicy, &out.EnableOperationProtectionPolicy + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProtectionPolicyV3Parameters. +func (in *ProtectionPolicyV3Parameters) DeepCopy() *ProtectionPolicyV3Parameters { + if in == nil { + return nil + } + out := new(ProtectionPolicyV3Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProtectionPolicyV3Spec) DeepCopyInto(out *ProtectionPolicyV3Spec) { + *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 ProtectionPolicyV3Spec. +func (in *ProtectionPolicyV3Spec) DeepCopy() *ProtectionPolicyV3Spec { + if in == nil { + return nil + } + out := new(ProtectionPolicyV3Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProtectionPolicyV3Status) DeepCopyInto(out *ProtectionPolicyV3Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProtectionPolicyV3Status. +func (in *ProtectionPolicyV3Status) DeepCopy() *ProtectionPolicyV3Status { + if in == nil { + return nil + } + out := new(ProtectionPolicyV3Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProtocolV3) DeepCopyInto(out *ProtocolV3) { + *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 ProtocolV3. +func (in *ProtocolV3) DeepCopy() *ProtocolV3 { + if in == nil { + return nil + } + out := new(ProtocolV3) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ProtocolV3) 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 *ProtocolV3InitParameters) DeepCopyInto(out *ProtocolV3InitParameters) { + *out = *in + if in.AccessConfig != nil { + in, out := &in.AccessConfig, &out.AccessConfig + *out = make([]AccessConfigInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.MappingID != nil { + in, out := &in.MappingID, &out.MappingID + *out = new(string) + **out = **in + } + if in.Metadata != nil { + in, out := &in.Metadata, &out.Metadata + *out = make([]MetadataInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Protocol != nil { + in, out := &in.Protocol, &out.Protocol + *out = new(string) + **out = **in + } + if in.ProviderID != nil { + in, out := &in.ProviderID, &out.ProviderID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProtocolV3InitParameters. +func (in *ProtocolV3InitParameters) DeepCopy() *ProtocolV3InitParameters { + if in == nil { + return nil + } + out := new(ProtocolV3InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProtocolV3List) DeepCopyInto(out *ProtocolV3List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ProtocolV3, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProtocolV3List. +func (in *ProtocolV3List) DeepCopy() *ProtocolV3List { + if in == nil { + return nil + } + out := new(ProtocolV3List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ProtocolV3List) 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 *ProtocolV3Observation) DeepCopyInto(out *ProtocolV3Observation) { + *out = *in + if in.AccessConfig != nil { + in, out := &in.AccessConfig, &out.AccessConfig + *out = make([]AccessConfigObservation, 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.Links != nil { + in, out := &in.Links, &out.Links + *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.MappingID != nil { + in, out := &in.MappingID, &out.MappingID + *out = new(string) + **out = **in + } + if in.Metadata != nil { + in, out := &in.Metadata, &out.Metadata + *out = make([]MetadataObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Protocol != nil { + in, out := &in.Protocol, &out.Protocol + *out = new(string) + **out = **in + } + if in.ProviderID != nil { + in, out := &in.ProviderID, &out.ProviderID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProtocolV3Observation. +func (in *ProtocolV3Observation) DeepCopy() *ProtocolV3Observation { + if in == nil { + return nil + } + out := new(ProtocolV3Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProtocolV3Parameters) DeepCopyInto(out *ProtocolV3Parameters) { + *out = *in + if in.AccessConfig != nil { + in, out := &in.AccessConfig, &out.AccessConfig + *out = make([]AccessConfigParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.MappingID != nil { + in, out := &in.MappingID, &out.MappingID + *out = new(string) + **out = **in + } + if in.Metadata != nil { + in, out := &in.Metadata, &out.Metadata + *out = make([]MetadataParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Protocol != nil { + in, out := &in.Protocol, &out.Protocol + *out = new(string) + **out = **in + } + if in.ProviderID != nil { + in, out := &in.ProviderID, &out.ProviderID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProtocolV3Parameters. +func (in *ProtocolV3Parameters) DeepCopy() *ProtocolV3Parameters { + if in == nil { + return nil + } + out := new(ProtocolV3Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProtocolV3Spec) DeepCopyInto(out *ProtocolV3Spec) { + *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 ProtocolV3Spec. +func (in *ProtocolV3Spec) DeepCopy() *ProtocolV3Spec { + if in == nil { + return nil + } + out := new(ProtocolV3Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProtocolV3Status) DeepCopyInto(out *ProtocolV3Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProtocolV3Status. +func (in *ProtocolV3Status) DeepCopy() *ProtocolV3Status { + if in == nil { + return nil + } + out := new(ProtocolV3Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Provider) DeepCopyInto(out *Provider) { + *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 Provider. +func (in *Provider) DeepCopy() *Provider { + if in == nil { + return nil + } + out := new(Provider) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Provider) 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 *ProviderAccessConfigInitParameters) DeepCopyInto(out *ProviderAccessConfigInitParameters) { + *out = *in + if in.AccessType != nil { + in, out := &in.AccessType, &out.AccessType + *out = new(string) + **out = **in + } + if in.AuthorizationEndpoint != nil { + in, out := &in.AuthorizationEndpoint, &out.AuthorizationEndpoint + *out = new(string) + **out = **in + } + if in.ClientID != nil { + in, out := &in.ClientID, &out.ClientID + *out = new(string) + **out = **in + } + if in.ProviderURL != nil { + in, out := &in.ProviderURL, &out.ProviderURL + *out = new(string) + **out = **in + } + if in.ResponseMode != nil { + in, out := &in.ResponseMode, &out.ResponseMode + *out = new(string) + **out = **in + } + if in.ResponseType != nil { + in, out := &in.ResponseType, &out.ResponseType + *out = new(string) + **out = **in + } + if in.Scopes != nil { + in, out := &in.Scopes, &out.Scopes + *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.SigningKey != nil { + in, out := &in.SigningKey, &out.SigningKey + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderAccessConfigInitParameters. +func (in *ProviderAccessConfigInitParameters) DeepCopy() *ProviderAccessConfigInitParameters { + if in == nil { + return nil + } + out := new(ProviderAccessConfigInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProviderAccessConfigObservation) DeepCopyInto(out *ProviderAccessConfigObservation) { + *out = *in + if in.AccessType != nil { + in, out := &in.AccessType, &out.AccessType + *out = new(string) + **out = **in + } + if in.AuthorizationEndpoint != nil { + in, out := &in.AuthorizationEndpoint, &out.AuthorizationEndpoint + *out = new(string) + **out = **in + } + if in.ClientID != nil { + in, out := &in.ClientID, &out.ClientID + *out = new(string) + **out = **in + } + if in.ProviderURL != nil { + in, out := &in.ProviderURL, &out.ProviderURL + *out = new(string) + **out = **in + } + if in.ResponseMode != nil { + in, out := &in.ResponseMode, &out.ResponseMode + *out = new(string) + **out = **in + } + if in.ResponseType != nil { + in, out := &in.ResponseType, &out.ResponseType + *out = new(string) + **out = **in + } + if in.Scopes != nil { + in, out := &in.Scopes, &out.Scopes + *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.SigningKey != nil { + in, out := &in.SigningKey, &out.SigningKey + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderAccessConfigObservation. +func (in *ProviderAccessConfigObservation) DeepCopy() *ProviderAccessConfigObservation { + if in == nil { + return nil + } + out := new(ProviderAccessConfigObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProviderAccessConfigParameters) DeepCopyInto(out *ProviderAccessConfigParameters) { + *out = *in + if in.AccessType != nil { + in, out := &in.AccessType, &out.AccessType + *out = new(string) + **out = **in + } + if in.AuthorizationEndpoint != nil { + in, out := &in.AuthorizationEndpoint, &out.AuthorizationEndpoint + *out = new(string) + **out = **in + } + if in.ClientID != nil { + in, out := &in.ClientID, &out.ClientID + *out = new(string) + **out = **in + } + if in.ProviderURL != nil { + in, out := &in.ProviderURL, &out.ProviderURL + *out = new(string) + **out = **in + } + if in.ResponseMode != nil { + in, out := &in.ResponseMode, &out.ResponseMode + *out = new(string) + **out = **in + } + if in.ResponseType != nil { + in, out := &in.ResponseType, &out.ResponseType + *out = new(string) + **out = **in + } + if in.Scopes != nil { + in, out := &in.Scopes, &out.Scopes + *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.SigningKey != nil { + in, out := &in.SigningKey, &out.SigningKey + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderAccessConfigParameters. +func (in *ProviderAccessConfigParameters) DeepCopy() *ProviderAccessConfigParameters { + if in == nil { + return nil + } + out := new(ProviderAccessConfigParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProviderInitParameters) DeepCopyInto(out *ProviderInitParameters) { + *out = *in + if in.AccessConfig != nil { + in, out := &in.AccessConfig, &out.AccessConfig + *out = make([]ProviderAccessConfigInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.MappingRules != nil { + in, out := &in.MappingRules, &out.MappingRules + *out = new(string) + **out = **in + } + if in.Metadata != nil { + in, out := &in.Metadata, &out.Metadata + *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.Status != nil { + in, out := &in.Status, &out.Status + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderInitParameters. +func (in *ProviderInitParameters) DeepCopy() *ProviderInitParameters { + if in == nil { + return nil + } + out := new(ProviderInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProviderList) DeepCopyInto(out *ProviderList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Provider, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderList. +func (in *ProviderList) DeepCopy() *ProviderList { + if in == nil { + return nil + } + out := new(ProviderList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ProviderList) 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 *ProviderObservation) DeepCopyInto(out *ProviderObservation) { + *out = *in + if in.AccessConfig != nil { + in, out := &in.AccessConfig, &out.AccessConfig + *out = make([]ProviderAccessConfigObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ConversionRules != nil { + in, out := &in.ConversionRules, &out.ConversionRules + *out = make([]ConversionRulesObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + 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.Links != nil { + in, out := &in.Links, &out.Links + *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.LoginLink != nil { + in, out := &in.LoginLink, &out.LoginLink + *out = new(string) + **out = **in + } + if in.MappingRules != nil { + in, out := &in.MappingRules, &out.MappingRules + *out = new(string) + **out = **in + } + if in.Metadata != nil { + in, out := &in.Metadata, &out.Metadata + *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.Status != nil { + in, out := &in.Status, &out.Status + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderObservation. +func (in *ProviderObservation) DeepCopy() *ProviderObservation { + if in == nil { + return nil + } + out := new(ProviderObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProviderParameters) DeepCopyInto(out *ProviderParameters) { + *out = *in + if in.AccessConfig != nil { + in, out := &in.AccessConfig, &out.AccessConfig + *out = make([]ProviderAccessConfigParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.MappingRules != nil { + in, out := &in.MappingRules, &out.MappingRules + *out = new(string) + **out = **in + } + if in.Metadata != nil { + in, out := &in.Metadata, &out.Metadata + *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.Status != nil { + in, out := &in.Status, &out.Status + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderParameters. +func (in *ProviderParameters) DeepCopy() *ProviderParameters { + if in == nil { + return nil + } + out := new(ProviderParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProviderSpec) DeepCopyInto(out *ProviderSpec) { + *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 ProviderSpec. +func (in *ProviderSpec) DeepCopy() *ProviderSpec { + if in == nil { + return nil + } + out := new(ProviderSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProviderStatus) DeepCopyInto(out *ProviderStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderStatus. +func (in *ProviderStatus) DeepCopy() *ProviderStatus { + if in == nil { + return nil + } + out := new(ProviderStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProviderV3) DeepCopyInto(out *ProviderV3) { + *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 ProviderV3. +func (in *ProviderV3) DeepCopy() *ProviderV3 { + if in == nil { + return nil + } + out := new(ProviderV3) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ProviderV3) 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 *ProviderV3InitParameters) DeepCopyInto(out *ProviderV3InitParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderV3InitParameters. +func (in *ProviderV3InitParameters) DeepCopy() *ProviderV3InitParameters { + if in == nil { + return nil + } + out := new(ProviderV3InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProviderV3List) DeepCopyInto(out *ProviderV3List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ProviderV3, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderV3List. +func (in *ProviderV3List) DeepCopy() *ProviderV3List { + if in == nil { + return nil + } + out := new(ProviderV3List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ProviderV3List) 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 *ProviderV3Observation) DeepCopyInto(out *ProviderV3Observation) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Links != nil { + in, out := &in.Links, &out.Links + *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.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.RemoteIds != nil { + in, out := &in.RemoteIds, &out.RemoteIds + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderV3Observation. +func (in *ProviderV3Observation) DeepCopy() *ProviderV3Observation { + if in == nil { + return nil + } + out := new(ProviderV3Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProviderV3Parameters) DeepCopyInto(out *ProviderV3Parameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderV3Parameters. +func (in *ProviderV3Parameters) DeepCopy() *ProviderV3Parameters { + if in == nil { + return nil + } + out := new(ProviderV3Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProviderV3Spec) DeepCopyInto(out *ProviderV3Spec) { + *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 ProviderV3Spec. +func (in *ProviderV3Spec) DeepCopy() *ProviderV3Spec { + if in == nil { + return nil + } + out := new(ProviderV3Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ProviderV3Status) DeepCopyInto(out *ProviderV3Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderV3Status. +func (in *ProviderV3Status) DeepCopy() *ProviderV3Status { + if in == nil { + return nil + } + out := new(ProviderV3Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RemoteInitParameters) DeepCopyInto(out *RemoteInitParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RemoteInitParameters. +func (in *RemoteInitParameters) DeepCopy() *RemoteInitParameters { + if in == nil { + return nil + } + out := new(RemoteInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RemoteObservation) DeepCopyInto(out *RemoteObservation) { + *out = *in + if in.Attribute != nil { + in, out := &in.Attribute, &out.Attribute + *out = new(string) + **out = **in + } + if in.Condition != nil { + in, out := &in.Condition, &out.Condition + *out = new(string) + **out = **in + } + if in.Value != nil { + in, out := &in.Value, &out.Value + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RemoteObservation. +func (in *RemoteObservation) DeepCopy() *RemoteObservation { + if in == nil { + return nil + } + out := new(RemoteObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RemoteParameters) DeepCopyInto(out *RemoteParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RemoteParameters. +func (in *RemoteParameters) DeepCopy() *RemoteParameters { + if in == nil { + return nil + } + out := new(RemoteParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RoleAssignmentV3) DeepCopyInto(out *RoleAssignmentV3) { + *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 RoleAssignmentV3. +func (in *RoleAssignmentV3) DeepCopy() *RoleAssignmentV3 { + if in == nil { + return nil + } + out := new(RoleAssignmentV3) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *RoleAssignmentV3) 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 *RoleAssignmentV3InitParameters) DeepCopyInto(out *RoleAssignmentV3InitParameters) { + *out = *in + if in.AllProjects != nil { + in, out := &in.AllProjects, &out.AllProjects + *out = new(bool) + **out = **in + } + if in.DomainID != nil { + in, out := &in.DomainID, &out.DomainID + *out = new(string) + **out = **in + } + if in.GroupID != nil { + in, out := &in.GroupID, &out.GroupID + *out = new(string) + **out = **in + } + if in.RoleID != nil { + in, out := &in.RoleID, &out.RoleID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleAssignmentV3InitParameters. +func (in *RoleAssignmentV3InitParameters) DeepCopy() *RoleAssignmentV3InitParameters { + if in == nil { + return nil + } + out := new(RoleAssignmentV3InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RoleAssignmentV3List) DeepCopyInto(out *RoleAssignmentV3List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]RoleAssignmentV3, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleAssignmentV3List. +func (in *RoleAssignmentV3List) DeepCopy() *RoleAssignmentV3List { + if in == nil { + return nil + } + out := new(RoleAssignmentV3List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *RoleAssignmentV3List) 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 *RoleAssignmentV3Observation) DeepCopyInto(out *RoleAssignmentV3Observation) { + *out = *in + if in.AllProjects != nil { + in, out := &in.AllProjects, &out.AllProjects + *out = new(bool) + **out = **in + } + if in.DomainID != nil { + in, out := &in.DomainID, &out.DomainID + *out = new(string) + **out = **in + } + if in.GroupID != nil { + in, out := &in.GroupID, &out.GroupID + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.ProjectID != nil { + in, out := &in.ProjectID, &out.ProjectID + *out = new(string) + **out = **in + } + if in.RoleID != nil { + in, out := &in.RoleID, &out.RoleID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleAssignmentV3Observation. +func (in *RoleAssignmentV3Observation) DeepCopy() *RoleAssignmentV3Observation { + if in == nil { + return nil + } + out := new(RoleAssignmentV3Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RoleAssignmentV3Parameters) DeepCopyInto(out *RoleAssignmentV3Parameters) { + *out = *in + if in.AllProjects != nil { + in, out := &in.AllProjects, &out.AllProjects + *out = new(bool) + **out = **in + } + if in.DomainID != nil { + in, out := &in.DomainID, &out.DomainID + *out = new(string) + **out = **in + } + if in.GroupID != nil { + in, out := &in.GroupID, &out.GroupID + *out = new(string) + **out = **in + } + 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.RoleID != nil { + in, out := &in.RoleID, &out.RoleID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleAssignmentV3Parameters. +func (in *RoleAssignmentV3Parameters) DeepCopy() *RoleAssignmentV3Parameters { + if in == nil { + return nil + } + out := new(RoleAssignmentV3Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RoleAssignmentV3Spec) DeepCopyInto(out *RoleAssignmentV3Spec) { + *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 RoleAssignmentV3Spec. +func (in *RoleAssignmentV3Spec) DeepCopy() *RoleAssignmentV3Spec { + if in == nil { + return nil + } + out := new(RoleAssignmentV3Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RoleAssignmentV3Status) DeepCopyInto(out *RoleAssignmentV3Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleAssignmentV3Status. +func (in *RoleAssignmentV3Status) DeepCopy() *RoleAssignmentV3Status { + if in == nil { + return nil + } + out := new(RoleAssignmentV3Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RoleV3) DeepCopyInto(out *RoleV3) { + *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 RoleV3. +func (in *RoleV3) DeepCopy() *RoleV3 { + if in == nil { + return nil + } + out := new(RoleV3) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *RoleV3) 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 *RoleV3InitParameters) DeepCopyInto(out *RoleV3InitParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.DisplayLayer != nil { + in, out := &in.DisplayLayer, &out.DisplayLayer + *out = new(string) + **out = **in + } + if in.DisplayName != nil { + in, out := &in.DisplayName, &out.DisplayName + *out = new(string) + **out = **in + } + if in.Statement != nil { + in, out := &in.Statement, &out.Statement + *out = make([]StatementInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleV3InitParameters. +func (in *RoleV3InitParameters) DeepCopy() *RoleV3InitParameters { + if in == nil { + return nil + } + out := new(RoleV3InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RoleV3List) DeepCopyInto(out *RoleV3List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]RoleV3, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleV3List. +func (in *RoleV3List) DeepCopy() *RoleV3List { + if in == nil { + return nil + } + out := new(RoleV3List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *RoleV3List) 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 *RoleV3Observation) DeepCopyInto(out *RoleV3Observation) { + *out = *in + if in.Catalog != nil { + in, out := &in.Catalog, &out.Catalog + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.DisplayLayer != nil { + in, out := &in.DisplayLayer, &out.DisplayLayer + *out = new(string) + **out = **in + } + if in.DisplayName != nil { + in, out := &in.DisplayName, &out.DisplayName + *out = new(string) + **out = **in + } + if in.DomainID != nil { + in, out := &in.DomainID, &out.DomainID + *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.Statement != nil { + in, out := &in.Statement, &out.Statement + *out = make([]StatementObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleV3Observation. +func (in *RoleV3Observation) DeepCopy() *RoleV3Observation { + if in == nil { + return nil + } + out := new(RoleV3Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RoleV3Parameters) DeepCopyInto(out *RoleV3Parameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.DisplayLayer != nil { + in, out := &in.DisplayLayer, &out.DisplayLayer + *out = new(string) + **out = **in + } + if in.DisplayName != nil { + in, out := &in.DisplayName, &out.DisplayName + *out = new(string) + **out = **in + } + if in.Statement != nil { + in, out := &in.Statement, &out.Statement + *out = make([]StatementParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleV3Parameters. +func (in *RoleV3Parameters) DeepCopy() *RoleV3Parameters { + if in == nil { + return nil + } + out := new(RoleV3Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RoleV3Spec) DeepCopyInto(out *RoleV3Spec) { + *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 RoleV3Spec. +func (in *RoleV3Spec) DeepCopy() *RoleV3Spec { + if in == nil { + return nil + } + out := new(RoleV3Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RoleV3Status) DeepCopyInto(out *RoleV3Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RoleV3Status. +func (in *RoleV3Status) DeepCopy() *RoleV3Status { + if in == nil { + return nil + } + out := new(RoleV3Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *StatementInitParameters) DeepCopyInto(out *StatementInitParameters) { + *out = *in + if in.Action != nil { + in, out := &in.Action, &out.Action + *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.Condition != nil { + in, out := &in.Condition, &out.Condition + *out = new(string) + **out = **in + } + if in.Effect != nil { + in, out := &in.Effect, &out.Effect + *out = new(string) + **out = **in + } + if in.Resource != nil { + in, out := &in.Resource, &out.Resource + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatementInitParameters. +func (in *StatementInitParameters) DeepCopy() *StatementInitParameters { + if in == nil { + return nil + } + out := new(StatementInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *StatementObservation) DeepCopyInto(out *StatementObservation) { + *out = *in + if in.Action != nil { + in, out := &in.Action, &out.Action + *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.Condition != nil { + in, out := &in.Condition, &out.Condition + *out = new(string) + **out = **in + } + if in.Effect != nil { + in, out := &in.Effect, &out.Effect + *out = new(string) + **out = **in + } + if in.Resource != nil { + in, out := &in.Resource, &out.Resource + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatementObservation. +func (in *StatementObservation) DeepCopy() *StatementObservation { + if in == nil { + return nil + } + out := new(StatementObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *StatementParameters) DeepCopyInto(out *StatementParameters) { + *out = *in + if in.Action != nil { + in, out := &in.Action, &out.Action + *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.Condition != nil { + in, out := &in.Condition, &out.Condition + *out = new(string) + **out = **in + } + if in.Effect != nil { + in, out := &in.Effect, &out.Effect + *out = new(string) + **out = **in + } + if in.Resource != nil { + in, out := &in.Resource, &out.Resource + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new StatementParameters. +func (in *StatementParameters) DeepCopy() *StatementParameters { + if in == nil { + return nil + } + out := new(StatementParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UserGroupMembershipV3) DeepCopyInto(out *UserGroupMembershipV3) { + *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 UserGroupMembershipV3. +func (in *UserGroupMembershipV3) DeepCopy() *UserGroupMembershipV3 { + if in == nil { + return nil + } + out := new(UserGroupMembershipV3) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *UserGroupMembershipV3) 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 *UserGroupMembershipV3InitParameters) DeepCopyInto(out *UserGroupMembershipV3InitParameters) { + *out = *in + if in.Groups != nil { + in, out := &in.Groups, &out.Groups + *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.User != nil { + in, out := &in.User, &out.User + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserGroupMembershipV3InitParameters. +func (in *UserGroupMembershipV3InitParameters) DeepCopy() *UserGroupMembershipV3InitParameters { + if in == nil { + return nil + } + out := new(UserGroupMembershipV3InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UserGroupMembershipV3List) DeepCopyInto(out *UserGroupMembershipV3List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]UserGroupMembershipV3, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserGroupMembershipV3List. +func (in *UserGroupMembershipV3List) DeepCopy() *UserGroupMembershipV3List { + if in == nil { + return nil + } + out := new(UserGroupMembershipV3List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *UserGroupMembershipV3List) 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 *UserGroupMembershipV3Observation) DeepCopyInto(out *UserGroupMembershipV3Observation) { + *out = *in + if in.Groups != nil { + in, out := &in.Groups, &out.Groups + *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.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.User != nil { + in, out := &in.User, &out.User + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserGroupMembershipV3Observation. +func (in *UserGroupMembershipV3Observation) DeepCopy() *UserGroupMembershipV3Observation { + if in == nil { + return nil + } + out := new(UserGroupMembershipV3Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UserGroupMembershipV3Parameters) DeepCopyInto(out *UserGroupMembershipV3Parameters) { + *out = *in + if in.Groups != nil { + in, out := &in.Groups, &out.Groups + *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.User != nil { + in, out := &in.User, &out.User + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserGroupMembershipV3Parameters. +func (in *UserGroupMembershipV3Parameters) DeepCopy() *UserGroupMembershipV3Parameters { + if in == nil { + return nil + } + out := new(UserGroupMembershipV3Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UserGroupMembershipV3Spec) DeepCopyInto(out *UserGroupMembershipV3Spec) { + *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 UserGroupMembershipV3Spec. +func (in *UserGroupMembershipV3Spec) DeepCopy() *UserGroupMembershipV3Spec { + if in == nil { + return nil + } + out := new(UserGroupMembershipV3Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UserGroupMembershipV3Status) DeepCopyInto(out *UserGroupMembershipV3Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserGroupMembershipV3Status. +func (in *UserGroupMembershipV3Status) DeepCopy() *UserGroupMembershipV3Status { + if in == nil { + return nil + } + out := new(UserGroupMembershipV3Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UserV3) DeepCopyInto(out *UserV3) { + *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 UserV3. +func (in *UserV3) DeepCopy() *UserV3 { + if in == nil { + return nil + } + out := new(UserV3) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *UserV3) 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 *UserV3InitParameters) DeepCopyInto(out *UserV3InitParameters) { + *out = *in + if in.AccessType != nil { + in, out := &in.AccessType, &out.AccessType + *out = new(string) + **out = **in + } + if in.CountryCode != nil { + in, out := &in.CountryCode, &out.CountryCode + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Email != nil { + in, out := &in.Email, &out.Email + *out = new(string) + **out = **in + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.LoginProtection != nil { + in, out := &in.LoginProtection, &out.LoginProtection + *out = make([]LoginProtectionInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Phone != nil { + in, out := &in.Phone, &out.Phone + *out = new(string) + **out = **in + } + if in.PwdReset != nil { + in, out := &in.PwdReset, &out.PwdReset + *out = new(bool) + **out = **in + } + if in.SendWelcomeEmail != nil { + in, out := &in.SendWelcomeEmail, &out.SendWelcomeEmail + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserV3InitParameters. +func (in *UserV3InitParameters) DeepCopy() *UserV3InitParameters { + if in == nil { + return nil + } + out := new(UserV3InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UserV3List) DeepCopyInto(out *UserV3List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]UserV3, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserV3List. +func (in *UserV3List) DeepCopy() *UserV3List { + if in == nil { + return nil + } + out := new(UserV3List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *UserV3List) 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 *UserV3Observation) DeepCopyInto(out *UserV3Observation) { + *out = *in + if in.AccessType != nil { + in, out := &in.AccessType, &out.AccessType + *out = new(string) + **out = **in + } + if in.CountryCode != nil { + in, out := &in.CountryCode, &out.CountryCode + *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.DomainID != nil { + in, out := &in.DomainID, &out.DomainID + *out = new(string) + **out = **in + } + if in.Email != nil { + in, out := &in.Email, &out.Email + *out = new(string) + **out = **in + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.LastLogin != nil { + in, out := &in.LastLogin, &out.LastLogin + *out = new(string) + **out = **in + } + if in.LoginProtection != nil { + in, out := &in.LoginProtection, &out.LoginProtection + *out = make([]LoginProtectionObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PasswordStrength != nil { + in, out := &in.PasswordStrength, &out.PasswordStrength + *out = new(string) + **out = **in + } + if in.Phone != nil { + in, out := &in.Phone, &out.Phone + *out = new(string) + **out = **in + } + if in.PwdReset != nil { + in, out := &in.PwdReset, &out.PwdReset + *out = new(bool) + **out = **in + } + if in.SendWelcomeEmail != nil { + in, out := &in.SendWelcomeEmail, &out.SendWelcomeEmail + *out = new(bool) + **out = **in + } + if in.XuserID != nil { + in, out := &in.XuserID, &out.XuserID + *out = new(string) + **out = **in + } + if in.XuserType != nil { + in, out := &in.XuserType, &out.XuserType + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserV3Observation. +func (in *UserV3Observation) DeepCopy() *UserV3Observation { + if in == nil { + return nil + } + out := new(UserV3Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UserV3Parameters) DeepCopyInto(out *UserV3Parameters) { + *out = *in + if in.AccessType != nil { + in, out := &in.AccessType, &out.AccessType + *out = new(string) + **out = **in + } + if in.CountryCode != nil { + in, out := &in.CountryCode, &out.CountryCode + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Email != nil { + in, out := &in.Email, &out.Email + *out = new(string) + **out = **in + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.LoginProtection != nil { + in, out := &in.LoginProtection, &out.LoginProtection + *out = make([]LoginProtectionParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PasswordSecretRef != nil { + in, out := &in.PasswordSecretRef, &out.PasswordSecretRef + *out = new(v1.SecretKeySelector) + **out = **in + } + if in.Phone != nil { + in, out := &in.Phone, &out.Phone + *out = new(string) + **out = **in + } + if in.PwdReset != nil { + in, out := &in.PwdReset, &out.PwdReset + *out = new(bool) + **out = **in + } + if in.SendWelcomeEmail != nil { + in, out := &in.SendWelcomeEmail, &out.SendWelcomeEmail + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserV3Parameters. +func (in *UserV3Parameters) DeepCopy() *UserV3Parameters { + if in == nil { + return nil + } + out := new(UserV3Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UserV3Spec) DeepCopyInto(out *UserV3Spec) { + *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 UserV3Spec. +func (in *UserV3Spec) DeepCopy() *UserV3Spec { + if in == nil { + return nil + } + out := new(UserV3Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *UserV3Status) DeepCopyInto(out *UserV3Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new UserV3Status. +func (in *UserV3Status) DeepCopy() *UserV3Status { + if in == nil { + return nil + } + out := new(UserV3Status) + in.DeepCopyInto(out) + return out +} diff --git a/apis/identity/v1alpha1/zz_generated.managed.go b/apis/identity/v1alpha1/zz_generated.managed.go new file mode 100644 index 0000000..4aeb547 --- /dev/null +++ b/apis/identity/v1alpha1/zz_generated.managed.go @@ -0,0 +1,968 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import xpv1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + +// GetCondition of this AgencyV3. +func (mg *AgencyV3) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this AgencyV3. +func (mg *AgencyV3) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this AgencyV3. +func (mg *AgencyV3) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this AgencyV3. +func (mg *AgencyV3) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this AgencyV3. +func (mg *AgencyV3) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this AgencyV3. +func (mg *AgencyV3) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this AgencyV3. +func (mg *AgencyV3) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this AgencyV3. +func (mg *AgencyV3) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this AgencyV3. +func (mg *AgencyV3) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this AgencyV3. +func (mg *AgencyV3) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this AgencyV3. +func (mg *AgencyV3) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this AgencyV3. +func (mg *AgencyV3) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this CredentialV3. +func (mg *CredentialV3) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this CredentialV3. +func (mg *CredentialV3) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this CredentialV3. +func (mg *CredentialV3) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this CredentialV3. +func (mg *CredentialV3) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this CredentialV3. +func (mg *CredentialV3) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this CredentialV3. +func (mg *CredentialV3) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this CredentialV3. +func (mg *CredentialV3) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this CredentialV3. +func (mg *CredentialV3) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this CredentialV3. +func (mg *CredentialV3) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this CredentialV3. +func (mg *CredentialV3) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this CredentialV3. +func (mg *CredentialV3) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this CredentialV3. +func (mg *CredentialV3) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this GroupMembershipV3. +func (mg *GroupMembershipV3) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this GroupMembershipV3. +func (mg *GroupMembershipV3) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this GroupMembershipV3. +func (mg *GroupMembershipV3) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this GroupMembershipV3. +func (mg *GroupMembershipV3) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this GroupMembershipV3. +func (mg *GroupMembershipV3) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this GroupMembershipV3. +func (mg *GroupMembershipV3) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this GroupMembershipV3. +func (mg *GroupMembershipV3) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this GroupMembershipV3. +func (mg *GroupMembershipV3) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this GroupMembershipV3. +func (mg *GroupMembershipV3) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this GroupMembershipV3. +func (mg *GroupMembershipV3) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this GroupMembershipV3. +func (mg *GroupMembershipV3) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this GroupMembershipV3. +func (mg *GroupMembershipV3) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this GroupV3. +func (mg *GroupV3) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this GroupV3. +func (mg *GroupV3) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this GroupV3. +func (mg *GroupV3) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this GroupV3. +func (mg *GroupV3) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this GroupV3. +func (mg *GroupV3) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this GroupV3. +func (mg *GroupV3) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this GroupV3. +func (mg *GroupV3) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this GroupV3. +func (mg *GroupV3) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this GroupV3. +func (mg *GroupV3) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this GroupV3. +func (mg *GroupV3) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this GroupV3. +func (mg *GroupV3) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this GroupV3. +func (mg *GroupV3) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this LoginPolicyV3. +func (mg *LoginPolicyV3) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this LoginPolicyV3. +func (mg *LoginPolicyV3) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this LoginPolicyV3. +func (mg *LoginPolicyV3) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this LoginPolicyV3. +func (mg *LoginPolicyV3) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this LoginPolicyV3. +func (mg *LoginPolicyV3) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this LoginPolicyV3. +func (mg *LoginPolicyV3) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this LoginPolicyV3. +func (mg *LoginPolicyV3) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this LoginPolicyV3. +func (mg *LoginPolicyV3) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this LoginPolicyV3. +func (mg *LoginPolicyV3) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this LoginPolicyV3. +func (mg *LoginPolicyV3) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this LoginPolicyV3. +func (mg *LoginPolicyV3) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this LoginPolicyV3. +func (mg *LoginPolicyV3) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this MappingV3. +func (mg *MappingV3) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this MappingV3. +func (mg *MappingV3) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this MappingV3. +func (mg *MappingV3) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this MappingV3. +func (mg *MappingV3) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this MappingV3. +func (mg *MappingV3) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this MappingV3. +func (mg *MappingV3) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this MappingV3. +func (mg *MappingV3) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this MappingV3. +func (mg *MappingV3) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this MappingV3. +func (mg *MappingV3) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this MappingV3. +func (mg *MappingV3) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this MappingV3. +func (mg *MappingV3) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this MappingV3. +func (mg *MappingV3) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this PasswordPolicyV3. +func (mg *PasswordPolicyV3) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this PasswordPolicyV3. +func (mg *PasswordPolicyV3) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this PasswordPolicyV3. +func (mg *PasswordPolicyV3) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this PasswordPolicyV3. +func (mg *PasswordPolicyV3) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this PasswordPolicyV3. +func (mg *PasswordPolicyV3) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this PasswordPolicyV3. +func (mg *PasswordPolicyV3) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this PasswordPolicyV3. +func (mg *PasswordPolicyV3) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this PasswordPolicyV3. +func (mg *PasswordPolicyV3) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this PasswordPolicyV3. +func (mg *PasswordPolicyV3) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this PasswordPolicyV3. +func (mg *PasswordPolicyV3) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this PasswordPolicyV3. +func (mg *PasswordPolicyV3) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this PasswordPolicyV3. +func (mg *PasswordPolicyV3) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this ProjectV3. +func (mg *ProjectV3) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this ProjectV3. +func (mg *ProjectV3) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this ProjectV3. +func (mg *ProjectV3) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this ProjectV3. +func (mg *ProjectV3) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this ProjectV3. +func (mg *ProjectV3) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this ProjectV3. +func (mg *ProjectV3) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this ProjectV3. +func (mg *ProjectV3) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this ProjectV3. +func (mg *ProjectV3) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this ProjectV3. +func (mg *ProjectV3) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this ProjectV3. +func (mg *ProjectV3) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this ProjectV3. +func (mg *ProjectV3) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this ProjectV3. +func (mg *ProjectV3) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this ProtectionPolicyV3. +func (mg *ProtectionPolicyV3) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this ProtectionPolicyV3. +func (mg *ProtectionPolicyV3) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this ProtectionPolicyV3. +func (mg *ProtectionPolicyV3) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this ProtectionPolicyV3. +func (mg *ProtectionPolicyV3) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this ProtectionPolicyV3. +func (mg *ProtectionPolicyV3) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this ProtectionPolicyV3. +func (mg *ProtectionPolicyV3) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this ProtectionPolicyV3. +func (mg *ProtectionPolicyV3) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this ProtectionPolicyV3. +func (mg *ProtectionPolicyV3) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this ProtectionPolicyV3. +func (mg *ProtectionPolicyV3) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this ProtectionPolicyV3. +func (mg *ProtectionPolicyV3) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this ProtectionPolicyV3. +func (mg *ProtectionPolicyV3) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this ProtectionPolicyV3. +func (mg *ProtectionPolicyV3) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this ProtocolV3. +func (mg *ProtocolV3) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this ProtocolV3. +func (mg *ProtocolV3) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this ProtocolV3. +func (mg *ProtocolV3) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this ProtocolV3. +func (mg *ProtocolV3) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this ProtocolV3. +func (mg *ProtocolV3) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this ProtocolV3. +func (mg *ProtocolV3) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this ProtocolV3. +func (mg *ProtocolV3) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this ProtocolV3. +func (mg *ProtocolV3) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this ProtocolV3. +func (mg *ProtocolV3) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this ProtocolV3. +func (mg *ProtocolV3) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this ProtocolV3. +func (mg *ProtocolV3) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this ProtocolV3. +func (mg *ProtocolV3) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this Provider. +func (mg *Provider) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this Provider. +func (mg *Provider) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this Provider. +func (mg *Provider) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this Provider. +func (mg *Provider) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this Provider. +func (mg *Provider) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this Provider. +func (mg *Provider) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this Provider. +func (mg *Provider) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this Provider. +func (mg *Provider) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this Provider. +func (mg *Provider) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this Provider. +func (mg *Provider) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this Provider. +func (mg *Provider) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this Provider. +func (mg *Provider) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this ProviderV3. +func (mg *ProviderV3) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this ProviderV3. +func (mg *ProviderV3) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this ProviderV3. +func (mg *ProviderV3) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this ProviderV3. +func (mg *ProviderV3) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this ProviderV3. +func (mg *ProviderV3) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this ProviderV3. +func (mg *ProviderV3) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this ProviderV3. +func (mg *ProviderV3) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this ProviderV3. +func (mg *ProviderV3) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this ProviderV3. +func (mg *ProviderV3) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this ProviderV3. +func (mg *ProviderV3) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this ProviderV3. +func (mg *ProviderV3) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this ProviderV3. +func (mg *ProviderV3) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this RoleAssignmentV3. +func (mg *RoleAssignmentV3) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this RoleAssignmentV3. +func (mg *RoleAssignmentV3) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this RoleAssignmentV3. +func (mg *RoleAssignmentV3) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this RoleAssignmentV3. +func (mg *RoleAssignmentV3) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this RoleAssignmentV3. +func (mg *RoleAssignmentV3) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this RoleAssignmentV3. +func (mg *RoleAssignmentV3) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this RoleAssignmentV3. +func (mg *RoleAssignmentV3) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this RoleAssignmentV3. +func (mg *RoleAssignmentV3) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this RoleAssignmentV3. +func (mg *RoleAssignmentV3) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this RoleAssignmentV3. +func (mg *RoleAssignmentV3) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this RoleAssignmentV3. +func (mg *RoleAssignmentV3) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this RoleAssignmentV3. +func (mg *RoleAssignmentV3) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this RoleV3. +func (mg *RoleV3) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this RoleV3. +func (mg *RoleV3) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this RoleV3. +func (mg *RoleV3) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this RoleV3. +func (mg *RoleV3) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this RoleV3. +func (mg *RoleV3) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this RoleV3. +func (mg *RoleV3) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this RoleV3. +func (mg *RoleV3) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this RoleV3. +func (mg *RoleV3) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this RoleV3. +func (mg *RoleV3) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this RoleV3. +func (mg *RoleV3) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this RoleV3. +func (mg *RoleV3) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this RoleV3. +func (mg *RoleV3) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this UserGroupMembershipV3. +func (mg *UserGroupMembershipV3) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this UserGroupMembershipV3. +func (mg *UserGroupMembershipV3) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this UserGroupMembershipV3. +func (mg *UserGroupMembershipV3) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this UserGroupMembershipV3. +func (mg *UserGroupMembershipV3) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this UserGroupMembershipV3. +func (mg *UserGroupMembershipV3) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this UserGroupMembershipV3. +func (mg *UserGroupMembershipV3) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this UserGroupMembershipV3. +func (mg *UserGroupMembershipV3) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this UserGroupMembershipV3. +func (mg *UserGroupMembershipV3) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this UserGroupMembershipV3. +func (mg *UserGroupMembershipV3) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this UserGroupMembershipV3. +func (mg *UserGroupMembershipV3) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this UserGroupMembershipV3. +func (mg *UserGroupMembershipV3) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this UserGroupMembershipV3. +func (mg *UserGroupMembershipV3) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this UserV3. +func (mg *UserV3) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this UserV3. +func (mg *UserV3) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this UserV3. +func (mg *UserV3) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this UserV3. +func (mg *UserV3) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this UserV3. +func (mg *UserV3) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this UserV3. +func (mg *UserV3) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this UserV3. +func (mg *UserV3) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this UserV3. +func (mg *UserV3) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this UserV3. +func (mg *UserV3) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this UserV3. +func (mg *UserV3) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this UserV3. +func (mg *UserV3) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this UserV3. +func (mg *UserV3) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} diff --git a/apis/identity/v1alpha1/zz_generated.managedlist.go b/apis/identity/v1alpha1/zz_generated.managedlist.go new file mode 100644 index 0000000..d189fc4 --- /dev/null +++ b/apis/identity/v1alpha1/zz_generated.managedlist.go @@ -0,0 +1,152 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import resource "github.com/crossplane/crossplane-runtime/pkg/resource" + +// GetItems of this AgencyV3List. +func (l *AgencyV3List) 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 CredentialV3List. +func (l *CredentialV3List) 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 GroupMembershipV3List. +func (l *GroupMembershipV3List) 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 GroupV3List. +func (l *GroupV3List) 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 LoginPolicyV3List. +func (l *LoginPolicyV3List) 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 MappingV3List. +func (l *MappingV3List) 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 PasswordPolicyV3List. +func (l *PasswordPolicyV3List) 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 ProjectV3List. +func (l *ProjectV3List) 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 ProtectionPolicyV3List. +func (l *ProtectionPolicyV3List) 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 ProtocolV3List. +func (l *ProtocolV3List) 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 ProviderList. +func (l *ProviderList) 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 ProviderV3List. +func (l *ProviderV3List) 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 RoleAssignmentV3List. +func (l *RoleAssignmentV3List) 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 RoleV3List. +func (l *RoleV3List) 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 UserGroupMembershipV3List. +func (l *UserGroupMembershipV3List) 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 UserV3List. +func (l *UserV3List) 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/identity/v1alpha1/zz_generated.resolvers.go b/apis/identity/v1alpha1/zz_generated.resolvers.go new file mode 100644 index 0000000..d92dd31 --- /dev/null +++ b/apis/identity/v1alpha1/zz_generated.resolvers.go @@ -0,0 +1,39 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "context" + reference "github.com/crossplane/crossplane-runtime/pkg/reference" + errors "github.com/pkg/errors" + client "sigs.k8s.io/controller-runtime/pkg/client" +) + +// ResolveReferences of this RoleAssignmentV3. +func (mg *RoleAssignmentV3) 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.ProjectID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.ProjectIDRef, + Selector: mg.Spec.ForProvider.ProjectIDSelector, + To: reference.To{ + List: &ProjectV3List{}, + Managed: &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 + + return nil +} diff --git a/apis/identity/v1alpha1/zz_generated_terraformed.go b/apis/identity/v1alpha1/zz_generated_terraformed.go new file mode 100755 index 0000000..786e8b1 --- /dev/null +++ b/apis/identity/v1alpha1/zz_generated_terraformed.go @@ -0,0 +1,1362 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "github.com/pkg/errors" + + "github.com/crossplane/upjet/pkg/resource" + "github.com/crossplane/upjet/pkg/resource/json" +) + +// GetTerraformResourceType returns Terraform resource type for this AgencyV3 +func (mg *AgencyV3) GetTerraformResourceType() string { + return "opentelekomcloud_identity_agency_v3" +} + +// GetConnectionDetailsMapping for this AgencyV3 +func (tr *AgencyV3) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this AgencyV3 +func (tr *AgencyV3) 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 AgencyV3 +func (tr *AgencyV3) 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 AgencyV3 +func (tr *AgencyV3) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this AgencyV3 +func (tr *AgencyV3) 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 AgencyV3 +func (tr *AgencyV3) 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 AgencyV3 +func (tr *AgencyV3) 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) +} + +// LateInitialize this AgencyV3 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *AgencyV3) LateInitialize(attrs []byte) (bool, error) { + params := &AgencyV3Parameters{} + 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 *AgencyV3) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this CredentialV3 +func (mg *CredentialV3) GetTerraformResourceType() string { + return "opentelekomcloud_identity_credential_v3" +} + +// GetConnectionDetailsMapping for this CredentialV3 +func (tr *CredentialV3) GetConnectionDetailsMapping() map[string]string { + return map[string]string{"access": "status.atProvider.access", "secret": "status.atProvider.secret"} +} + +// GetObservation of this CredentialV3 +func (tr *CredentialV3) 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 CredentialV3 +func (tr *CredentialV3) 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 CredentialV3 +func (tr *CredentialV3) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this CredentialV3 +func (tr *CredentialV3) 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 CredentialV3 +func (tr *CredentialV3) 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 CredentialV3 +func (tr *CredentialV3) 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) +} + +// LateInitialize this CredentialV3 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *CredentialV3) LateInitialize(attrs []byte) (bool, error) { + params := &CredentialV3Parameters{} + 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 *CredentialV3) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this GroupMembershipV3 +func (mg *GroupMembershipV3) GetTerraformResourceType() string { + return "opentelekomcloud_identity_group_membership_v3" +} + +// GetConnectionDetailsMapping for this GroupMembershipV3 +func (tr *GroupMembershipV3) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this GroupMembershipV3 +func (tr *GroupMembershipV3) 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 GroupMembershipV3 +func (tr *GroupMembershipV3) 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 GroupMembershipV3 +func (tr *GroupMembershipV3) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this GroupMembershipV3 +func (tr *GroupMembershipV3) 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 GroupMembershipV3 +func (tr *GroupMembershipV3) 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 GroupMembershipV3 +func (tr *GroupMembershipV3) 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) +} + +// LateInitialize this GroupMembershipV3 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *GroupMembershipV3) LateInitialize(attrs []byte) (bool, error) { + params := &GroupMembershipV3Parameters{} + 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 *GroupMembershipV3) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this GroupV3 +func (mg *GroupV3) GetTerraformResourceType() string { + return "opentelekomcloud_identity_group_v3" +} + +// GetConnectionDetailsMapping for this GroupV3 +func (tr *GroupV3) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this GroupV3 +func (tr *GroupV3) 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 GroupV3 +func (tr *GroupV3) 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 GroupV3 +func (tr *GroupV3) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this GroupV3 +func (tr *GroupV3) 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 GroupV3 +func (tr *GroupV3) 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 GroupV3 +func (tr *GroupV3) 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) +} + +// LateInitialize this GroupV3 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *GroupV3) LateInitialize(attrs []byte) (bool, error) { + params := &GroupV3Parameters{} + 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 *GroupV3) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this LoginPolicyV3 +func (mg *LoginPolicyV3) GetTerraformResourceType() string { + return "opentelekomcloud_identity_login_policy_v3" +} + +// GetConnectionDetailsMapping for this LoginPolicyV3 +func (tr *LoginPolicyV3) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this LoginPolicyV3 +func (tr *LoginPolicyV3) 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 LoginPolicyV3 +func (tr *LoginPolicyV3) 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 LoginPolicyV3 +func (tr *LoginPolicyV3) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this LoginPolicyV3 +func (tr *LoginPolicyV3) 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 LoginPolicyV3 +func (tr *LoginPolicyV3) 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 LoginPolicyV3 +func (tr *LoginPolicyV3) 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) +} + +// LateInitialize this LoginPolicyV3 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *LoginPolicyV3) LateInitialize(attrs []byte) (bool, error) { + params := &LoginPolicyV3Parameters{} + 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 *LoginPolicyV3) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this MappingV3 +func (mg *MappingV3) GetTerraformResourceType() string { + return "opentelekomcloud_identity_mapping_v3" +} + +// GetConnectionDetailsMapping for this MappingV3 +func (tr *MappingV3) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this MappingV3 +func (tr *MappingV3) 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 MappingV3 +func (tr *MappingV3) 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 MappingV3 +func (tr *MappingV3) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this MappingV3 +func (tr *MappingV3) 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 MappingV3 +func (tr *MappingV3) 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 MappingV3 +func (tr *MappingV3) 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) +} + +// LateInitialize this MappingV3 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *MappingV3) LateInitialize(attrs []byte) (bool, error) { + params := &MappingV3Parameters{} + 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 *MappingV3) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this PasswordPolicyV3 +func (mg *PasswordPolicyV3) GetTerraformResourceType() string { + return "opentelekomcloud_identity_password_policy_v3" +} + +// GetConnectionDetailsMapping for this PasswordPolicyV3 +func (tr *PasswordPolicyV3) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this PasswordPolicyV3 +func (tr *PasswordPolicyV3) 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 PasswordPolicyV3 +func (tr *PasswordPolicyV3) 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 PasswordPolicyV3 +func (tr *PasswordPolicyV3) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this PasswordPolicyV3 +func (tr *PasswordPolicyV3) 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 PasswordPolicyV3 +func (tr *PasswordPolicyV3) 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 PasswordPolicyV3 +func (tr *PasswordPolicyV3) 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) +} + +// LateInitialize this PasswordPolicyV3 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *PasswordPolicyV3) LateInitialize(attrs []byte) (bool, error) { + params := &PasswordPolicyV3Parameters{} + 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 *PasswordPolicyV3) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this ProjectV3 +func (mg *ProjectV3) GetTerraformResourceType() string { + return "opentelekomcloud_identity_project_v3" +} + +// GetConnectionDetailsMapping for this ProjectV3 +func (tr *ProjectV3) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this ProjectV3 +func (tr *ProjectV3) 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 ProjectV3 +func (tr *ProjectV3) 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 ProjectV3 +func (tr *ProjectV3) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this ProjectV3 +func (tr *ProjectV3) 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 ProjectV3 +func (tr *ProjectV3) 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 ProjectV3 +func (tr *ProjectV3) 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) +} + +// LateInitialize this ProjectV3 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *ProjectV3) LateInitialize(attrs []byte) (bool, error) { + params := &ProjectV3Parameters{} + 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 *ProjectV3) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this ProtectionPolicyV3 +func (mg *ProtectionPolicyV3) GetTerraformResourceType() string { + return "opentelekomcloud_identity_protection_policy_v3" +} + +// GetConnectionDetailsMapping for this ProtectionPolicyV3 +func (tr *ProtectionPolicyV3) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this ProtectionPolicyV3 +func (tr *ProtectionPolicyV3) 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 ProtectionPolicyV3 +func (tr *ProtectionPolicyV3) 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 ProtectionPolicyV3 +func (tr *ProtectionPolicyV3) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this ProtectionPolicyV3 +func (tr *ProtectionPolicyV3) 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 ProtectionPolicyV3 +func (tr *ProtectionPolicyV3) 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 ProtectionPolicyV3 +func (tr *ProtectionPolicyV3) 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) +} + +// LateInitialize this ProtectionPolicyV3 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *ProtectionPolicyV3) LateInitialize(attrs []byte) (bool, error) { + params := &ProtectionPolicyV3Parameters{} + 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 *ProtectionPolicyV3) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this ProtocolV3 +func (mg *ProtocolV3) GetTerraformResourceType() string { + return "opentelekomcloud_identity_protocol_v3" +} + +// GetConnectionDetailsMapping for this ProtocolV3 +func (tr *ProtocolV3) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this ProtocolV3 +func (tr *ProtocolV3) 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 ProtocolV3 +func (tr *ProtocolV3) 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 ProtocolV3 +func (tr *ProtocolV3) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this ProtocolV3 +func (tr *ProtocolV3) 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 ProtocolV3 +func (tr *ProtocolV3) 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 ProtocolV3 +func (tr *ProtocolV3) 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) +} + +// LateInitialize this ProtocolV3 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *ProtocolV3) LateInitialize(attrs []byte) (bool, error) { + params := &ProtocolV3Parameters{} + 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 *ProtocolV3) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this Provider +func (mg *Provider) GetTerraformResourceType() string { + return "opentelekomcloud_identity_provider" +} + +// GetConnectionDetailsMapping for this Provider +func (tr *Provider) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this Provider +func (tr *Provider) 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 Provider +func (tr *Provider) 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 Provider +func (tr *Provider) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this Provider +func (tr *Provider) 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 Provider +func (tr *Provider) 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 Provider +func (tr *Provider) 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) +} + +// LateInitialize this Provider using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *Provider) LateInitialize(attrs []byte) (bool, error) { + params := &ProviderParameters{} + 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 *Provider) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this ProviderV3 +func (mg *ProviderV3) GetTerraformResourceType() string { + return "opentelekomcloud_identity_provider_v3" +} + +// GetConnectionDetailsMapping for this ProviderV3 +func (tr *ProviderV3) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this ProviderV3 +func (tr *ProviderV3) 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 ProviderV3 +func (tr *ProviderV3) 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 ProviderV3 +func (tr *ProviderV3) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this ProviderV3 +func (tr *ProviderV3) 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 ProviderV3 +func (tr *ProviderV3) 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 ProviderV3 +func (tr *ProviderV3) 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) +} + +// LateInitialize this ProviderV3 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *ProviderV3) LateInitialize(attrs []byte) (bool, error) { + params := &ProviderV3Parameters{} + 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 *ProviderV3) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this RoleAssignmentV3 +func (mg *RoleAssignmentV3) GetTerraformResourceType() string { + return "opentelekomcloud_identity_role_assignment_v3" +} + +// GetConnectionDetailsMapping for this RoleAssignmentV3 +func (tr *RoleAssignmentV3) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this RoleAssignmentV3 +func (tr *RoleAssignmentV3) 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 RoleAssignmentV3 +func (tr *RoleAssignmentV3) 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 RoleAssignmentV3 +func (tr *RoleAssignmentV3) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this RoleAssignmentV3 +func (tr *RoleAssignmentV3) 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 RoleAssignmentV3 +func (tr *RoleAssignmentV3) 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 RoleAssignmentV3 +func (tr *RoleAssignmentV3) 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) +} + +// LateInitialize this RoleAssignmentV3 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *RoleAssignmentV3) LateInitialize(attrs []byte) (bool, error) { + params := &RoleAssignmentV3Parameters{} + 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 *RoleAssignmentV3) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this RoleV3 +func (mg *RoleV3) GetTerraformResourceType() string { + return "opentelekomcloud_identity_role_v3" +} + +// GetConnectionDetailsMapping for this RoleV3 +func (tr *RoleV3) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this RoleV3 +func (tr *RoleV3) 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 RoleV3 +func (tr *RoleV3) 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 RoleV3 +func (tr *RoleV3) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this RoleV3 +func (tr *RoleV3) 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 RoleV3 +func (tr *RoleV3) 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 RoleV3 +func (tr *RoleV3) 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) +} + +// LateInitialize this RoleV3 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *RoleV3) LateInitialize(attrs []byte) (bool, error) { + params := &RoleV3Parameters{} + 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 *RoleV3) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this UserGroupMembershipV3 +func (mg *UserGroupMembershipV3) GetTerraformResourceType() string { + return "opentelekomcloud_identity_user_group_membership_v3" +} + +// GetConnectionDetailsMapping for this UserGroupMembershipV3 +func (tr *UserGroupMembershipV3) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this UserGroupMembershipV3 +func (tr *UserGroupMembershipV3) 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 UserGroupMembershipV3 +func (tr *UserGroupMembershipV3) 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 UserGroupMembershipV3 +func (tr *UserGroupMembershipV3) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this UserGroupMembershipV3 +func (tr *UserGroupMembershipV3) 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 UserGroupMembershipV3 +func (tr *UserGroupMembershipV3) 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 UserGroupMembershipV3 +func (tr *UserGroupMembershipV3) 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) +} + +// LateInitialize this UserGroupMembershipV3 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *UserGroupMembershipV3) LateInitialize(attrs []byte) (bool, error) { + params := &UserGroupMembershipV3Parameters{} + 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 *UserGroupMembershipV3) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this UserV3 +func (mg *UserV3) GetTerraformResourceType() string { + return "opentelekomcloud_identity_user_v3" +} + +// GetConnectionDetailsMapping for this UserV3 +func (tr *UserV3) GetConnectionDetailsMapping() map[string]string { + return map[string]string{"password": "spec.forProvider.passwordSecretRef"} +} + +// GetObservation of this UserV3 +func (tr *UserV3) 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 UserV3 +func (tr *UserV3) 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 UserV3 +func (tr *UserV3) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this UserV3 +func (tr *UserV3) 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 UserV3 +func (tr *UserV3) 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 UserV3 +func (tr *UserV3) 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) +} + +// LateInitialize this UserV3 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *UserV3) LateInitialize(attrs []byte) (bool, error) { + params := &UserV3Parameters{} + 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 *UserV3) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/identity/v1alpha1/zz_groupmembershipv3_types.go b/apis/identity/v1alpha1/zz_groupmembershipv3_types.go new file mode 100755 index 0000000..5383930 --- /dev/null +++ b/apis/identity/v1alpha1/zz_groupmembershipv3_types.go @@ -0,0 +1,111 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 GroupMembershipV3InitParameters struct { + + // The group ID of this membership. + Group *string `json:"group,omitempty" tf:"group,omitempty"` + + // A List of user IDs to associate to the group. + Users []*string `json:"users,omitempty" tf:"users,omitempty"` +} + +type GroupMembershipV3Observation struct { + + // The group ID of this membership. + Group *string `json:"group,omitempty" tf:"group,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // A List of user IDs to associate to the group. + Users []*string `json:"users,omitempty" tf:"users,omitempty"` +} + +type GroupMembershipV3Parameters struct { + + // The group ID of this membership. + // +kubebuilder:validation:Optional + Group *string `json:"group,omitempty" tf:"group,omitempty"` + + // A List of user IDs to associate to the group. + // +kubebuilder:validation:Optional + Users []*string `json:"users,omitempty" tf:"users,omitempty"` +} + +// GroupMembershipV3Spec defines the desired state of GroupMembershipV3 +type GroupMembershipV3Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider GroupMembershipV3Parameters `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 GroupMembershipV3InitParameters `json:"initProvider,omitempty"` +} + +// GroupMembershipV3Status defines the observed state of GroupMembershipV3. +type GroupMembershipV3Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider GroupMembershipV3Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// GroupMembershipV3 is the Schema for the GroupMembershipV3s API. Manages a IAM Group Membership resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type GroupMembershipV3 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.group) || (has(self.initProvider) && has(self.initProvider.group))",message="spec.forProvider.group is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.users) || (has(self.initProvider) && has(self.initProvider.users))",message="spec.forProvider.users is a required parameter" + Spec GroupMembershipV3Spec `json:"spec"` + Status GroupMembershipV3Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// GroupMembershipV3List contains a list of GroupMembershipV3s +type GroupMembershipV3List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []GroupMembershipV3 `json:"items"` +} + +// Repository type metadata. +var ( + GroupMembershipV3_Kind = "GroupMembershipV3" + GroupMembershipV3_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: GroupMembershipV3_Kind}.String() + GroupMembershipV3_KindAPIVersion = GroupMembershipV3_Kind + "." + CRDGroupVersion.String() + GroupMembershipV3_GroupVersionKind = CRDGroupVersion.WithKind(GroupMembershipV3_Kind) +) + +func init() { + SchemeBuilder.Register(&GroupMembershipV3{}, &GroupMembershipV3List{}) +} diff --git a/apis/identity/v1alpha1/zz_groupv3_types.go b/apis/identity/v1alpha1/zz_groupv3_types.go new file mode 100755 index 0000000..9341bdd --- /dev/null +++ b/apis/identity/v1alpha1/zz_groupv3_types.go @@ -0,0 +1,127 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 GroupV3InitParameters struct { + + // A description of the group. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The domain this group belongs to. + DomainID *string `json:"domainId,omitempty" tf:"domain_id,omitempty"` + + // The name of the group.The length is less than or equal to 64 bytes. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` +} + +type GroupV3Observation struct { + + // A description of the group. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The domain this group belongs to. + DomainID *string `json:"domainId,omitempty" tf:"domain_id,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The name of the group.The length is less than or equal to 64 bytes. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` +} + +type GroupV3Parameters struct { + + // A description of the group. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The domain this group belongs to. + // +kubebuilder:validation:Optional + DomainID *string `json:"domainId,omitempty" tf:"domain_id,omitempty"` + + // The name of the group.The length is less than or equal to 64 bytes. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` +} + +// GroupV3Spec defines the desired state of GroupV3 +type GroupV3Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider GroupV3Parameters `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 GroupV3InitParameters `json:"initProvider,omitempty"` +} + +// GroupV3Status defines the observed state of GroupV3. +type GroupV3Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider GroupV3Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// GroupV3 is the Schema for the GroupV3s API. Manages a IAM Group resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type GroupV3 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.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + Spec GroupV3Spec `json:"spec"` + Status GroupV3Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// GroupV3List contains a list of GroupV3s +type GroupV3List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []GroupV3 `json:"items"` +} + +// Repository type metadata. +var ( + GroupV3_Kind = "GroupV3" + GroupV3_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: GroupV3_Kind}.String() + GroupV3_KindAPIVersion = GroupV3_Kind + "." + CRDGroupVersion.String() + GroupV3_GroupVersionKind = CRDGroupVersion.WithKind(GroupV3_Kind) +) + +func init() { + SchemeBuilder.Register(&GroupV3{}, &GroupV3List{}) +} diff --git a/apis/identity/v1alpha1/zz_groupversion_info.go b/apis/identity/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..6b7e442 --- /dev/null +++ b/apis/identity/v1alpha1/zz_groupversion_info.go @@ -0,0 +1,36 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +// +kubebuilder:object:generate=true +// +groupName=identity.crossplane.io +// +versionName=v1alpha1 +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +// Package type metadata. +const ( + CRDGroup = "identity.crossplane.io" + CRDVersion = "v1alpha1" +) + +var ( + // CRDGroupVersion is the API Group Version used to register the objects + CRDGroupVersion = schema.GroupVersion{Group: CRDGroup, Version: CRDVersion} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme + SchemeBuilder = &scheme.Builder{GroupVersion: CRDGroupVersion} + + // AddToScheme adds the types in this group-version to the given scheme. + AddToScheme = SchemeBuilder.AddToScheme +) diff --git a/apis/identity/v1alpha1/zz_loginpolicyv3_types.go b/apis/identity/v1alpha1/zz_loginpolicyv3_types.go new file mode 100755 index 0000000..274b3bd --- /dev/null +++ b/apis/identity/v1alpha1/zz_loginpolicyv3_types.go @@ -0,0 +1,160 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 LoginPolicyV3InitParameters struct { + + // = 0 + AccountValidityPeriod *float64 `json:"accountValidityPeriod,omitempty" tf:"account_validity_period,omitempty"` + + // = "" + CustomInfoForLogin *string `json:"customInfoForLogin,omitempty" tf:"custom_info_for_login,omitempty"` + + // = 15 + LockoutDuration *float64 `json:"lockoutDuration,omitempty" tf:"lockout_duration,omitempty"` + + // = 3 + LoginFailedTimes *float64 `json:"loginFailedTimes,omitempty" tf:"login_failed_times,omitempty"` + + // = 60 + PeriodWithLoginFailures *float64 `json:"periodWithLoginFailures,omitempty" tf:"period_with_login_failures,omitempty"` + + // = 1395 + SessionTimeout *float64 `json:"sessionTimeout,omitempty" tf:"session_timeout,omitempty"` + + // = false + ShowRecentLoginInfo *bool `json:"showRecentLoginInfo,omitempty" tf:"show_recent_login_info,omitempty"` +} + +type LoginPolicyV3Observation struct { + + // = 0 + AccountValidityPeriod *float64 `json:"accountValidityPeriod,omitempty" tf:"account_validity_period,omitempty"` + + // = "" + CustomInfoForLogin *string `json:"customInfoForLogin,omitempty" tf:"custom_info_for_login,omitempty"` + + // The ID of account login policy, which is the same as the domain ID. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // = 15 + LockoutDuration *float64 `json:"lockoutDuration,omitempty" tf:"lockout_duration,omitempty"` + + // = 3 + LoginFailedTimes *float64 `json:"loginFailedTimes,omitempty" tf:"login_failed_times,omitempty"` + + // = 60 + PeriodWithLoginFailures *float64 `json:"periodWithLoginFailures,omitempty" tf:"period_with_login_failures,omitempty"` + + // = 1395 + SessionTimeout *float64 `json:"sessionTimeout,omitempty" tf:"session_timeout,omitempty"` + + // = false + ShowRecentLoginInfo *bool `json:"showRecentLoginInfo,omitempty" tf:"show_recent_login_info,omitempty"` +} + +type LoginPolicyV3Parameters struct { + + // = 0 + // +kubebuilder:validation:Optional + AccountValidityPeriod *float64 `json:"accountValidityPeriod,omitempty" tf:"account_validity_period,omitempty"` + + // = "" + // +kubebuilder:validation:Optional + CustomInfoForLogin *string `json:"customInfoForLogin,omitempty" tf:"custom_info_for_login,omitempty"` + + // = 15 + // +kubebuilder:validation:Optional + LockoutDuration *float64 `json:"lockoutDuration,omitempty" tf:"lockout_duration,omitempty"` + + // = 3 + // +kubebuilder:validation:Optional + LoginFailedTimes *float64 `json:"loginFailedTimes,omitempty" tf:"login_failed_times,omitempty"` + + // = 60 + // +kubebuilder:validation:Optional + PeriodWithLoginFailures *float64 `json:"periodWithLoginFailures,omitempty" tf:"period_with_login_failures,omitempty"` + + // = 1395 + // +kubebuilder:validation:Optional + SessionTimeout *float64 `json:"sessionTimeout,omitempty" tf:"session_timeout,omitempty"` + + // = false + // +kubebuilder:validation:Optional + ShowRecentLoginInfo *bool `json:"showRecentLoginInfo,omitempty" tf:"show_recent_login_info,omitempty"` +} + +// LoginPolicyV3Spec defines the desired state of LoginPolicyV3 +type LoginPolicyV3Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider LoginPolicyV3Parameters `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 LoginPolicyV3InitParameters `json:"initProvider,omitempty"` +} + +// LoginPolicyV3Status defines the observed state of LoginPolicyV3. +type LoginPolicyV3Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider LoginPolicyV3Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// LoginPolicyV3 is the Schema for the LoginPolicyV3s API. Manages a IAM Login Policy resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type LoginPolicyV3 struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec LoginPolicyV3Spec `json:"spec"` + Status LoginPolicyV3Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// LoginPolicyV3List contains a list of LoginPolicyV3s +type LoginPolicyV3List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []LoginPolicyV3 `json:"items"` +} + +// Repository type metadata. +var ( + LoginPolicyV3_Kind = "LoginPolicyV3" + LoginPolicyV3_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: LoginPolicyV3_Kind}.String() + LoginPolicyV3_KindAPIVersion = LoginPolicyV3_Kind + "." + CRDGroupVersion.String() + LoginPolicyV3_GroupVersionKind = CRDGroupVersion.WithKind(LoginPolicyV3_Kind) +) + +func init() { + SchemeBuilder.Register(&LoginPolicyV3{}, &LoginPolicyV3List{}) +} diff --git a/apis/identity/v1alpha1/zz_mappingv3_types.go b/apis/identity/v1alpha1/zz_mappingv3_types.go new file mode 100755 index 0000000..d0a8a8a --- /dev/null +++ b/apis/identity/v1alpha1/zz_mappingv3_types.go @@ -0,0 +1,112 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 MappingV3InitParameters struct { + + // The ID of the mapping. Changing this creates a new mapping. + MappingID *string `json:"mappingId,omitempty" tf:"mapping_id,omitempty"` + + // Rules used to map federated users to local users. + Rules *string `json:"rules,omitempty" tf:"rules,omitempty"` +} + +type MappingV3Observation struct { + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + Links map[string]*string `json:"links,omitempty" tf:"links,omitempty"` + + // The ID of the mapping. Changing this creates a new mapping. + MappingID *string `json:"mappingId,omitempty" tf:"mapping_id,omitempty"` + + // Rules used to map federated users to local users. + Rules *string `json:"rules,omitempty" tf:"rules,omitempty"` +} + +type MappingV3Parameters struct { + + // The ID of the mapping. Changing this creates a new mapping. + // +kubebuilder:validation:Optional + MappingID *string `json:"mappingId,omitempty" tf:"mapping_id,omitempty"` + + // Rules used to map federated users to local users. + // +kubebuilder:validation:Optional + Rules *string `json:"rules,omitempty" tf:"rules,omitempty"` +} + +// MappingV3Spec defines the desired state of MappingV3 +type MappingV3Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider MappingV3Parameters `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 MappingV3InitParameters `json:"initProvider,omitempty"` +} + +// MappingV3Status defines the observed state of MappingV3. +type MappingV3Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider MappingV3Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// MappingV3 is the Schema for the MappingV3s API. Manages a IAM Mapping resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type MappingV3 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.mappingId) || (has(self.initProvider) && has(self.initProvider.mappingId))",message="spec.forProvider.mappingId is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.rules) || (has(self.initProvider) && has(self.initProvider.rules))",message="spec.forProvider.rules is a required parameter" + Spec MappingV3Spec `json:"spec"` + Status MappingV3Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// MappingV3List contains a list of MappingV3s +type MappingV3List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []MappingV3 `json:"items"` +} + +// Repository type metadata. +var ( + MappingV3_Kind = "MappingV3" + MappingV3_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: MappingV3_Kind}.String() + MappingV3_KindAPIVersion = MappingV3_Kind + "." + CRDGroupVersion.String() + MappingV3_GroupVersionKind = CRDGroupVersion.WithKind(MappingV3_Kind) +) + +func init() { + SchemeBuilder.Register(&MappingV3{}, &MappingV3List{}) +} diff --git a/apis/identity/v1alpha1/zz_passwordpolicyv3_types.go b/apis/identity/v1alpha1/zz_passwordpolicyv3_types.go new file mode 100755 index 0000000..45933cd --- /dev/null +++ b/apis/identity/v1alpha1/zz_passwordpolicyv3_types.go @@ -0,0 +1,155 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 PasswordPolicyV3InitParameters struct { + + // = 0 + MaximumConsecutiveIdenticalChars *float64 `json:"maximumConsecutiveIdenticalChars,omitempty" tf:"maximum_consecutive_identical_chars,omitempty"` + + // = 0 + MinimumPasswordAge *float64 `json:"minimumPasswordAge,omitempty" tf:"minimum_password_age,omitempty"` + + // = 8 + MinimumPasswordLength *float64 `json:"minimumPasswordLength,omitempty" tf:"minimum_password_length,omitempty"` + + // = 1 + NumberOfRecentPasswordsDisallowed *float64 `json:"numberOfRecentPasswordsDisallowed,omitempty" tf:"number_of_recent_passwords_disallowed,omitempty"` + + // = true + PasswordNotUsernameOrInvert *bool `json:"passwordNotUsernameOrInvert,omitempty" tf:"password_not_username_or_invert,omitempty"` + + // = 0 + PasswordValidityPeriod *float64 `json:"passwordValidityPeriod,omitempty" tf:"password_validity_period,omitempty"` +} + +type PasswordPolicyV3Observation struct { + + // The ID of account password policy, which is the same as the domain ID. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // = 0 + MaximumConsecutiveIdenticalChars *float64 `json:"maximumConsecutiveIdenticalChars,omitempty" tf:"maximum_consecutive_identical_chars,omitempty"` + + // The maximum number of characters that a password can contain. + MaximumPasswordLength *float64 `json:"maximumPasswordLength,omitempty" tf:"maximum_password_length,omitempty"` + + // = 0 + MinimumPasswordAge *float64 `json:"minimumPasswordAge,omitempty" tf:"minimum_password_age,omitempty"` + + // = 8 + MinimumPasswordLength *float64 `json:"minimumPasswordLength,omitempty" tf:"minimum_password_length,omitempty"` + + // = 1 + NumberOfRecentPasswordsDisallowed *float64 `json:"numberOfRecentPasswordsDisallowed,omitempty" tf:"number_of_recent_passwords_disallowed,omitempty"` + + // = true + PasswordNotUsernameOrInvert *bool `json:"passwordNotUsernameOrInvert,omitempty" tf:"password_not_username_or_invert,omitempty"` + + PasswordRequirements *string `json:"passwordRequirements,omitempty" tf:"password_requirements,omitempty"` + + // = 0 + PasswordValidityPeriod *float64 `json:"passwordValidityPeriod,omitempty" tf:"password_validity_period,omitempty"` +} + +type PasswordPolicyV3Parameters struct { + + // = 0 + // +kubebuilder:validation:Optional + MaximumConsecutiveIdenticalChars *float64 `json:"maximumConsecutiveIdenticalChars,omitempty" tf:"maximum_consecutive_identical_chars,omitempty"` + + // = 0 + // +kubebuilder:validation:Optional + MinimumPasswordAge *float64 `json:"minimumPasswordAge,omitempty" tf:"minimum_password_age,omitempty"` + + // = 8 + // +kubebuilder:validation:Optional + MinimumPasswordLength *float64 `json:"minimumPasswordLength,omitempty" tf:"minimum_password_length,omitempty"` + + // = 1 + // +kubebuilder:validation:Optional + NumberOfRecentPasswordsDisallowed *float64 `json:"numberOfRecentPasswordsDisallowed,omitempty" tf:"number_of_recent_passwords_disallowed,omitempty"` + + // = true + // +kubebuilder:validation:Optional + PasswordNotUsernameOrInvert *bool `json:"passwordNotUsernameOrInvert,omitempty" tf:"password_not_username_or_invert,omitempty"` + + // = 0 + // +kubebuilder:validation:Optional + PasswordValidityPeriod *float64 `json:"passwordValidityPeriod,omitempty" tf:"password_validity_period,omitempty"` +} + +// PasswordPolicyV3Spec defines the desired state of PasswordPolicyV3 +type PasswordPolicyV3Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider PasswordPolicyV3Parameters `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 PasswordPolicyV3InitParameters `json:"initProvider,omitempty"` +} + +// PasswordPolicyV3Status defines the observed state of PasswordPolicyV3. +type PasswordPolicyV3Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider PasswordPolicyV3Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// PasswordPolicyV3 is the Schema for the PasswordPolicyV3s API. Manages a IAM Password Policy resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type PasswordPolicyV3 struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec PasswordPolicyV3Spec `json:"spec"` + Status PasswordPolicyV3Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// PasswordPolicyV3List contains a list of PasswordPolicyV3s +type PasswordPolicyV3List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []PasswordPolicyV3 `json:"items"` +} + +// Repository type metadata. +var ( + PasswordPolicyV3_Kind = "PasswordPolicyV3" + PasswordPolicyV3_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: PasswordPolicyV3_Kind}.String() + PasswordPolicyV3_KindAPIVersion = PasswordPolicyV3_Kind + "." + CRDGroupVersion.String() + PasswordPolicyV3_GroupVersionKind = CRDGroupVersion.WithKind(PasswordPolicyV3_Kind) +) + +func init() { + SchemeBuilder.Register(&PasswordPolicyV3{}, &PasswordPolicyV3List{}) +} diff --git a/apis/identity/v1alpha1/zz_projectv3_types.go b/apis/identity/v1alpha1/zz_projectv3_types.go new file mode 100755 index 0000000..bbd8d4d --- /dev/null +++ b/apis/identity/v1alpha1/zz_projectv3_types.go @@ -0,0 +1,153 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 ProjectV3InitParameters struct { + + // A description of the project. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The domain this project belongs to. Changing this + // creates a new Project. + DomainID *string `json:"domainId,omitempty" tf:"domain_id,omitempty"` + + // The name of the project. it must start with + // ID of an existing region and be less than or equal to 64 characters. + // Example: eu-de_project1. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The parent of this project. Changing this creates + // a new Project. + ParentID *string `json:"parentId,omitempty" tf:"parent_id,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` +} + +type ProjectV3Observation struct { + + // A description of the project. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The domain this project belongs to. Changing this + // creates a new Project. + DomainID *string `json:"domainId,omitempty" tf:"domain_id,omitempty"` + + Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + IsDomain *bool `json:"isDomain,omitempty" tf:"is_domain,omitempty"` + + // The name of the project. it must start with + // ID of an existing region and be less than or equal to 64 characters. + // Example: eu-de_project1. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The parent of this project. Changing this creates + // a new Project. + ParentID *string `json:"parentId,omitempty" tf:"parent_id,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` +} + +type ProjectV3Parameters struct { + + // A description of the project. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The domain this project belongs to. Changing this + // creates a new Project. + // +kubebuilder:validation:Optional + DomainID *string `json:"domainId,omitempty" tf:"domain_id,omitempty"` + + // The name of the project. it must start with + // ID of an existing region and be less than or equal to 64 characters. + // Example: eu-de_project1. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The parent of this project. Changing this creates + // a new Project. + // +kubebuilder:validation:Optional + ParentID *string `json:"parentId,omitempty" tf:"parent_id,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` +} + +// ProjectV3Spec defines the desired state of ProjectV3 +type ProjectV3Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider ProjectV3Parameters `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 ProjectV3InitParameters `json:"initProvider,omitempty"` +} + +// ProjectV3Status defines the observed state of ProjectV3. +type ProjectV3Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider ProjectV3Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// ProjectV3 is the Schema for the ProjectV3s API. Manages a IAM Project resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type ProjectV3 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.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + Spec ProjectV3Spec `json:"spec"` + Status ProjectV3Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// ProjectV3List contains a list of ProjectV3s +type ProjectV3List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []ProjectV3 `json:"items"` +} + +// Repository type metadata. +var ( + ProjectV3_Kind = "ProjectV3" + ProjectV3_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: ProjectV3_Kind}.String() + ProjectV3_KindAPIVersion = ProjectV3_Kind + "." + CRDGroupVersion.String() + ProjectV3_GroupVersionKind = CRDGroupVersion.WithKind(ProjectV3_Kind) +) + +func init() { + SchemeBuilder.Register(&ProjectV3{}, &ProjectV3List{}) +} diff --git a/apis/null/v1alpha1/zz_resource_types.go b/apis/identity/v1alpha1/zz_protectionpolicyv3_types.go similarity index 50% rename from apis/null/v1alpha1/zz_resource_types.go rename to apis/identity/v1alpha1/zz_protectionpolicyv3_types.go index 7801a3b..1f8a31d 100755 --- a/apis/null/v1alpha1/zz_resource_types.go +++ b/apis/identity/v1alpha1/zz_protectionpolicyv3_types.go @@ -17,30 +17,32 @@ import ( v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" ) -type ResourceInitParameters struct { +type ProtectionPolicyV3InitParameters struct { - // A map of arbitrary strings that, when changed, will force the null resource to be replaced, re-running any associated provisioners. - Triggers map[string]*string `json:"triggers,omitempty" tf:"triggers,omitempty"` + // = false + EnableOperationProtectionPolicy *bool `json:"enableOperationProtectionPolicy,omitempty" tf:"enable_operation_protection_policy,omitempty"` } -type ResourceObservation struct { - ID *string `json:"id,omitempty" tf:"id,omitempty"` +type ProtectionPolicyV3Observation struct { + + // = false + EnableOperationProtectionPolicy *bool `json:"enableOperationProtectionPolicy,omitempty" tf:"enable_operation_protection_policy,omitempty"` - // A map of arbitrary strings that, when changed, will force the null resource to be replaced, re-running any associated provisioners. - Triggers map[string]*string `json:"triggers,omitempty" tf:"triggers,omitempty"` + // The ID of account protection policy, which is the same as the domain ID. + ID *string `json:"id,omitempty" tf:"id,omitempty"` } -type ResourceParameters struct { +type ProtectionPolicyV3Parameters struct { - // A map of arbitrary strings that, when changed, will force the null resource to be replaced, re-running any associated provisioners. + // = false // +kubebuilder:validation:Optional - Triggers map[string]*string `json:"triggers,omitempty" tf:"triggers,omitempty"` + EnableOperationProtectionPolicy *bool `json:"enableOperationProtectionPolicy,omitempty" tf:"enable_operation_protection_policy,omitempty"` } -// ResourceSpec defines the desired state of Resource -type ResourceSpec struct { +// ProtectionPolicyV3Spec defines the desired state of ProtectionPolicyV3 +type ProtectionPolicyV3Spec struct { v1.ResourceSpec `json:",inline"` - ForProvider ResourceParameters `json:"forProvider"` + ForProvider ProtectionPolicyV3Parameters `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 @@ -51,48 +53,48 @@ type ResourceSpec struct { // 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 ResourceInitParameters `json:"initProvider,omitempty"` + InitProvider ProtectionPolicyV3InitParameters `json:"initProvider,omitempty"` } -// ResourceStatus defines the observed state of Resource. -type ResourceStatus struct { +// ProtectionPolicyV3Status defines the observed state of ProtectionPolicyV3. +type ProtectionPolicyV3Status struct { v1.ResourceStatus `json:",inline"` - AtProvider ResourceObservation `json:"atProvider,omitempty"` + AtProvider ProtectionPolicyV3Observation `json:"atProvider,omitempty"` } // +kubebuilder:object:root=true -// Resource is the Schema for the Resources API. The null_resource resource implements the standard resource lifecycle but takes no further action. The triggers argument allows specifying an arbitrary set of values that, when changed, will cause the resource to be replaced. +// ProtectionPolicyV3 is the Schema for the ProtectionPolicyV3s API. Manages a IAM Protection Policy resource within OpenTelekomCloud. // +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" // +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status -// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,template} -type Resource struct { +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type ProtectionPolicyV3 struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` - Spec ResourceSpec `json:"spec"` - Status ResourceStatus `json:"status,omitempty"` + Spec ProtectionPolicyV3Spec `json:"spec"` + Status ProtectionPolicyV3Status `json:"status,omitempty"` } // +kubebuilder:object:root=true -// ResourceList contains a list of Resources -type ResourceList struct { +// ProtectionPolicyV3List contains a list of ProtectionPolicyV3s +type ProtectionPolicyV3List struct { metav1.TypeMeta `json:",inline"` metav1.ListMeta `json:"metadata,omitempty"` - Items []Resource `json:"items"` + Items []ProtectionPolicyV3 `json:"items"` } // Repository type metadata. var ( - Resource_Kind = "Resource" - Resource_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: Resource_Kind}.String() - Resource_KindAPIVersion = Resource_Kind + "." + CRDGroupVersion.String() - Resource_GroupVersionKind = CRDGroupVersion.WithKind(Resource_Kind) + ProtectionPolicyV3_Kind = "ProtectionPolicyV3" + ProtectionPolicyV3_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: ProtectionPolicyV3_Kind}.String() + ProtectionPolicyV3_KindAPIVersion = ProtectionPolicyV3_Kind + "." + CRDGroupVersion.String() + ProtectionPolicyV3_GroupVersionKind = CRDGroupVersion.WithKind(ProtectionPolicyV3_Kind) ) func init() { - SchemeBuilder.Register(&Resource{}, &ResourceList{}) + SchemeBuilder.Register(&ProtectionPolicyV3{}, &ProtectionPolicyV3List{}) } diff --git a/apis/identity/v1alpha1/zz_protocolv3_types.go b/apis/identity/v1alpha1/zz_protocolv3_types.go new file mode 100755 index 0000000..63c7685 --- /dev/null +++ b/apis/identity/v1alpha1/zz_protocolv3_types.go @@ -0,0 +1,303 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 AccessConfigInitParameters struct { + + // Specifies the access type of the identity provider. + // Available options are: + AccessType *string `json:"accessType,omitempty" tf:"access_type,omitempty"` + + // Specifies the authorization endpoint of the OpenID Connect identity + // provider. This field is required only if the access type is set to program_console. + AuthorizationEndpoint *string `json:"authorizationEndpoint,omitempty" tf:"authorization_endpoint,omitempty"` + + // Specifies the ID of a client registered with the OpenID Connect identity provider. + ClientID *string `json:"clientId,omitempty" tf:"client_id,omitempty"` + + // Specifies the URL of the identity provider. + // This field corresponds to the iss field in the ID token. + ProviderURL *string `json:"providerUrl,omitempty" tf:"provider_url,omitempty"` + + // Response mode. + // Valid values is form_post and fragment, default value is form_post. + // This field is required only if the access type is set to program_console. + ResponseMode *string `json:"responseMode,omitempty" tf:"response_mode,omitempty"` + + // Response type. Valid values is id_token, default value is id_token. + // This field is required only if the access type is set to program_console. + ResponseType *string `json:"responseType,omitempty" tf:"response_type,omitempty"` + + // Specifies the scopes of authorization requests. It is an array of one or more scopes. + // Valid values are openid, email, profile and other values defined by you. + // This field is required only if the access type is set to program_console. + Scopes []*string `json:"scopes,omitempty" tf:"scopes,omitempty"` + + // Public key used to sign the ID token of the OpenID Connect identity provider. + // This field is required only if the protocol is set to oidc. + SigningKey *string `json:"signingKey,omitempty" tf:"signing_key,omitempty"` +} + +type AccessConfigObservation struct { + + // Specifies the access type of the identity provider. + // Available options are: + AccessType *string `json:"accessType,omitempty" tf:"access_type,omitempty"` + + // Specifies the authorization endpoint of the OpenID Connect identity + // provider. This field is required only if the access type is set to program_console. + AuthorizationEndpoint *string `json:"authorizationEndpoint,omitempty" tf:"authorization_endpoint,omitempty"` + + // Specifies the ID of a client registered with the OpenID Connect identity provider. + ClientID *string `json:"clientId,omitempty" tf:"client_id,omitempty"` + + // Specifies the URL of the identity provider. + // This field corresponds to the iss field in the ID token. + ProviderURL *string `json:"providerUrl,omitempty" tf:"provider_url,omitempty"` + + // Response mode. + // Valid values is form_post and fragment, default value is form_post. + // This field is required only if the access type is set to program_console. + ResponseMode *string `json:"responseMode,omitempty" tf:"response_mode,omitempty"` + + // Response type. Valid values is id_token, default value is id_token. + // This field is required only if the access type is set to program_console. + ResponseType *string `json:"responseType,omitempty" tf:"response_type,omitempty"` + + // Specifies the scopes of authorization requests. It is an array of one or more scopes. + // Valid values are openid, email, profile and other values defined by you. + // This field is required only if the access type is set to program_console. + Scopes []*string `json:"scopes,omitempty" tf:"scopes,omitempty"` + + // Public key used to sign the ID token of the OpenID Connect identity provider. + // This field is required only if the protocol is set to oidc. + SigningKey *string `json:"signingKey,omitempty" tf:"signing_key,omitempty"` +} + +type AccessConfigParameters struct { + + // Specifies the access type of the identity provider. + // Available options are: + // +kubebuilder:validation:Optional + AccessType *string `json:"accessType" tf:"access_type,omitempty"` + + // Specifies the authorization endpoint of the OpenID Connect identity + // provider. This field is required only if the access type is set to program_console. + // +kubebuilder:validation:Optional + AuthorizationEndpoint *string `json:"authorizationEndpoint,omitempty" tf:"authorization_endpoint,omitempty"` + + // Specifies the ID of a client registered with the OpenID Connect identity provider. + // +kubebuilder:validation:Optional + ClientID *string `json:"clientId" tf:"client_id,omitempty"` + + // Specifies the URL of the identity provider. + // This field corresponds to the iss field in the ID token. + // +kubebuilder:validation:Optional + ProviderURL *string `json:"providerUrl" tf:"provider_url,omitempty"` + + // Response mode. + // Valid values is form_post and fragment, default value is form_post. + // This field is required only if the access type is set to program_console. + // +kubebuilder:validation:Optional + ResponseMode *string `json:"responseMode,omitempty" tf:"response_mode,omitempty"` + + // Response type. Valid values is id_token, default value is id_token. + // This field is required only if the access type is set to program_console. + // +kubebuilder:validation:Optional + ResponseType *string `json:"responseType,omitempty" tf:"response_type,omitempty"` + + // Specifies the scopes of authorization requests. It is an array of one or more scopes. + // Valid values are openid, email, profile and other values defined by you. + // This field is required only if the access type is set to program_console. + // +kubebuilder:validation:Optional + Scopes []*string `json:"scopes,omitempty" tf:"scopes,omitempty"` + + // Public key used to sign the ID token of the OpenID Connect identity provider. + // This field is required only if the protocol is set to oidc. + // +kubebuilder:validation:Optional + SigningKey *string `json:"signingKey" tf:"signing_key,omitempty"` +} + +type MetadataInitParameters struct { + + // ID of the domain that a user belongs to. + DomainID *string `json:"domainId,omitempty" tf:"domain_id,omitempty"` + + // Metadata file configuration. + Metadata *string `json:"metadata,omitempty" tf:"metadata,omitempty"` + + // Source of a domain. Blank by the default. + XaccountType *string `json:"xaccountType,omitempty" tf:"xaccount_type,omitempty"` +} + +type MetadataObservation struct { + + // ID of the domain that a user belongs to. + DomainID *string `json:"domainId,omitempty" tf:"domain_id,omitempty"` + + // Metadata file configuration. + Metadata *string `json:"metadata,omitempty" tf:"metadata,omitempty"` + + // Source of a domain. Blank by the default. + XaccountType *string `json:"xaccountType,omitempty" tf:"xaccount_type,omitempty"` +} + +type MetadataParameters struct { + + // ID of the domain that a user belongs to. + // +kubebuilder:validation:Optional + DomainID *string `json:"domainId" tf:"domain_id,omitempty"` + + // Metadata file configuration. + // +kubebuilder:validation:Optional + Metadata *string `json:"metadata" tf:"metadata,omitempty"` + + // Source of a domain. Blank by the default. + // +kubebuilder:validation:Optional + XaccountType *string `json:"xaccountType,omitempty" tf:"xaccount_type,omitempty"` +} + +type ProtocolV3InitParameters struct { + + // Specifies the description of the identity provider. + // This field is required only if the protocol is set to oidc. + AccessConfig []AccessConfigInitParameters `json:"accessConfig,omitempty" tf:"access_config,omitempty"` + + // ID of an identity mapping. + MappingID *string `json:"mappingId,omitempty" tf:"mapping_id,omitempty"` + + // Metadata file configuration. + Metadata []MetadataInitParameters `json:"metadata,omitempty" tf:"metadata,omitempty"` + + // ID of a protocol. Changing this creates a new protocol. + Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` + + // ID of an identity provider. Changing this creates a new protocol. + ProviderID *string `json:"providerId,omitempty" tf:"provider_id,omitempty"` +} + +type ProtocolV3Observation struct { + + // Specifies the description of the identity provider. + // This field is required only if the protocol is set to oidc. + AccessConfig []AccessConfigObservation `json:"accessConfig,omitempty" tf:"access_config,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Resource links of an identity protocol, including identity_provider and self. + Links map[string]*string `json:"links,omitempty" tf:"links,omitempty"` + + // ID of an identity mapping. + MappingID *string `json:"mappingId,omitempty" tf:"mapping_id,omitempty"` + + // Metadata file configuration. + Metadata []MetadataObservation `json:"metadata,omitempty" tf:"metadata,omitempty"` + + // ID of a protocol. Changing this creates a new protocol. + Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` + + // ID of an identity provider. Changing this creates a new protocol. + ProviderID *string `json:"providerId,omitempty" tf:"provider_id,omitempty"` +} + +type ProtocolV3Parameters struct { + + // Specifies the description of the identity provider. + // This field is required only if the protocol is set to oidc. + // +kubebuilder:validation:Optional + AccessConfig []AccessConfigParameters `json:"accessConfig,omitempty" tf:"access_config,omitempty"` + + // ID of an identity mapping. + // +kubebuilder:validation:Optional + MappingID *string `json:"mappingId,omitempty" tf:"mapping_id,omitempty"` + + // Metadata file configuration. + // +kubebuilder:validation:Optional + Metadata []MetadataParameters `json:"metadata,omitempty" tf:"metadata,omitempty"` + + // ID of a protocol. Changing this creates a new protocol. + // +kubebuilder:validation:Optional + Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` + + // ID of an identity provider. Changing this creates a new protocol. + // +kubebuilder:validation:Optional + ProviderID *string `json:"providerId,omitempty" tf:"provider_id,omitempty"` +} + +// ProtocolV3Spec defines the desired state of ProtocolV3 +type ProtocolV3Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider ProtocolV3Parameters `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 ProtocolV3InitParameters `json:"initProvider,omitempty"` +} + +// ProtocolV3Status defines the observed state of ProtocolV3. +type ProtocolV3Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider ProtocolV3Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// ProtocolV3 is the Schema for the ProtocolV3s API. Manages a IAM Protocol resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type ProtocolV3 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.mappingId) || (has(self.initProvider) && has(self.initProvider.mappingId))",message="spec.forProvider.mappingId 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.providerId) || (has(self.initProvider) && has(self.initProvider.providerId))",message="spec.forProvider.providerId is a required parameter" + Spec ProtocolV3Spec `json:"spec"` + Status ProtocolV3Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// ProtocolV3List contains a list of ProtocolV3s +type ProtocolV3List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []ProtocolV3 `json:"items"` +} + +// Repository type metadata. +var ( + ProtocolV3_Kind = "ProtocolV3" + ProtocolV3_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: ProtocolV3_Kind}.String() + ProtocolV3_KindAPIVersion = ProtocolV3_Kind + "." + CRDGroupVersion.String() + ProtocolV3_GroupVersionKind = CRDGroupVersion.WithKind(ProtocolV3_Kind) +) + +func init() { + SchemeBuilder.Register(&ProtocolV3{}, &ProtocolV3List{}) +} diff --git a/apis/identity/v1alpha1/zz_provider_types.go b/apis/identity/v1alpha1/zz_provider_types.go new file mode 100755 index 0000000..447ae21 --- /dev/null +++ b/apis/identity/v1alpha1/zz_provider_types.go @@ -0,0 +1,366 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 ConversionRulesInitParameters struct { +} + +type ConversionRulesObservation struct { + + // The federated user information on the cloud platform. + Local []LocalObservation `json:"local,omitempty" tf:"local,omitempty"` + + // The description of the identity provider. + Remote []RemoteObservation `json:"remote,omitempty" tf:"remote,omitempty"` +} + +type ConversionRulesParameters struct { +} + +type LocalInitParameters struct { +} + +type LocalObservation struct { + + // The user group to which the federated user belongs on the cloud platform. + Group *string `json:"group,omitempty" tf:"group,omitempty"` + + // The user groups to which the federated user belongs on the cloud platform. + Groups *string `json:"groups,omitempty" tf:"groups,omitempty"` + + // The name of a federated user on the cloud platform. + Username *string `json:"username,omitempty" tf:"username,omitempty"` +} + +type LocalParameters struct { +} + +type ProviderAccessConfigInitParameters struct { + + // Specifies the access type of the identity provider. + // Available options are: + AccessType *string `json:"accessType,omitempty" tf:"access_type,omitempty"` + + // Specifies the authorization endpoint of the OpenID Connect identity + // provider. This field is required only if the access type is set to program_console. + AuthorizationEndpoint *string `json:"authorizationEndpoint,omitempty" tf:"authorization_endpoint,omitempty"` + + // Specifies the ID of a client registered with the OpenID Connect identity provider. + ClientID *string `json:"clientId,omitempty" tf:"client_id,omitempty"` + + // Specifies the URL of the identity provider. + // This field corresponds to the iss field in the ID token. + ProviderURL *string `json:"providerUrl,omitempty" tf:"provider_url,omitempty"` + + // Response mode. + // Valid values is form_post and fragment, default value is form_post. + // This field is required only if the access type is set to program_console. + ResponseMode *string `json:"responseMode,omitempty" tf:"response_mode,omitempty"` + + // Response type. Valid values is id_token, default value is id_token. + // This field is required only if the access type is set to program_console. + ResponseType *string `json:"responseType,omitempty" tf:"response_type,omitempty"` + + // Specifies the scopes of authorization requests. It is an array of one or more scopes. + // Valid values are openid, email, profile and other values defined by you. + // This field is required only if the access type is set to program_console. + Scopes []*string `json:"scopes,omitempty" tf:"scopes,omitempty"` + + // Public key used to sign the ID token of the OpenID Connect identity provider. + // This field is required only if the protocol is set to oidc. + SigningKey *string `json:"signingKey,omitempty" tf:"signing_key,omitempty"` +} + +type ProviderAccessConfigObservation struct { + + // Specifies the access type of the identity provider. + // Available options are: + AccessType *string `json:"accessType,omitempty" tf:"access_type,omitempty"` + + // Specifies the authorization endpoint of the OpenID Connect identity + // provider. This field is required only if the access type is set to program_console. + AuthorizationEndpoint *string `json:"authorizationEndpoint,omitempty" tf:"authorization_endpoint,omitempty"` + + // Specifies the ID of a client registered with the OpenID Connect identity provider. + ClientID *string `json:"clientId,omitempty" tf:"client_id,omitempty"` + + // Specifies the URL of the identity provider. + // This field corresponds to the iss field in the ID token. + ProviderURL *string `json:"providerUrl,omitempty" tf:"provider_url,omitempty"` + + // Response mode. + // Valid values is form_post and fragment, default value is form_post. + // This field is required only if the access type is set to program_console. + ResponseMode *string `json:"responseMode,omitempty" tf:"response_mode,omitempty"` + + // Response type. Valid values is id_token, default value is id_token. + // This field is required only if the access type is set to program_console. + ResponseType *string `json:"responseType,omitempty" tf:"response_type,omitempty"` + + // Specifies the scopes of authorization requests. It is an array of one or more scopes. + // Valid values are openid, email, profile and other values defined by you. + // This field is required only if the access type is set to program_console. + Scopes []*string `json:"scopes,omitempty" tf:"scopes,omitempty"` + + // Public key used to sign the ID token of the OpenID Connect identity provider. + // This field is required only if the protocol is set to oidc. + SigningKey *string `json:"signingKey,omitempty" tf:"signing_key,omitempty"` +} + +type ProviderAccessConfigParameters struct { + + // Specifies the access type of the identity provider. + // Available options are: + // +kubebuilder:validation:Optional + AccessType *string `json:"accessType" tf:"access_type,omitempty"` + + // Specifies the authorization endpoint of the OpenID Connect identity + // provider. This field is required only if the access type is set to program_console. + // +kubebuilder:validation:Optional + AuthorizationEndpoint *string `json:"authorizationEndpoint,omitempty" tf:"authorization_endpoint,omitempty"` + + // Specifies the ID of a client registered with the OpenID Connect identity provider. + // +kubebuilder:validation:Optional + ClientID *string `json:"clientId" tf:"client_id,omitempty"` + + // Specifies the URL of the identity provider. + // This field corresponds to the iss field in the ID token. + // +kubebuilder:validation:Optional + ProviderURL *string `json:"providerUrl" tf:"provider_url,omitempty"` + + // Response mode. + // Valid values is form_post and fragment, default value is form_post. + // This field is required only if the access type is set to program_console. + // +kubebuilder:validation:Optional + ResponseMode *string `json:"responseMode,omitempty" tf:"response_mode,omitempty"` + + // Response type. Valid values is id_token, default value is id_token. + // This field is required only if the access type is set to program_console. + // +kubebuilder:validation:Optional + ResponseType *string `json:"responseType,omitempty" tf:"response_type,omitempty"` + + // Specifies the scopes of authorization requests. It is an array of one or more scopes. + // Valid values are openid, email, profile and other values defined by you. + // This field is required only if the access type is set to program_console. + // +kubebuilder:validation:Optional + Scopes []*string `json:"scopes,omitempty" tf:"scopes,omitempty"` + + // Public key used to sign the ID token of the OpenID Connect identity provider. + // This field is required only if the protocol is set to oidc. + // +kubebuilder:validation:Optional + SigningKey *string `json:"signingKey" tf:"signing_key,omitempty"` +} + +type ProviderInitParameters struct { + + // Specifies the description of the identity provider. + // This field is required only if the protocol is set to oidc. + AccessConfig []ProviderAccessConfigInitParameters `json:"accessConfig,omitempty" tf:"access_config,omitempty"` + + // Specifies the description of the identity provider. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Rules used to map federated users to local users. + // Details on mapping_rules are available in this link under rules section. + MappingRules *string `json:"mappingRules,omitempty" tf:"mapping_rules,omitempty"` + + // Specifies the metadata of the IDP(Identity Provider) server. + // This field is used to import a metadata file to IAM to implement federated identity authentication. + // This field is required only if the protocol is set to saml. + // The maximum length is 30,000 characters and it stores in the state with SHA1 algorithm. + Metadata *string `json:"metadata,omitempty" tf:"metadata,omitempty"` + + // Specifies the name of the identity provider to be registered. + // The maximum length is 64 characters. Only letters, digits, underscores (_), and hyphens (-) are allowed. + // The name is unique, it is recommended to include domain name information. + // Changing this creates a new resource. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the protocol of the identity provider. + // Valid values are saml and oidc. + Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` + + // Enabled status for the identity provider. Default: true. + Status *bool `json:"status,omitempty" tf:"status,omitempty"` +} + +type ProviderObservation struct { + + // Specifies the description of the identity provider. + // This field is required only if the protocol is set to oidc. + AccessConfig []ProviderAccessConfigObservation `json:"accessConfig,omitempty" tf:"access_config,omitempty"` + + // The identity conversion rules of the identity provider. + // The structure is documented below. + ConversionRules []ConversionRulesObservation `json:"conversionRules,omitempty" tf:"conversion_rules,omitempty"` + + // Specifies the description of the identity provider. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // A resource ID in UUID format. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Resource links of an identity mapping. + Links map[string]*string `json:"links,omitempty" tf:"links,omitempty"` + + // The login link of the identity provider. + LoginLink *string `json:"loginLink,omitempty" tf:"login_link,omitempty"` + + // Rules used to map federated users to local users. + // Details on mapping_rules are available in this link under rules section. + MappingRules *string `json:"mappingRules,omitempty" tf:"mapping_rules,omitempty"` + + // Specifies the metadata of the IDP(Identity Provider) server. + // This field is used to import a metadata file to IAM to implement federated identity authentication. + // This field is required only if the protocol is set to saml. + // The maximum length is 30,000 characters and it stores in the state with SHA1 algorithm. + Metadata *string `json:"metadata,omitempty" tf:"metadata,omitempty"` + + // Specifies the name of the identity provider to be registered. + // The maximum length is 64 characters. Only letters, digits, underscores (_), and hyphens (-) are allowed. + // The name is unique, it is recommended to include domain name information. + // Changing this creates a new resource. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the protocol of the identity provider. + // Valid values are saml and oidc. + Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` + + // Enabled status for the identity provider. Default: true. + Status *bool `json:"status,omitempty" tf:"status,omitempty"` +} + +type ProviderParameters struct { + + // Specifies the description of the identity provider. + // This field is required only if the protocol is set to oidc. + // +kubebuilder:validation:Optional + AccessConfig []ProviderAccessConfigParameters `json:"accessConfig,omitempty" tf:"access_config,omitempty"` + + // Specifies the description of the identity provider. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Rules used to map federated users to local users. + // Details on mapping_rules are available in this link under rules section. + // +kubebuilder:validation:Optional + MappingRules *string `json:"mappingRules,omitempty" tf:"mapping_rules,omitempty"` + + // Specifies the metadata of the IDP(Identity Provider) server. + // This field is used to import a metadata file to IAM to implement federated identity authentication. + // This field is required only if the protocol is set to saml. + // The maximum length is 30,000 characters and it stores in the state with SHA1 algorithm. + // +kubebuilder:validation:Optional + Metadata *string `json:"metadata,omitempty" tf:"metadata,omitempty"` + + // Specifies the name of the identity provider to be registered. + // The maximum length is 64 characters. Only letters, digits, underscores (_), and hyphens (-) are allowed. + // The name is unique, it is recommended to include domain name information. + // Changing this creates a new resource. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the protocol of the identity provider. + // Valid values are saml and oidc. + // +kubebuilder:validation:Optional + Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` + + // Enabled status for the identity provider. Default: true. + // +kubebuilder:validation:Optional + Status *bool `json:"status,omitempty" tf:"status,omitempty"` +} + +type RemoteInitParameters struct { +} + +type RemoteObservation struct { + + // The attribute in the IDP assertion. + Attribute *string `json:"attribute,omitempty" tf:"attribute,omitempty"` + + // The condition of conversion rule. + Condition *string `json:"condition,omitempty" tf:"condition,omitempty"` + + // The rule is matched only if the specified strings appear in the attribute type. + Value []*string `json:"value,omitempty" tf:"value,omitempty"` +} + +type RemoteParameters struct { +} + +// ProviderSpec defines the desired state of Provider +type ProviderSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider ProviderParameters `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 ProviderInitParameters `json:"initProvider,omitempty"` +} + +// ProviderStatus defines the observed state of Provider. +type ProviderStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider ProviderObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// Provider is the Schema for the Providers API. Manages a IAM Provider resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type Provider 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.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name 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 ProviderSpec `json:"spec"` + Status ProviderStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// ProviderList contains a list of Providers +type ProviderList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []Provider `json:"items"` +} + +// Repository type metadata. +var ( + Provider_Kind = "Provider" + Provider_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: Provider_Kind}.String() + Provider_KindAPIVersion = Provider_Kind + "." + CRDGroupVersion.String() + Provider_GroupVersionKind = CRDGroupVersion.WithKind(Provider_Kind) +) + +func init() { + SchemeBuilder.Register(&Provider{}, &ProviderList{}) +} diff --git a/apis/identity/v1alpha1/zz_providerv3_types.go b/apis/identity/v1alpha1/zz_providerv3_types.go new file mode 100755 index 0000000..fb6c42a --- /dev/null +++ b/apis/identity/v1alpha1/zz_providerv3_types.go @@ -0,0 +1,124 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 ProviderV3InitParameters struct { + + // A description of the provider. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Whether an identity provider is enabled. Default value is false. + Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + + // The name (ID) of the provider. Changing this creates a new provider. + Name *string `json:"name,omitempty" tf:"name,omitempty"` +} + +type ProviderV3Observation struct { + + // A description of the provider. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Whether an identity provider is enabled. Default value is false. + Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + Links map[string]*string `json:"links,omitempty" tf:"links,omitempty"` + + // The name (ID) of the provider. Changing this creates a new provider. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + RemoteIds []*string `json:"remoteIds,omitempty" tf:"remote_ids,omitempty"` +} + +type ProviderV3Parameters struct { + + // A description of the provider. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Whether an identity provider is enabled. Default value is false. + // +kubebuilder:validation:Optional + Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + + // The name (ID) of the provider. Changing this creates a new provider. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` +} + +// ProviderV3Spec defines the desired state of ProviderV3 +type ProviderV3Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider ProviderV3Parameters `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 ProviderV3InitParameters `json:"initProvider,omitempty"` +} + +// ProviderV3Status defines the observed state of ProviderV3. +type ProviderV3Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider ProviderV3Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// ProviderV3 is the Schema for the ProviderV3s API. Manages a IAM Provider v3 resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type ProviderV3 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.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + Spec ProviderV3Spec `json:"spec"` + Status ProviderV3Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// ProviderV3List contains a list of ProviderV3s +type ProviderV3List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []ProviderV3 `json:"items"` +} + +// Repository type metadata. +var ( + ProviderV3_Kind = "ProviderV3" + ProviderV3_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: ProviderV3_Kind}.String() + ProviderV3_KindAPIVersion = ProviderV3_Kind + "." + CRDGroupVersion.String() + ProviderV3_GroupVersionKind = CRDGroupVersion.WithKind(ProviderV3_Kind) +) + +func init() { + SchemeBuilder.Register(&ProviderV3{}, &ProviderV3List{}) +} diff --git a/apis/identity/v1alpha1/zz_roleassignmentv3_types.go b/apis/identity/v1alpha1/zz_roleassignmentv3_types.go new file mode 100755 index 0000000..0e451aa --- /dev/null +++ b/apis/identity/v1alpha1/zz_roleassignmentv3_types.go @@ -0,0 +1,150 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 RoleAssignmentV3InitParameters struct { + + // Whether to assign role for all existing and future projects. + // domain_id has to be specified if all_projects is set to true. + AllProjects *bool `json:"allProjects,omitempty" tf:"all_projects,omitempty"` + + // The domain to assign the role in. + DomainID *string `json:"domainId,omitempty" tf:"domain_id,omitempty"` + + // The group to assign the role to. + GroupID *string `json:"groupId,omitempty" tf:"group_id,omitempty"` + + // The role to assign. + RoleID *string `json:"roleId,omitempty" tf:"role_id,omitempty"` +} + +type RoleAssignmentV3Observation struct { + + // Whether to assign role for all existing and future projects. + // domain_id has to be specified if all_projects is set to true. + AllProjects *bool `json:"allProjects,omitempty" tf:"all_projects,omitempty"` + + // The domain to assign the role in. + DomainID *string `json:"domainId,omitempty" tf:"domain_id,omitempty"` + + // The group to assign the role to. + GroupID *string `json:"groupId,omitempty" tf:"group_id,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The project to assign the role in. + ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + + // The role to assign. + RoleID *string `json:"roleId,omitempty" tf:"role_id,omitempty"` +} + +type RoleAssignmentV3Parameters struct { + + // Whether to assign role for all existing and future projects. + // domain_id has to be specified if all_projects is set to true. + // +kubebuilder:validation:Optional + AllProjects *bool `json:"allProjects,omitempty" tf:"all_projects,omitempty"` + + // The domain to assign the role in. + // +kubebuilder:validation:Optional + DomainID *string `json:"domainId,omitempty" tf:"domain_id,omitempty"` + + // The group to assign the role to. + // +kubebuilder:validation:Optional + GroupID *string `json:"groupId,omitempty" tf:"group_id,omitempty"` + + // The project to assign the role in. + // +crossplane:generate:reference:type=ProjectV3 + // +kubebuilder:validation:Optional + ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + + // Reference to a ProjectV3 to populate projectId. + // +kubebuilder:validation:Optional + ProjectIDRef *v1.Reference `json:"projectIdRef,omitempty" tf:"-"` + + // Selector for a ProjectV3 to populate projectId. + // +kubebuilder:validation:Optional + ProjectIDSelector *v1.Selector `json:"projectIdSelector,omitempty" tf:"-"` + + // The role to assign. + // +kubebuilder:validation:Optional + RoleID *string `json:"roleId,omitempty" tf:"role_id,omitempty"` +} + +// RoleAssignmentV3Spec defines the desired state of RoleAssignmentV3 +type RoleAssignmentV3Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider RoleAssignmentV3Parameters `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 RoleAssignmentV3InitParameters `json:"initProvider,omitempty"` +} + +// RoleAssignmentV3Status defines the observed state of RoleAssignmentV3. +type RoleAssignmentV3Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider RoleAssignmentV3Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// RoleAssignmentV3 is the Schema for the RoleAssignmentV3s API. Manages a IAM Role Assignment resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type RoleAssignmentV3 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.groupId) || (has(self.initProvider) && has(self.initProvider.groupId))",message="spec.forProvider.groupId is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.roleId) || (has(self.initProvider) && has(self.initProvider.roleId))",message="spec.forProvider.roleId is a required parameter" + Spec RoleAssignmentV3Spec `json:"spec"` + Status RoleAssignmentV3Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// RoleAssignmentV3List contains a list of RoleAssignmentV3s +type RoleAssignmentV3List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []RoleAssignmentV3 `json:"items"` +} + +// Repository type metadata. +var ( + RoleAssignmentV3_Kind = "RoleAssignmentV3" + RoleAssignmentV3_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: RoleAssignmentV3_Kind}.String() + RoleAssignmentV3_KindAPIVersion = RoleAssignmentV3_Kind + "." + CRDGroupVersion.String() + RoleAssignmentV3_GroupVersionKind = CRDGroupVersion.WithKind(RoleAssignmentV3_Kind) +) + +func init() { + SchemeBuilder.Register(&RoleAssignmentV3{}, &RoleAssignmentV3List{}) +} diff --git a/apis/identity/v1alpha1/zz_rolev3_types.go b/apis/identity/v1alpha1/zz_rolev3_types.go new file mode 100755 index 0000000..17e8706 --- /dev/null +++ b/apis/identity/v1alpha1/zz_rolev3_types.go @@ -0,0 +1,236 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 RoleV3InitParameters struct { + + // Description of a role. The value cannot exceed 256 characters. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Display layer of a role. + DisplayLayer *string `json:"displayLayer,omitempty" tf:"display_layer,omitempty"` + + // Displayed name of a role. The value cannot exceed 64 characters. + DisplayName *string `json:"displayName,omitempty" tf:"display_name,omitempty"` + + // Statement: The Statement field contains the Effect and Action + // elements. Effect indicates whether the policy allows or denies + // access. Action indicates authorization items. The number of + // statements cannot exceed 8. Structure is documented below. + Statement []StatementInitParameters `json:"statement,omitempty" tf:"statement,omitempty"` +} + +type RoleV3Observation struct { + + // Directory where a role locates + Catalog *string `json:"catalog,omitempty" tf:"catalog,omitempty"` + + // Description of a role. The value cannot exceed 256 characters. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Display layer of a role. + DisplayLayer *string `json:"displayLayer,omitempty" tf:"display_layer,omitempty"` + + // Displayed name of a role. The value cannot exceed 64 characters. + DisplayName *string `json:"displayName,omitempty" tf:"display_name,omitempty"` + + // ID of the domain to which a role belongs + DomainID *string `json:"domainId,omitempty" tf:"domain_id,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Name of a role + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Statement: The Statement field contains the Effect and Action + // elements. Effect indicates whether the policy allows or denies + // access. Action indicates authorization items. The number of + // statements cannot exceed 8. Structure is documented below. + Statement []StatementObservation `json:"statement,omitempty" tf:"statement,omitempty"` +} + +type RoleV3Parameters struct { + + // Description of a role. The value cannot exceed 256 characters. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Display layer of a role. + // +kubebuilder:validation:Optional + DisplayLayer *string `json:"displayLayer,omitempty" tf:"display_layer,omitempty"` + + // Displayed name of a role. The value cannot exceed 64 characters. + // +kubebuilder:validation:Optional + DisplayName *string `json:"displayName,omitempty" tf:"display_name,omitempty"` + + // Statement: The Statement field contains the Effect and Action + // elements. Effect indicates whether the policy allows or denies + // access. Action indicates authorization items. The number of + // statements cannot exceed 8. Structure is documented below. + // +kubebuilder:validation:Optional + Statement []StatementParameters `json:"statement,omitempty" tf:"statement,omitempty"` +} + +type StatementInitParameters struct { + + // Permission set, which specifies the operation permissions on + // resources. The number of permission sets cannot exceed 100. + // Format: The value format is Service name:Resource type:Action, + // for example, vpc:ports:create. Service name: indicates the + // product name, such as ecs, evs, or vpc. Only lowercase letters + // are allowed. Resource type and Action: The values are + // case-insensitive, and the wildcard () are allowed. A wildcard + // () can represent all or part of information about resource + // types and actions for the specific service. + Action []*string `json:"action,omitempty" tf:"action,omitempty"` + + // The conditions for the permission to take effect. A maximum of 10 conditions are allowed. + // Conditions should be provided as string as in example above. + Condition *string `json:"condition,omitempty" tf:"condition,omitempty"` + + // The value can be Allow and Deny. If both Allow and Deny are + // found in statements, the policy evaluation starts with Deny. + Effect *string `json:"effect,omitempty" tf:"effect,omitempty"` + + // The resources which will be granted/denied accesses. + // Format: Service:*:*:resource:resource_path. + // Examples: KMS:*:*:KeyId:your_key, OBS:*:*:bucket:your_bucket, OBS:*:*:object:your_object. + Resource []*string `json:"resource,omitempty" tf:"resource,omitempty"` +} + +type StatementObservation struct { + + // Permission set, which specifies the operation permissions on + // resources. The number of permission sets cannot exceed 100. + // Format: The value format is Service name:Resource type:Action, + // for example, vpc:ports:create. Service name: indicates the + // product name, such as ecs, evs, or vpc. Only lowercase letters + // are allowed. Resource type and Action: The values are + // case-insensitive, and the wildcard () are allowed. A wildcard + // () can represent all or part of information about resource + // types and actions for the specific service. + Action []*string `json:"action,omitempty" tf:"action,omitempty"` + + // The conditions for the permission to take effect. A maximum of 10 conditions are allowed. + // Conditions should be provided as string as in example above. + Condition *string `json:"condition,omitempty" tf:"condition,omitempty"` + + // The value can be Allow and Deny. If both Allow and Deny are + // found in statements, the policy evaluation starts with Deny. + Effect *string `json:"effect,omitempty" tf:"effect,omitempty"` + + // The resources which will be granted/denied accesses. + // Format: Service:*:*:resource:resource_path. + // Examples: KMS:*:*:KeyId:your_key, OBS:*:*:bucket:your_bucket, OBS:*:*:object:your_object. + Resource []*string `json:"resource,omitempty" tf:"resource,omitempty"` +} + +type StatementParameters struct { + + // Permission set, which specifies the operation permissions on + // resources. The number of permission sets cannot exceed 100. + // Format: The value format is Service name:Resource type:Action, + // for example, vpc:ports:create. Service name: indicates the + // product name, such as ecs, evs, or vpc. Only lowercase letters + // are allowed. Resource type and Action: The values are + // case-insensitive, and the wildcard () are allowed. A wildcard + // () can represent all or part of information about resource + // types and actions for the specific service. + // +kubebuilder:validation:Optional + Action []*string `json:"action" tf:"action,omitempty"` + + // The conditions for the permission to take effect. A maximum of 10 conditions are allowed. + // Conditions should be provided as string as in example above. + // +kubebuilder:validation:Optional + Condition *string `json:"condition,omitempty" tf:"condition,omitempty"` + + // The value can be Allow and Deny. If both Allow and Deny are + // found in statements, the policy evaluation starts with Deny. + // +kubebuilder:validation:Optional + Effect *string `json:"effect" tf:"effect,omitempty"` + + // The resources which will be granted/denied accesses. + // Format: Service:*:*:resource:resource_path. + // Examples: KMS:*:*:KeyId:your_key, OBS:*:*:bucket:your_bucket, OBS:*:*:object:your_object. + // +kubebuilder:validation:Optional + Resource []*string `json:"resource,omitempty" tf:"resource,omitempty"` +} + +// RoleV3Spec defines the desired state of RoleV3 +type RoleV3Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider RoleV3Parameters `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 RoleV3InitParameters `json:"initProvider,omitempty"` +} + +// RoleV3Status defines the observed state of RoleV3. +type RoleV3Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider RoleV3Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// RoleV3 is the Schema for the RoleV3s API. Manages a IAM Role resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type RoleV3 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.description) || (has(self.initProvider) && has(self.initProvider.description))",message="spec.forProvider.description is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.displayLayer) || (has(self.initProvider) && has(self.initProvider.displayLayer))",message="spec.forProvider.displayLayer is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.displayName) || (has(self.initProvider) && has(self.initProvider.displayName))",message="spec.forProvider.displayName is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.statement) || (has(self.initProvider) && has(self.initProvider.statement))",message="spec.forProvider.statement is a required parameter" + Spec RoleV3Spec `json:"spec"` + Status RoleV3Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// RoleV3List contains a list of RoleV3s +type RoleV3List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []RoleV3 `json:"items"` +} + +// Repository type metadata. +var ( + RoleV3_Kind = "RoleV3" + RoleV3_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: RoleV3_Kind}.String() + RoleV3_KindAPIVersion = RoleV3_Kind + "." + CRDGroupVersion.String() + RoleV3_GroupVersionKind = CRDGroupVersion.WithKind(RoleV3_Kind) +) + +func init() { + SchemeBuilder.Register(&RoleV3{}, &RoleV3List{}) +} diff --git a/apis/identity/v1alpha1/zz_usergroupmembershipv3_types.go b/apis/identity/v1alpha1/zz_usergroupmembershipv3_types.go new file mode 100755 index 0000000..b90ede5 --- /dev/null +++ b/apis/identity/v1alpha1/zz_usergroupmembershipv3_types.go @@ -0,0 +1,111 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 UserGroupMembershipV3InitParameters struct { + + // IDs of the groups for the user to be assigned to. + Groups []*string `json:"groups,omitempty" tf:"groups,omitempty"` + + // ID of a user. + User *string `json:"user,omitempty" tf:"user,omitempty"` +} + +type UserGroupMembershipV3Observation struct { + + // IDs of the groups for the user to be assigned to. + Groups []*string `json:"groups,omitempty" tf:"groups,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // ID of a user. + User *string `json:"user,omitempty" tf:"user,omitempty"` +} + +type UserGroupMembershipV3Parameters struct { + + // IDs of the groups for the user to be assigned to. + // +kubebuilder:validation:Optional + Groups []*string `json:"groups,omitempty" tf:"groups,omitempty"` + + // ID of a user. + // +kubebuilder:validation:Optional + User *string `json:"user,omitempty" tf:"user,omitempty"` +} + +// UserGroupMembershipV3Spec defines the desired state of UserGroupMembershipV3 +type UserGroupMembershipV3Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider UserGroupMembershipV3Parameters `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 UserGroupMembershipV3InitParameters `json:"initProvider,omitempty"` +} + +// UserGroupMembershipV3Status defines the observed state of UserGroupMembershipV3. +type UserGroupMembershipV3Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider UserGroupMembershipV3Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// UserGroupMembershipV3 is the Schema for the UserGroupMembershipV3s API. Manages a IAM User Group Membership resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type UserGroupMembershipV3 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.groups) || (has(self.initProvider) && has(self.initProvider.groups))",message="spec.forProvider.groups is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.user) || (has(self.initProvider) && has(self.initProvider.user))",message="spec.forProvider.user is a required parameter" + Spec UserGroupMembershipV3Spec `json:"spec"` + Status UserGroupMembershipV3Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// UserGroupMembershipV3List contains a list of UserGroupMembershipV3s +type UserGroupMembershipV3List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []UserGroupMembershipV3 `json:"items"` +} + +// Repository type metadata. +var ( + UserGroupMembershipV3_Kind = "UserGroupMembershipV3" + UserGroupMembershipV3_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: UserGroupMembershipV3_Kind}.String() + UserGroupMembershipV3_KindAPIVersion = UserGroupMembershipV3_Kind + "." + CRDGroupVersion.String() + UserGroupMembershipV3_GroupVersionKind = CRDGroupVersion.WithKind(UserGroupMembershipV3_Kind) +) + +func init() { + SchemeBuilder.Register(&UserGroupMembershipV3{}, &UserGroupMembershipV3List{}) +} diff --git a/apis/identity/v1alpha1/zz_userv3_types.go b/apis/identity/v1alpha1/zz_userv3_types.go new file mode 100755 index 0000000..dc5ec5a --- /dev/null +++ b/apis/identity/v1alpha1/zz_userv3_types.go @@ -0,0 +1,261 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 LoginProtectionInitParameters struct { + + // Specifies whether the user is enabled or disabled. Valid values are true and false. + Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + + // Login authentication method of the user. Options: sms, email, and vmfa. + VerificationMethod *string `json:"verificationMethod,omitempty" tf:"verification_method,omitempty"` +} + +type LoginProtectionObservation struct { + + // Specifies whether the user is enabled or disabled. Valid values are true and false. + Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + + // Login authentication method of the user. Options: sms, email, and vmfa. + VerificationMethod *string `json:"verificationMethod,omitempty" tf:"verification_method,omitempty"` +} + +type LoginProtectionParameters struct { + + // Specifies whether the user is enabled or disabled. Valid values are true and false. + // +kubebuilder:validation:Optional + Enabled *bool `json:"enabled" tf:"enabled,omitempty"` + + // Login authentication method of the user. Options: sms, email, and vmfa. + // +kubebuilder:validation:Optional + VerificationMethod *string `json:"verificationMethod" tf:"verification_method,omitempty"` +} + +type UserV3InitParameters struct { + + // Specifies the access type of the user. Available values are: + AccessType *string `json:"accessType,omitempty" tf:"access_type,omitempty"` + + // Specifies the country code. This parameter must be used together with phone. + CountryCode *string `json:"countryCode,omitempty" tf:"country_code,omitempty"` + + // Specifies the description of the user. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Specifies the email address with a maximum of 255 characters. + Email *string `json:"email,omitempty" tf:"email,omitempty"` + + // Specifies whether the user is enabled or disabled. Valid values are true and false. + Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + + // Login protection configuration. + // The login_protection block supports: + LoginProtection []LoginProtectionInitParameters `json:"loginProtection,omitempty" tf:"login_protection,omitempty"` + + // Specifies the name of the user. The user name consists of 5 to 32 characters. It can + // contain only uppercase letters, lowercase letters, digits, spaces, and special characters (-_) and cannot start with a + // digit. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the mobile number with a maximum of 32 digits. This parameter must be used + // together with country_code. + Phone *string `json:"phone,omitempty" tf:"phone,omitempty"` + + // Specifies whether the password should be reset. By default, the password is asked + // to reset at the first login. + PwdReset *bool `json:"pwdReset,omitempty" tf:"pwd_reset,omitempty"` + + // Whether to send a Welcome Email or not. + // Possible values are true and false. + SendWelcomeEmail *bool `json:"sendWelcomeEmail,omitempty" tf:"send_welcome_email,omitempty"` +} + +type UserV3Observation struct { + + // Specifies the access type of the user. Available values are: + AccessType *string `json:"accessType,omitempty" tf:"access_type,omitempty"` + + // Specifies the country code. This parameter must be used together with phone. + CountryCode *string `json:"countryCode,omitempty" tf:"country_code,omitempty"` + + // The time when the IAM user was created. + CreateTime *string `json:"createTime,omitempty" tf:"create_time,omitempty"` + + // Specifies the description of the user. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The domain user belongs to. + DomainID *string `json:"domainId,omitempty" tf:"domain_id,omitempty"` + + // Specifies the email address with a maximum of 255 characters. + Email *string `json:"email,omitempty" tf:"email,omitempty"` + + // Specifies whether the user is enabled or disabled. Valid values are true and false. + Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + + // The resource ID in UUID format. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The time when the IAM user last login. + LastLogin *string `json:"lastLogin,omitempty" tf:"last_login,omitempty"` + + // Login protection configuration. + // The login_protection block supports: + LoginProtection []LoginProtectionObservation `json:"loginProtection,omitempty" tf:"login_protection,omitempty"` + + // Specifies the name of the user. The user name consists of 5 to 32 characters. It can + // contain only uppercase letters, lowercase letters, digits, spaces, and special characters (-_) and cannot start with a + // digit. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Indicates the password strength. + PasswordStrength *string `json:"passwordStrength,omitempty" tf:"password_strength,omitempty"` + + // Specifies the mobile number with a maximum of 32 digits. This parameter must be used + // together with country_code. + Phone *string `json:"phone,omitempty" tf:"phone,omitempty"` + + // Specifies whether the password should be reset. By default, the password is asked + // to reset at the first login. + PwdReset *bool `json:"pwdReset,omitempty" tf:"pwd_reset,omitempty"` + + // Whether to send a Welcome Email or not. + // Possible values are true and false. + SendWelcomeEmail *bool `json:"sendWelcomeEmail,omitempty" tf:"send_welcome_email,omitempty"` + + // ID of the user in the external system. + XuserID *string `json:"xuserId,omitempty" tf:"xuser_id,omitempty"` + + // Type of the user in the external system. + XuserType *string `json:"xuserType,omitempty" tf:"xuser_type,omitempty"` +} + +type UserV3Parameters struct { + + // Specifies the access type of the user. Available values are: + // +kubebuilder:validation:Optional + AccessType *string `json:"accessType,omitempty" tf:"access_type,omitempty"` + + // Specifies the country code. This parameter must be used together with phone. + // +kubebuilder:validation:Optional + CountryCode *string `json:"countryCode,omitempty" tf:"country_code,omitempty"` + + // Specifies the description of the user. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Specifies the email address with a maximum of 255 characters. + // +kubebuilder:validation:Optional + Email *string `json:"email,omitempty" tf:"email,omitempty"` + + // Specifies whether the user is enabled or disabled. Valid values are true and false. + // +kubebuilder:validation:Optional + Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + + // Login protection configuration. + // The login_protection block supports: + // +kubebuilder:validation:Optional + LoginProtection []LoginProtectionParameters `json:"loginProtection,omitempty" tf:"login_protection,omitempty"` + + // Specifies the name of the user. The user name consists of 5 to 32 characters. It can + // contain only uppercase letters, lowercase letters, digits, spaces, and special characters (-_) and cannot start with a + // digit. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the password for the user with 6 to 32 characters. It must contain at least + // two of the following character types: uppercase letters, lowercase letters, digits, and special characters. + // +kubebuilder:validation:Optional + PasswordSecretRef *v1.SecretKeySelector `json:"passwordSecretRef,omitempty" tf:"-"` + + // Specifies the mobile number with a maximum of 32 digits. This parameter must be used + // together with country_code. + // +kubebuilder:validation:Optional + Phone *string `json:"phone,omitempty" tf:"phone,omitempty"` + + // Specifies whether the password should be reset. By default, the password is asked + // to reset at the first login. + // +kubebuilder:validation:Optional + PwdReset *bool `json:"pwdReset,omitempty" tf:"pwd_reset,omitempty"` + + // Whether to send a Welcome Email or not. + // Possible values are true and false. + // +kubebuilder:validation:Optional + SendWelcomeEmail *bool `json:"sendWelcomeEmail,omitempty" tf:"send_welcome_email,omitempty"` +} + +// UserV3Spec defines the desired state of UserV3 +type UserV3Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider UserV3Parameters `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 UserV3InitParameters `json:"initProvider,omitempty"` +} + +// UserV3Status defines the observed state of UserV3. +type UserV3Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider UserV3Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// UserV3 is the Schema for the UserV3s API. Manages a IAM User resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type UserV3 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.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + Spec UserV3Spec `json:"spec"` + Status UserV3Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// UserV3List contains a list of UserV3s +type UserV3List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []UserV3 `json:"items"` +} + +// Repository type metadata. +var ( + UserV3_Kind = "UserV3" + UserV3_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: UserV3_Kind}.String() + UserV3_KindAPIVersion = UserV3_Kind + "." + CRDGroupVersion.String() + UserV3_GroupVersionKind = CRDGroupVersion.WithKind(UserV3_Kind) +) + +func init() { + SchemeBuilder.Register(&UserV3{}, &UserV3List{}) +} diff --git a/apis/images/v1alpha1/zz_generated.deepcopy.go b/apis/images/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..b7f12df --- /dev/null +++ b/apis/images/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,803 @@ +//go:build !ignore_autogenerated + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by controller-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + 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 *ImageAccessAcceptV2) DeepCopyInto(out *ImageAccessAcceptV2) { + *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 ImageAccessAcceptV2. +func (in *ImageAccessAcceptV2) DeepCopy() *ImageAccessAcceptV2 { + if in == nil { + return nil + } + out := new(ImageAccessAcceptV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ImageAccessAcceptV2) 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 *ImageAccessAcceptV2InitParameters) DeepCopyInto(out *ImageAccessAcceptV2InitParameters) { + *out = *in + if in.ImageID != nil { + in, out := &in.ImageID, &out.ImageID + *out = new(string) + **out = **in + } + if in.MemberID != nil { + in, out := &in.MemberID, &out.MemberID + *out = new(string) + **out = **in + } + 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 ImageAccessAcceptV2InitParameters. +func (in *ImageAccessAcceptV2InitParameters) DeepCopy() *ImageAccessAcceptV2InitParameters { + if in == nil { + return nil + } + out := new(ImageAccessAcceptV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ImageAccessAcceptV2List) DeepCopyInto(out *ImageAccessAcceptV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ImageAccessAcceptV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageAccessAcceptV2List. +func (in *ImageAccessAcceptV2List) DeepCopy() *ImageAccessAcceptV2List { + if in == nil { + return nil + } + out := new(ImageAccessAcceptV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ImageAccessAcceptV2List) 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 *ImageAccessAcceptV2Observation) DeepCopyInto(out *ImageAccessAcceptV2Observation) { + *out = *in + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.ImageID != nil { + in, out := &in.ImageID, &out.ImageID + *out = new(string) + **out = **in + } + if in.MemberID != nil { + in, out := &in.MemberID, &out.MemberID + *out = new(string) + **out = **in + } + if in.Schema != nil { + in, out := &in.Schema, &out.Schema + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(string) + **out = **in + } + 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 ImageAccessAcceptV2Observation. +func (in *ImageAccessAcceptV2Observation) DeepCopy() *ImageAccessAcceptV2Observation { + if in == nil { + return nil + } + out := new(ImageAccessAcceptV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ImageAccessAcceptV2Parameters) DeepCopyInto(out *ImageAccessAcceptV2Parameters) { + *out = *in + if in.ImageID != nil { + in, out := &in.ImageID, &out.ImageID + *out = new(string) + **out = **in + } + if in.MemberID != nil { + in, out := &in.MemberID, &out.MemberID + *out = new(string) + **out = **in + } + 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 ImageAccessAcceptV2Parameters. +func (in *ImageAccessAcceptV2Parameters) DeepCopy() *ImageAccessAcceptV2Parameters { + if in == nil { + return nil + } + out := new(ImageAccessAcceptV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ImageAccessAcceptV2Spec) DeepCopyInto(out *ImageAccessAcceptV2Spec) { + *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 ImageAccessAcceptV2Spec. +func (in *ImageAccessAcceptV2Spec) DeepCopy() *ImageAccessAcceptV2Spec { + if in == nil { + return nil + } + out := new(ImageAccessAcceptV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ImageAccessAcceptV2Status) DeepCopyInto(out *ImageAccessAcceptV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageAccessAcceptV2Status. +func (in *ImageAccessAcceptV2Status) DeepCopy() *ImageAccessAcceptV2Status { + if in == nil { + return nil + } + out := new(ImageAccessAcceptV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ImageAccessV2) DeepCopyInto(out *ImageAccessV2) { + *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 ImageAccessV2. +func (in *ImageAccessV2) DeepCopy() *ImageAccessV2 { + if in == nil { + return nil + } + out := new(ImageAccessV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ImageAccessV2) 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 *ImageAccessV2InitParameters) DeepCopyInto(out *ImageAccessV2InitParameters) { + *out = *in + if in.ImageID != nil { + in, out := &in.ImageID, &out.ImageID + *out = new(string) + **out = **in + } + if in.MemberID != nil { + in, out := &in.MemberID, &out.MemberID + *out = new(string) + **out = **in + } + 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 ImageAccessV2InitParameters. +func (in *ImageAccessV2InitParameters) DeepCopy() *ImageAccessV2InitParameters { + if in == nil { + return nil + } + out := new(ImageAccessV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ImageAccessV2List) DeepCopyInto(out *ImageAccessV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ImageAccessV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageAccessV2List. +func (in *ImageAccessV2List) DeepCopy() *ImageAccessV2List { + if in == nil { + return nil + } + out := new(ImageAccessV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ImageAccessV2List) 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 *ImageAccessV2Observation) DeepCopyInto(out *ImageAccessV2Observation) { + *out = *in + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.ImageID != nil { + in, out := &in.ImageID, &out.ImageID + *out = new(string) + **out = **in + } + if in.MemberID != nil { + in, out := &in.MemberID, &out.MemberID + *out = new(string) + **out = **in + } + if in.Schema != nil { + in, out := &in.Schema, &out.Schema + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(string) + **out = **in + } + if in.UpdateAt != nil { + in, out := &in.UpdateAt, &out.UpdateAt + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageAccessV2Observation. +func (in *ImageAccessV2Observation) DeepCopy() *ImageAccessV2Observation { + if in == nil { + return nil + } + out := new(ImageAccessV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ImageAccessV2Parameters) DeepCopyInto(out *ImageAccessV2Parameters) { + *out = *in + if in.ImageID != nil { + in, out := &in.ImageID, &out.ImageID + *out = new(string) + **out = **in + } + if in.MemberID != nil { + in, out := &in.MemberID, &out.MemberID + *out = new(string) + **out = **in + } + 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 ImageAccessV2Parameters. +func (in *ImageAccessV2Parameters) DeepCopy() *ImageAccessV2Parameters { + if in == nil { + return nil + } + out := new(ImageAccessV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ImageAccessV2Spec) DeepCopyInto(out *ImageAccessV2Spec) { + *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 ImageAccessV2Spec. +func (in *ImageAccessV2Spec) DeepCopy() *ImageAccessV2Spec { + if in == nil { + return nil + } + out := new(ImageAccessV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ImageAccessV2Status) DeepCopyInto(out *ImageAccessV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageAccessV2Status. +func (in *ImageAccessV2Status) DeepCopy() *ImageAccessV2Status { + if in == nil { + return nil + } + out := new(ImageAccessV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ImageV2) DeepCopyInto(out *ImageV2) { + *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 ImageV2. +func (in *ImageV2) DeepCopy() *ImageV2 { + if in == nil { + return nil + } + out := new(ImageV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ImageV2) 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 *ImageV2InitParameters) DeepCopyInto(out *ImageV2InitParameters) { + *out = *in + if in.ContainerFormat != nil { + in, out := &in.ContainerFormat, &out.ContainerFormat + *out = new(string) + **out = **in + } + if in.DiskFormat != nil { + in, out := &in.DiskFormat, &out.DiskFormat + *out = new(string) + **out = **in + } + if in.ImageCachePath != nil { + in, out := &in.ImageCachePath, &out.ImageCachePath + *out = new(string) + **out = **in + } + if in.ImageSourceURL != nil { + in, out := &in.ImageSourceURL, &out.ImageSourceURL + *out = new(string) + **out = **in + } + if in.LocalFilePath != nil { + in, out := &in.LocalFilePath, &out.LocalFilePath + *out = new(string) + **out = **in + } + if in.MinDiskGb != nil { + in, out := &in.MinDiskGb, &out.MinDiskGb + *out = new(float64) + **out = **in + } + if in.MinRAMMb != nil { + in, out := &in.MinRAMMb, &out.MinRAMMb + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Protected != nil { + in, out := &in.Protected, &out.Protected + *out = new(bool) + **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([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.Visibility != nil { + in, out := &in.Visibility, &out.Visibility + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageV2InitParameters. +func (in *ImageV2InitParameters) DeepCopy() *ImageV2InitParameters { + if in == nil { + return nil + } + out := new(ImageV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ImageV2List) DeepCopyInto(out *ImageV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ImageV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageV2List. +func (in *ImageV2List) DeepCopy() *ImageV2List { + if in == nil { + return nil + } + out := new(ImageV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ImageV2List) 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 *ImageV2Observation) DeepCopyInto(out *ImageV2Observation) { + *out = *in + if in.Checksum != nil { + in, out := &in.Checksum, &out.Checksum + *out = new(string) + **out = **in + } + if in.ContainerFormat != nil { + in, out := &in.ContainerFormat, &out.ContainerFormat + *out = new(string) + **out = **in + } + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt + *out = new(string) + **out = **in + } + if in.DiskFormat != nil { + in, out := &in.DiskFormat, &out.DiskFormat + *out = new(string) + **out = **in + } + if in.File != nil { + in, out := &in.File, &out.File + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.ImageCachePath != nil { + in, out := &in.ImageCachePath, &out.ImageCachePath + *out = new(string) + **out = **in + } + if in.ImageSourceURL != nil { + in, out := &in.ImageSourceURL, &out.ImageSourceURL + *out = new(string) + **out = **in + } + if in.LocalFilePath != nil { + in, out := &in.LocalFilePath, &out.LocalFilePath + *out = new(string) + **out = **in + } + if in.MinDiskGb != nil { + in, out := &in.MinDiskGb, &out.MinDiskGb + *out = new(float64) + **out = **in + } + if in.MinRAMMb != nil { + in, out := &in.MinRAMMb, &out.MinRAMMb + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Owner != nil { + in, out := &in.Owner, &out.Owner + *out = new(string) + **out = **in + } + if in.Protected != nil { + in, out := &in.Protected, &out.Protected + *out = new(bool) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.Schema != nil { + in, out := &in.Schema, &out.Schema + *out = new(string) + **out = **in + } + if in.SizeBytes != nil { + in, out := &in.SizeBytes, &out.SizeBytes + *out = new(float64) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(string) + **out = **in + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *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.UpdateAt != nil { + in, out := &in.UpdateAt, &out.UpdateAt + *out = new(string) + **out = **in + } + if in.Visibility != nil { + in, out := &in.Visibility, &out.Visibility + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageV2Observation. +func (in *ImageV2Observation) DeepCopy() *ImageV2Observation { + if in == nil { + return nil + } + out := new(ImageV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ImageV2Parameters) DeepCopyInto(out *ImageV2Parameters) { + *out = *in + if in.ContainerFormat != nil { + in, out := &in.ContainerFormat, &out.ContainerFormat + *out = new(string) + **out = **in + } + if in.DiskFormat != nil { + in, out := &in.DiskFormat, &out.DiskFormat + *out = new(string) + **out = **in + } + if in.ImageCachePath != nil { + in, out := &in.ImageCachePath, &out.ImageCachePath + *out = new(string) + **out = **in + } + if in.ImageSourceURL != nil { + in, out := &in.ImageSourceURL, &out.ImageSourceURL + *out = new(string) + **out = **in + } + if in.LocalFilePath != nil { + in, out := &in.LocalFilePath, &out.LocalFilePath + *out = new(string) + **out = **in + } + if in.MinDiskGb != nil { + in, out := &in.MinDiskGb, &out.MinDiskGb + *out = new(float64) + **out = **in + } + if in.MinRAMMb != nil { + in, out := &in.MinRAMMb, &out.MinRAMMb + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Protected != nil { + in, out := &in.Protected, &out.Protected + *out = new(bool) + **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([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } + if in.Visibility != nil { + in, out := &in.Visibility, &out.Visibility + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageV2Parameters. +func (in *ImageV2Parameters) DeepCopy() *ImageV2Parameters { + if in == nil { + return nil + } + out := new(ImageV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ImageV2Spec) DeepCopyInto(out *ImageV2Spec) { + *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 ImageV2Spec. +func (in *ImageV2Spec) DeepCopy() *ImageV2Spec { + if in == nil { + return nil + } + out := new(ImageV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ImageV2Status) DeepCopyInto(out *ImageV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageV2Status. +func (in *ImageV2Status) DeepCopy() *ImageV2Status { + if in == nil { + return nil + } + out := new(ImageV2Status) + in.DeepCopyInto(out) + return out +} diff --git a/apis/images/v1alpha1/zz_generated.managed.go b/apis/images/v1alpha1/zz_generated.managed.go new file mode 100644 index 0000000..57cadbb --- /dev/null +++ b/apis/images/v1alpha1/zz_generated.managed.go @@ -0,0 +1,188 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import xpv1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + +// GetCondition of this ImageAccessAcceptV2. +func (mg *ImageAccessAcceptV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this ImageAccessAcceptV2. +func (mg *ImageAccessAcceptV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this ImageAccessAcceptV2. +func (mg *ImageAccessAcceptV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this ImageAccessAcceptV2. +func (mg *ImageAccessAcceptV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this ImageAccessAcceptV2. +func (mg *ImageAccessAcceptV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this ImageAccessAcceptV2. +func (mg *ImageAccessAcceptV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this ImageAccessAcceptV2. +func (mg *ImageAccessAcceptV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this ImageAccessAcceptV2. +func (mg *ImageAccessAcceptV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this ImageAccessAcceptV2. +func (mg *ImageAccessAcceptV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this ImageAccessAcceptV2. +func (mg *ImageAccessAcceptV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this ImageAccessAcceptV2. +func (mg *ImageAccessAcceptV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this ImageAccessAcceptV2. +func (mg *ImageAccessAcceptV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this ImageAccessV2. +func (mg *ImageAccessV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this ImageAccessV2. +func (mg *ImageAccessV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this ImageAccessV2. +func (mg *ImageAccessV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this ImageAccessV2. +func (mg *ImageAccessV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this ImageAccessV2. +func (mg *ImageAccessV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this ImageAccessV2. +func (mg *ImageAccessV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this ImageAccessV2. +func (mg *ImageAccessV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this ImageAccessV2. +func (mg *ImageAccessV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this ImageAccessV2. +func (mg *ImageAccessV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this ImageAccessV2. +func (mg *ImageAccessV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this ImageAccessV2. +func (mg *ImageAccessV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this ImageAccessV2. +func (mg *ImageAccessV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this ImageV2. +func (mg *ImageV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this ImageV2. +func (mg *ImageV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this ImageV2. +func (mg *ImageV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this ImageV2. +func (mg *ImageV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this ImageV2. +func (mg *ImageV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this ImageV2. +func (mg *ImageV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this ImageV2. +func (mg *ImageV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this ImageV2. +func (mg *ImageV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this ImageV2. +func (mg *ImageV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this ImageV2. +func (mg *ImageV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this ImageV2. +func (mg *ImageV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this ImageV2. +func (mg *ImageV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} diff --git a/apis/images/v1alpha1/zz_generated.managedlist.go b/apis/images/v1alpha1/zz_generated.managedlist.go new file mode 100644 index 0000000..35e57cf --- /dev/null +++ b/apis/images/v1alpha1/zz_generated.managedlist.go @@ -0,0 +1,35 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import resource "github.com/crossplane/crossplane-runtime/pkg/resource" + +// GetItems of this ImageAccessAcceptV2List. +func (l *ImageAccessAcceptV2List) 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 ImageAccessV2List. +func (l *ImageAccessV2List) 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 ImageV2List. +func (l *ImageV2List) 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/images/v1alpha1/zz_generated_terraformed.go b/apis/images/v1alpha1/zz_generated_terraformed.go new file mode 100755 index 0000000..872fbb5 --- /dev/null +++ b/apis/images/v1alpha1/zz_generated_terraformed.go @@ -0,0 +1,270 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "github.com/pkg/errors" + + "github.com/crossplane/upjet/pkg/resource" + "github.com/crossplane/upjet/pkg/resource/json" +) + +// GetTerraformResourceType returns Terraform resource type for this ImageAccessAcceptV2 +func (mg *ImageAccessAcceptV2) GetTerraformResourceType() string { + return "opentelekomcloud_images_image_access_accept_v2" +} + +// GetConnectionDetailsMapping for this ImageAccessAcceptV2 +func (tr *ImageAccessAcceptV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this ImageAccessAcceptV2 +func (tr *ImageAccessAcceptV2) 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 ImageAccessAcceptV2 +func (tr *ImageAccessAcceptV2) 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 ImageAccessAcceptV2 +func (tr *ImageAccessAcceptV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this ImageAccessAcceptV2 +func (tr *ImageAccessAcceptV2) 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 ImageAccessAcceptV2 +func (tr *ImageAccessAcceptV2) 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 ImageAccessAcceptV2 +func (tr *ImageAccessAcceptV2) 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) +} + +// LateInitialize this ImageAccessAcceptV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *ImageAccessAcceptV2) LateInitialize(attrs []byte) (bool, error) { + params := &ImageAccessAcceptV2Parameters{} + 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 *ImageAccessAcceptV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this ImageAccessV2 +func (mg *ImageAccessV2) GetTerraformResourceType() string { + return "opentelekomcloud_images_image_access_v2" +} + +// GetConnectionDetailsMapping for this ImageAccessV2 +func (tr *ImageAccessV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this ImageAccessV2 +func (tr *ImageAccessV2) 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 ImageAccessV2 +func (tr *ImageAccessV2) 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 ImageAccessV2 +func (tr *ImageAccessV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this ImageAccessV2 +func (tr *ImageAccessV2) 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 ImageAccessV2 +func (tr *ImageAccessV2) 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 ImageAccessV2 +func (tr *ImageAccessV2) 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) +} + +// LateInitialize this ImageAccessV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *ImageAccessV2) LateInitialize(attrs []byte) (bool, error) { + params := &ImageAccessV2Parameters{} + 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 *ImageAccessV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this ImageV2 +func (mg *ImageV2) GetTerraformResourceType() string { + return "opentelekomcloud_images_image_v2" +} + +// GetConnectionDetailsMapping for this ImageV2 +func (tr *ImageV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this ImageV2 +func (tr *ImageV2) 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 ImageV2 +func (tr *ImageV2) 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 ImageV2 +func (tr *ImageV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this ImageV2 +func (tr *ImageV2) 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 ImageV2 +func (tr *ImageV2) 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 ImageV2 +func (tr *ImageV2) 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) +} + +// LateInitialize this ImageV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *ImageV2) LateInitialize(attrs []byte) (bool, error) { + params := &ImageV2Parameters{} + 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 *ImageV2) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/images/v1alpha1/zz_groupversion_info.go b/apis/images/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..ef1b7ad --- /dev/null +++ b/apis/images/v1alpha1/zz_groupversion_info.go @@ -0,0 +1,36 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +// +kubebuilder:object:generate=true +// +groupName=images.crossplane.io +// +versionName=v1alpha1 +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +// Package type metadata. +const ( + CRDGroup = "images.crossplane.io" + CRDVersion = "v1alpha1" +) + +var ( + // CRDGroupVersion is the API Group Version used to register the objects + CRDGroupVersion = schema.GroupVersion{Group: CRDGroup, Version: CRDVersion} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme + SchemeBuilder = &scheme.Builder{GroupVersion: CRDGroupVersion} + + // AddToScheme adds the types in this group-version to the given scheme. + AddToScheme = SchemeBuilder.AddToScheme +) diff --git a/apis/images/v1alpha1/zz_imageaccessacceptv2_types.go b/apis/images/v1alpha1/zz_imageaccessacceptv2_types.go new file mode 100755 index 0000000..7c477d1 --- /dev/null +++ b/apis/images/v1alpha1/zz_imageaccessacceptv2_types.go @@ -0,0 +1,131 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 ImageAccessAcceptV2InitParameters struct { + + // The proposed image ID. + ImageID *string `json:"imageId,omitempty" tf:"image_id,omitempty"` + + // The member ID, e.g. the target project ID. + MemberID *string `json:"memberId,omitempty" tf:"member_id,omitempty"` + + // The membership proposal status. Can either be accepted, rejected or pending. + Status *string `json:"status,omitempty" tf:"status,omitempty"` +} + +type ImageAccessAcceptV2Observation struct { + + // Specifies the time when a shared image was created. The value is in UTC format. + CreatedAt *string `json:"createdAt,omitempty" tf:"created_at,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The proposed image ID. + ImageID *string `json:"imageId,omitempty" tf:"image_id,omitempty"` + + // The member ID, e.g. the target project ID. + MemberID *string `json:"memberId,omitempty" tf:"member_id,omitempty"` + + // Specifies the sharing schema. + Schema *string `json:"schema,omitempty" tf:"schema,omitempty"` + + // The membership proposal status. Can either be accepted, rejected or pending. + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + // Specifies the time when a shared image was updated. The value is in UTC format. + UpdatedAt *string `json:"updatedAt,omitempty" tf:"updated_at,omitempty"` +} + +type ImageAccessAcceptV2Parameters struct { + + // The proposed image ID. + // +kubebuilder:validation:Optional + ImageID *string `json:"imageId,omitempty" tf:"image_id,omitempty"` + + // The member ID, e.g. the target project ID. + // +kubebuilder:validation:Optional + MemberID *string `json:"memberId,omitempty" tf:"member_id,omitempty"` + + // The membership proposal status. Can either be accepted, rejected or pending. + // +kubebuilder:validation:Optional + Status *string `json:"status,omitempty" tf:"status,omitempty"` +} + +// ImageAccessAcceptV2Spec defines the desired state of ImageAccessAcceptV2 +type ImageAccessAcceptV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider ImageAccessAcceptV2Parameters `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 ImageAccessAcceptV2InitParameters `json:"initProvider,omitempty"` +} + +// ImageAccessAcceptV2Status defines the observed state of ImageAccessAcceptV2. +type ImageAccessAcceptV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider ImageAccessAcceptV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// ImageAccessAcceptV2 is the Schema for the ImageAccessAcceptV2s API. Manages an Image Sharing Accept resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type ImageAccessAcceptV2 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.imageId) || (has(self.initProvider) && has(self.initProvider.imageId))",message="spec.forProvider.imageId is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.memberId) || (has(self.initProvider) && has(self.initProvider.memberId))",message="spec.forProvider.memberId is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.status) || (has(self.initProvider) && has(self.initProvider.status))",message="spec.forProvider.status is a required parameter" + Spec ImageAccessAcceptV2Spec `json:"spec"` + Status ImageAccessAcceptV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// ImageAccessAcceptV2List contains a list of ImageAccessAcceptV2s +type ImageAccessAcceptV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []ImageAccessAcceptV2 `json:"items"` +} + +// Repository type metadata. +var ( + ImageAccessAcceptV2_Kind = "ImageAccessAcceptV2" + ImageAccessAcceptV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: ImageAccessAcceptV2_Kind}.String() + ImageAccessAcceptV2_KindAPIVersion = ImageAccessAcceptV2_Kind + "." + CRDGroupVersion.String() + ImageAccessAcceptV2_GroupVersionKind = CRDGroupVersion.WithKind(ImageAccessAcceptV2_Kind) +) + +func init() { + SchemeBuilder.Register(&ImageAccessAcceptV2{}, &ImageAccessAcceptV2List{}) +} diff --git a/apis/images/v1alpha1/zz_imageaccessv2_types.go b/apis/images/v1alpha1/zz_imageaccessv2_types.go new file mode 100755 index 0000000..f9c5170 --- /dev/null +++ b/apis/images/v1alpha1/zz_imageaccessv2_types.go @@ -0,0 +1,138 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 ImageAccessV2InitParameters struct { + + // The proposed image ID. + ImageID *string `json:"imageId,omitempty" tf:"image_id,omitempty"` + + // The member ID, e.g. the target project ID. Optional + // for admin accounts. Defaults to the current scope project ID. + MemberID *string `json:"memberId,omitempty" tf:"member_id,omitempty"` + + // The member proposal status. Optional if admin wants to force the member + // proposal acceptance. Can either be accepted, rejected or pending. Defaults to + // pending. Forbidden for non-admin users. + Status *string `json:"status,omitempty" tf:"status,omitempty"` +} + +type ImageAccessV2Observation struct { + + // Specifies the time when a shared image was created. The value is in UTC format. + CreatedAt *string `json:"createdAt,omitempty" tf:"created_at,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The proposed image ID. + ImageID *string `json:"imageId,omitempty" tf:"image_id,omitempty"` + + // The member ID, e.g. the target project ID. Optional + // for admin accounts. Defaults to the current scope project ID. + MemberID *string `json:"memberId,omitempty" tf:"member_id,omitempty"` + + // Specifies the sharing schema. + Schema *string `json:"schema,omitempty" tf:"schema,omitempty"` + + // The member proposal status. Optional if admin wants to force the member + // proposal acceptance. Can either be accepted, rejected or pending. Defaults to + // pending. Forbidden for non-admin users. + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + UpdateAt *string `json:"updateAt,omitempty" tf:"update_at,omitempty"` +} + +type ImageAccessV2Parameters struct { + + // The proposed image ID. + // +kubebuilder:validation:Optional + ImageID *string `json:"imageId,omitempty" tf:"image_id,omitempty"` + + // The member ID, e.g. the target project ID. Optional + // for admin accounts. Defaults to the current scope project ID. + // +kubebuilder:validation:Optional + MemberID *string `json:"memberId,omitempty" tf:"member_id,omitempty"` + + // The member proposal status. Optional if admin wants to force the member + // proposal acceptance. Can either be accepted, rejected or pending. Defaults to + // pending. Forbidden for non-admin users. + // +kubebuilder:validation:Optional + Status *string `json:"status,omitempty" tf:"status,omitempty"` +} + +// ImageAccessV2Spec defines the desired state of ImageAccessV2 +type ImageAccessV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider ImageAccessV2Parameters `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 ImageAccessV2InitParameters `json:"initProvider,omitempty"` +} + +// ImageAccessV2Status defines the observed state of ImageAccessV2. +type ImageAccessV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider ImageAccessV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// ImageAccessV2 is the Schema for the ImageAccessV2s API. Manages an Image Sharing resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type ImageAccessV2 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.imageId) || (has(self.initProvider) && has(self.initProvider.imageId))",message="spec.forProvider.imageId is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.memberId) || (has(self.initProvider) && has(self.initProvider.memberId))",message="spec.forProvider.memberId is a required parameter" + Spec ImageAccessV2Spec `json:"spec"` + Status ImageAccessV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// ImageAccessV2List contains a list of ImageAccessV2s +type ImageAccessV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []ImageAccessV2 `json:"items"` +} + +// Repository type metadata. +var ( + ImageAccessV2_Kind = "ImageAccessV2" + ImageAccessV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: ImageAccessV2_Kind}.String() + ImageAccessV2_KindAPIVersion = ImageAccessV2_Kind + "." + CRDGroupVersion.String() + ImageAccessV2_GroupVersionKind = CRDGroupVersion.WithKind(ImageAccessV2_Kind) +) + +func init() { + SchemeBuilder.Register(&ImageAccessV2{}, &ImageAccessV2List{}) +} diff --git a/apis/images/v1alpha1/zz_imagev2_types.go b/apis/images/v1alpha1/zz_imagev2_types.go new file mode 100755 index 0000000..87f9037 --- /dev/null +++ b/apis/images/v1alpha1/zz_imagev2_types.go @@ -0,0 +1,283 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 ImageV2InitParameters struct { + + // The container format. Must be one of + // ami, ari, aki, bare, ovf. + ContainerFormat *string `json:"containerFormat,omitempty" tf:"container_format,omitempty"` + + // The disk format. Must be one of + // ami, ari, aki, vhd, vmdk, raw, qcow2, vdi, iso. + DiskFormat *string `json:"diskFormat,omitempty" tf:"disk_format,omitempty"` + + // This is the directory where the images will + // be downloaded. Images will be stored with a filename corresponding to + // the url's md5 hash. Defaults to "$HOME/ + ImageCachePath *string `json:"imageCachePath,omitempty" tf:"image_cache_path,omitempty"` + + // This is the url of the raw image that will + // be downloaded in the image_cache_path before being uploaded to Glance. + // Glance is able to download image from internet but the gophercloud library + // does not yet provide a way to do so. + // Conflicts with local_file_path. + ImageSourceURL *string `json:"imageSourceUrl,omitempty" tf:"image_source_url,omitempty"` + + // This is the filepath of the raw image file + // that will be uploaded to Glance. Conflicts with image_source_url. + LocalFilePath *string `json:"localFilePath,omitempty" tf:"local_file_path,omitempty"` + + // Amount of disk space (in GB) required to boot image. + // Defaults to 0. + MinDiskGb *float64 `json:"minDiskGb,omitempty" tf:"min_disk_gb,omitempty"` + + // Amount of ram (in MB) required to boot image. + // Defauts to 0. + MinRAMMb *float64 `json:"minRamMb,omitempty" tf:"min_ram_mb,omitempty"` + + // The name of the image. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // If true, image will not be deletable. + // Defaults to false. + Protected *bool `json:"protected,omitempty" tf:"protected,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The tags of the image. It must be a list of strings. + // At this time, it is not possible to delete all tags of an image. + Tags []*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The visibility of the image. Must be one of + // "public", "private", "community", or "shared". The ability to set the + // visibility depends upon the configuration of the OpenTelekomCloud cloud. + Visibility *string `json:"visibility,omitempty" tf:"visibility,omitempty"` +} + +type ImageV2Observation struct { + + // The checksum of the data associated with the image. + Checksum *string `json:"checksum,omitempty" tf:"checksum,omitempty"` + + // The container format. Must be one of + // ami, ari, aki, bare, ovf. + ContainerFormat *string `json:"containerFormat,omitempty" tf:"container_format,omitempty"` + + // The date the image was created. + CreatedAt *string `json:"createdAt,omitempty" tf:"created_at,omitempty"` + + // The disk format. Must be one of + // ami, ari, aki, vhd, vmdk, raw, qcow2, vdi, iso. + DiskFormat *string `json:"diskFormat,omitempty" tf:"disk_format,omitempty"` + + // the trailing path after the glance + // endpoint that represent the location of the image + // or the path to retrieve it. + File *string `json:"file,omitempty" tf:"file,omitempty"` + + // A unique ID assigned by Glance. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // This is the directory where the images will + // be downloaded. Images will be stored with a filename corresponding to + // the url's md5 hash. Defaults to "$HOME/ + ImageCachePath *string `json:"imageCachePath,omitempty" tf:"image_cache_path,omitempty"` + + // This is the url of the raw image that will + // be downloaded in the image_cache_path before being uploaded to Glance. + // Glance is able to download image from internet but the gophercloud library + // does not yet provide a way to do so. + // Conflicts with local_file_path. + ImageSourceURL *string `json:"imageSourceUrl,omitempty" tf:"image_source_url,omitempty"` + + // This is the filepath of the raw image file + // that will be uploaded to Glance. Conflicts with image_source_url. + LocalFilePath *string `json:"localFilePath,omitempty" tf:"local_file_path,omitempty"` + + // Amount of disk space (in GB) required to boot image. + // Defaults to 0. + MinDiskGb *float64 `json:"minDiskGb,omitempty" tf:"min_disk_gb,omitempty"` + + // Amount of ram (in MB) required to boot image. + // Defauts to 0. + MinRAMMb *float64 `json:"minRamMb,omitempty" tf:"min_ram_mb,omitempty"` + + // The name of the image. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The id of the opentelekomcloud user who owns the image. + Owner *string `json:"owner,omitempty" tf:"owner,omitempty"` + + // If true, image will not be deletable. + // Defaults to false. + Protected *bool `json:"protected,omitempty" tf:"protected,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The path to the JSON-schema that represent + // the image or image + Schema *string `json:"schema,omitempty" tf:"schema,omitempty"` + + // The size in bytes of the data associated with the image. + SizeBytes *float64 `json:"sizeBytes,omitempty" tf:"size_bytes,omitempty"` + + // The status of the image. It can be queued, active + // or saving. + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + // The tags of the image. It must be a list of strings. + // At this time, it is not possible to delete all tags of an image. + Tags []*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The date the image was last updated. + UpdateAt *string `json:"updateAt,omitempty" tf:"update_at,omitempty"` + + // The visibility of the image. Must be one of + // "public", "private", "community", or "shared". The ability to set the + // visibility depends upon the configuration of the OpenTelekomCloud cloud. + Visibility *string `json:"visibility,omitempty" tf:"visibility,omitempty"` +} + +type ImageV2Parameters struct { + + // The container format. Must be one of + // ami, ari, aki, bare, ovf. + // +kubebuilder:validation:Optional + ContainerFormat *string `json:"containerFormat,omitempty" tf:"container_format,omitempty"` + + // The disk format. Must be one of + // ami, ari, aki, vhd, vmdk, raw, qcow2, vdi, iso. + // +kubebuilder:validation:Optional + DiskFormat *string `json:"diskFormat,omitempty" tf:"disk_format,omitempty"` + + // This is the directory where the images will + // be downloaded. Images will be stored with a filename corresponding to + // the url's md5 hash. Defaults to "$HOME/ + // +kubebuilder:validation:Optional + ImageCachePath *string `json:"imageCachePath,omitempty" tf:"image_cache_path,omitempty"` + + // This is the url of the raw image that will + // be downloaded in the image_cache_path before being uploaded to Glance. + // Glance is able to download image from internet but the gophercloud library + // does not yet provide a way to do so. + // Conflicts with local_file_path. + // +kubebuilder:validation:Optional + ImageSourceURL *string `json:"imageSourceUrl,omitempty" tf:"image_source_url,omitempty"` + + // This is the filepath of the raw image file + // that will be uploaded to Glance. Conflicts with image_source_url. + // +kubebuilder:validation:Optional + LocalFilePath *string `json:"localFilePath,omitempty" tf:"local_file_path,omitempty"` + + // Amount of disk space (in GB) required to boot image. + // Defaults to 0. + // +kubebuilder:validation:Optional + MinDiskGb *float64 `json:"minDiskGb,omitempty" tf:"min_disk_gb,omitempty"` + + // Amount of ram (in MB) required to boot image. + // Defauts to 0. + // +kubebuilder:validation:Optional + MinRAMMb *float64 `json:"minRamMb,omitempty" tf:"min_ram_mb,omitempty"` + + // The name of the image. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // If true, image will not be deletable. + // Defaults to false. + // +kubebuilder:validation:Optional + Protected *bool `json:"protected,omitempty" tf:"protected,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The tags of the image. It must be a list of strings. + // At this time, it is not possible to delete all tags of an image. + // +kubebuilder:validation:Optional + Tags []*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The visibility of the image. Must be one of + // "public", "private", "community", or "shared". The ability to set the + // visibility depends upon the configuration of the OpenTelekomCloud cloud. + // +kubebuilder:validation:Optional + Visibility *string `json:"visibility,omitempty" tf:"visibility,omitempty"` +} + +// ImageV2Spec defines the desired state of ImageV2 +type ImageV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider ImageV2Parameters `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 ImageV2InitParameters `json:"initProvider,omitempty"` +} + +// ImageV2Status defines the observed state of ImageV2. +type ImageV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider ImageV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// ImageV2 is the Schema for the ImageV2s API. Manages an Image Management resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type ImageV2 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.containerFormat) || (has(self.initProvider) && has(self.initProvider.containerFormat))",message="spec.forProvider.containerFormat is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.diskFormat) || (has(self.initProvider) && has(self.initProvider.diskFormat))",message="spec.forProvider.diskFormat is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + Spec ImageV2Spec `json:"spec"` + Status ImageV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// ImageV2List contains a list of ImageV2s +type ImageV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []ImageV2 `json:"items"` +} + +// Repository type metadata. +var ( + ImageV2_Kind = "ImageV2" + ImageV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: ImageV2_Kind}.String() + ImageV2_KindAPIVersion = ImageV2_Kind + "." + CRDGroupVersion.String() + ImageV2_GroupVersionKind = CRDGroupVersion.WithKind(ImageV2_Kind) +) + +func init() { + SchemeBuilder.Register(&ImageV2{}, &ImageV2List{}) +} diff --git a/apis/ims/v1alpha1/zz_dataimagev2_types.go b/apis/ims/v1alpha1/zz_dataimagev2_types.go new file mode 100755 index 0000000..e6494b7 --- /dev/null +++ b/apis/ims/v1alpha1/zz_dataimagev2_types.go @@ -0,0 +1,216 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 DataImageV2InitParameters struct { + + // The master key used for encrypting an image. + // Changing this creates a new image. + CmkID *string `json:"cmkId,omitempty" tf:"cmk_id,omitempty"` + + // A description of the image. Changing this creates a new image. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The URL of the external image file in the OBS bucket. + // This parameter is mandatory when you create a private image from an external file + // uploaded to an OBS bucket. The format is OBS bucket name:Image file name. + // Changing this creates a new image. + ImageURL *string `json:"imageUrl,omitempty" tf:"image_url,omitempty"` + + // The minimum size of the system disk in the unit of GB. + // This parameter is mandatory when you create a private image from an external file + // uploaded to an OBS bucket. The value ranges from 1 GB to 1024 GB. + // Changing this creates a new image. + MinDisk *float64 `json:"minDisk,omitempty" tf:"min_disk,omitempty"` + + // The name of the image. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The OS type. It can only be Windows or Linux. + // This parameter is valid when you create a private image from an external file + // uploaded to an OBS bucket. Changing this creates a new image. + OsType *string `json:"osType,omitempty" tf:"os_type,omitempty"` + + // The tags of the image. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The ID of the ECS atatched volume that needs to be converted into an image. + // This parameter is mandatory when you create a privete image from an ECS. + // Changing this creates a new image. + VolumeID *string `json:"volumeId,omitempty" tf:"volume_id,omitempty"` +} + +type DataImageV2Observation struct { + + // The master key used for encrypting an image. + // Changing this creates a new image. + CmkID *string `json:"cmkId,omitempty" tf:"cmk_id,omitempty"` + + // The image resource. The pattern can be 'instance,instance_id' or 'file,image_url'. + DataOrigin *string `json:"dataOrigin,omitempty" tf:"data_origin,omitempty"` + + // A description of the image. Changing this creates a new image. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The image file format. The value can be vhd, zvhd, raw, zvhd2, or qcow2. + DiskFormat *string `json:"diskFormat,omitempty" tf:"disk_format,omitempty"` + + // A unique ID assigned by IMS. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The size(bytes) of the image file format. + ImageSize *string `json:"imageSize,omitempty" tf:"image_size,omitempty"` + + // The URL of the external image file in the OBS bucket. + // This parameter is mandatory when you create a private image from an external file + // uploaded to an OBS bucket. The format is OBS bucket name:Image file name. + // Changing this creates a new image. + ImageURL *string `json:"imageUrl,omitempty" tf:"image_url,omitempty"` + + // The minimum size of the system disk in the unit of GB. + // This parameter is mandatory when you create a private image from an external file + // uploaded to an OBS bucket. The value ranges from 1 GB to 1024 GB. + // Changing this creates a new image. + MinDisk *float64 `json:"minDisk,omitempty" tf:"min_disk,omitempty"` + + // The name of the image. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The OS type. It can only be Windows or Linux. + // This parameter is valid when you create a private image from an external file + // uploaded to an OBS bucket. Changing this creates a new image. + OsType *string `json:"osType,omitempty" tf:"os_type,omitempty"` + + // The tags of the image. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Whether the image is visible to other tenants. + Visibility *string `json:"visibility,omitempty" tf:"visibility,omitempty"` + + // The ID of the ECS atatched volume that needs to be converted into an image. + // This parameter is mandatory when you create a privete image from an ECS. + // Changing this creates a new image. + VolumeID *string `json:"volumeId,omitempty" tf:"volume_id,omitempty"` +} + +type DataImageV2Parameters struct { + + // The master key used for encrypting an image. + // Changing this creates a new image. + // +kubebuilder:validation:Optional + CmkID *string `json:"cmkId,omitempty" tf:"cmk_id,omitempty"` + + // A description of the image. Changing this creates a new image. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The URL of the external image file in the OBS bucket. + // This parameter is mandatory when you create a private image from an external file + // uploaded to an OBS bucket. The format is OBS bucket name:Image file name. + // Changing this creates a new image. + // +kubebuilder:validation:Optional + ImageURL *string `json:"imageUrl,omitempty" tf:"image_url,omitempty"` + + // The minimum size of the system disk in the unit of GB. + // This parameter is mandatory when you create a private image from an external file + // uploaded to an OBS bucket. The value ranges from 1 GB to 1024 GB. + // Changing this creates a new image. + // +kubebuilder:validation:Optional + MinDisk *float64 `json:"minDisk,omitempty" tf:"min_disk,omitempty"` + + // The name of the image. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The OS type. It can only be Windows or Linux. + // This parameter is valid when you create a private image from an external file + // uploaded to an OBS bucket. Changing this creates a new image. + // +kubebuilder:validation:Optional + OsType *string `json:"osType,omitempty" tf:"os_type,omitempty"` + + // The tags of the image. + // +kubebuilder:validation:Optional + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The ID of the ECS atatched volume that needs to be converted into an image. + // This parameter is mandatory when you create a privete image from an ECS. + // Changing this creates a new image. + // +kubebuilder:validation:Optional + VolumeID *string `json:"volumeId,omitempty" tf:"volume_id,omitempty"` +} + +// DataImageV2Spec defines the desired state of DataImageV2 +type DataImageV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider DataImageV2Parameters `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 DataImageV2InitParameters `json:"initProvider,omitempty"` +} + +// DataImageV2Status defines the observed state of DataImageV2. +type DataImageV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider DataImageV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// DataImageV2 is the Schema for the DataImageV2s API. Manages a IMS Data Image resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type DataImageV2 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.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + Spec DataImageV2Spec `json:"spec"` + Status DataImageV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// DataImageV2List contains a list of DataImageV2s +type DataImageV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []DataImageV2 `json:"items"` +} + +// Repository type metadata. +var ( + DataImageV2_Kind = "DataImageV2" + DataImageV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: DataImageV2_Kind}.String() + DataImageV2_KindAPIVersion = DataImageV2_Kind + "." + CRDGroupVersion.String() + DataImageV2_GroupVersionKind = CRDGroupVersion.WithKind(DataImageV2_Kind) +) + +func init() { + SchemeBuilder.Register(&DataImageV2{}, &DataImageV2List{}) +} diff --git a/apis/ims/v1alpha1/zz_generated.deepcopy.go b/apis/ims/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..e25b134 --- /dev/null +++ b/apis/ims/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,727 @@ +//go:build !ignore_autogenerated + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by controller-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + 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 *DataImageV2) DeepCopyInto(out *DataImageV2) { + *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 DataImageV2. +func (in *DataImageV2) DeepCopy() *DataImageV2 { + if in == nil { + return nil + } + out := new(DataImageV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DataImageV2) 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 *DataImageV2InitParameters) DeepCopyInto(out *DataImageV2InitParameters) { + *out = *in + if in.CmkID != nil { + in, out := &in.CmkID, &out.CmkID + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.ImageURL != nil { + in, out := &in.ImageURL, &out.ImageURL + *out = new(string) + **out = **in + } + if in.MinDisk != nil { + in, out := &in.MinDisk, &out.MinDisk + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.OsType != nil { + in, out := &in.OsType, &out.OsType + *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.VolumeID != nil { + in, out := &in.VolumeID, &out.VolumeID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataImageV2InitParameters. +func (in *DataImageV2InitParameters) DeepCopy() *DataImageV2InitParameters { + if in == nil { + return nil + } + out := new(DataImageV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DataImageV2List) DeepCopyInto(out *DataImageV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]DataImageV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataImageV2List. +func (in *DataImageV2List) DeepCopy() *DataImageV2List { + if in == nil { + return nil + } + out := new(DataImageV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DataImageV2List) 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 *DataImageV2Observation) DeepCopyInto(out *DataImageV2Observation) { + *out = *in + if in.CmkID != nil { + in, out := &in.CmkID, &out.CmkID + *out = new(string) + **out = **in + } + if in.DataOrigin != nil { + in, out := &in.DataOrigin, &out.DataOrigin + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.DiskFormat != nil { + in, out := &in.DiskFormat, &out.DiskFormat + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.ImageSize != nil { + in, out := &in.ImageSize, &out.ImageSize + *out = new(string) + **out = **in + } + if in.ImageURL != nil { + in, out := &in.ImageURL, &out.ImageURL + *out = new(string) + **out = **in + } + if in.MinDisk != nil { + in, out := &in.MinDisk, &out.MinDisk + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.OsType != nil { + in, out := &in.OsType, &out.OsType + *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.Visibility != nil { + in, out := &in.Visibility, &out.Visibility + *out = new(string) + **out = **in + } + if in.VolumeID != nil { + in, out := &in.VolumeID, &out.VolumeID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataImageV2Observation. +func (in *DataImageV2Observation) DeepCopy() *DataImageV2Observation { + if in == nil { + return nil + } + out := new(DataImageV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DataImageV2Parameters) DeepCopyInto(out *DataImageV2Parameters) { + *out = *in + if in.CmkID != nil { + in, out := &in.CmkID, &out.CmkID + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.ImageURL != nil { + in, out := &in.ImageURL, &out.ImageURL + *out = new(string) + **out = **in + } + if in.MinDisk != nil { + in, out := &in.MinDisk, &out.MinDisk + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.OsType != nil { + in, out := &in.OsType, &out.OsType + *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.VolumeID != nil { + in, out := &in.VolumeID, &out.VolumeID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataImageV2Parameters. +func (in *DataImageV2Parameters) DeepCopy() *DataImageV2Parameters { + if in == nil { + return nil + } + out := new(DataImageV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DataImageV2Spec) DeepCopyInto(out *DataImageV2Spec) { + *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 DataImageV2Spec. +func (in *DataImageV2Spec) DeepCopy() *DataImageV2Spec { + if in == nil { + return nil + } + out := new(DataImageV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DataImageV2Status) DeepCopyInto(out *DataImageV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DataImageV2Status. +func (in *DataImageV2Status) DeepCopy() *DataImageV2Status { + if in == nil { + return nil + } + out := new(DataImageV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ImageV2) DeepCopyInto(out *ImageV2) { + *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 ImageV2. +func (in *ImageV2) DeepCopy() *ImageV2 { + if in == nil { + return nil + } + out := new(ImageV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ImageV2) 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 *ImageV2InitParameters) DeepCopyInto(out *ImageV2InitParameters) { + *out = *in + if in.CmkID != nil { + in, out := &in.CmkID, &out.CmkID + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.ImageURL != nil { + in, out := &in.ImageURL, &out.ImageURL + *out = new(string) + **out = **in + } + if in.InstanceID != nil { + in, out := &in.InstanceID, &out.InstanceID + *out = new(string) + **out = **in + } + if in.IsConfig != nil { + in, out := &in.IsConfig, &out.IsConfig + *out = new(bool) + **out = **in + } + if in.MaxRAM != nil { + in, out := &in.MaxRAM, &out.MaxRAM + *out = new(float64) + **out = **in + } + if in.MinDisk != nil { + in, out := &in.MinDisk, &out.MinDisk + *out = new(float64) + **out = **in + } + if in.MinRAM != nil { + in, out := &in.MinRAM, &out.MinRAM + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.OsVersion != nil { + in, out := &in.OsVersion, &out.OsVersion + *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.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.VolumeID != nil { + in, out := &in.VolumeID, &out.VolumeID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageV2InitParameters. +func (in *ImageV2InitParameters) DeepCopy() *ImageV2InitParameters { + if in == nil { + return nil + } + out := new(ImageV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ImageV2List) DeepCopyInto(out *ImageV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ImageV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageV2List. +func (in *ImageV2List) DeepCopy() *ImageV2List { + if in == nil { + return nil + } + out := new(ImageV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ImageV2List) 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 *ImageV2Observation) DeepCopyInto(out *ImageV2Observation) { + *out = *in + if in.CmkID != nil { + in, out := &in.CmkID, &out.CmkID + *out = new(string) + **out = **in + } + if in.DataOrigin != nil { + in, out := &in.DataOrigin, &out.DataOrigin + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.DiskFormat != nil { + in, out := &in.DiskFormat, &out.DiskFormat + *out = new(string) + **out = **in + } + if in.File != nil { + in, out := &in.File, &out.File + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.ImageSize != nil { + in, out := &in.ImageSize, &out.ImageSize + *out = new(string) + **out = **in + } + if in.ImageURL != nil { + in, out := &in.ImageURL, &out.ImageURL + *out = new(string) + **out = **in + } + if in.InstanceID != nil { + in, out := &in.InstanceID, &out.InstanceID + *out = new(string) + **out = **in + } + if in.IsConfig != nil { + in, out := &in.IsConfig, &out.IsConfig + *out = new(bool) + **out = **in + } + if in.MaxRAM != nil { + in, out := &in.MaxRAM, &out.MaxRAM + *out = new(float64) + **out = **in + } + if in.MinDisk != nil { + in, out := &in.MinDisk, &out.MinDisk + *out = new(float64) + **out = **in + } + if in.MinRAM != nil { + in, out := &in.MinRAM, &out.MinRAM + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.OsVersion != nil { + in, out := &in.OsVersion, &out.OsVersion + *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.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.Visibility != nil { + in, out := &in.Visibility, &out.Visibility + *out = new(string) + **out = **in + } + if in.VolumeID != nil { + in, out := &in.VolumeID, &out.VolumeID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageV2Observation. +func (in *ImageV2Observation) DeepCopy() *ImageV2Observation { + if in == nil { + return nil + } + out := new(ImageV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ImageV2Parameters) DeepCopyInto(out *ImageV2Parameters) { + *out = *in + if in.CmkID != nil { + in, out := &in.CmkID, &out.CmkID + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.ImageURL != nil { + in, out := &in.ImageURL, &out.ImageURL + *out = new(string) + **out = **in + } + if in.InstanceID != nil { + in, out := &in.InstanceID, &out.InstanceID + *out = new(string) + **out = **in + } + if in.IsConfig != nil { + in, out := &in.IsConfig, &out.IsConfig + *out = new(bool) + **out = **in + } + if in.MaxRAM != nil { + in, out := &in.MaxRAM, &out.MaxRAM + *out = new(float64) + **out = **in + } + if in.MinDisk != nil { + in, out := &in.MinDisk, &out.MinDisk + *out = new(float64) + **out = **in + } + if in.MinRAM != nil { + in, out := &in.MinRAM, &out.MinRAM + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.OsVersion != nil { + in, out := &in.OsVersion, &out.OsVersion + *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.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.VolumeID != nil { + in, out := &in.VolumeID, &out.VolumeID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageV2Parameters. +func (in *ImageV2Parameters) DeepCopy() *ImageV2Parameters { + if in == nil { + return nil + } + out := new(ImageV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ImageV2Spec) DeepCopyInto(out *ImageV2Spec) { + *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 ImageV2Spec. +func (in *ImageV2Spec) DeepCopy() *ImageV2Spec { + if in == nil { + return nil + } + out := new(ImageV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ImageV2Status) DeepCopyInto(out *ImageV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ImageV2Status. +func (in *ImageV2Status) DeepCopy() *ImageV2Status { + if in == nil { + return nil + } + out := new(ImageV2Status) + in.DeepCopyInto(out) + return out +} diff --git a/apis/ims/v1alpha1/zz_generated.managed.go b/apis/ims/v1alpha1/zz_generated.managed.go new file mode 100644 index 0000000..7d1295f --- /dev/null +++ b/apis/ims/v1alpha1/zz_generated.managed.go @@ -0,0 +1,128 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import xpv1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + +// GetCondition of this DataImageV2. +func (mg *DataImageV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this DataImageV2. +func (mg *DataImageV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this DataImageV2. +func (mg *DataImageV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this DataImageV2. +func (mg *DataImageV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this DataImageV2. +func (mg *DataImageV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this DataImageV2. +func (mg *DataImageV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this DataImageV2. +func (mg *DataImageV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this DataImageV2. +func (mg *DataImageV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this DataImageV2. +func (mg *DataImageV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this DataImageV2. +func (mg *DataImageV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this DataImageV2. +func (mg *DataImageV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this DataImageV2. +func (mg *DataImageV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this ImageV2. +func (mg *ImageV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this ImageV2. +func (mg *ImageV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this ImageV2. +func (mg *ImageV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this ImageV2. +func (mg *ImageV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this ImageV2. +func (mg *ImageV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this ImageV2. +func (mg *ImageV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this ImageV2. +func (mg *ImageV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this ImageV2. +func (mg *ImageV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this ImageV2. +func (mg *ImageV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this ImageV2. +func (mg *ImageV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this ImageV2. +func (mg *ImageV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this ImageV2. +func (mg *ImageV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} diff --git a/apis/ims/v1alpha1/zz_generated.managedlist.go b/apis/ims/v1alpha1/zz_generated.managedlist.go new file mode 100644 index 0000000..c183bc6 --- /dev/null +++ b/apis/ims/v1alpha1/zz_generated.managedlist.go @@ -0,0 +1,26 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import resource "github.com/crossplane/crossplane-runtime/pkg/resource" + +// GetItems of this DataImageV2List. +func (l *DataImageV2List) 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 ImageV2List. +func (l *ImageV2List) 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/ims/v1alpha1/zz_generated_terraformed.go b/apis/ims/v1alpha1/zz_generated_terraformed.go new file mode 100755 index 0000000..773cc58 --- /dev/null +++ b/apis/ims/v1alpha1/zz_generated_terraformed.go @@ -0,0 +1,186 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "github.com/pkg/errors" + + "github.com/crossplane/upjet/pkg/resource" + "github.com/crossplane/upjet/pkg/resource/json" +) + +// GetTerraformResourceType returns Terraform resource type for this DataImageV2 +func (mg *DataImageV2) GetTerraformResourceType() string { + return "opentelekomcloud_ims_data_image_v2" +} + +// GetConnectionDetailsMapping for this DataImageV2 +func (tr *DataImageV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this DataImageV2 +func (tr *DataImageV2) 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 DataImageV2 +func (tr *DataImageV2) 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 DataImageV2 +func (tr *DataImageV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this DataImageV2 +func (tr *DataImageV2) 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 DataImageV2 +func (tr *DataImageV2) 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 DataImageV2 +func (tr *DataImageV2) 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) +} + +// LateInitialize this DataImageV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *DataImageV2) LateInitialize(attrs []byte) (bool, error) { + params := &DataImageV2Parameters{} + 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 *DataImageV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this ImageV2 +func (mg *ImageV2) GetTerraformResourceType() string { + return "opentelekomcloud_ims_image_v2" +} + +// GetConnectionDetailsMapping for this ImageV2 +func (tr *ImageV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this ImageV2 +func (tr *ImageV2) 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 ImageV2 +func (tr *ImageV2) 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 ImageV2 +func (tr *ImageV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this ImageV2 +func (tr *ImageV2) 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 ImageV2 +func (tr *ImageV2) 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 ImageV2 +func (tr *ImageV2) 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) +} + +// LateInitialize this ImageV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *ImageV2) LateInitialize(attrs []byte) (bool, error) { + params := &ImageV2Parameters{} + 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 *ImageV2) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/ims/v1alpha1/zz_groupversion_info.go b/apis/ims/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..d4b642b --- /dev/null +++ b/apis/ims/v1alpha1/zz_groupversion_info.go @@ -0,0 +1,36 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +// +kubebuilder:object:generate=true +// +groupName=ims.crossplane.io +// +versionName=v1alpha1 +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +// Package type metadata. +const ( + CRDGroup = "ims.crossplane.io" + CRDVersion = "v1alpha1" +) + +var ( + // CRDGroupVersion is the API Group Version used to register the objects + CRDGroupVersion = schema.GroupVersion{Group: CRDGroup, Version: CRDVersion} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme + SchemeBuilder = &scheme.Builder{GroupVersion: CRDGroupVersion} + + // AddToScheme adds the types in this group-version to the given scheme. + AddToScheme = SchemeBuilder.AddToScheme +) diff --git a/apis/ims/v1alpha1/zz_imagev2_types.go b/apis/ims/v1alpha1/zz_imagev2_types.go new file mode 100755 index 0000000..2cbe897 --- /dev/null +++ b/apis/ims/v1alpha1/zz_imagev2_types.go @@ -0,0 +1,293 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 ImageV2InitParameters struct { + + // The master key used for encrypting an image. + // Changing this creates a new image. + CmkID *string `json:"cmkId,omitempty" tf:"cmk_id,omitempty"` + + // A description of the image. Changing this creates a new image. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The URL of the external image file in the OBS bucket. + // This parameter is mandatory when you create a private image from an external file + // uploaded to an OBS bucket. The format is OBS bucket name:Image file name. + // Changing this creates a new image. + ImageURL *string `json:"imageUrl,omitempty" tf:"image_url,omitempty"` + + // The ID of the ECS that needs to be converted into an image. + // This parameter is mandatory when you create a private image from an ECS. + // Changing this creates a new image. + InstanceID *string `json:"instanceId,omitempty" tf:"instance_id,omitempty"` + + // If automatic configuration is required, set the value to true. + // Otherwise, set the value to false. Changing this creates a new image. + IsConfig *bool `json:"isConfig,omitempty" tf:"is_config,omitempty"` + + // The maximum memory of the image in the unit of MB. + // Changing this creates a new image. + MaxRAM *float64 `json:"maxRam,omitempty" tf:"max_ram,omitempty"` + + // The minimum size of the system disk in the unit of GB. + // This parameter is mandatory when you create a private image from an external file + // uploaded to an OBS bucket. The value ranges from 1 GB to 1024 GB. + // Changing this creates a new image. + MinDisk *float64 `json:"minDisk,omitempty" tf:"min_disk,omitempty"` + + // The minimum memory of the image in the unit of MB. + // The default value is 0, indicating that the memory is not restricted. + // Changing this creates a new image. + MinRAM *float64 `json:"minRam,omitempty" tf:"min_ram,omitempty"` + + // The name of the image. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The OS version. + // This parameter is valid when you create a private image from an external file. + // This parameter is mandatory when you create a private image from a volume. + // uploaded to an OBS bucket. Changing this creates a new image. + OsVersion *string `json:"osVersion,omitempty" tf:"os_version,omitempty"` + + // The tags of the image. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The image type. Must be one of ECS, FusionCompute, BMS, + // Ironic or IsoImage. Changing this creates a new image. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Specifies the data disk ID. + // This parameter is mandatory when you create a private image from a volume. + // Changing this creates a new image. + VolumeID *string `json:"volumeId,omitempty" tf:"volume_id,omitempty"` +} + +type ImageV2Observation struct { + + // The master key used for encrypting an image. + // Changing this creates a new image. + CmkID *string `json:"cmkId,omitempty" tf:"cmk_id,omitempty"` + + // The image resource. The pattern can be 'instance,instance_id' or 'file,image_url'. + DataOrigin *string `json:"dataOrigin,omitempty" tf:"data_origin,omitempty"` + + // A description of the image. Changing this creates a new image. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The image file format. The value can be vhd, zvhd, raw, zvhd2, or qcow2. + DiskFormat *string `json:"diskFormat,omitempty" tf:"disk_format,omitempty"` + + // The URL for uploading and downloading the image file. + File *string `json:"file,omitempty" tf:"file,omitempty"` + + // A unique ID assigned by IMS. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The size(bytes) of the image file format. + ImageSize *string `json:"imageSize,omitempty" tf:"image_size,omitempty"` + + // The URL of the external image file in the OBS bucket. + // This parameter is mandatory when you create a private image from an external file + // uploaded to an OBS bucket. The format is OBS bucket name:Image file name. + // Changing this creates a new image. + ImageURL *string `json:"imageUrl,omitempty" tf:"image_url,omitempty"` + + // The ID of the ECS that needs to be converted into an image. + // This parameter is mandatory when you create a private image from an ECS. + // Changing this creates a new image. + InstanceID *string `json:"instanceId,omitempty" tf:"instance_id,omitempty"` + + // If automatic configuration is required, set the value to true. + // Otherwise, set the value to false. Changing this creates a new image. + IsConfig *bool `json:"isConfig,omitempty" tf:"is_config,omitempty"` + + // The maximum memory of the image in the unit of MB. + // Changing this creates a new image. + MaxRAM *float64 `json:"maxRam,omitempty" tf:"max_ram,omitempty"` + + // The minimum size of the system disk in the unit of GB. + // This parameter is mandatory when you create a private image from an external file + // uploaded to an OBS bucket. The value ranges from 1 GB to 1024 GB. + // Changing this creates a new image. + MinDisk *float64 `json:"minDisk,omitempty" tf:"min_disk,omitempty"` + + // The minimum memory of the image in the unit of MB. + // The default value is 0, indicating that the memory is not restricted. + // Changing this creates a new image. + MinRAM *float64 `json:"minRam,omitempty" tf:"min_ram,omitempty"` + + // The name of the image. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The OS version. + // This parameter is valid when you create a private image from an external file. + // This parameter is mandatory when you create a private image from a volume. + // uploaded to an OBS bucket. Changing this creates a new image. + OsVersion *string `json:"osVersion,omitempty" tf:"os_version,omitempty"` + + // The tags of the image. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The image type. Must be one of ECS, FusionCompute, BMS, + // Ironic or IsoImage. Changing this creates a new image. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Whether the image is visible to other tenants. + Visibility *string `json:"visibility,omitempty" tf:"visibility,omitempty"` + + // Specifies the data disk ID. + // This parameter is mandatory when you create a private image from a volume. + // Changing this creates a new image. + VolumeID *string `json:"volumeId,omitempty" tf:"volume_id,omitempty"` +} + +type ImageV2Parameters struct { + + // The master key used for encrypting an image. + // Changing this creates a new image. + // +kubebuilder:validation:Optional + CmkID *string `json:"cmkId,omitempty" tf:"cmk_id,omitempty"` + + // A description of the image. Changing this creates a new image. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The URL of the external image file in the OBS bucket. + // This parameter is mandatory when you create a private image from an external file + // uploaded to an OBS bucket. The format is OBS bucket name:Image file name. + // Changing this creates a new image. + // +kubebuilder:validation:Optional + ImageURL *string `json:"imageUrl,omitempty" tf:"image_url,omitempty"` + + // The ID of the ECS that needs to be converted into an image. + // This parameter is mandatory when you create a private image from an ECS. + // Changing this creates a new image. + // +kubebuilder:validation:Optional + InstanceID *string `json:"instanceId,omitempty" tf:"instance_id,omitempty"` + + // If automatic configuration is required, set the value to true. + // Otherwise, set the value to false. Changing this creates a new image. + // +kubebuilder:validation:Optional + IsConfig *bool `json:"isConfig,omitempty" tf:"is_config,omitempty"` + + // The maximum memory of the image in the unit of MB. + // Changing this creates a new image. + // +kubebuilder:validation:Optional + MaxRAM *float64 `json:"maxRam,omitempty" tf:"max_ram,omitempty"` + + // The minimum size of the system disk in the unit of GB. + // This parameter is mandatory when you create a private image from an external file + // uploaded to an OBS bucket. The value ranges from 1 GB to 1024 GB. + // Changing this creates a new image. + // +kubebuilder:validation:Optional + MinDisk *float64 `json:"minDisk,omitempty" tf:"min_disk,omitempty"` + + // The minimum memory of the image in the unit of MB. + // The default value is 0, indicating that the memory is not restricted. + // Changing this creates a new image. + // +kubebuilder:validation:Optional + MinRAM *float64 `json:"minRam,omitempty" tf:"min_ram,omitempty"` + + // The name of the image. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The OS version. + // This parameter is valid when you create a private image from an external file. + // This parameter is mandatory when you create a private image from a volume. + // uploaded to an OBS bucket. Changing this creates a new image. + // +kubebuilder:validation:Optional + OsVersion *string `json:"osVersion,omitempty" tf:"os_version,omitempty"` + + // The tags of the image. + // +kubebuilder:validation:Optional + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The image type. Must be one of ECS, FusionCompute, BMS, + // Ironic or IsoImage. Changing this creates a new image. + // +kubebuilder:validation:Optional + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Specifies the data disk ID. + // This parameter is mandatory when you create a private image from a volume. + // Changing this creates a new image. + // +kubebuilder:validation:Optional + VolumeID *string `json:"volumeId,omitempty" tf:"volume_id,omitempty"` +} + +// ImageV2Spec defines the desired state of ImageV2 +type ImageV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider ImageV2Parameters `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 ImageV2InitParameters `json:"initProvider,omitempty"` +} + +// ImageV2Status defines the observed state of ImageV2. +type ImageV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider ImageV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// ImageV2 is the Schema for the ImageV2s API. Manages a IMS Image resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type ImageV2 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.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + Spec ImageV2Spec `json:"spec"` + Status ImageV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// ImageV2List contains a list of ImageV2s +type ImageV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []ImageV2 `json:"items"` +} + +// Repository type metadata. +var ( + ImageV2_Kind = "ImageV2" + ImageV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: ImageV2_Kind}.String() + ImageV2_KindAPIVersion = ImageV2_Kind + "." + CRDGroupVersion.String() + ImageV2_GroupVersionKind = CRDGroupVersion.WithKind(ImageV2_Kind) +) + +func init() { + SchemeBuilder.Register(&ImageV2{}, &ImageV2List{}) +} diff --git a/apis/kms/v1alpha1/zz_generated.deepcopy.go b/apis/kms/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..d1fcea4 --- /dev/null +++ b/apis/kms/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,260 @@ +//go:build !ignore_autogenerated + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by controller-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + 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 *GrantV1) DeepCopyInto(out *GrantV1) { + *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 GrantV1. +func (in *GrantV1) DeepCopy() *GrantV1 { + if in == nil { + return nil + } + out := new(GrantV1) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *GrantV1) 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 *GrantV1InitParameters) DeepCopyInto(out *GrantV1InitParameters) { + *out = *in + if in.GranteePrincipal != nil { + in, out := &in.GranteePrincipal, &out.GranteePrincipal + *out = new(string) + **out = **in + } + if in.KeyID != nil { + in, out := &in.KeyID, &out.KeyID + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Operations != nil { + in, out := &in.Operations, &out.Operations + *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.RetiringPrincipal != nil { + in, out := &in.RetiringPrincipal, &out.RetiringPrincipal + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GrantV1InitParameters. +func (in *GrantV1InitParameters) DeepCopy() *GrantV1InitParameters { + if in == nil { + return nil + } + out := new(GrantV1InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *GrantV1List) DeepCopyInto(out *GrantV1List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]GrantV1, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GrantV1List. +func (in *GrantV1List) DeepCopy() *GrantV1List { + if in == nil { + return nil + } + out := new(GrantV1List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *GrantV1List) 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 *GrantV1Observation) DeepCopyInto(out *GrantV1Observation) { + *out = *in + if in.CreationDate != nil { + in, out := &in.CreationDate, &out.CreationDate + *out = new(string) + **out = **in + } + if in.GranteePrincipal != nil { + in, out := &in.GranteePrincipal, &out.GranteePrincipal + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.IssuingPrincipal != nil { + in, out := &in.IssuingPrincipal, &out.IssuingPrincipal + *out = new(string) + **out = **in + } + if in.KeyID != nil { + in, out := &in.KeyID, &out.KeyID + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Operations != nil { + in, out := &in.Operations, &out.Operations + *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.RetiringPrincipal != nil { + in, out := &in.RetiringPrincipal, &out.RetiringPrincipal + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GrantV1Observation. +func (in *GrantV1Observation) DeepCopy() *GrantV1Observation { + if in == nil { + return nil + } + out := new(GrantV1Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *GrantV1Parameters) DeepCopyInto(out *GrantV1Parameters) { + *out = *in + if in.GranteePrincipal != nil { + in, out := &in.GranteePrincipal, &out.GranteePrincipal + *out = new(string) + **out = **in + } + if in.KeyID != nil { + in, out := &in.KeyID, &out.KeyID + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Operations != nil { + in, out := &in.Operations, &out.Operations + *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.RetiringPrincipal != nil { + in, out := &in.RetiringPrincipal, &out.RetiringPrincipal + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GrantV1Parameters. +func (in *GrantV1Parameters) DeepCopy() *GrantV1Parameters { + if in == nil { + return nil + } + out := new(GrantV1Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *GrantV1Spec) DeepCopyInto(out *GrantV1Spec) { + *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 GrantV1Spec. +func (in *GrantV1Spec) DeepCopy() *GrantV1Spec { + if in == nil { + return nil + } + out := new(GrantV1Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *GrantV1Status) DeepCopyInto(out *GrantV1Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GrantV1Status. +func (in *GrantV1Status) DeepCopy() *GrantV1Status { + if in == nil { + return nil + } + out := new(GrantV1Status) + in.DeepCopyInto(out) + return out +} diff --git a/apis/kms/v1alpha1/zz_generated.managed.go b/apis/kms/v1alpha1/zz_generated.managed.go new file mode 100644 index 0000000..aae06df --- /dev/null +++ b/apis/kms/v1alpha1/zz_generated.managed.go @@ -0,0 +1,68 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import xpv1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + +// GetCondition of this GrantV1. +func (mg *GrantV1) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this GrantV1. +func (mg *GrantV1) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this GrantV1. +func (mg *GrantV1) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this GrantV1. +func (mg *GrantV1) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this GrantV1. +func (mg *GrantV1) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this GrantV1. +func (mg *GrantV1) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this GrantV1. +func (mg *GrantV1) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this GrantV1. +func (mg *GrantV1) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this GrantV1. +func (mg *GrantV1) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this GrantV1. +func (mg *GrantV1) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this GrantV1. +func (mg *GrantV1) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this GrantV1. +func (mg *GrantV1) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} diff --git a/apis/kms/v1alpha1/zz_generated.managedlist.go b/apis/kms/v1alpha1/zz_generated.managedlist.go new file mode 100644 index 0000000..f8b00d9 --- /dev/null +++ b/apis/kms/v1alpha1/zz_generated.managedlist.go @@ -0,0 +1,17 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import resource "github.com/crossplane/crossplane-runtime/pkg/resource" + +// GetItems of this GrantV1List. +func (l *GrantV1List) 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/null/v1alpha1/zz_generated_terraformed.go b/apis/kms/v1alpha1/zz_generated_terraformed.go similarity index 64% rename from apis/null/v1alpha1/zz_generated_terraformed.go rename to apis/kms/v1alpha1/zz_generated_terraformed.go index 3c32037..509cccb 100755 --- a/apis/null/v1alpha1/zz_generated_terraformed.go +++ b/apis/kms/v1alpha1/zz_generated_terraformed.go @@ -17,18 +17,18 @@ import ( "github.com/crossplane/upjet/pkg/resource/json" ) -// GetTerraformResourceType returns Terraform resource type for this Resource -func (mg *Resource) GetTerraformResourceType() string { - return "null_resource" +// GetTerraformResourceType returns Terraform resource type for this GrantV1 +func (mg *GrantV1) GetTerraformResourceType() string { + return "opentelekomcloud_kms_grant_v1" } -// GetConnectionDetailsMapping for this Resource -func (tr *Resource) GetConnectionDetailsMapping() map[string]string { +// GetConnectionDetailsMapping for this GrantV1 +func (tr *GrantV1) GetConnectionDetailsMapping() map[string]string { return nil } -// GetObservation of this Resource -func (tr *Resource) GetObservation() (map[string]any, error) { +// GetObservation of this GrantV1 +func (tr *GrantV1) GetObservation() (map[string]any, error) { o, err := json.TFParser.Marshal(tr.Status.AtProvider) if err != nil { return nil, err @@ -37,8 +37,8 @@ func (tr *Resource) GetObservation() (map[string]any, error) { return base, json.TFParser.Unmarshal(o, &base) } -// SetObservation for this Resource -func (tr *Resource) SetObservation(obs map[string]any) error { +// SetObservation for this GrantV1 +func (tr *GrantV1) SetObservation(obs map[string]any) error { p, err := json.TFParser.Marshal(obs) if err != nil { return err @@ -46,16 +46,16 @@ func (tr *Resource) SetObservation(obs map[string]any) error { return json.TFParser.Unmarshal(p, &tr.Status.AtProvider) } -// GetID returns ID of underlying Terraform resource of this Resource -func (tr *Resource) GetID() string { +// GetID returns ID of underlying Terraform resource of this GrantV1 +func (tr *GrantV1) GetID() string { if tr.Status.AtProvider.ID == nil { return "" } return *tr.Status.AtProvider.ID } -// GetParameters of this Resource -func (tr *Resource) GetParameters() (map[string]any, error) { +// GetParameters of this GrantV1 +func (tr *GrantV1) GetParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.ForProvider) if err != nil { return nil, err @@ -64,8 +64,8 @@ func (tr *Resource) GetParameters() (map[string]any, error) { return base, json.TFParser.Unmarshal(p, &base) } -// SetParameters for this Resource -func (tr *Resource) SetParameters(params map[string]any) error { +// SetParameters for this GrantV1 +func (tr *GrantV1) SetParameters(params map[string]any) error { p, err := json.TFParser.Marshal(params) if err != nil { return err @@ -73,8 +73,8 @@ func (tr *Resource) SetParameters(params map[string]any) error { return json.TFParser.Unmarshal(p, &tr.Spec.ForProvider) } -// GetInitParameters of this Resource -func (tr *Resource) GetInitParameters() (map[string]any, error) { +// GetInitParameters of this GrantV1 +func (tr *GrantV1) GetInitParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.InitProvider) if err != nil { return nil, err @@ -83,10 +83,10 @@ func (tr *Resource) GetInitParameters() (map[string]any, error) { return base, json.TFParser.Unmarshal(p, &base) } -// LateInitialize this Resource using its observed tfState. +// LateInitialize this GrantV1 using its observed tfState. // returns True if there are any spec changes for the resource. -func (tr *Resource) LateInitialize(attrs []byte) (bool, error) { - params := &ResourceParameters{} +func (tr *GrantV1) LateInitialize(attrs []byte) (bool, error) { + params := &GrantV1Parameters{} if err := json.TFParser.Unmarshal(attrs, params); err != nil { return false, errors.Wrap(err, "failed to unmarshal Terraform state parameters for late-initialization") } @@ -97,6 +97,6 @@ func (tr *Resource) LateInitialize(attrs []byte) (bool, error) { } // GetTerraformSchemaVersion returns the associated Terraform schema version -func (tr *Resource) GetTerraformSchemaVersion() int { +func (tr *GrantV1) GetTerraformSchemaVersion() int { return 0 } diff --git a/apis/kms/v1alpha1/zz_grantv1_types.go b/apis/kms/v1alpha1/zz_grantv1_types.go new file mode 100755 index 0000000..2ca0c07 --- /dev/null +++ b/apis/kms/v1alpha1/zz_grantv1_types.go @@ -0,0 +1,169 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 GrantV1InitParameters struct { + + // Indicates the ID of the authorized user. + // Changing this creates new grant. + GranteePrincipal *string `json:"granteePrincipal,omitempty" tf:"grantee_principal,omitempty"` + + // Indicates the ID of the KMS. Changing this creates new grant. + KeyID *string `json:"keyId,omitempty" tf:"key_id,omitempty"` + + // Name of a grant which can be 1 to 255 characters in length + // and matches the regular expression ^[a-zA-Z0-9:/_-]{1,255}$. + // Changing this creates new grant. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Permissions that can be granted. + // The valid values are: create-datakey, create-datakey-without-plaintext, + // encrypt-datakey, decrypt-datakey, describe-key, create-grant, retire-grant. + // Changing this creates new grant. + Operations []*string `json:"operations,omitempty" tf:"operations,omitempty"` + + // Indicates the ID of the retiring user. + // Changing this creates new grant. + RetiringPrincipal *string `json:"retiringPrincipal,omitempty" tf:"retiring_principal,omitempty"` +} + +type GrantV1Observation struct { + + // Creation time. The value is a timestamp expressed in the number of + // seconds since 00:00:00 UTC on January 1, 1970. + CreationDate *string `json:"creationDate,omitempty" tf:"creation_date,omitempty"` + + // Indicates the ID of the authorized user. + // Changing this creates new grant. + GranteePrincipal *string `json:"granteePrincipal,omitempty" tf:"grantee_principal,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Indicates the ID of the user who created the grant. + IssuingPrincipal *string `json:"issuingPrincipal,omitempty" tf:"issuing_principal,omitempty"` + + // Indicates the ID of the KMS. Changing this creates new grant. + KeyID *string `json:"keyId,omitempty" tf:"key_id,omitempty"` + + // Name of a grant which can be 1 to 255 characters in length + // and matches the regular expression ^[a-zA-Z0-9:/_-]{1,255}$. + // Changing this creates new grant. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Permissions that can be granted. + // The valid values are: create-datakey, create-datakey-without-plaintext, + // encrypt-datakey, decrypt-datakey, describe-key, create-grant, retire-grant. + // Changing this creates new grant. + Operations []*string `json:"operations,omitempty" tf:"operations,omitempty"` + + // Indicates the ID of the retiring user. + // Changing this creates new grant. + RetiringPrincipal *string `json:"retiringPrincipal,omitempty" tf:"retiring_principal,omitempty"` +} + +type GrantV1Parameters struct { + + // Indicates the ID of the authorized user. + // Changing this creates new grant. + // +kubebuilder:validation:Optional + GranteePrincipal *string `json:"granteePrincipal,omitempty" tf:"grantee_principal,omitempty"` + + // Indicates the ID of the KMS. Changing this creates new grant. + // +kubebuilder:validation:Optional + KeyID *string `json:"keyId,omitempty" tf:"key_id,omitempty"` + + // Name of a grant which can be 1 to 255 characters in length + // and matches the regular expression ^[a-zA-Z0-9:/_-]{1,255}$. + // Changing this creates new grant. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Permissions that can be granted. + // The valid values are: create-datakey, create-datakey-without-plaintext, + // encrypt-datakey, decrypt-datakey, describe-key, create-grant, retire-grant. + // Changing this creates new grant. + // +kubebuilder:validation:Optional + Operations []*string `json:"operations,omitempty" tf:"operations,omitempty"` + + // Indicates the ID of the retiring user. + // Changing this creates new grant. + // +kubebuilder:validation:Optional + RetiringPrincipal *string `json:"retiringPrincipal,omitempty" tf:"retiring_principal,omitempty"` +} + +// GrantV1Spec defines the desired state of GrantV1 +type GrantV1Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider GrantV1Parameters `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 GrantV1InitParameters `json:"initProvider,omitempty"` +} + +// GrantV1Status defines the observed state of GrantV1. +type GrantV1Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider GrantV1Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// GrantV1 is the Schema for the GrantV1s API. Manages a KMS Grant resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type GrantV1 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.granteePrincipal) || (has(self.initProvider) && has(self.initProvider.granteePrincipal))",message="spec.forProvider.granteePrincipal is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.keyId) || (has(self.initProvider) && has(self.initProvider.keyId))",message="spec.forProvider.keyId is a required parameter" + Spec GrantV1Spec `json:"spec"` + Status GrantV1Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// GrantV1List contains a list of GrantV1s +type GrantV1List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []GrantV1 `json:"items"` +} + +// Repository type metadata. +var ( + GrantV1_Kind = "GrantV1" + GrantV1_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: GrantV1_Kind}.String() + GrantV1_KindAPIVersion = GrantV1_Kind + "." + CRDGroupVersion.String() + GrantV1_GroupVersionKind = CRDGroupVersion.WithKind(GrantV1_Kind) +) + +func init() { + SchemeBuilder.Register(&GrantV1{}, &GrantV1List{}) +} diff --git a/apis/kms/v1alpha1/zz_groupversion_info.go b/apis/kms/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..8ea7f53 --- /dev/null +++ b/apis/kms/v1alpha1/zz_groupversion_info.go @@ -0,0 +1,36 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +// +kubebuilder:object:generate=true +// +groupName=kms.crossplane.io +// +versionName=v1alpha1 +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +// Package type metadata. +const ( + CRDGroup = "kms.crossplane.io" + CRDVersion = "v1alpha1" +) + +var ( + // CRDGroupVersion is the API Group Version used to register the objects + CRDGroupVersion = schema.GroupVersion{Group: CRDGroup, Version: CRDVersion} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme + SchemeBuilder = &scheme.Builder{GroupVersion: CRDGroupVersion} + + // AddToScheme adds the types in this group-version to the given scheme. + AddToScheme = SchemeBuilder.AddToScheme +) diff --git a/apis/lb/v1alpha1/zz_certificatev2_types.go b/apis/lb/v1alpha1/zz_certificatev2_types.go new file mode 100755 index 0000000..c95770c --- /dev/null +++ b/apis/lb/v1alpha1/zz_certificatev2_types.go @@ -0,0 +1,187 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 + +// CertificateV2 is the Schema for the CertificateV2s API. Manages a ELB Certificate resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +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_certificatev3_types.go b/apis/lb/v1alpha1/zz_certificatev3_types.go new file mode 100755 index 0000000..d4d814d --- /dev/null +++ b/apis/lb/v1alpha1/zz_certificatev3_types.go @@ -0,0 +1,186 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 CertificateV3InitParameters struct { + + // The public encrypted key of the Certificate, PEM format. + Certificate *string `json:"certificate,omitempty" tf:"certificate,omitempty"` + + // Provides supplementary information about the certificate. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The domain of the Certificate. + Domain *string `json:"domain,omitempty" tf:"domain,omitempty"` + + // Specifies the certificate name. Only letters, + // digits, underscores, and hyphens are allowed. + 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 V3 ELB client. + // An ELB 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 CertificateV3Observation struct { + + // The public encrypted key of the Certificate, PEM format. + Certificate *string `json:"certificate,omitempty" tf:"certificate,omitempty"` + + CreatedAt *string `json:"createdAt,omitempty" tf:"created_at,omitempty"` + + // Provides supplementary information about the certificate. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The domain of the Certificate. + Domain *string `json:"domain,omitempty" tf:"domain,omitempty"` + + // Indicates the expiration time. + ExpireTime *string `json:"expireTime,omitempty" tf:"expire_time,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Specifies the certificate name. Only letters, + // digits, underscores, and hyphens are allowed. + 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 V3 ELB client. + // An ELB 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. + UpdatedAt *string `json:"updatedAt,omitempty" tf:"updated_at,omitempty"` +} + +type CertificateV3Parameters struct { + + // The public encrypted key of the Certificate, PEM format. + // +kubebuilder:validation:Optional + Certificate *string `json:"certificate,omitempty" tf:"certificate,omitempty"` + + // Provides supplementary information about 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"` + + // Specifies the certificate name. Only letters, + // digits, underscores, and hyphens are allowed. + // +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 V3 ELB client. + // An ELB 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"` +} + +// CertificateV3Spec defines the desired state of CertificateV3 +type CertificateV3Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider CertificateV3Parameters `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 CertificateV3InitParameters `json:"initProvider,omitempty"` +} + +// CertificateV3Status defines the observed state of CertificateV3. +type CertificateV3Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider CertificateV3Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// CertificateV3 is the Schema for the CertificateV3s API. Manages a LB Certificate resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type CertificateV3 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 CertificateV3Spec `json:"spec"` + Status CertificateV3Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// CertificateV3List contains a list of CertificateV3s +type CertificateV3List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []CertificateV3 `json:"items"` +} + +// Repository type metadata. +var ( + CertificateV3_Kind = "CertificateV3" + CertificateV3_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: CertificateV3_Kind}.String() + CertificateV3_KindAPIVersion = CertificateV3_Kind + "." + CRDGroupVersion.String() + CertificateV3_GroupVersionKind = CRDGroupVersion.WithKind(CertificateV3_Kind) +) + +func init() { + SchemeBuilder.Register(&CertificateV3{}, &CertificateV3List{}) +} diff --git a/apis/lb/v1alpha1/zz_generated.deepcopy.go b/apis/lb/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..1eb7186 --- /dev/null +++ b/apis/lb/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,7203 @@ +//go:build !ignore_autogenerated + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by controller-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + 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 + 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 CertificateV3. +func (in *CertificateV3) DeepCopy() *CertificateV3 { + if in == nil { + return nil + } + out := new(CertificateV3) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *CertificateV3) 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 *CertificateV3InitParameters) DeepCopyInto(out *CertificateV3InitParameters) { + *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 CertificateV3InitParameters. +func (in *CertificateV3InitParameters) DeepCopy() *CertificateV3InitParameters { + if in == nil { + return nil + } + out := new(CertificateV3InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CertificateV3List) DeepCopyInto(out *CertificateV3List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]CertificateV3, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateV3List. +func (in *CertificateV3List) DeepCopy() *CertificateV3List { + if in == nil { + return nil + } + out := new(CertificateV3List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *CertificateV3List) 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 *CertificateV3Observation) DeepCopyInto(out *CertificateV3Observation) { + *out = *in + if in.Certificate != nil { + in, out := &in.Certificate, &out.Certificate + *out = new(string) + **out = **in + } + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt + *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.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 CertificateV3Observation. +func (in *CertificateV3Observation) DeepCopy() *CertificateV3Observation { + if in == nil { + return nil + } + out := new(CertificateV3Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CertificateV3Parameters) DeepCopyInto(out *CertificateV3Parameters) { + *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 CertificateV3Parameters. +func (in *CertificateV3Parameters) DeepCopy() *CertificateV3Parameters { + if in == nil { + return nil + } + out := new(CertificateV3Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CertificateV3Spec) DeepCopyInto(out *CertificateV3Spec) { + *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 CertificateV3Spec. +func (in *CertificateV3Spec) DeepCopy() *CertificateV3Spec { + if in == nil { + return nil + } + out := new(CertificateV3Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CertificateV3Status) DeepCopyInto(out *CertificateV3Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CertificateV3Status. +func (in *CertificateV3Status) DeepCopy() *CertificateV3Status { + if in == nil { + return nil + } + out := new(CertificateV3Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ConditionsInitParameters) DeepCopyInto(out *ConditionsInitParameters) { + *out = *in + if in.Key != nil { + in, out := &in.Key, &out.Key + *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 ConditionsInitParameters. +func (in *ConditionsInitParameters) DeepCopy() *ConditionsInitParameters { + if in == nil { + return nil + } + out := new(ConditionsInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ConditionsObservation) DeepCopyInto(out *ConditionsObservation) { + *out = *in + if in.Key != nil { + in, out := &in.Key, &out.Key + *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 ConditionsObservation. +func (in *ConditionsObservation) DeepCopy() *ConditionsObservation { + if in == nil { + return nil + } + out := new(ConditionsObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ConditionsParameters) DeepCopyInto(out *ConditionsParameters) { + *out = *in + if in.Key != nil { + in, out := &in.Key, &out.Key + *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 ConditionsParameters. +func (in *ConditionsParameters) DeepCopy() *ConditionsParameters { + if in == nil { + return nil + } + out := new(ConditionsParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FixedResponseConfigInitParameters) DeepCopyInto(out *FixedResponseConfigInitParameters) { + *out = *in + if in.ContentType != nil { + in, out := &in.ContentType, &out.ContentType + *out = new(string) + **out = **in + } + if in.MessageBody != nil { + in, out := &in.MessageBody, &out.MessageBody + *out = new(string) + **out = **in + } + if in.StatusCode != nil { + in, out := &in.StatusCode, &out.StatusCode + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FixedResponseConfigInitParameters. +func (in *FixedResponseConfigInitParameters) DeepCopy() *FixedResponseConfigInitParameters { + if in == nil { + return nil + } + out := new(FixedResponseConfigInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FixedResponseConfigObservation) DeepCopyInto(out *FixedResponseConfigObservation) { + *out = *in + if in.ContentType != nil { + in, out := &in.ContentType, &out.ContentType + *out = new(string) + **out = **in + } + if in.MessageBody != nil { + in, out := &in.MessageBody, &out.MessageBody + *out = new(string) + **out = **in + } + if in.StatusCode != nil { + in, out := &in.StatusCode, &out.StatusCode + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FixedResponseConfigObservation. +func (in *FixedResponseConfigObservation) DeepCopy() *FixedResponseConfigObservation { + if in == nil { + return nil + } + out := new(FixedResponseConfigObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FixedResponseConfigParameters) DeepCopyInto(out *FixedResponseConfigParameters) { + *out = *in + if in.ContentType != nil { + in, out := &in.ContentType, &out.ContentType + *out = new(string) + **out = **in + } + if in.MessageBody != nil { + in, out := &in.MessageBody, &out.MessageBody + *out = new(string) + **out = **in + } + if in.StatusCode != nil { + in, out := &in.StatusCode, &out.StatusCode + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FixedResponseConfigParameters. +func (in *FixedResponseConfigParameters) DeepCopy() *FixedResponseConfigParameters { + if in == nil { + return nil + } + out := new(FixedResponseConfigParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IPGroupInitParameters) DeepCopyInto(out *IPGroupInitParameters) { + *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 IPGroupInitParameters. +func (in *IPGroupInitParameters) DeepCopy() *IPGroupInitParameters { + if in == nil { + return nil + } + out := new(IPGroupInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IPGroupObservation) DeepCopyInto(out *IPGroupObservation) { + *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 IPGroupObservation. +func (in *IPGroupObservation) DeepCopy() *IPGroupObservation { + if in == nil { + return nil + } + out := new(IPGroupObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IPGroupParameters) DeepCopyInto(out *IPGroupParameters) { + *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 IPGroupParameters. +func (in *IPGroupParameters) DeepCopy() *IPGroupParameters { + if in == nil { + return nil + } + out := new(IPGroupParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IPListInitParameters) DeepCopyInto(out *IPListInitParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.IP != nil { + in, out := &in.IP, &out.IP + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPListInitParameters. +func (in *IPListInitParameters) DeepCopy() *IPListInitParameters { + if in == nil { + return nil + } + out := new(IPListInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IPListObservation) DeepCopyInto(out *IPListObservation) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.IP != nil { + in, out := &in.IP, &out.IP + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPListObservation. +func (in *IPListObservation) DeepCopy() *IPListObservation { + if in == nil { + return nil + } + out := new(IPListObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IPListParameters) DeepCopyInto(out *IPListParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.IP != nil { + in, out := &in.IP, &out.IP + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IPListParameters. +func (in *IPListParameters) DeepCopy() *IPListParameters { + if in == nil { + return nil + } + out := new(IPListParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InsertHeadersInitParameters) DeepCopyInto(out *InsertHeadersInitParameters) { + *out = *in + if in.ForwardELBIP != nil { + in, out := &in.ForwardELBIP, &out.ForwardELBIP + *out = new(bool) + **out = **in + } + if in.ForwardedForPort != nil { + in, out := &in.ForwardedForPort, &out.ForwardedForPort + *out = new(bool) + **out = **in + } + if in.ForwardedHost != nil { + in, out := &in.ForwardedHost, &out.ForwardedHost + *out = new(bool) + **out = **in + } + if in.ForwardedPort != nil { + in, out := &in.ForwardedPort, &out.ForwardedPort + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InsertHeadersInitParameters. +func (in *InsertHeadersInitParameters) DeepCopy() *InsertHeadersInitParameters { + if in == nil { + return nil + } + out := new(InsertHeadersInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InsertHeadersObservation) DeepCopyInto(out *InsertHeadersObservation) { + *out = *in + if in.ForwardELBIP != nil { + in, out := &in.ForwardELBIP, &out.ForwardELBIP + *out = new(bool) + **out = **in + } + if in.ForwardedForPort != nil { + in, out := &in.ForwardedForPort, &out.ForwardedForPort + *out = new(bool) + **out = **in + } + if in.ForwardedHost != nil { + in, out := &in.ForwardedHost, &out.ForwardedHost + *out = new(bool) + **out = **in + } + if in.ForwardedPort != nil { + in, out := &in.ForwardedPort, &out.ForwardedPort + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InsertHeadersObservation. +func (in *InsertHeadersObservation) DeepCopy() *InsertHeadersObservation { + if in == nil { + return nil + } + out := new(InsertHeadersObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InsertHeadersParameters) DeepCopyInto(out *InsertHeadersParameters) { + *out = *in + if in.ForwardELBIP != nil { + in, out := &in.ForwardELBIP, &out.ForwardELBIP + *out = new(bool) + **out = **in + } + if in.ForwardedForPort != nil { + in, out := &in.ForwardedForPort, &out.ForwardedForPort + *out = new(bool) + **out = **in + } + if in.ForwardedHost != nil { + in, out := &in.ForwardedHost, &out.ForwardedHost + *out = new(bool) + **out = **in + } + if in.ForwardedPort != nil { + in, out := &in.ForwardedPort, &out.ForwardedPort + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InsertHeadersParameters. +func (in *InsertHeadersParameters) DeepCopy() *InsertHeadersParameters { + if in == nil { + return nil + } + out := new(InsertHeadersParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IpgroupV3) DeepCopyInto(out *IpgroupV3) { + *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 IpgroupV3. +func (in *IpgroupV3) DeepCopy() *IpgroupV3 { + if in == nil { + return nil + } + out := new(IpgroupV3) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *IpgroupV3) 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 *IpgroupV3InitParameters) DeepCopyInto(out *IpgroupV3InitParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.IPList != nil { + in, out := &in.IPList, &out.IPList + *out = make([]IPListInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + 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 + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IpgroupV3InitParameters. +func (in *IpgroupV3InitParameters) DeepCopy() *IpgroupV3InitParameters { + if in == nil { + return nil + } + out := new(IpgroupV3InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IpgroupV3List) DeepCopyInto(out *IpgroupV3List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]IpgroupV3, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IpgroupV3List. +func (in *IpgroupV3List) DeepCopy() *IpgroupV3List { + if in == nil { + return nil + } + out := new(IpgroupV3List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *IpgroupV3List) 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 *IpgroupV3Observation) DeepCopyInto(out *IpgroupV3Observation) { + *out = *in + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt + *out = new(string) + **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.IPList != nil { + in, out := &in.IPList, &out.IPList + *out = make([]IPListObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Listeners != nil { + in, out := &in.Listeners, &out.Listeners + *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.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.ProjectID != nil { + in, out := &in.ProjectID, &out.ProjectID + *out = new(string) + **out = **in + } + 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 IpgroupV3Observation. +func (in *IpgroupV3Observation) DeepCopy() *IpgroupV3Observation { + if in == nil { + return nil + } + out := new(IpgroupV3Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IpgroupV3Parameters) DeepCopyInto(out *IpgroupV3Parameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.IPList != nil { + in, out := &in.IPList, &out.IPList + *out = make([]IPListParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + 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 + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IpgroupV3Parameters. +func (in *IpgroupV3Parameters) DeepCopy() *IpgroupV3Parameters { + if in == nil { + return nil + } + out := new(IpgroupV3Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IpgroupV3Spec) DeepCopyInto(out *IpgroupV3Spec) { + *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 IpgroupV3Spec. +func (in *IpgroupV3Spec) DeepCopy() *IpgroupV3Spec { + if in == nil { + return nil + } + out := new(IpgroupV3Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IpgroupV3Status) DeepCopyInto(out *IpgroupV3Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IpgroupV3Status. +func (in *IpgroupV3Status) DeepCopy() *IpgroupV3Status { + if in == nil { + return nil + } + out := new(IpgroupV3Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *L7PolicyV2) DeepCopyInto(out *L7PolicyV2) { + *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 L7PolicyV2. +func (in *L7PolicyV2) DeepCopy() *L7PolicyV2 { + if in == nil { + return nil + } + out := new(L7PolicyV2) + 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 { + 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 *L7PolicyV2InitParameters) DeepCopyInto(out *L7PolicyV2InitParameters) { + *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.ListenerID != nil { + in, out := &in.ListenerID, &out.ListenerID + *out = new(string) + **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) + **out = **in + } + 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.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 L7PolicyV2InitParameters. +func (in *L7PolicyV2InitParameters) DeepCopy() *L7PolicyV2InitParameters { + if in == nil { + return nil + } + out := new(L7PolicyV2InitParameters) + 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) { + *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)) + 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 { + if in == nil { + return nil + } + out := new(L7PolicyV2List) + 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 { + 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 *L7PolicyV2Observation) DeepCopyInto(out *L7PolicyV2Observation) { + *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.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.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) + **out = **in + } + 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.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 L7PolicyV2Observation. +func (in *L7PolicyV2Observation) DeepCopy() *L7PolicyV2Observation { + if in == nil { + return nil + } + 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 + *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.ListenerID != nil { + in, out := &in.ListenerID, &out.ListenerID + *out = new(string) + **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) + **out = **in + } + 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.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 + *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 MemberV2Observation. +func (in *MemberV2Observation) DeepCopy() *MemberV2Observation { + if in == nil { + return nil + } + out := new(MemberV2Observation) + 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) { + *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 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.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.ProjectID != nil { + in, out := &in.ProjectID, &out.ProjectID + *out = new(string) + **out = **in + } + if in.ProtocolPort != nil { + in, out := &in.ProtocolPort, &out.ProtocolPort + *out = new(float64) + **out = **in + } + if in.SubnetID != nil { + in, out := &in.SubnetID, &out.SubnetID + *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 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)) + 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.ProtocolPort != nil { + in, out := &in.ProtocolPort, &out.ProtocolPort + *out = new(float64) + **out = **in + } + if in.SubnetID != nil { + in, out := &in.SubnetID, &out.SubnetID + *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 MemberV3Observation. +func (in *MemberV3Observation) DeepCopy() *MemberV3Observation { + if in == nil { + return nil + } + 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) + **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.ProjectID != nil { + in, out := &in.ProjectID, &out.ProjectID + *out = new(string) + **out = **in + } + if in.ProtocolPort != nil { + in, out := &in.ProtocolPort, &out.ProtocolPort + *out = new(float64) + **out = **in + } + if in.SubnetID != nil { + in, out := &in.SubnetID, &out.SubnetID + *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 MemberV3Parameters. +func (in *MemberV3Parameters) DeepCopy() *MemberV3Parameters { + if in == nil { + return nil + } + 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 *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 MemberV3Spec. +func (in *MemberV3Spec) DeepCopy() *MemberV3Spec { + if in == nil { + return nil + } + 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 *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 MemberV3Status. +func (in *MemberV3Status) DeepCopy() *MemberV3Status { + if in == nil { + return nil + } + 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 *MonitorV2) DeepCopyInto(out *MonitorV2) { + *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 MonitorV2. +func (in *MonitorV2) DeepCopy() *MonitorV2 { + if in == nil { + return nil + } + out := new(MonitorV2) + 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 { + 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 *MonitorV2InitParameters) DeepCopyInto(out *MonitorV2InitParameters) { + *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 + *out = new(string) + **out = **in + } + if in.MaxRetries != nil { + in, out := &in.MaxRetries, &out.MaxRetries + *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.PoolID != nil { + in, out := &in.PoolID, &out.PoolID + *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.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 MonitorV2InitParameters. +func (in *MonitorV2InitParameters) DeepCopy() *MonitorV2InitParameters { + if in == nil { + return nil + } + out := new(MonitorV2InitParameters) + 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) { + *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)) + 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 { + if in == nil { + return nil + } + out := new(MonitorV2List) + 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 { + 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 *MonitorV2Observation) DeepCopyInto(out *MonitorV2Observation) { + *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 + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.MaxRetries != nil { + in, out := &in.MaxRetries, &out.MaxRetries + *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.PoolID != nil { + in, out := &in.PoolID, &out.PoolID + *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.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 MonitorV2Observation. +func (in *MonitorV2Observation) DeepCopy() *MonitorV2Observation { + if in == nil { + return nil + } + out := new(MonitorV2Observation) + 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) { + *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 + *out = new(string) + **out = **in + } + if in.MaxRetries != nil { + in, out := &in.MaxRetries, &out.MaxRetries + *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.PoolID != nil { + in, out := &in.PoolID, &out.PoolID + *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.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 MonitorV2Parameters. +func (in *MonitorV2Parameters) DeepCopy() *MonitorV2Parameters { + if in == nil { + return nil + } + out := new(MonitorV2Parameters) + 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) { + *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 { + if in == nil { + return nil + } + out := new(MonitorV2Spec) + 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) { + *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 { + if in == nil { + return nil + } + out := new(MonitorV2Status) + 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) { + *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 MonitorV3. +func (in *MonitorV3) DeepCopy() *MonitorV3 { + if in == nil { + return nil + } + out := new(MonitorV3) + 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 { + 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 *MonitorV3InitParameters) DeepCopyInto(out *MonitorV3InitParameters) { + *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 + *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.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.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 MonitorV3InitParameters. +func (in *MonitorV3InitParameters) DeepCopy() *MonitorV3InitParameters { + if in == nil { + return nil + } + 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 *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([]MonitorV3, 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 { + if in == nil { + return nil + } + out := new(MonitorV3List) + 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 { + 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 *MonitorV3Observation) DeepCopyInto(out *MonitorV3Observation) { + *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 + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *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.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.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 MonitorV3Observation. +func (in *MonitorV3Observation) DeepCopy() *MonitorV3Observation { + if in == nil { + return nil + } + 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 *MonitorV3Parameters) DeepCopyInto(out *MonitorV3Parameters) { + *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 + *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.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.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 MonitorV3Parameters. +func (in *MonitorV3Parameters) DeepCopy() *MonitorV3Parameters { + if in == nil { + return nil + } + 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 *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 MonitorV3Spec. +func (in *MonitorV3Spec) DeepCopy() *MonitorV3Spec { + if in == nil { + return nil + } + 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 *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 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 { + if in == nil { + return nil + } + out := new(PersistenceParameters) + 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) { + *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 PolicyV3. +func (in *PolicyV3) DeepCopy() *PolicyV3 { + if in == nil { + return nil + } + out := new(PolicyV3) + 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 { + 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 *PolicyV3InitParameters) DeepCopyInto(out *PolicyV3InitParameters) { + *out = *in + 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([]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.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) + **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.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.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 PolicyV3InitParameters. +func (in *PolicyV3InitParameters) DeepCopy() *PolicyV3InitParameters { + if in == nil { + return nil + } + 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 *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([]PolicyV3, 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 { + if in == nil { + return nil + } + out := new(PolicyV3List) + 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 { + 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 *PolicyV3Observation) DeepCopyInto(out *PolicyV3Observation) { + *out = *in + 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([]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.ListenerID != nil { + in, out := &in.ListenerID, &out.ListenerID + *out = new(string) + **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) + **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.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.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 + *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.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 PolicyV3Observation. +func (in *PolicyV3Observation) DeepCopy() *PolicyV3Observation { + if in == nil { + return nil + } + 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 *PolicyV3Parameters) DeepCopyInto(out *PolicyV3Parameters) { + *out = *in + 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.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) + **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.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.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 + *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 { + if in == nil { + return nil + } + 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 *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 PolicyV3Spec. +func (in *PolicyV3Spec) DeepCopy() *PolicyV3Spec { + if in == nil { + return nil + } + 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 *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 PolicyV3Status. +func (in *PolicyV3Status) DeepCopy() *PolicyV3Status { + if in == nil { + return nil + } + out := new(PolicyV3Status) + 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) { + *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 PoolV2. +func (in *PoolV2) DeepCopy() *PoolV2 { + if in == nil { + return nil + } + out := new(PoolV2) + 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 { + 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 *PoolV2InitParameters) DeepCopyInto(out *PoolV2InitParameters) { + *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.LBMethod != nil { + in, out := &in.LBMethod, &out.LBMethod + *out = new(string) + **out = **in + } + 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.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.Protocol != nil { + in, out := &in.Protocol, &out.Protocol + *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 PoolV2InitParameters. +func (in *PoolV2InitParameters) DeepCopy() *PoolV2InitParameters { + if in == nil { + return nil + } + out := new(PoolV2InitParameters) + 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) { + *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)) + 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 { + if in == nil { + return nil + } + out := new(PoolV2List) + 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 { + 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 *PoolV2Observation) DeepCopyInto(out *PoolV2Observation) { + *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.LBMethod != nil { + in, out := &in.LBMethod, &out.LBMethod + *out = new(string) + **out = **in + } + 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.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([]PersistenceObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Protocol != nil { + in, out := &in.Protocol, &out.Protocol + *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 PoolV2Observation. +func (in *PoolV2Observation) DeepCopy() *PoolV2Observation { + if in == nil { + return nil + } + out := new(PoolV2Observation) + 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) { + *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.LBMethod != nil { + in, out := &in.LBMethod, &out.LBMethod + *out = new(string) + **out = **in + } + 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.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([]PersistenceParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Protocol != nil { + in, out := &in.Protocol, &out.Protocol + *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 PoolV2Parameters. +func (in *PoolV2Parameters) DeepCopy() *PoolV2Parameters { + if in == nil { + return nil + } + out := new(PoolV2Parameters) + 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) { + *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 { + if in == nil { + return nil + } + out := new(PoolV2Spec) + 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) { + *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 { + if in == nil { + return nil + } + out := new(PoolV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PoolV3) DeepCopyInto(out *PoolV3) { + *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 PoolV3. +func (in *PoolV3) DeepCopy() *PoolV3 { + if in == nil { + return nil + } + out := new(PoolV3) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PoolV3) 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 *PoolV3InitParameters) DeepCopyInto(out *PoolV3InitParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.LBAlgorithm != nil { + in, out := &in.LBAlgorithm, &out.LBAlgorithm + *out = new(string) + **out = **in + } + 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.MemberDeletionProtection != nil { + in, out := &in.MemberDeletionProtection, &out.MemberDeletionProtection + *out = new(bool) + **out = **in + } + 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 + *out = new(string) + **out = **in + } + if in.Protocol != nil { + in, out := &in.Protocol, &out.Protocol + *out = new(string) + **out = **in + } + if in.SessionPersistence != nil { + in, out := &in.SessionPersistence, &out.SessionPersistence + *out = make([]SessionPersistenceInitParameters, 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.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PoolV3InitParameters. +func (in *PoolV3InitParameters) DeepCopy() *PoolV3InitParameters { + if in == nil { + return nil + } + out := new(PoolV3InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PoolV3List) DeepCopyInto(out *PoolV3List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]PoolV3, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PoolV3List. +func (in *PoolV3List) DeepCopy() *PoolV3List { + if in == nil { + return nil + } + out := new(PoolV3List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PoolV3List) 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 *PoolV3Observation) DeepCopyInto(out *PoolV3Observation) { + *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.IPVersion != nil { + in, out := &in.IPVersion, &out.IPVersion + *out = new(string) + **out = **in + } + if in.LBAlgorithm != nil { + in, out := &in.LBAlgorithm, &out.LBAlgorithm + *out = new(string) + **out = **in + } + 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.MemberDeletionProtection != nil { + in, out := &in.MemberDeletionProtection, &out.MemberDeletionProtection + *out = new(bool) + **out = **in + } + 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 + *out = new(string) + **out = **in + } + if in.Protocol != nil { + in, out := &in.Protocol, &out.Protocol + *out = new(string) + **out = **in + } + if in.SessionPersistence != nil { + in, out := &in.SessionPersistence, &out.SessionPersistence + *out = make([]SessionPersistenceObservation, 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.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PoolV3Observation. +func (in *PoolV3Observation) DeepCopy() *PoolV3Observation { + if in == nil { + return nil + } + out := new(PoolV3Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PoolV3Parameters) DeepCopyInto(out *PoolV3Parameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.LBAlgorithm != nil { + in, out := &in.LBAlgorithm, &out.LBAlgorithm + *out = new(string) + **out = **in + } + 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.MemberDeletionProtection != nil { + in, out := &in.MemberDeletionProtection, &out.MemberDeletionProtection + *out = new(bool) + **out = **in + } + 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 + *out = new(string) + **out = **in + } + if in.Protocol != nil { + in, out := &in.Protocol, &out.Protocol + *out = new(string) + **out = **in + } + if in.SessionPersistence != nil { + in, out := &in.SessionPersistence, &out.SessionPersistence + *out = make([]SessionPersistenceParameters, 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.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PoolV3Parameters. +func (in *PoolV3Parameters) DeepCopy() *PoolV3Parameters { + if in == nil { + return nil + } + out := new(PoolV3Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PoolV3Spec) DeepCopyInto(out *PoolV3Spec) { + *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 PoolV3Spec. +func (in *PoolV3Spec) DeepCopy() *PoolV3Spec { + if in == nil { + return nil + } + out := new(PoolV3Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PoolV3Status) DeepCopyInto(out *PoolV3Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PoolV3Status. +func (in *PoolV3Status) DeepCopy() *PoolV3Status { + if in == nil { + return nil + } + out := new(PoolV3Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PublicIPInitParameters) DeepCopyInto(out *PublicIPInitParameters) { + *out = *in + if in.BandwidthChargeMode != nil { + in, out := &in.BandwidthChargeMode, &out.BandwidthChargeMode + *out = new(string) + **out = **in + } + if in.BandwidthName != nil { + in, out := &in.BandwidthName, &out.BandwidthName + *out = new(string) + **out = **in + } + if in.BandwidthShareType != nil { + in, out := &in.BandwidthShareType, &out.BandwidthShareType + *out = new(string) + **out = **in + } + if in.BandwidthSize != nil { + in, out := &in.BandwidthSize, &out.BandwidthSize + *out = new(float64) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.IPType != nil { + in, out := &in.IPType, &out.IPType + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PublicIPInitParameters. +func (in *PublicIPInitParameters) DeepCopy() *PublicIPInitParameters { + if in == nil { + return nil + } + out := new(PublicIPInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PublicIPObservation) DeepCopyInto(out *PublicIPObservation) { + *out = *in + if in.Address != nil { + in, out := &in.Address, &out.Address + *out = new(string) + **out = **in + } + if in.BandwidthChargeMode != nil { + in, out := &in.BandwidthChargeMode, &out.BandwidthChargeMode + *out = new(string) + **out = **in + } + if in.BandwidthName != nil { + in, out := &in.BandwidthName, &out.BandwidthName + *out = new(string) + **out = **in + } + if in.BandwidthShareType != nil { + in, out := &in.BandwidthShareType, &out.BandwidthShareType + *out = new(string) + **out = **in + } + if in.BandwidthSize != nil { + in, out := &in.BandwidthSize, &out.BandwidthSize + *out = new(float64) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.IPType != nil { + in, out := &in.IPType, &out.IPType + *out = new(string) + **out = **in + } + if in.Managed != nil { + in, out := &in.Managed, &out.Managed + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PublicIPObservation. +func (in *PublicIPObservation) DeepCopy() *PublicIPObservation { + if in == nil { + return nil + } + out := new(PublicIPObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PublicIPParameters) DeepCopyInto(out *PublicIPParameters) { + *out = *in + if in.BandwidthChargeMode != nil { + in, out := &in.BandwidthChargeMode, &out.BandwidthChargeMode + *out = new(string) + **out = **in + } + if in.BandwidthName != nil { + in, out := &in.BandwidthName, &out.BandwidthName + *out = new(string) + **out = **in + } + if in.BandwidthShareType != nil { + in, out := &in.BandwidthShareType, &out.BandwidthShareType + *out = new(string) + **out = **in + } + if in.BandwidthSize != nil { + in, out := &in.BandwidthSize, &out.BandwidthSize + *out = new(float64) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.IPType != nil { + in, out := &in.IPType, &out.IPType + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PublicIPParameters. +func (in *PublicIPParameters) DeepCopy() *PublicIPParameters { + if in == nil { + return nil + } + out := new(PublicIPParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RedirectPoolsConfigInitParameters) DeepCopyInto(out *RedirectPoolsConfigInitParameters) { + *out = *in + if in.PoolID != nil { + in, out := &in.PoolID, &out.PoolID + *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 RedirectPoolsConfigInitParameters. +func (in *RedirectPoolsConfigInitParameters) DeepCopy() *RedirectPoolsConfigInitParameters { + if in == nil { + return nil + } + out := new(RedirectPoolsConfigInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RedirectPoolsConfigObservation) DeepCopyInto(out *RedirectPoolsConfigObservation) { + *out = *in + if in.PoolID != nil { + in, out := &in.PoolID, &out.PoolID + *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 RedirectPoolsConfigObservation. +func (in *RedirectPoolsConfigObservation) DeepCopy() *RedirectPoolsConfigObservation { + if in == nil { + return nil + } + out := new(RedirectPoolsConfigObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RedirectPoolsConfigParameters) DeepCopyInto(out *RedirectPoolsConfigParameters) { + *out = *in + if in.PoolID != nil { + in, out := &in.PoolID, &out.PoolID + *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 RedirectPoolsConfigParameters. +func (in *RedirectPoolsConfigParameters) DeepCopy() *RedirectPoolsConfigParameters { + if in == nil { + return nil + } + out := new(RedirectPoolsConfigParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RedirectURLConfigInitParameters) DeepCopyInto(out *RedirectURLConfigInitParameters) { + *out = *in + if in.Host != nil { + in, out := &in.Host, &out.Host + *out = new(string) + **out = **in + } + if in.Path != nil { + in, out := &in.Path, &out.Path + *out = new(string) + **out = **in + } + if in.Port != nil { + in, out := &in.Port, &out.Port + *out = new(string) + **out = **in + } + if in.Protocol != nil { + in, out := &in.Protocol, &out.Protocol + *out = new(string) + **out = **in + } + if in.Query != nil { + in, out := &in.Query, &out.Query + *out = new(string) + **out = **in + } + if in.StatusCode != nil { + in, out := &in.StatusCode, &out.StatusCode + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RedirectURLConfigInitParameters. +func (in *RedirectURLConfigInitParameters) DeepCopy() *RedirectURLConfigInitParameters { + if in == nil { + return nil + } + out := new(RedirectURLConfigInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RedirectURLConfigObservation) DeepCopyInto(out *RedirectURLConfigObservation) { + *out = *in + if in.Host != nil { + in, out := &in.Host, &out.Host + *out = new(string) + **out = **in + } + if in.Path != nil { + in, out := &in.Path, &out.Path + *out = new(string) + **out = **in + } + if in.Port != nil { + in, out := &in.Port, &out.Port + *out = new(string) + **out = **in + } + if in.Protocol != nil { + in, out := &in.Protocol, &out.Protocol + *out = new(string) + **out = **in + } + if in.Query != nil { + in, out := &in.Query, &out.Query + *out = new(string) + **out = **in + } + if in.StatusCode != nil { + in, out := &in.StatusCode, &out.StatusCode + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RedirectURLConfigObservation. +func (in *RedirectURLConfigObservation) DeepCopy() *RedirectURLConfigObservation { + if in == nil { + return nil + } + out := new(RedirectURLConfigObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RedirectURLConfigParameters) DeepCopyInto(out *RedirectURLConfigParameters) { + *out = *in + if in.Host != nil { + in, out := &in.Host, &out.Host + *out = new(string) + **out = **in + } + if in.Path != nil { + in, out := &in.Path, &out.Path + *out = new(string) + **out = **in + } + if in.Port != nil { + in, out := &in.Port, &out.Port + *out = new(string) + **out = **in + } + if in.Protocol != nil { + in, out := &in.Protocol, &out.Protocol + *out = new(string) + **out = **in + } + if in.Query != nil { + in, out := &in.Query, &out.Query + *out = new(string) + **out = **in + } + if in.StatusCode != nil { + in, out := &in.StatusCode, &out.StatusCode + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RedirectURLConfigParameters. +func (in *RedirectURLConfigParameters) DeepCopy() *RedirectURLConfigParameters { + if in == nil { + return nil + } + out := new(RedirectURLConfigParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RuleV3) DeepCopyInto(out *RuleV3) { + *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 RuleV3. +func (in *RuleV3) DeepCopy() *RuleV3 { + if in == nil { + return nil + } + out := new(RuleV3) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *RuleV3) 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 *RuleV3InitParameters) DeepCopyInto(out *RuleV3InitParameters) { + *out = *in + if in.CompareType != nil { + in, out := &in.CompareType, &out.CompareType + *out = new(string) + **out = **in + } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]ConditionsInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.PolicyID != nil { + in, out := &in.PolicyID, &out.PolicyID + *out = new(string) + **out = **in + } + if in.ProjectID != nil { + in, out := &in.ProjectID, &out.ProjectID + *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 RuleV3InitParameters. +func (in *RuleV3InitParameters) DeepCopy() *RuleV3InitParameters { + if in == nil { + return nil + } + out := new(RuleV3InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RuleV3List) DeepCopyInto(out *RuleV3List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]RuleV3, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RuleV3List. +func (in *RuleV3List) DeepCopy() *RuleV3List { + if in == nil { + return nil + } + out := new(RuleV3List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *RuleV3List) 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 *RuleV3Observation) DeepCopyInto(out *RuleV3Observation) { + *out = *in + if in.CompareType != nil { + in, out := &in.CompareType, &out.CompareType + *out = new(string) + **out = **in + } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]ConditionsObservation, 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.PolicyID != nil { + in, out := &in.PolicyID, &out.PolicyID + *out = new(string) + **out = **in + } + if in.ProjectID != nil { + in, out := &in.ProjectID, &out.ProjectID + *out = new(string) + **out = **in + } + if in.RuleID != nil { + in, out := &in.RuleID, &out.RuleID + *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 RuleV3Observation. +func (in *RuleV3Observation) DeepCopy() *RuleV3Observation { + if in == nil { + return nil + } + out := new(RuleV3Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RuleV3Parameters) DeepCopyInto(out *RuleV3Parameters) { + *out = *in + if in.CompareType != nil { + in, out := &in.CompareType, &out.CompareType + *out = new(string) + **out = **in + } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]ConditionsParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.PolicyID != nil { + in, out := &in.PolicyID, &out.PolicyID + *out = new(string) + **out = **in + } + if in.ProjectID != nil { + in, out := &in.ProjectID, &out.ProjectID + *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 RuleV3Parameters. +func (in *RuleV3Parameters) DeepCopy() *RuleV3Parameters { + if in == nil { + return nil + } + out := new(RuleV3Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RuleV3Spec) DeepCopyInto(out *RuleV3Spec) { + *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 RuleV3Spec. +func (in *RuleV3Spec) DeepCopy() *RuleV3Spec { + if in == nil { + return nil + } + out := new(RuleV3Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RuleV3Status) DeepCopyInto(out *RuleV3Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RuleV3Status. +func (in *RuleV3Status) DeepCopy() *RuleV3Status { + if in == nil { + return nil + } + out := new(RuleV3Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RulesInitParameters) DeepCopyInto(out *RulesInitParameters) { + *out = *in + if in.CompareType != nil { + in, out := &in.CompareType, &out.CompareType + *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 RulesInitParameters. +func (in *RulesInitParameters) DeepCopy() *RulesInitParameters { + if in == nil { + return nil + } + out := new(RulesInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RulesObservation) DeepCopyInto(out *RulesObservation) { + *out = *in + if in.CompareType != nil { + in, out := &in.CompareType, &out.CompareType + *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 RulesObservation. +func (in *RulesObservation) DeepCopy() *RulesObservation { + if in == nil { + return nil + } + out := new(RulesObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RulesParameters) DeepCopyInto(out *RulesParameters) { + *out = *in + if in.CompareType != nil { + in, out := &in.CompareType, &out.CompareType + *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 RulesParameters. +func (in *RulesParameters) DeepCopy() *RulesParameters { + if in == nil { + return nil + } + out := new(RulesParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SecurityPolicyV3) DeepCopyInto(out *SecurityPolicyV3) { + *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 SecurityPolicyV3. +func (in *SecurityPolicyV3) DeepCopy() *SecurityPolicyV3 { + if in == nil { + return nil + } + out := new(SecurityPolicyV3) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *SecurityPolicyV3) 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 *SecurityPolicyV3InitParameters) DeepCopyInto(out *SecurityPolicyV3InitParameters) { + *out = *in + if in.Ciphers != nil { + in, out := &in.Ciphers, &out.Ciphers + *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.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Protocols != nil { + in, out := &in.Protocols, &out.Protocols + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityPolicyV3InitParameters. +func (in *SecurityPolicyV3InitParameters) DeepCopy() *SecurityPolicyV3InitParameters { + if in == nil { + return nil + } + out := new(SecurityPolicyV3InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SecurityPolicyV3List) DeepCopyInto(out *SecurityPolicyV3List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]SecurityPolicyV3, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityPolicyV3List. +func (in *SecurityPolicyV3List) DeepCopy() *SecurityPolicyV3List { + if in == nil { + return nil + } + out := new(SecurityPolicyV3List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *SecurityPolicyV3List) 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 *SecurityPolicyV3Observation) DeepCopyInto(out *SecurityPolicyV3Observation) { + *out = *in + if in.Ciphers != nil { + in, out := &in.Ciphers, &out.Ciphers + *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.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.ListenerIds != nil { + in, out := &in.ListenerIds, &out.ListenerIds + *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.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.ProjectID != nil { + in, out := &in.ProjectID, &out.ProjectID + *out = new(string) + **out = **in + } + if in.Protocols != nil { + in, out := &in.Protocols, &out.Protocols + *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.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 SecurityPolicyV3Observation. +func (in *SecurityPolicyV3Observation) DeepCopy() *SecurityPolicyV3Observation { + if in == nil { + return nil + } + out := new(SecurityPolicyV3Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SecurityPolicyV3Parameters) DeepCopyInto(out *SecurityPolicyV3Parameters) { + *out = *in + if in.Ciphers != nil { + in, out := &in.Ciphers, &out.Ciphers + *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.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Protocols != nil { + in, out := &in.Protocols, &out.Protocols + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityPolicyV3Parameters. +func (in *SecurityPolicyV3Parameters) DeepCopy() *SecurityPolicyV3Parameters { + if in == nil { + return nil + } + out := new(SecurityPolicyV3Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SecurityPolicyV3Spec) DeepCopyInto(out *SecurityPolicyV3Spec) { + *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 SecurityPolicyV3Spec. +func (in *SecurityPolicyV3Spec) DeepCopy() *SecurityPolicyV3Spec { + if in == nil { + return nil + } + out := new(SecurityPolicyV3Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SecurityPolicyV3Status) DeepCopyInto(out *SecurityPolicyV3Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecurityPolicyV3Status. +func (in *SecurityPolicyV3Status) DeepCopy() *SecurityPolicyV3Status { + if in == nil { + return nil + } + out := new(SecurityPolicyV3Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SessionPersistenceInitParameters) DeepCopyInto(out *SessionPersistenceInitParameters) { + *out = *in + if in.CookieName != nil { + in, out := &in.CookieName, &out.CookieName + *out = new(string) + **out = **in + } + if in.PersistenceTimeout != nil { + in, out := &in.PersistenceTimeout, &out.PersistenceTimeout + *out = new(float64) + **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 SessionPersistenceInitParameters. +func (in *SessionPersistenceInitParameters) DeepCopy() *SessionPersistenceInitParameters { + if in == nil { + return nil + } + out := new(SessionPersistenceInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SessionPersistenceObservation) DeepCopyInto(out *SessionPersistenceObservation) { + *out = *in + if in.CookieName != nil { + in, out := &in.CookieName, &out.CookieName + *out = new(string) + **out = **in + } + if in.PersistenceTimeout != nil { + in, out := &in.PersistenceTimeout, &out.PersistenceTimeout + *out = new(float64) + **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 SessionPersistenceObservation. +func (in *SessionPersistenceObservation) DeepCopy() *SessionPersistenceObservation { + if in == nil { + return nil + } + out := new(SessionPersistenceObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SessionPersistenceParameters) DeepCopyInto(out *SessionPersistenceParameters) { + *out = *in + if in.CookieName != nil { + in, out := &in.CookieName, &out.CookieName + *out = new(string) + **out = **in + } + if in.PersistenceTimeout != nil { + in, out := &in.PersistenceTimeout, &out.PersistenceTimeout + *out = new(float64) + **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 SessionPersistenceParameters. +func (in *SessionPersistenceParameters) DeepCopy() *SessionPersistenceParameters { + if in == nil { + return nil + } + out := new(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 new file mode 100644 index 0000000..d8e2a96 --- /dev/null +++ b/apis/lb/v1alpha1/zz_generated.managed.go @@ -0,0 +1,1148 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +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) +} + +// GetDeletionPolicy of this CertificateV3. +func (mg *CertificateV3) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this CertificateV3. +func (mg *CertificateV3) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this CertificateV3. +func (mg *CertificateV3) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this CertificateV3. +func (mg *CertificateV3) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this CertificateV3. +func (mg *CertificateV3) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this CertificateV3. +func (mg *CertificateV3) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this CertificateV3. +func (mg *CertificateV3) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this CertificateV3. +func (mg *CertificateV3) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this CertificateV3. +func (mg *CertificateV3) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this CertificateV3. +func (mg *CertificateV3) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this CertificateV3. +func (mg *CertificateV3) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this IpgroupV3. +func (mg *IpgroupV3) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this IpgroupV3. +func (mg *IpgroupV3) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this IpgroupV3. +func (mg *IpgroupV3) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this IpgroupV3. +func (mg *IpgroupV3) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this IpgroupV3. +func (mg *IpgroupV3) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this IpgroupV3. +func (mg *IpgroupV3) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this IpgroupV3. +func (mg *IpgroupV3) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this IpgroupV3. +func (mg *IpgroupV3) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this IpgroupV3. +func (mg *IpgroupV3) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this IpgroupV3. +func (mg *IpgroupV3) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this IpgroupV3. +func (mg *IpgroupV3) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this IpgroupV3. +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) +} + +// GetDeletionPolicy of this ListenerV3. +func (mg *ListenerV3) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this ListenerV3. +func (mg *ListenerV3) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this ListenerV3. +func (mg *ListenerV3) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this ListenerV3. +func (mg *ListenerV3) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this ListenerV3. +func (mg *ListenerV3) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this ListenerV3. +func (mg *ListenerV3) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this ListenerV3. +func (mg *ListenerV3) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this ListenerV3. +func (mg *ListenerV3) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this ListenerV3. +func (mg *ListenerV3) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this ListenerV3. +func (mg *ListenerV3) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this ListenerV3. +func (mg *ListenerV3) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + 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) +} + +// GetDeletionPolicy of this LoadbalancerV3. +func (mg *LoadbalancerV3) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this LoadbalancerV3. +func (mg *LoadbalancerV3) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this LoadbalancerV3. +func (mg *LoadbalancerV3) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this LoadbalancerV3. +func (mg *LoadbalancerV3) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this LoadbalancerV3. +func (mg *LoadbalancerV3) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this LoadbalancerV3. +func (mg *LoadbalancerV3) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this LoadbalancerV3. +func (mg *LoadbalancerV3) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this LoadbalancerV3. +func (mg *LoadbalancerV3) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this LoadbalancerV3. +func (mg *LoadbalancerV3) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this LoadbalancerV3. +func (mg *LoadbalancerV3) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this LoadbalancerV3. +func (mg *LoadbalancerV3) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + 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) +} + +// GetDeletionPolicy of this MemberV3. +func (mg *MemberV3) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this MemberV3. +func (mg *MemberV3) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this MemberV3. +func (mg *MemberV3) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this MemberV3. +func (mg *MemberV3) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this MemberV3. +func (mg *MemberV3) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this MemberV3. +func (mg *MemberV3) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this MemberV3. +func (mg *MemberV3) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this MemberV3. +func (mg *MemberV3) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this MemberV3. +func (mg *MemberV3) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this MemberV3. +func (mg *MemberV3) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this MemberV3. +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) +} + +// GetDeletionPolicy of this MonitorV3. +func (mg *MonitorV3) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this MonitorV3. +func (mg *MonitorV3) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this MonitorV3. +func (mg *MonitorV3) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this MonitorV3. +func (mg *MonitorV3) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this MonitorV3. +func (mg *MonitorV3) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this MonitorV3. +func (mg *MonitorV3) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this MonitorV3. +func (mg *MonitorV3) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this MonitorV3. +func (mg *MonitorV3) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this MonitorV3. +func (mg *MonitorV3) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this MonitorV3. +func (mg *MonitorV3) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this MonitorV3. +func (mg *MonitorV3) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this PolicyV3. +func (mg *PolicyV3) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this PolicyV3. +func (mg *PolicyV3) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this PolicyV3. +func (mg *PolicyV3) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this PolicyV3. +func (mg *PolicyV3) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this PolicyV3. +func (mg *PolicyV3) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this PolicyV3. +func (mg *PolicyV3) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this PolicyV3. +func (mg *PolicyV3) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this PolicyV3. +func (mg *PolicyV3) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this PolicyV3. +func (mg *PolicyV3) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this PolicyV3. +func (mg *PolicyV3) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this PolicyV3. +func (mg *PolicyV3) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this PolicyV3. +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) +} + +// GetDeletionPolicy of this PoolV3. +func (mg *PoolV3) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this PoolV3. +func (mg *PoolV3) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this PoolV3. +func (mg *PoolV3) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this PoolV3. +func (mg *PoolV3) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this PoolV3. +func (mg *PoolV3) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this PoolV3. +func (mg *PoolV3) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this PoolV3. +func (mg *PoolV3) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this PoolV3. +func (mg *PoolV3) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this PoolV3. +func (mg *PoolV3) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this PoolV3. +func (mg *PoolV3) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this PoolV3. +func (mg *PoolV3) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this RuleV3. +func (mg *RuleV3) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this RuleV3. +func (mg *RuleV3) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this RuleV3. +func (mg *RuleV3) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this RuleV3. +func (mg *RuleV3) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this RuleV3. +func (mg *RuleV3) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this RuleV3. +func (mg *RuleV3) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this RuleV3. +func (mg *RuleV3) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this RuleV3. +func (mg *RuleV3) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this RuleV3. +func (mg *RuleV3) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this RuleV3. +func (mg *RuleV3) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this RuleV3. +func (mg *RuleV3) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this RuleV3. +func (mg *RuleV3) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this SecurityPolicyV3. +func (mg *SecurityPolicyV3) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this SecurityPolicyV3. +func (mg *SecurityPolicyV3) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this SecurityPolicyV3. +func (mg *SecurityPolicyV3) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this SecurityPolicyV3. +func (mg *SecurityPolicyV3) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this SecurityPolicyV3. +func (mg *SecurityPolicyV3) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this SecurityPolicyV3. +func (mg *SecurityPolicyV3) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this SecurityPolicyV3. +func (mg *SecurityPolicyV3) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this SecurityPolicyV3. +func (mg *SecurityPolicyV3) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this SecurityPolicyV3. +func (mg *SecurityPolicyV3) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this SecurityPolicyV3. +func (mg *SecurityPolicyV3) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this SecurityPolicyV3. +func (mg *SecurityPolicyV3) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this SecurityPolicyV3. +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 new file mode 100644 index 0000000..51b2c33 --- /dev/null +++ b/apis/lb/v1alpha1/zz_generated.managedlist.go @@ -0,0 +1,179 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +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)) + for i := range l.Items { + items[i] = &l.Items[i] + } + return items +} + +// GetItems of this IpgroupV3List. +func (l *IpgroupV3List) 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 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)) + for i := range l.Items { + items[i] = &l.Items[i] + } + 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)) + for i := range l.Items { + items[i] = &l.Items[i] + } + 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)) + for i := range l.Items { + items[i] = &l.Items[i] + } + 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)) + for i := range l.Items { + items[i] = &l.Items[i] + } + return items +} + +// GetItems of this PolicyV3List. +func (l *PolicyV3List) 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 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)) + for i := range l.Items { + items[i] = &l.Items[i] + } + return items +} + +// GetItems of this RuleV3List. +func (l *RuleV3List) 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 SecurityPolicyV3List. +func (l *SecurityPolicyV3List) 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 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_terraformed.go b/apis/lb/v1alpha1/zz_generated_terraformed.go new file mode 100755 index 0000000..b1de4b4 --- /dev/null +++ b/apis/lb/v1alpha1/zz_generated_terraformed.go @@ -0,0 +1,1614 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "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) +} + +// 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 +} + +// GetTerraformResourceType returns Terraform resource type for this CertificateV3 +func (mg *CertificateV3) GetTerraformResourceType() string { + return "opentelekomcloud_lb_certificate_v3" +} + +// GetConnectionDetailsMapping for this CertificateV3 +func (tr *CertificateV3) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this CertificateV3 +func (tr *CertificateV3) 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 CertificateV3 +func (tr *CertificateV3) 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 CertificateV3 +func (tr *CertificateV3) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this CertificateV3 +func (tr *CertificateV3) 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 CertificateV3 +func (tr *CertificateV3) 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 CertificateV3 +func (tr *CertificateV3) 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) +} + +// LateInitialize this CertificateV3 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *CertificateV3) LateInitialize(attrs []byte) (bool, error) { + params := &CertificateV3Parameters{} + 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 *CertificateV3) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this IpgroupV3 +func (mg *IpgroupV3) GetTerraformResourceType() string { + return "opentelekomcloud_lb_ipgroup_v3" +} + +// GetConnectionDetailsMapping for this IpgroupV3 +func (tr *IpgroupV3) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this IpgroupV3 +func (tr *IpgroupV3) 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 IpgroupV3 +func (tr *IpgroupV3) 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 IpgroupV3 +func (tr *IpgroupV3) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this IpgroupV3 +func (tr *IpgroupV3) 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 IpgroupV3 +func (tr *IpgroupV3) 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 IpgroupV3 +func (tr *IpgroupV3) 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) +} + +// LateInitialize this IpgroupV3 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *IpgroupV3) LateInitialize(attrs []byte) (bool, error) { + params := &IpgroupV3Parameters{} + 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 *IpgroupV3) GetTerraformSchemaVersion() int { + return 0 +} + +// 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) +} + +// 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 +} + +// 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) +} + +// 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 +} + +// 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) +} + +// 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 +} + +// GetTerraformResourceType returns Terraform resource type for this ListenerV3 +func (mg *ListenerV3) GetTerraformResourceType() string { + return "opentelekomcloud_lb_listener_v3" +} + +// GetConnectionDetailsMapping for this ListenerV3 +func (tr *ListenerV3) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this ListenerV3 +func (tr *ListenerV3) 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 ListenerV3 +func (tr *ListenerV3) 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 ListenerV3 +func (tr *ListenerV3) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this ListenerV3 +func (tr *ListenerV3) 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 ListenerV3 +func (tr *ListenerV3) 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 ListenerV3 +func (tr *ListenerV3) 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) +} + +// LateInitialize this ListenerV3 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *ListenerV3) LateInitialize(attrs []byte) (bool, error) { + params := &ListenerV3Parameters{} + 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 *ListenerV3) GetTerraformSchemaVersion() int { + return 0 +} + +// 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) +} + +// 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 +} + +// GetTerraformResourceType returns Terraform resource type for this LoadbalancerV3 +func (mg *LoadbalancerV3) GetTerraformResourceType() string { + return "opentelekomcloud_lb_loadbalancer_v3" +} + +// GetConnectionDetailsMapping for this LoadbalancerV3 +func (tr *LoadbalancerV3) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this LoadbalancerV3 +func (tr *LoadbalancerV3) 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 LoadbalancerV3 +func (tr *LoadbalancerV3) 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 LoadbalancerV3 +func (tr *LoadbalancerV3) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this LoadbalancerV3 +func (tr *LoadbalancerV3) 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 LoadbalancerV3 +func (tr *LoadbalancerV3) 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 LoadbalancerV3 +func (tr *LoadbalancerV3) 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) +} + +// LateInitialize this LoadbalancerV3 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *LoadbalancerV3) LateInitialize(attrs []byte) (bool, error) { + params := &LoadbalancerV3Parameters{} + 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 *LoadbalancerV3) GetTerraformSchemaVersion() int { + return 0 +} + +// 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) +} + +// 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 +} + +// GetTerraformResourceType returns Terraform resource type for this MemberV3 +func (mg *MemberV3) GetTerraformResourceType() string { + return "opentelekomcloud_lb_member_v3" +} + +// GetConnectionDetailsMapping for this MemberV3 +func (tr *MemberV3) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this MemberV3 +func (tr *MemberV3) 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 MemberV3 +func (tr *MemberV3) 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 MemberV3 +func (tr *MemberV3) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this MemberV3 +func (tr *MemberV3) 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 MemberV3 +func (tr *MemberV3) 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 MemberV3 +func (tr *MemberV3) 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) +} + +// LateInitialize this MemberV3 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *MemberV3) LateInitialize(attrs []byte) (bool, error) { + params := &MemberV3Parameters{} + 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 *MemberV3) GetTerraformSchemaVersion() int { + return 0 +} + +// 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) +} + +// 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 +} + +// GetTerraformResourceType returns Terraform resource type for this MonitorV3 +func (mg *MonitorV3) GetTerraformResourceType() string { + return "opentelekomcloud_lb_monitor_v3" +} + +// GetConnectionDetailsMapping for this MonitorV3 +func (tr *MonitorV3) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this MonitorV3 +func (tr *MonitorV3) 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 MonitorV3 +func (tr *MonitorV3) 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 MonitorV3 +func (tr *MonitorV3) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this MonitorV3 +func (tr *MonitorV3) 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 MonitorV3 +func (tr *MonitorV3) 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 MonitorV3 +func (tr *MonitorV3) 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) +} + +// LateInitialize this MonitorV3 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *MonitorV3) LateInitialize(attrs []byte) (bool, error) { + params := &MonitorV3Parameters{} + 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 *MonitorV3) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this PolicyV3 +func (mg *PolicyV3) GetTerraformResourceType() string { + return "opentelekomcloud_lb_policy_v3" +} + +// GetConnectionDetailsMapping for this PolicyV3 +func (tr *PolicyV3) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this PolicyV3 +func (tr *PolicyV3) 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 PolicyV3 +func (tr *PolicyV3) 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 PolicyV3 +func (tr *PolicyV3) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this PolicyV3 +func (tr *PolicyV3) 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 PolicyV3 +func (tr *PolicyV3) 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 PolicyV3 +func (tr *PolicyV3) 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) +} + +// LateInitialize this PolicyV3 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *PolicyV3) LateInitialize(attrs []byte) (bool, error) { + params := &PolicyV3Parameters{} + 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 *PolicyV3) GetTerraformSchemaVersion() int { + return 0 +} + +// 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) +} + +// 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 +} + +// GetTerraformResourceType returns Terraform resource type for this PoolV3 +func (mg *PoolV3) GetTerraformResourceType() string { + return "opentelekomcloud_lb_pool_v3" +} + +// GetConnectionDetailsMapping for this PoolV3 +func (tr *PoolV3) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this PoolV3 +func (tr *PoolV3) 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 PoolV3 +func (tr *PoolV3) 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 PoolV3 +func (tr *PoolV3) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this PoolV3 +func (tr *PoolV3) 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 PoolV3 +func (tr *PoolV3) 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 PoolV3 +func (tr *PoolV3) 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) +} + +// LateInitialize this PoolV3 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *PoolV3) LateInitialize(attrs []byte) (bool, error) { + params := &PoolV3Parameters{} + 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 *PoolV3) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this RuleV3 +func (mg *RuleV3) GetTerraformResourceType() string { + return "opentelekomcloud_lb_rule_v3" +} + +// GetConnectionDetailsMapping for this RuleV3 +func (tr *RuleV3) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this RuleV3 +func (tr *RuleV3) 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 RuleV3 +func (tr *RuleV3) 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 RuleV3 +func (tr *RuleV3) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this RuleV3 +func (tr *RuleV3) 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 RuleV3 +func (tr *RuleV3) 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 RuleV3 +func (tr *RuleV3) 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) +} + +// LateInitialize this RuleV3 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *RuleV3) LateInitialize(attrs []byte) (bool, error) { + params := &RuleV3Parameters{} + 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 *RuleV3) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this SecurityPolicyV3 +func (mg *SecurityPolicyV3) GetTerraformResourceType() string { + return "opentelekomcloud_lb_security_policy_v3" +} + +// GetConnectionDetailsMapping for this SecurityPolicyV3 +func (tr *SecurityPolicyV3) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this SecurityPolicyV3 +func (tr *SecurityPolicyV3) 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 SecurityPolicyV3 +func (tr *SecurityPolicyV3) 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 SecurityPolicyV3 +func (tr *SecurityPolicyV3) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this SecurityPolicyV3 +func (tr *SecurityPolicyV3) 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 SecurityPolicyV3 +func (tr *SecurityPolicyV3) 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 SecurityPolicyV3 +func (tr *SecurityPolicyV3) 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) +} + +// LateInitialize this SecurityPolicyV3 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *SecurityPolicyV3) LateInitialize(attrs []byte) (bool, error) { + params := &SecurityPolicyV3Parameters{} + 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 *SecurityPolicyV3) GetTerraformSchemaVersion() int { + return 0 +} + +// 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) +} + +// 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_groupversion_info.go b/apis/lb/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..dc6d081 --- /dev/null +++ b/apis/lb/v1alpha1/zz_groupversion_info.go @@ -0,0 +1,36 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +// +kubebuilder:object:generate=true +// +groupName=lb.crossplane.io +// +versionName=v1alpha1 +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +// Package type metadata. +const ( + CRDGroup = "lb.crossplane.io" + CRDVersion = "v1alpha1" +) + +var ( + // CRDGroupVersion is the API Group Version used to register the objects + CRDGroupVersion = schema.GroupVersion{Group: CRDGroup, Version: CRDVersion} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme + SchemeBuilder = &scheme.Builder{GroupVersion: CRDGroupVersion} + + // AddToScheme adds the types in this group-version to the given scheme. + AddToScheme = SchemeBuilder.AddToScheme +) diff --git a/apis/lb/v1alpha1/zz_ipgroupv3_types.go b/apis/lb/v1alpha1/zz_ipgroupv3_types.go new file mode 100755 index 0000000..a2a295f --- /dev/null +++ b/apis/lb/v1alpha1/zz_ipgroupv3_types.go @@ -0,0 +1,173 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 IPListInitParameters struct { + + // Provides remarks about the IP address group. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Specifies the IP addresses in the IP address group. + // IPv6 is unsupported. The value cannot be an IPv6 address. + IP *string `json:"ip,omitempty" tf:"ip,omitempty"` +} + +type IPListObservation struct { + + // Provides remarks about the IP address group. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Specifies the IP addresses in the IP address group. + // IPv6 is unsupported. The value cannot be an IPv6 address. + IP *string `json:"ip,omitempty" tf:"ip,omitempty"` +} + +type IPListParameters struct { + + // Provides remarks about the IP address group. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Specifies the IP addresses in the IP address group. + // IPv6 is unsupported. The value cannot be an IPv6 address. + // +kubebuilder:validation:Optional + IP *string `json:"ip" tf:"ip,omitempty"` +} + +type IpgroupV3InitParameters struct { + + // Provides supplementary information about the IP address group. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Specifies the IP addresses or CIDR blocks in the IP address group. + // Any IP address can be used if this block isn't specified. + IPList []IPListInitParameters `json:"ipList,omitempty" tf:"ip_list,omitempty"` + + // Specifies the IP address group name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the project ID of the IP address group. + ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` +} + +type IpgroupV3Observation struct { + + // Indicates the creation time. + CreatedAt *string `json:"createdAt,omitempty" tf:"created_at,omitempty"` + + // Provides supplementary information about the IP address group. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Specifies the IP addresses or CIDR blocks in the IP address group. + // Any IP address can be used if this block isn't specified. + IPList []IPListObservation `json:"ipList,omitempty" tf:"ip_list,omitempty"` + + // Lists the IDs of listeners with which the IP address group is associated. + Listeners []*string `json:"listeners,omitempty" tf:"listeners,omitempty"` + + // Specifies the IP address group name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the project ID of the IP address group. + ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + + // Indicates the update time. + UpdatedAt *string `json:"updatedAt,omitempty" tf:"updated_at,omitempty"` +} + +type IpgroupV3Parameters struct { + + // Provides supplementary information about the IP address group. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Specifies the IP addresses or CIDR blocks in the IP address group. + // Any IP address can be used if this block isn't specified. + // +kubebuilder:validation:Optional + IPList []IPListParameters `json:"ipList,omitempty" tf:"ip_list,omitempty"` + + // Specifies the IP address group name. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the project ID of the IP address group. + // +kubebuilder:validation:Optional + ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` +} + +// IpgroupV3Spec defines the desired state of IpgroupV3 +type IpgroupV3Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider IpgroupV3Parameters `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 IpgroupV3InitParameters `json:"initProvider,omitempty"` +} + +// IpgroupV3Status defines the observed state of IpgroupV3. +type IpgroupV3Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider IpgroupV3Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// IpgroupV3 is the Schema for the IpgroupV3s API. Manages a LB IpGroup resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type IpgroupV3 struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec IpgroupV3Spec `json:"spec"` + Status IpgroupV3Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// IpgroupV3List contains a list of IpgroupV3s +type IpgroupV3List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []IpgroupV3 `json:"items"` +} + +// Repository type metadata. +var ( + IpgroupV3_Kind = "IpgroupV3" + IpgroupV3_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: IpgroupV3_Kind}.String() + IpgroupV3_KindAPIVersion = IpgroupV3_Kind + "." + CRDGroupVersion.String() + IpgroupV3_GroupVersionKind = CRDGroupVersion.WithKind(IpgroupV3_Kind) +) + +func init() { + SchemeBuilder.Register(&IpgroupV3{}, &IpgroupV3List{}) +} diff --git a/apis/lb/v1alpha1/zz_l7policyv2_types.go b/apis/lb/v1alpha1/zz_l7policyv2_types.go new file mode 100755 index 0000000..2fa844d --- /dev/null +++ b/apis/lb/v1alpha1/zz_l7policyv2_types.go @@ -0,0 +1,222 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 + +// L7PolicyV2 is the Schema for the L7PolicyV2s API. Manages a ELB L7 Policy resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +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_types.go b/apis/lb/v1alpha1/zz_l7rulev2_types.go new file mode 100755 index 0000000..ce80250 --- /dev/null +++ b/apis/lb/v1alpha1/zz_l7rulev2_types.go @@ -0,0 +1,204 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 + +// L7RuleV2 is the Schema for the L7RuleV2s API. Manages a ELB L7 Rule resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +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_types.go b/apis/lb/v1alpha1/zz_listenerv2_types.go new file mode 100755 index 0000000..545bd9d --- /dev/null +++ b/apis/lb/v1alpha1/zz_listenerv2_types.go @@ -0,0 +1,395 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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. + 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. + 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. + 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. + 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 + 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 + 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 + +// ListenerV2 is the Schema for the ListenerV2s API. Manages a ELB Listener resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +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 new file mode 100755 index 0000000..356fbcb --- /dev/null +++ b/apis/lb/v1alpha1/zz_listenerv3_types.go @@ -0,0 +1,513 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 InsertHeadersInitParameters struct { + + // Specifies whether to transparently transmit the load balancer EIP + // to backend servers. If forward_elb_ip is set to true, the load balancer EIP will be stored in + // the HTTP header and passed to backend servers. + ForwardELBIP *bool `json:"forwardElbIp,omitempty" tf:"forward_elb_ip,omitempty"` + + // Specifies whether to transparently transmit the source port of + // the client to backend servers. If forwarded_for_port is set to true, the source port of the + // client will be stored in the HTTP header and passed to backend servers. + ForwardedForPort *bool `json:"forwardedForPort,omitempty" tf:"forwarded_for_port,omitempty"` + + // Specifies whether to rewrite the X-Forwarded-Host header. + // If forwarded_host is set to true, X-Forwarded-Host in the request header from the clients + // can be set to Host in the request header sent from the load balancer to backend servers. + ForwardedHost *bool `json:"forwardedHost,omitempty" tf:"forwarded_host,omitempty"` + + // Specifies whether to transparently transmit the listening port of + // the load balancer to backend servers. If forwarded_port is set to true, the listening port of + // the load balancer will be stored in the HTTP header and passed to backend servers. + ForwardedPort *bool `json:"forwardedPort,omitempty" tf:"forwarded_port,omitempty"` +} + +type InsertHeadersObservation struct { + + // Specifies whether to transparently transmit the load balancer EIP + // to backend servers. If forward_elb_ip is set to true, the load balancer EIP will be stored in + // the HTTP header and passed to backend servers. + ForwardELBIP *bool `json:"forwardElbIp,omitempty" tf:"forward_elb_ip,omitempty"` + + // Specifies whether to transparently transmit the source port of + // the client to backend servers. If forwarded_for_port is set to true, the source port of the + // client will be stored in the HTTP header and passed to backend servers. + ForwardedForPort *bool `json:"forwardedForPort,omitempty" tf:"forwarded_for_port,omitempty"` + + // Specifies whether to rewrite the X-Forwarded-Host header. + // If forwarded_host is set to true, X-Forwarded-Host in the request header from the clients + // can be set to Host in the request header sent from the load balancer to backend servers. + ForwardedHost *bool `json:"forwardedHost,omitempty" tf:"forwarded_host,omitempty"` + + // Specifies whether to transparently transmit the listening port of + // the load balancer to backend servers. If forwarded_port is set to true, the listening port of + // the load balancer will be stored in the HTTP header and passed to backend servers. + ForwardedPort *bool `json:"forwardedPort,omitempty" tf:"forwarded_port,omitempty"` +} + +type InsertHeadersParameters struct { + + // Specifies whether to transparently transmit the load balancer EIP + // to backend servers. If forward_elb_ip is set to true, the load balancer EIP will be stored in + // the HTTP header and passed to backend servers. + // +kubebuilder:validation:Optional + ForwardELBIP *bool `json:"forwardElbIp,omitempty" tf:"forward_elb_ip,omitempty"` + + // Specifies whether to transparently transmit the source port of + // the client to backend servers. If forwarded_for_port is set to true, the source port of the + // client will be stored in the HTTP header and passed to backend servers. + // +kubebuilder:validation:Optional + ForwardedForPort *bool `json:"forwardedForPort,omitempty" tf:"forwarded_for_port,omitempty"` + + // Specifies whether to rewrite the X-Forwarded-Host header. + // If forwarded_host is set to true, X-Forwarded-Host in the request header from the clients + // can be set to Host in the request header sent from the load balancer to backend servers. + // +kubebuilder:validation:Optional + ForwardedHost *bool `json:"forwardedHost,omitempty" tf:"forwarded_host,omitempty"` + + // Specifies whether to transparently transmit the listening port of + // the load balancer to backend servers. If forwarded_port is set to true, the listening port of + // the load balancer will be stored in the HTTP header and passed to backend servers. + // +kubebuilder:validation:Optional + 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"` + + // Specifies whether to enable advanced forwarding. + // If advanced forwarding is enabled, more flexible forwarding policies and rules are supported. + // The value can be true (enable advanced forwarding) or false (disable advanced forwarding), + // and the default value is false. Changing this creates a new Listener. + AdvancedForwarding *bool `json:"advancedForwarding,omitempty" tf:"advanced_forwarding,omitempty"` + + // Specifies the ID of the CA certificate used by the listener. + ClientCATLSContainerRef *string `json:"clientCaTlsContainerRef,omitempty" tf:"client_ca_tls_container_ref,omitempty"` + + // Specifies the timeout duration for waiting for a request from a client, in seconds. + // This parameter is available only for HTTP and HTTPS listeners. The value ranges from 1 to 300, and + // the default value is 60. An error will be returned if you configure this parameter for TCP and UDP listeners. + ClientTimeout *float64 `json:"clientTimeout,omitempty" tf:"client_timeout,omitempty"` + + // 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. + DefaultPoolID *string `json:"defaultPoolId,omitempty" tf:"default_pool_id,omitempty"` + + // Specifies the ID of the server certificate used by the listener. + DefaultTLSContainerRef *string `json:"defaultTlsContainerRef,omitempty" tf:"default_tls_container_ref,omitempty"` + + // Provides supplementary information about the listener. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Specifies whether to use HTTP/2. This parameter is available only for HTTPS + // listeners. If you configure this parameter for other types of listeners, it will not take effect. Enable + // HTTP/2 if you want the clients to use HTTP/2 to communicate with the load balancer. + // However, connections between the load balancer and backend servers use HTTP/1.x by default. + 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"` + + // Specifies the HTTP header fields. + InsertHeaders []InsertHeadersInitParameters `json:"insertHeaders,omitempty" tf:"insert_headers,omitempty"` + + // Specifies the idle timeout duration, in seconds. + KeepAliveTimeout *float64 `json:"keepAliveTimeout,omitempty" tf:"keep_alive_timeout,omitempty"` + + // Specifies the ID of the load balancer that the listener is added to. + LoadbalancerID *string `json:"loadbalancerId,omitempty" tf:"loadbalancer_id,omitempty"` + + // 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. + MemberRetryEnable *bool `json:"memberRetryEnable,omitempty" tf:"member_retry_enable,omitempty"` + + // Specifies the timeout duration for waiting for a request from a + // backend server, in seconds. This parameter is available only for HTTP and HTTPS listeners. + // The value ranges from 1 to 300, and the default value is 60. An error will be returned if + // you configure this parameter for TCP and UDP listeners. + MemberTimeout *float64 `json:"memberTimeout,omitempty" tf:"member_timeout,omitempty"` + + // Specifies the listener name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The protocol - can either be TCP, HTTP, HTTPS or UDP. + // Changing this creates a new Listener. + Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` + + // Specifies the port used by the listener. Changing this creates a new Listener. + ProtocolPort *float64 `json:"protocolPort,omitempty" tf:"protocol_port,omitempty"` + + // Specifies the ID of the custom security policy. + SecurityPolicyID *string `json:"securityPolicyId,omitempty" tf:"security_policy_id,omitempty"` + + // 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. + SniContainerRefs []*string `json:"sniContainerRefs,omitempty" tf:"sni_container_refs,omitempty"` + + // Specifies how wildcard domain name matches with the SNI certificates + // used by the listener. + SniMatchAlgo *string `json:"sniMatchAlgo,omitempty" tf:"sni_match_algo,omitempty"` + + // Specifies the security policy that will be used by the listener. + // This parameter is available only for HTTPS listeners. An error will be returned if the protocol + // of the listener is not HTTPS. Possible values are: tls-1-0, tls-1-1, tls-1-0-inherit, tls-1-2, + // tls-1-2-strict, tls-1-2-fs, tls-1-0-with-1-3, tls-1-2-fs-with-1-3, hybrid-policy-1-0, tls-1-2-strict-no-cbc. + TLSCiphersPolicy *string `json:"tlsCiphersPolicy,omitempty" tf:"tls_ciphers_policy,omitempty"` + + // Tags key/value pairs to associate with the loadbalancer listener. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +} + +type ListenerV3Observation struct { + AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` + + // Specifies whether to enable advanced forwarding. + // If advanced forwarding is enabled, more flexible forwarding policies and rules are supported. + // The value can be true (enable advanced forwarding) or false (disable advanced forwarding), + // and the default value is false. Changing this creates a new Listener. + AdvancedForwarding *bool `json:"advancedForwarding,omitempty" tf:"advanced_forwarding,omitempty"` + + // Specifies the ID of the CA certificate used by the listener. + ClientCATLSContainerRef *string `json:"clientCaTlsContainerRef,omitempty" tf:"client_ca_tls_container_ref,omitempty"` + + // Specifies the timeout duration for waiting for a request from a client, in seconds. + // This parameter is available only for HTTP and HTTPS listeners. The value ranges from 1 to 300, and + // the default value is 60. An error will be returned if you configure this parameter for TCP and UDP listeners. + ClientTimeout *float64 `json:"clientTimeout,omitempty" tf:"client_timeout,omitempty"` + + // Indicates the creation time. + CreatedAt *string `json:"createdAt,omitempty" tf:"created_at,omitempty"` + + // 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. + DefaultPoolID *string `json:"defaultPoolId,omitempty" tf:"default_pool_id,omitempty"` + + // Specifies the ID of the server certificate used by the listener. + DefaultTLSContainerRef *string `json:"defaultTlsContainerRef,omitempty" tf:"default_tls_container_ref,omitempty"` + + // Provides supplementary information about the listener. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Specifies whether to use HTTP/2. This parameter is available only for HTTPS + // listeners. If you configure this parameter for other types of listeners, it will not take effect. Enable + // HTTP/2 if you want the clients to use HTTP/2 to communicate with the load balancer. + // However, connections between the load balancer and backend servers use HTTP/1.x by default. + 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 []ListenerV3IPGroupObservation `json:"ipGroup,omitempty" tf:"ip_group,omitempty"` + + // Specifies the HTTP header fields. + InsertHeaders []InsertHeadersObservation `json:"insertHeaders,omitempty" tf:"insert_headers,omitempty"` + + // Specifies the idle timeout duration, in seconds. + KeepAliveTimeout *float64 `json:"keepAliveTimeout,omitempty" tf:"keep_alive_timeout,omitempty"` + + // Specifies the ID of the load balancer that the listener is added to. + LoadbalancerID *string `json:"loadbalancerId,omitempty" tf:"loadbalancer_id,omitempty"` + + // 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. + MemberRetryEnable *bool `json:"memberRetryEnable,omitempty" tf:"member_retry_enable,omitempty"` + + // Specifies the timeout duration for waiting for a request from a + // backend server, in seconds. This parameter is available only for HTTP and HTTPS listeners. + // The value ranges from 1 to 300, and the default value is 60. An error will be returned if + // you configure this parameter for TCP and UDP listeners. + MemberTimeout *float64 `json:"memberTimeout,omitempty" tf:"member_timeout,omitempty"` + + // Specifies the listener name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The protocol - can either be TCP, HTTP, HTTPS or UDP. + // Changing this creates a new Listener. + Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` + + // Specifies the port used by the listener. Changing this creates a new Listener. + ProtocolPort *float64 `json:"protocolPort,omitempty" tf:"protocol_port,omitempty"` + + // Specifies the ID of the custom security policy. + SecurityPolicyID *string `json:"securityPolicyId,omitempty" tf:"security_policy_id,omitempty"` + + // 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. + SniContainerRefs []*string `json:"sniContainerRefs,omitempty" tf:"sni_container_refs,omitempty"` + + // Specifies how wildcard domain name matches with the SNI certificates + // used by the listener. + SniMatchAlgo *string `json:"sniMatchAlgo,omitempty" tf:"sni_match_algo,omitempty"` + + // Specifies the security policy that will be used by the listener. + // This parameter is available only for HTTPS listeners. An error will be returned if the protocol + // of the listener is not HTTPS. Possible values are: tls-1-0, tls-1-1, tls-1-0-inherit, tls-1-2, + // tls-1-2-strict, tls-1-2-fs, tls-1-0-with-1-3, tls-1-2-fs-with-1-3, hybrid-policy-1-0, tls-1-2-strict-no-cbc. + TLSCiphersPolicy *string `json:"tlsCiphersPolicy,omitempty" tf:"tls_ciphers_policy,omitempty"` + + // Tags key/value pairs to associate with the loadbalancer listener. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Indicates the update time. + UpdatedAt *string `json:"updatedAt,omitempty" tf:"updated_at,omitempty"` +} + +type ListenerV3Parameters struct { + + // +kubebuilder:validation:Optional + AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` + + // Specifies whether to enable advanced forwarding. + // If advanced forwarding is enabled, more flexible forwarding policies and rules are supported. + // The value can be true (enable advanced forwarding) or false (disable advanced forwarding), + // and the default value is false. Changing this creates a new Listener. + // +kubebuilder:validation:Optional + AdvancedForwarding *bool `json:"advancedForwarding,omitempty" tf:"advanced_forwarding,omitempty"` + + // Specifies the ID of the CA certificate used by the listener. + // +kubebuilder:validation:Optional + ClientCATLSContainerRef *string `json:"clientCaTlsContainerRef,omitempty" tf:"client_ca_tls_container_ref,omitempty"` + + // Specifies the timeout duration for waiting for a request from a client, in seconds. + // This parameter is available only for HTTP and HTTPS listeners. The value ranges from 1 to 300, and + // the default value is 60. An error will be returned if you configure this parameter for TCP and UDP listeners. + // +kubebuilder:validation:Optional + ClientTimeout *float64 `json:"clientTimeout,omitempty" tf:"client_timeout,omitempty"` + + // 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. + // +kubebuilder:validation:Optional + DefaultPoolID *string `json:"defaultPoolId,omitempty" tf:"default_pool_id,omitempty"` + + // Specifies the ID of the server certificate used by the listener. + // +kubebuilder:validation:Optional + DefaultTLSContainerRef *string `json:"defaultTlsContainerRef,omitempty" tf:"default_tls_container_ref,omitempty"` + + // Provides supplementary information about the listener. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Specifies whether to use HTTP/2. This parameter is available only for HTTPS + // listeners. If you configure this parameter for other types of listeners, it will not take effect. Enable + // HTTP/2 if you want the clients to use HTTP/2 to communicate with the load balancer. + // However, connections between the load balancer and backend servers use HTTP/1.x by default. + // +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 []ListenerV3IPGroupParameters `json:"ipGroup,omitempty" tf:"ip_group,omitempty"` + + // Specifies the HTTP header fields. + // +kubebuilder:validation:Optional + InsertHeaders []InsertHeadersParameters `json:"insertHeaders,omitempty" tf:"insert_headers,omitempty"` + + // Specifies the idle timeout duration, in seconds. + // +kubebuilder:validation:Optional + KeepAliveTimeout *float64 `json:"keepAliveTimeout,omitempty" tf:"keep_alive_timeout,omitempty"` + + // Specifies the ID of the load balancer that the listener is added to. + // +kubebuilder:validation:Optional + LoadbalancerID *string `json:"loadbalancerId,omitempty" tf:"loadbalancer_id,omitempty"` + + // 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. + // +kubebuilder:validation:Optional + MemberRetryEnable *bool `json:"memberRetryEnable,omitempty" tf:"member_retry_enable,omitempty"` + + // Specifies the timeout duration for waiting for a request from a + // backend server, in seconds. This parameter is available only for HTTP and HTTPS listeners. + // The value ranges from 1 to 300, and the default value is 60. An error will be returned if + // you configure this parameter for TCP and UDP listeners. + // +kubebuilder:validation:Optional + MemberTimeout *float64 `json:"memberTimeout,omitempty" tf:"member_timeout,omitempty"` + + // Specifies the listener name. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The protocol - can either be TCP, HTTP, HTTPS or UDP. + // Changing this creates a new Listener. + // +kubebuilder:validation:Optional + Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` + + // Specifies the port used by the listener. Changing this creates a new Listener. + // +kubebuilder:validation:Optional + ProtocolPort *float64 `json:"protocolPort,omitempty" tf:"protocol_port,omitempty"` + + // Specifies the ID of the custom security policy. + // +kubebuilder:validation:Optional + SecurityPolicyID *string `json:"securityPolicyId,omitempty" tf:"security_policy_id,omitempty"` + + // 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. + // +kubebuilder:validation:Optional + SniContainerRefs []*string `json:"sniContainerRefs,omitempty" tf:"sni_container_refs,omitempty"` + + // Specifies how wildcard domain name matches with the SNI certificates + // used by the listener. + // +kubebuilder:validation:Optional + SniMatchAlgo *string `json:"sniMatchAlgo,omitempty" tf:"sni_match_algo,omitempty"` + + // Specifies the security policy that will be used by the listener. + // This parameter is available only for HTTPS listeners. An error will be returned if the protocol + // of the listener is not HTTPS. Possible values are: tls-1-0, tls-1-1, tls-1-0-inherit, tls-1-2, + // tls-1-2-strict, tls-1-2-fs, tls-1-0-with-1-3, tls-1-2-fs-with-1-3, hybrid-policy-1-0, tls-1-2-strict-no-cbc. + // +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 + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +} + +// ListenerV3Spec defines the desired state of ListenerV3 +type ListenerV3Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider ListenerV3Parameters `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 ListenerV3InitParameters `json:"initProvider,omitempty"` +} + +// ListenerV3Status defines the observed state of ListenerV3. +type ListenerV3Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider ListenerV3Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// ListenerV3 is the Schema for the ListenerV3s API. Manages a LB Listener resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +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"` + Status ListenerV3Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// ListenerV3List contains a list of ListenerV3s +type ListenerV3List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []ListenerV3 `json:"items"` +} + +// Repository type metadata. +var ( + ListenerV3_Kind = "ListenerV3" + ListenerV3_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: ListenerV3_Kind}.String() + ListenerV3_KindAPIVersion = ListenerV3_Kind + "." + CRDGroupVersion.String() + ListenerV3_GroupVersionKind = CRDGroupVersion.WithKind(ListenerV3_Kind) +) + +func init() { + SchemeBuilder.Register(&ListenerV3{}, &ListenerV3List{}) +} diff --git a/apis/lb/v1alpha1/zz_loadbalancerv2_types.go b/apis/lb/v1alpha1/zz_loadbalancerv2_types.go new file mode 100755 index 0000000..a59a6e5 --- /dev/null +++ b/apis/lb/v1alpha1/zz_loadbalancerv2_types.go @@ -0,0 +1,207 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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. + 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. + 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 + 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 + +// LoadbalancerV2 is the Schema for the LoadbalancerV2s API. Manages a ELB Loadbalancer resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +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 new file mode 100755 index 0000000..fc6f33c --- /dev/null +++ b/apis/lb/v1alpha1/zz_loadbalancerv3_types.go @@ -0,0 +1,331 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 LoadbalancerV3InitParameters struct { + + // The administrative state of the LoadBalancer. A valid value is only true (UP). + AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` + + // Specifies the availability zones where the LoadBalancer will be located. + // Changing this creates a new LoadBalancer. + AvailabilityZones []*string `json:"availabilityZones,omitempty" tf:"availability_zones,omitempty"` + + // Specifies whether to enable deletion protection for the load balancer. + // true: Enable deletion protection. + // false (default): Disable deletion protection. + DeletionProtection *bool `json:"deletionProtection,omitempty" tf:"deletion_protection,omitempty"` + + // Provides supplementary information about the load balancer. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The value can be true (enabled) or false (disabled). + IPTargetEnable *bool `json:"ipTargetEnable,omitempty" tf:"ip_target_enable,omitempty"` + + // The ID of the Layer-4 flavor. + L4Flavor *string `json:"l4Flavor,omitempty" tf:"l4_flavor,omitempty"` + + // The ID of the Layer-7 flavor. + L7Flavor *string `json:"l7Flavor,omitempty" tf:"l7_flavor,omitempty"` + + // The LoadBalancer name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the subnet Network ID. + NetworkIds []*string `json:"networkIds,omitempty" tf:"network_ids,omitempty"` + + // 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. + RouterID *string `json:"routerId,omitempty" tf:"router_id,omitempty"` + + // The ID of the subnet to which the LoadBalancer belongs. Required when using vip_address. + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The ip address of the LoadBalancer. Changing this creates a new LoadBalancer. + VipAddress *string `json:"vipAddress,omitempty" tf:"vip_address,omitempty"` +} + +type LoadbalancerV3Observation struct { + + // The administrative state of the LoadBalancer. A valid value is only true (UP). + AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` + + // Specifies the availability zones where the LoadBalancer will be located. + // Changing this creates a new LoadBalancer. + AvailabilityZones []*string `json:"availabilityZones,omitempty" tf:"availability_zones,omitempty"` + + // The time the LoadBalancer was created. + CreatedAt *string `json:"createdAt,omitempty" tf:"created_at,omitempty"` + + // Specifies whether to enable deletion protection for the load balancer. + // true: Enable deletion protection. + // false (default): Disable deletion protection. + DeletionProtection *bool `json:"deletionProtection,omitempty" tf:"deletion_protection,omitempty"` + + // Provides supplementary information about the load balancer. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // ID of an existing elastic IP. Required when using existing EIP. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The value can be true (enabled) or false (disabled). + IPTargetEnable *bool `json:"ipTargetEnable,omitempty" tf:"ip_target_enable,omitempty"` + + // The ID of the Layer-4 flavor. + L4Flavor *string `json:"l4Flavor,omitempty" tf:"l4_flavor,omitempty"` + + // The ID of the Layer-7 flavor. + L7Flavor *string `json:"l7Flavor,omitempty" tf:"l7_flavor,omitempty"` + + // The LoadBalancer name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the subnet Network ID. + NetworkIds []*string `json:"networkIds,omitempty" tf:"network_ids,omitempty"` + + // The elastic IP address of the instance. The public_ip structure + // is described below. Changing this creates a new LoadBalancer. + PublicIP []PublicIPObservation `json:"publicIp,omitempty" tf:"public_ip,omitempty"` + + // ID of the router (or VPC) this LoadBalancer belongs to. Changing + // this creates a new LoadBalancer. + RouterID *string `json:"routerId,omitempty" tf:"router_id,omitempty"` + + // The ID of the subnet to which the LoadBalancer belongs. Required when using vip_address. + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The time the LoadBalancer was last updated. + UpdatedAt *string `json:"updatedAt,omitempty" tf:"updated_at,omitempty"` + + // The ip address of the LoadBalancer. 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"` +} + +type LoadbalancerV3Parameters 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"` + + // Specifies the availability zones where the LoadBalancer will be located. + // Changing this creates a new LoadBalancer. + // +kubebuilder:validation:Optional + AvailabilityZones []*string `json:"availabilityZones,omitempty" tf:"availability_zones,omitempty"` + + // Specifies whether to enable deletion protection for the load balancer. + // true: Enable deletion protection. + // false (default): Disable deletion protection. + // +kubebuilder:validation:Optional + DeletionProtection *bool `json:"deletionProtection,omitempty" tf:"deletion_protection,omitempty"` + + // Provides supplementary information about the load balancer. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The value can be true (enabled) or false (disabled). + // +kubebuilder:validation:Optional + IPTargetEnable *bool `json:"ipTargetEnable,omitempty" tf:"ip_target_enable,omitempty"` + + // The ID of the Layer-4 flavor. + // +kubebuilder:validation:Optional + L4Flavor *string `json:"l4Flavor,omitempty" tf:"l4_flavor,omitempty"` + + // The ID of the Layer-7 flavor. + // +kubebuilder:validation:Optional + L7Flavor *string `json:"l7Flavor,omitempty" tf:"l7_flavor,omitempty"` + + // The LoadBalancer name. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the subnet Network ID. + // +kubebuilder:validation:Optional + NetworkIds []*string `json:"networkIds,omitempty" tf:"network_ids,omitempty"` + + // The elastic IP address of the instance. The public_ip structure + // is described below. Changing this creates a new LoadBalancer. + // +kubebuilder:validation:Optional + PublicIP []PublicIPParameters `json:"publicIp,omitempty" tf:"public_ip,omitempty"` + + // ID of the router (or VPC) this LoadBalancer belongs to. Changing + // this creates a new LoadBalancer. + // +kubebuilder:validation:Optional + RouterID *string `json:"routerId,omitempty" tf:"router_id,omitempty"` + + // The ID of the subnet to which the LoadBalancer belongs. Required when using vip_address. + // +kubebuilder:validation:Optional + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // +kubebuilder:validation:Optional + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The ip address of the LoadBalancer. Changing this creates a new LoadBalancer. + // +kubebuilder:validation:Optional + VipAddress *string `json:"vipAddress,omitempty" tf:"vip_address,omitempty"` +} + +type PublicIPInitParameters struct { + + // Bandwidth billing type. Possible value is traffic. + BandwidthChargeMode *string `json:"bandwidthChargeMode,omitempty" tf:"bandwidth_charge_mode,omitempty"` + + // Bandwidth name. Required when creating a new EIP. + BandwidthName *string `json:"bandwidthName,omitempty" tf:"bandwidth_name,omitempty"` + + // Bandwidth sharing type. Possible values are: PER, WHOLE. + // Required when creating a new EIP. + BandwidthShareType *string `json:"bandwidthShareType,omitempty" tf:"bandwidth_share_type,omitempty"` + + // Bandwidth size. Required when creating a new EIP. + BandwidthSize *float64 `json:"bandwidthSize,omitempty" tf:"bandwidth_size,omitempty"` + + // ID of an existing elastic IP. Required when using existing EIP. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // 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"` +} + +type PublicIPObservation struct { + Address *string `json:"address,omitempty" tf:"address,omitempty"` + + // Bandwidth billing type. Possible value is traffic. + BandwidthChargeMode *string `json:"bandwidthChargeMode,omitempty" tf:"bandwidth_charge_mode,omitempty"` + + // Bandwidth name. Required when creating a new EIP. + BandwidthName *string `json:"bandwidthName,omitempty" tf:"bandwidth_name,omitempty"` + + // Bandwidth sharing type. Possible values are: PER, WHOLE. + // Required when creating a new EIP. + BandwidthShareType *string `json:"bandwidthShareType,omitempty" tf:"bandwidth_share_type,omitempty"` + + // Bandwidth size. Required when creating a new EIP. + BandwidthSize *float64 `json:"bandwidthSize,omitempty" tf:"bandwidth_size,omitempty"` + + // ID of an existing elastic IP. Required when using existing EIP. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // 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"` + + Managed *bool `json:"Managed,omitempty" tf:"_managed,omitempty"` +} + +type PublicIPParameters struct { + + // Bandwidth billing type. Possible value is traffic. + // +kubebuilder:validation:Optional + BandwidthChargeMode *string `json:"bandwidthChargeMode,omitempty" tf:"bandwidth_charge_mode,omitempty"` + + // Bandwidth name. Required when creating a new EIP. + // +kubebuilder:validation:Optional + BandwidthName *string `json:"bandwidthName,omitempty" tf:"bandwidth_name,omitempty"` + + // Bandwidth sharing type. Possible values are: PER, WHOLE. + // Required when creating a new EIP. + // +kubebuilder:validation:Optional + BandwidthShareType *string `json:"bandwidthShareType,omitempty" tf:"bandwidth_share_type,omitempty"` + + // Bandwidth size. Required when creating a new EIP. + // +kubebuilder:validation:Optional + BandwidthSize *float64 `json:"bandwidthSize,omitempty" tf:"bandwidth_size,omitempty"` + + // ID of an existing elastic IP. Required when using existing EIP. + // +kubebuilder:validation:Optional + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Elastic IP type. The value can be 5_bgp or 5_mailbgp. + // Required when creating a new EIP. + // +kubebuilder:validation:Optional + IPType *string `json:"ipType,omitempty" tf:"ip_type,omitempty"` +} + +// LoadbalancerV3Spec defines the desired state of LoadbalancerV3 +type LoadbalancerV3Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider LoadbalancerV3Parameters `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 LoadbalancerV3InitParameters `json:"initProvider,omitempty"` +} + +// LoadbalancerV3Status defines the observed state of LoadbalancerV3. +type LoadbalancerV3Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider LoadbalancerV3Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// LoadbalancerV3 is the Schema for the LoadbalancerV3s API. Manages a LB Loadbalancer resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +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"` +} + +// +kubebuilder:object:root=true + +// LoadbalancerV3List contains a list of LoadbalancerV3s +type LoadbalancerV3List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []LoadbalancerV3 `json:"items"` +} + +// Repository type metadata. +var ( + LoadbalancerV3_Kind = "LoadbalancerV3" + LoadbalancerV3_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: LoadbalancerV3_Kind}.String() + LoadbalancerV3_KindAPIVersion = LoadbalancerV3_Kind + "." + CRDGroupVersion.String() + LoadbalancerV3_GroupVersionKind = CRDGroupVersion.WithKind(LoadbalancerV3_Kind) +) + +func init() { + SchemeBuilder.Register(&LoadbalancerV3{}, &LoadbalancerV3List{}) +} diff --git a/apis/lb/v1alpha1/zz_memberv2_types.go b/apis/lb/v1alpha1/zz_memberv2_types.go new file mode 100755 index 0000000..c856bec --- /dev/null +++ b/apis/lb/v1alpha1/zz_memberv2_types.go @@ -0,0 +1,208 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 + +// MemberV2 is the Schema for the MemberV2s API. Manages a ELB Member resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +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 new file mode 100755 index 0000000..495fbbf --- /dev/null +++ b/apis/lb/v1alpha1/zz_memberv3_types.go @@ -0,0 +1,171 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 MemberV3InitParameters struct { + + // Specifies the IP address of the backend server. + Address *string `json:"address,omitempty" tf:"address,omitempty"` + + // Specifies the backend server name. The value is a string of 0 to 255 characters. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + PoolID *string `json:"poolId,omitempty" tf:"pool_id,omitempty"` + + // Specifies the project ID. + ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + + // 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. + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // Specifies the weight of the backend server. + Weight *float64 `json:"weight,omitempty" tf:"weight,omitempty"` +} + +type MemberV3Observation struct { + + // Specifies the IP address of the backend server. + Address *string `json:"address,omitempty" tf:"address,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Version of IP based on the address parameter. The value can be v4 or v6. + IPVersion *string `json:"ipVersion,omitempty" tf:"ip_version,omitempty"` + + // ID of the pool member. + MemberID *string `json:"memberId,omitempty" tf:"member_id,omitempty"` + + // Specifies the backend server name. The value is a string of 0 to 255 characters. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the operating status of the backend server. + OperatingStatus *string `json:"operatingStatus,omitempty" tf:"operating_status,omitempty"` + + PoolID *string `json:"poolId,omitempty" tf:"pool_id,omitempty"` + + // Specifies the project ID. + ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + + // 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. + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // Specifies the weight of the backend server. + Weight *float64 `json:"weight,omitempty" tf:"weight,omitempty"` +} + +type MemberV3Parameters struct { + + // Specifies the IP address of the backend server. + // +kubebuilder:validation:Optional + Address *string `json:"address,omitempty" tf:"address,omitempty"` + + // Specifies the backend server name. The value is a string of 0 to 255 characters. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // +kubebuilder:validation:Optional + PoolID *string `json:"poolId,omitempty" tf:"pool_id,omitempty"` + + // Specifies the project ID. + // +kubebuilder:validation:Optional + ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + + // 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. + // +kubebuilder:validation:Optional + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // Specifies the weight of the backend server. + // +kubebuilder:validation:Optional + Weight *float64 `json:"weight,omitempty" tf:"weight,omitempty"` +} + +// MemberV3Spec defines the desired state of MemberV3 +type MemberV3Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider MemberV3Parameters `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 MemberV3InitParameters `json:"initProvider,omitempty"` +} + +// MemberV3Status defines the observed state of MemberV3. +type MemberV3Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider MemberV3Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// MemberV3 is the Schema for the MemberV3s API. Manages a LB Member resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +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"` +} + +// +kubebuilder:object:root=true + +// MemberV3List contains a list of MemberV3s +type MemberV3List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []MemberV3 `json:"items"` +} + +// Repository type metadata. +var ( + MemberV3_Kind = "MemberV3" + MemberV3_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: MemberV3_Kind}.String() + MemberV3_KindAPIVersion = MemberV3_Kind + "." + CRDGroupVersion.String() + MemberV3_GroupVersionKind = CRDGroupVersion.WithKind(MemberV3_Kind) +) + +func init() { + SchemeBuilder.Register(&MemberV3{}, &MemberV3List{}) +} diff --git a/apis/lb/v1alpha1/zz_monitorv2_types.go b/apis/lb/v1alpha1/zz_monitorv2_types.go new file mode 100755 index 0000000..9dcd1d9 --- /dev/null +++ b/apis/lb/v1alpha1/zz_monitorv2_types.go @@ -0,0 +1,277 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 + +// MonitorV2 is the Schema for the MonitorV2s API. Manages a ELB Monitor resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +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 new file mode 100755 index 0000000..7a1ad3d --- /dev/null +++ b/apis/lb/v1alpha1/zz_monitorv3_types.go @@ -0,0 +1,256 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 MonitorV3InitParameters struct { + + // Specifies the administrative status of the health check. + // true indicates that the health check is enabled, and false indicates that the health check is disabled. + AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` + + // Specifies the interval between health checks, in seconds. + Delay *float64 `json:"delay,omitempty" tf:"delay,omitempty"` + + // Specifies the domain name that HTTP requests are sent to during the health check. + DomainName *string `json:"domainName,omitempty" tf:"domain_name,omitempty"` + + // Specifies the expected HTTP status code. This parameter will take effect only + // when type is set to HTTP. + ExpectedCodes *string `json:"expectedCodes,omitempty" tf:"expected_codes,omitempty"` + + // Specifies the HTTP method. + HTTPMethod *string `json:"httpMethod,omitempty" tf:"http_method,omitempty"` + + // Specifies the number of consecutive health checks when the health check result of a backend + // server changes from OFFLINE to ONLINE. + MaxRetries *float64 `json:"maxRetries,omitempty" tf:"max_retries,omitempty"` + + // Specifies the number of consecutive health checks when the health check result of a + // backend server changes from ONLINE to OFFLINE. + MaxRetriesDown *float64 `json:"maxRetriesDown,omitempty" tf:"max_retries_down,omitempty"` + + // Specifies the port used for the health check. If this parameter is left blank, the port of + // the backend server group will be used by default. + MonitorPort *float64 `json:"monitorPort,omitempty" tf:"monitor_port,omitempty"` + + // Specifies the health check name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the ID of the backend server group for which the health check is configured. + // Changing this creates a new monitor. + PoolID *string `json:"poolId,omitempty" tf:"pool_id,omitempty"` + + // Specifies the project ID. Changing this creates a new monitor. + ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + + // Specifies the maximum time required for waiting for a response from the health check, in + // seconds. + Timeout *float64 `json:"timeout,omitempty" tf:"timeout,omitempty"` + + // Specifies the health check protocol. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Specifies the HTTP request path for the health check. + URLPath *string `json:"urlPath,omitempty" tf:"url_path,omitempty"` +} + +type MonitorV3Observation struct { + + // Specifies the administrative status of the health check. + // true indicates that the health check is enabled, and false indicates that the health check is disabled. + AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` + + // Specifies the interval between health checks, in seconds. + Delay *float64 `json:"delay,omitempty" tf:"delay,omitempty"` + + // Specifies the domain name that HTTP requests are sent to during the health check. + DomainName *string `json:"domainName,omitempty" tf:"domain_name,omitempty"` + + // Specifies the expected HTTP status code. This parameter will take effect only + // when type is set to HTTP. + ExpectedCodes *string `json:"expectedCodes,omitempty" tf:"expected_codes,omitempty"` + + // Specifies the HTTP method. + HTTPMethod *string `json:"httpMethod,omitempty" tf:"http_method,omitempty"` + + // Specifies the health check (monitor) ID. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Specifies the number of consecutive health checks when the health check result of a backend + // server changes from OFFLINE to ONLINE. + MaxRetries *float64 `json:"maxRetries,omitempty" tf:"max_retries,omitempty"` + + // Specifies the number of consecutive health checks when the health check result of a + // backend server changes from ONLINE to OFFLINE. + MaxRetriesDown *float64 `json:"maxRetriesDown,omitempty" tf:"max_retries_down,omitempty"` + + // Specifies the port used for the health check. If this parameter is left blank, the port of + // the backend server group will be used by default. + MonitorPort *float64 `json:"monitorPort,omitempty" tf:"monitor_port,omitempty"` + + // Specifies the health check name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the ID of the backend server group for which the health check is configured. + // Changing this creates a new monitor. + PoolID *string `json:"poolId,omitempty" tf:"pool_id,omitempty"` + + // Specifies the project ID. Changing this creates a new monitor. + ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + + // Specifies the maximum time required for waiting for a response from the health check, in + // seconds. + Timeout *float64 `json:"timeout,omitempty" tf:"timeout,omitempty"` + + // Specifies the health check protocol. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Specifies the HTTP request path for the health check. + URLPath *string `json:"urlPath,omitempty" tf:"url_path,omitempty"` +} + +type MonitorV3Parameters struct { + + // Specifies the administrative status of the health check. + // true indicates that the health check is enabled, and false indicates that the health check is disabled. + // +kubebuilder:validation:Optional + AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` + + // Specifies the interval between health checks, in seconds. + // +kubebuilder:validation:Optional + Delay *float64 `json:"delay,omitempty" tf:"delay,omitempty"` + + // Specifies the domain name that HTTP requests are sent to during the health check. + // +kubebuilder:validation:Optional + DomainName *string `json:"domainName,omitempty" tf:"domain_name,omitempty"` + + // Specifies the expected HTTP status code. This parameter will take effect only + // when type is set to HTTP. + // +kubebuilder:validation:Optional + ExpectedCodes *string `json:"expectedCodes,omitempty" tf:"expected_codes,omitempty"` + + // Specifies the HTTP method. + // +kubebuilder:validation:Optional + HTTPMethod *string `json:"httpMethod,omitempty" tf:"http_method,omitempty"` + + // Specifies the number of consecutive health checks when the health check result of a backend + // server changes from OFFLINE to ONLINE. + // +kubebuilder:validation:Optional + MaxRetries *float64 `json:"maxRetries,omitempty" tf:"max_retries,omitempty"` + + // Specifies the number of consecutive health checks when the health check result of a + // backend server changes from ONLINE to OFFLINE. + // +kubebuilder:validation:Optional + MaxRetriesDown *float64 `json:"maxRetriesDown,omitempty" tf:"max_retries_down,omitempty"` + + // Specifies the port used for the health check. If this parameter is left blank, the port of + // the backend server group will be used by default. + // +kubebuilder:validation:Optional + MonitorPort *float64 `json:"monitorPort,omitempty" tf:"monitor_port,omitempty"` + + // Specifies the health check name. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the ID of the backend server group for which the health check is configured. + // Changing this creates a new monitor. + // +kubebuilder:validation:Optional + PoolID *string `json:"poolId,omitempty" tf:"pool_id,omitempty"` + + // Specifies the project ID. Changing this creates a new monitor. + // +kubebuilder:validation:Optional + ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + + // Specifies the maximum time required for waiting for a response from the health check, in + // seconds. + // +kubebuilder:validation:Optional + Timeout *float64 `json:"timeout,omitempty" tf:"timeout,omitempty"` + + // Specifies the health check protocol. + // +kubebuilder:validation:Optional + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Specifies the HTTP request path for the health check. + // +kubebuilder:validation:Optional + URLPath *string `json:"urlPath,omitempty" tf:"url_path,omitempty"` +} + +// MonitorV3Spec defines the desired state of MonitorV3 +type MonitorV3Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider MonitorV3Parameters `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 MonitorV3InitParameters `json:"initProvider,omitempty"` +} + +// MonitorV3Status defines the observed state of MonitorV3. +type MonitorV3Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider MonitorV3Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// MonitorV3 is the Schema for the MonitorV3s API. Manages a LB Monitor resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type MonitorV3 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 MonitorV3Spec `json:"spec"` + Status MonitorV3Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// MonitorV3List contains a list of MonitorV3s +type MonitorV3List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []MonitorV3 `json:"items"` +} + +// Repository type metadata. +var ( + MonitorV3_Kind = "MonitorV3" + MonitorV3_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: MonitorV3_Kind}.String() + MonitorV3_KindAPIVersion = MonitorV3_Kind + "." + CRDGroupVersion.String() + MonitorV3_GroupVersionKind = CRDGroupVersion.WithKind(MonitorV3_Kind) +) + +func init() { + SchemeBuilder.Register(&MonitorV3{}, &MonitorV3List{}) +} diff --git a/apis/lb/v1alpha1/zz_policyv3_types.go b/apis/lb/v1alpha1/zz_policyv3_types.go new file mode 100755 index 0000000..cf9317d --- /dev/null +++ b/apis/lb/v1alpha1/zz_policyv3_types.go @@ -0,0 +1,501 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 FixedResponseConfigInitParameters struct { + + // - Specifies the format of the response body. + ContentType *string `json:"contentType,omitempty" tf:"content_type,omitempty"` + + // - Specifies the content of the response message body. + MessageBody *string `json:"messageBody,omitempty" tf:"message_body,omitempty"` + + // Specifies the fixed HTTP status code configured in the forwarding rule. + // The value can be any integer in the range of 200-299, 400-499, or 500-599. + StatusCode *string `json:"statusCode,omitempty" tf:"status_code,omitempty"` +} + +type FixedResponseConfigObservation struct { + + // - Specifies the format of the response body. + ContentType *string `json:"contentType,omitempty" tf:"content_type,omitempty"` + + // - Specifies the content of the response message body. + MessageBody *string `json:"messageBody,omitempty" tf:"message_body,omitempty"` + + // Specifies the fixed HTTP status code configured in the forwarding rule. + // The value can be any integer in the range of 200-299, 400-499, or 500-599. + StatusCode *string `json:"statusCode,omitempty" tf:"status_code,omitempty"` +} + +type FixedResponseConfigParameters struct { + + // - Specifies the format of the response body. + // +kubebuilder:validation:Optional + ContentType *string `json:"contentType,omitempty" tf:"content_type,omitempty"` + + // - Specifies the content of the response message body. + // +kubebuilder:validation:Optional + MessageBody *string `json:"messageBody,omitempty" tf:"message_body,omitempty"` + + // Specifies the fixed HTTP status code configured in the forwarding rule. + // The value can be any integer in the range of 200-299, 400-499, or 500-599. + // +kubebuilder:validation:Optional + StatusCode *string `json:"statusCode" tf:"status_code,omitempty"` +} + +type PolicyV3InitParameters struct { + + // The Policy action - can either be REDIRECT_TO_POOL, + // or REDIRECT_TO_LISTENER. Changing this creates a new Policy. + Action *string `json:"action,omitempty" tf:"action,omitempty"` + + // Provides supplementary information about the forwarding policy. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Specifies the configuration of the page that will be returned. + // This parameter will take effect when advanced_forwarding is set to true. + // If this parameter is passed and advanced_forwarding is set to false, an error will be returned. + // Not available in eu-nl. + FixedResponseConfig []FixedResponseConfigInitParameters `json:"fixedResponseConfig,omitempty" tf:"fixed_response_config,omitempty"` + + // The Listener on which the Policy will be associated with. + // Changing this creates a new Policy. + ListenerID *string `json:"listenerId,omitempty" tf:"listener_id,omitempty"` + + // Specifies the forwarding policy name. + 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 Policy. + Position *float64 `json:"position,omitempty" tf:"position,omitempty"` + + // Specifies the forwarding policy priority. + // A smaller value indicates a higher priority. The value must be unique for forwarding policies of the same listener. + // This parameter will take effect only when advanced_forwarding is set to true. + // If this parameter is passed and advanced_forwarding is set to false, an error will be returned. + // This parameter is unsupported for shared load balancers and not available in eu-nl. + Priority *float64 `json:"priority,omitempty" tf:"priority,omitempty"` + + // 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. + ProjectID *string `json:"projectId,omitempty" tf:"project_id,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"` + + // 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"` + + // Specifies the URL to which requests are forwarded. + RedirectURL *string `json:"redirectUrl,omitempty" tf:"redirect_url,omitempty"` + + // Specifies the URL to which requests are forwarded. + // For dedicated load balancers, This parameter will take effect when advanced_forwarding is set to true. + // If it is passed when advanced_forwarding is set to false, an error will be returned. Not available in eu-nl. + RedirectURLConfig []RedirectURLConfigInitParameters `json:"redirectUrlConfig,omitempty" tf:"redirect_url_config,omitempty"` + + // Lists the forwarding rules in the forwarding policy. + Rules []RulesInitParameters `json:"rules,omitempty" tf:"rules,omitempty"` +} + +type PolicyV3Observation struct { + + // The Policy action - can either be REDIRECT_TO_POOL, + // or REDIRECT_TO_LISTENER. Changing this creates a new Policy. + Action *string `json:"action,omitempty" tf:"action,omitempty"` + + // Provides supplementary information about the forwarding policy. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Specifies the configuration of the page that will be returned. + // This parameter will take effect when advanced_forwarding is set to true. + // If this parameter is passed and advanced_forwarding is set to false, an error will be returned. + // Not available in eu-nl. + FixedResponseConfig []FixedResponseConfigObservation `json:"fixedResponseConfig,omitempty" tf:"fixed_response_config,omitempty"` + + // The unique ID for the policy. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The Listener on which the Policy will be associated with. + // Changing this creates a new Policy. + ListenerID *string `json:"listenerId,omitempty" tf:"listener_id,omitempty"` + + // Specifies the forwarding policy name. + 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 Policy. + Position *float64 `json:"position,omitempty" tf:"position,omitempty"` + + // Specifies the forwarding policy priority. + // A smaller value indicates a higher priority. The value must be unique for forwarding policies of the same listener. + // This parameter will take effect only when advanced_forwarding is set to true. + // If this parameter is passed and advanced_forwarding is set to false, an error will be returned. + // This parameter is unsupported for shared load balancers and not available in eu-nl. + Priority *float64 `json:"priority,omitempty" tf:"priority,omitempty"` + + // 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. + ProjectID *string `json:"projectId,omitempty" tf:"project_id,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"` + + // 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 []RedirectPoolsConfigObservation `json:"redirectPoolsConfig,omitempty" tf:"redirect_pools_config,omitempty"` + + // Specifies the URL to which requests are forwarded. + RedirectURL *string `json:"redirectUrl,omitempty" tf:"redirect_url,omitempty"` + + // Specifies the URL to which requests are forwarded. + // For dedicated load balancers, This parameter will take effect when advanced_forwarding is set to true. + // If it is passed when advanced_forwarding is set to false, an error will be returned. Not available in eu-nl. + RedirectURLConfig []RedirectURLConfigObservation `json:"redirectUrlConfig,omitempty" tf:"redirect_url_config,omitempty"` + + // Lists the forwarding rules in the forwarding policy. + Rules []RulesObservation `json:"rules,omitempty" tf:"rules,omitempty"` + + // Specifies the provisioning status of the forwarding policy. + Status *string `json:"status,omitempty" tf:"status,omitempty"` +} + +type PolicyV3Parameters struct { + + // The Policy action - can either be REDIRECT_TO_POOL, + // or REDIRECT_TO_LISTENER. Changing this creates a new Policy. + // +kubebuilder:validation:Optional + Action *string `json:"action,omitempty" tf:"action,omitempty"` + + // Provides supplementary information about the forwarding policy. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Specifies the configuration of the page that will be returned. + // This parameter will take effect when advanced_forwarding is set to true. + // If this parameter is passed and advanced_forwarding is set to false, an error will be returned. + // Not available in eu-nl. + // +kubebuilder:validation:Optional + FixedResponseConfig []FixedResponseConfigParameters `json:"fixedResponseConfig,omitempty" tf:"fixed_response_config,omitempty"` + + // The Listener on which the Policy will be associated with. + // Changing this creates a new Policy. + // +kubebuilder:validation:Optional + ListenerID *string `json:"listenerId,omitempty" tf:"listener_id,omitempty"` + + // Specifies the forwarding policy name. + // +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 Policy. + // +kubebuilder:validation:Optional + Position *float64 `json:"position,omitempty" tf:"position,omitempty"` + + // Specifies the forwarding policy priority. + // A smaller value indicates a higher priority. The value must be unique for forwarding policies of the same listener. + // This parameter will take effect only when advanced_forwarding is set to true. + // If this parameter is passed and advanced_forwarding is set to false, an error will be returned. + // This parameter is unsupported for shared load balancers and not available in eu-nl. + // +kubebuilder:validation:Optional + Priority *float64 `json:"priority,omitempty" tf:"priority,omitempty"` + + // 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. + // +kubebuilder:validation:Optional + ProjectID *string `json:"projectId,omitempty" tf:"project_id,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"` + + // 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 + RedirectPoolsConfig []RedirectPoolsConfigParameters `json:"redirectPoolsConfig,omitempty" tf:"redirect_pools_config,omitempty"` + + // Specifies the URL to which requests are forwarded. + // +kubebuilder:validation:Optional + RedirectURL *string `json:"redirectUrl,omitempty" tf:"redirect_url,omitempty"` + + // Specifies the URL to which requests are forwarded. + // For dedicated load balancers, This parameter will take effect when advanced_forwarding is set to true. + // If it is passed when advanced_forwarding is set to false, an error will be returned. Not available in eu-nl. + // +kubebuilder:validation:Optional + RedirectURLConfig []RedirectURLConfigParameters `json:"redirectUrlConfig,omitempty" tf:"redirect_url_config,omitempty"` + + // Lists the forwarding rules in the forwarding policy. + // +kubebuilder:validation:Optional + Rules []RulesParameters `json:"rules,omitempty" tf:"rules,omitempty"` +} + +type RedirectPoolsConfigInitParameters struct { + + // - Specifies the ID of the backend server group. + PoolID *string `json:"poolId,omitempty" tf:"pool_id,omitempty"` + + // - Specifies the weight of the backend server group. The value ranges from 0 to 100. + Weight *float64 `json:"weight,omitempty" tf:"weight,omitempty"` +} + +type RedirectPoolsConfigObservation struct { + + // - Specifies the ID of the backend server group. + PoolID *string `json:"poolId,omitempty" tf:"pool_id,omitempty"` + + // - Specifies the weight of the backend server group. The value ranges from 0 to 100. + Weight *float64 `json:"weight,omitempty" tf:"weight,omitempty"` +} + +type RedirectPoolsConfigParameters struct { + + // - Specifies the ID of the backend server group. + // +kubebuilder:validation:Optional + PoolID *string `json:"poolId" tf:"pool_id,omitempty"` + + // - Specifies the weight of the backend server group. The value ranges from 0 to 100. + // +kubebuilder:validation:Optional + Weight *float64 `json:"weight" tf:"weight,omitempty"` +} + +type RedirectURLConfigInitParameters struct { + + // - Specifies the host name that requests are redirected to. + // The value can contain only letters, digits, hyphens (-), and periods (.) and must start with a letter or digit. + // The default value is ${host}, indicating that the host of the request will be used. + Host *string `json:"host,omitempty" tf:"host,omitempty"` + + // - Specifies the path that requests are redirected to. + // The default value is ${path}, indicating that the path of the request will be used. + // The value can contain only letters, digits, and special characters _~';@^- %#&$.*+?,=!:|/()[]{} + // and must start with a slash (/). + Path *string `json:"path,omitempty" tf:"path,omitempty"` + + // - Specifies the port that requests are redirected to. The default value is ${port}, + // indicating that the port of the request will be used. + Port *string `json:"port,omitempty" tf:"port,omitempty"` + + // - Specifies the protocol for redirection. The value can be HTTP, HTTPS, + // or ${protocol}. + // The default value is ${protocol}, indicating that the protocol of the request will be used. + Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` + + // - Specifies the query string set in the URL for redirection. + // The default value is ${query}, indicating that the query string of the request will be used. + Query *string `json:"query,omitempty" tf:"query,omitempty"` + + // Specifies the fixed HTTP status code configured in the forwarding rule. + // The value can be any integer in the range of 200-299, 400-499, or 500-599. + StatusCode *string `json:"statusCode,omitempty" tf:"status_code,omitempty"` +} + +type RedirectURLConfigObservation struct { + + // - Specifies the host name that requests are redirected to. + // The value can contain only letters, digits, hyphens (-), and periods (.) and must start with a letter or digit. + // The default value is ${host}, indicating that the host of the request will be used. + Host *string `json:"host,omitempty" tf:"host,omitempty"` + + // - Specifies the path that requests are redirected to. + // The default value is ${path}, indicating that the path of the request will be used. + // The value can contain only letters, digits, and special characters _~';@^- %#&$.*+?,=!:|/()[]{} + // and must start with a slash (/). + Path *string `json:"path,omitempty" tf:"path,omitempty"` + + // - Specifies the port that requests are redirected to. The default value is ${port}, + // indicating that the port of the request will be used. + Port *string `json:"port,omitempty" tf:"port,omitempty"` + + // - Specifies the protocol for redirection. The value can be HTTP, HTTPS, + // or ${protocol}. + // The default value is ${protocol}, indicating that the protocol of the request will be used. + Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` + + // - Specifies the query string set in the URL for redirection. + // The default value is ${query}, indicating that the query string of the request will be used. + Query *string `json:"query,omitempty" tf:"query,omitempty"` + + // Specifies the fixed HTTP status code configured in the forwarding rule. + // The value can be any integer in the range of 200-299, 400-499, or 500-599. + StatusCode *string `json:"statusCode,omitempty" tf:"status_code,omitempty"` +} + +type RedirectURLConfigParameters struct { + + // - Specifies the host name that requests are redirected to. + // The value can contain only letters, digits, hyphens (-), and periods (.) and must start with a letter or digit. + // The default value is ${host}, indicating that the host of the request will be used. + // +kubebuilder:validation:Optional + Host *string `json:"host,omitempty" tf:"host,omitempty"` + + // - Specifies the path that requests are redirected to. + // The default value is ${path}, indicating that the path of the request will be used. + // The value can contain only letters, digits, and special characters _~';@^- %#&$.*+?,=!:|/()[]{} + // and must start with a slash (/). + // +kubebuilder:validation:Optional + Path *string `json:"path,omitempty" tf:"path,omitempty"` + + // - Specifies the port that requests are redirected to. The default value is ${port}, + // indicating that the port of the request will be used. + // +kubebuilder:validation:Optional + Port *string `json:"port,omitempty" tf:"port,omitempty"` + + // - Specifies the protocol for redirection. The value can be HTTP, HTTPS, + // or ${protocol}. + // The default value is ${protocol}, indicating that the protocol of the request will be used. + // +kubebuilder:validation:Optional + Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` + + // - Specifies the query string set in the URL for redirection. + // The default value is ${query}, indicating that the query string of the request will be used. + // +kubebuilder:validation:Optional + Query *string `json:"query,omitempty" tf:"query,omitempty"` + + // Specifies the fixed HTTP status code configured in the forwarding rule. + // The value can be any integer in the range of 200-299, 400-499, or 500-599. + // +kubebuilder:validation:Optional + StatusCode *string `json:"statusCode" tf:"status_code,omitempty"` +} + +type RulesInitParameters struct { + + // - Specifies how requests are matched with the domain name or URL. + // The values can be: EQUAL_TO, REGEX, STARTS_WITH. + CompareType *string `json:"compareType,omitempty" tf:"compare_type,omitempty"` + + // Specifies the match content. The value can be one of the following: HOST_NAME, PATH. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Specifies the value of the match item. For example, if a domain name is + // used for matching, value is the domain name. + Value *string `json:"value,omitempty" tf:"value,omitempty"` +} + +type RulesObservation struct { + + // - Specifies how requests are matched with the domain name or URL. + // The values can be: EQUAL_TO, REGEX, STARTS_WITH. + CompareType *string `json:"compareType,omitempty" tf:"compare_type,omitempty"` + + // Specifies the match content. The value can be one of the following: HOST_NAME, PATH. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Specifies the value of the match item. For example, if a domain name is + // used for matching, value is the domain name. + Value *string `json:"value,omitempty" tf:"value,omitempty"` +} + +type RulesParameters struct { + + // - Specifies how requests are matched with the domain name or URL. + // The values can be: EQUAL_TO, REGEX, STARTS_WITH. + // +kubebuilder:validation:Optional + CompareType *string `json:"compareType" tf:"compare_type,omitempty"` + + // Specifies the match content. The value can be one of the following: HOST_NAME, PATH. + // +kubebuilder:validation:Optional + Type *string `json:"type" tf:"type,omitempty"` + + // Specifies the value of the match item. For example, if a domain name is + // used for matching, value is the domain name. + // +kubebuilder:validation:Optional + Value *string `json:"value" tf:"value,omitempty"` +} + +// PolicyV3Spec defines the desired state of PolicyV3 +type PolicyV3Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider PolicyV3Parameters `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 PolicyV3InitParameters `json:"initProvider,omitempty"` +} + +// PolicyV3Status defines the observed state of PolicyV3. +type PolicyV3Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider PolicyV3Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// PolicyV3 is the Schema for the PolicyV3s API. Manages a LB Policy resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +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"` +} + +// +kubebuilder:object:root=true + +// PolicyV3List contains a list of PolicyV3s +type PolicyV3List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []PolicyV3 `json:"items"` +} + +// Repository type metadata. +var ( + PolicyV3_Kind = "PolicyV3" + PolicyV3_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: PolicyV3_Kind}.String() + PolicyV3_KindAPIVersion = PolicyV3_Kind + "." + CRDGroupVersion.String() + PolicyV3_GroupVersionKind = CRDGroupVersion.WithKind(PolicyV3_Kind) +) + +func init() { + SchemeBuilder.Register(&PolicyV3{}, &PolicyV3List{}) +} diff --git a/apis/lb/v1alpha1/zz_poolv2_types.go b/apis/lb/v1alpha1/zz_poolv2_types.go new file mode 100755 index 0000000..2ebb097 --- /dev/null +++ b/apis/lb/v1alpha1/zz_poolv2_types.go @@ -0,0 +1,254 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 + +// PoolV2 is the Schema for the PoolV2s API. Manages a ELB Pool resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +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 new file mode 100755 index 0000000..ae860ae --- /dev/null +++ b/apis/lb/v1alpha1/zz_poolv3_types.go @@ -0,0 +1,259 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 PoolV3InitParameters struct { + + // Provides supplementary information about the backend server group. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Specifies the load balancing algorithm used by the load balancer to route requests to backend servers. + LBAlgorithm *string `json:"lbAlgorithm,omitempty" tf:"lb_algorithm,omitempty"` + + // Specifies the ID of the listener associated with the backend server group. + ListenerID *string `json:"listenerId,omitempty" tf:"listener_id,omitempty"` + + // Specifies the ID of the associated load balancer. + LoadbalancerID *string `json:"loadbalancerId,omitempty" tf:"loadbalancer_id,omitempty"` + + // Specifies whether to enable removal protection for the pool members. + // true: Enable removal protection. + // false (default): Disable removal protection. + MemberDeletionProtection *bool `json:"memberDeletionProtection,omitempty" tf:"member_deletion_protection,omitempty"` + + // Specifies the backend server group name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the project ID. + ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + + // 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"` + + // Specifies whether to enable sticky sessions. + SessionPersistence []SessionPersistenceInitParameters `json:"sessionPersistence,omitempty" tf:"session_persistence,omitempty"` + + // Specifies the sticky session type. The value can be SOURCE_IP, HTTP_COOKIE, or APP_COOKIE. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Specifies the ID of the VPC where the backend server group works. + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +} + +type PoolV3Observation struct { + + // Provides supplementary information about the backend server group. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Specifies the backend server group ID. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Specifies the IP version supported by the backend server group. + IPVersion *string `json:"ipVersion,omitempty" tf:"ip_version,omitempty"` + + // Specifies the load balancing algorithm used by the load balancer to route requests to backend servers. + LBAlgorithm *string `json:"lbAlgorithm,omitempty" tf:"lb_algorithm,omitempty"` + + // Specifies the ID of the listener associated with the backend server group. + ListenerID *string `json:"listenerId,omitempty" tf:"listener_id,omitempty"` + + // Specifies the ID of the associated load balancer. + LoadbalancerID *string `json:"loadbalancerId,omitempty" tf:"loadbalancer_id,omitempty"` + + // Specifies whether to enable removal protection for the pool members. + // true: Enable removal protection. + // false (default): Disable removal protection. + MemberDeletionProtection *bool `json:"memberDeletionProtection,omitempty" tf:"member_deletion_protection,omitempty"` + + // Specifies the backend server group name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the project ID. + ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + + // 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"` + + // Specifies whether to enable sticky sessions. + SessionPersistence []SessionPersistenceObservation `json:"sessionPersistence,omitempty" tf:"session_persistence,omitempty"` + + // Specifies the sticky session type. The value can be SOURCE_IP, HTTP_COOKIE, or APP_COOKIE. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Specifies the ID of the VPC where the backend server group works. + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +} + +type PoolV3Parameters struct { + + // Provides supplementary information about the backend server group. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Specifies the load balancing algorithm used by the load balancer to route requests to backend servers. + // +kubebuilder:validation:Optional + LBAlgorithm *string `json:"lbAlgorithm,omitempty" tf:"lb_algorithm,omitempty"` + + // Specifies the ID of the listener associated with the backend server group. + // +kubebuilder:validation:Optional + ListenerID *string `json:"listenerId,omitempty" tf:"listener_id,omitempty"` + + // Specifies the ID of the associated load balancer. + // +kubebuilder:validation:Optional + LoadbalancerID *string `json:"loadbalancerId,omitempty" tf:"loadbalancer_id,omitempty"` + + // Specifies whether to enable removal protection for the pool members. + // true: Enable removal protection. + // false (default): Disable removal protection. + // +kubebuilder:validation:Optional + MemberDeletionProtection *bool `json:"memberDeletionProtection,omitempty" tf:"member_deletion_protection,omitempty"` + + // Specifies the backend server group name. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the project ID. + // +kubebuilder:validation:Optional + ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + + // Specifies the protocol used by the backend server group to receive requests. + // TCP, UDP, HTTP, HTTPS, and QUIC are supported. + // +kubebuilder:validation:Optional + Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` + + // Specifies whether to enable sticky sessions. + // +kubebuilder:validation:Optional + SessionPersistence []SessionPersistenceParameters `json:"sessionPersistence,omitempty" tf:"session_persistence,omitempty"` + + // Specifies the sticky session type. The value can be SOURCE_IP, HTTP_COOKIE, or APP_COOKIE. + // +kubebuilder:validation:Optional + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Specifies the ID of the VPC where the backend server group works. + // +kubebuilder:validation:Optional + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +} + +type SessionPersistenceInitParameters struct { + + // Specifies the cookie name. This parameter will take effect only when type is set to APP_COOKIE. + // The value can contain only letters, digits, hyphens (-), underscores (_), and periods (.). + CookieName *string `json:"cookieName,omitempty" tf:"cookie_name,omitempty"` + + // Specifies the stickiness duration, in minutes. + // This parameter will not take effect when type is set to APP_COOKIE. + PersistenceTimeout *float64 `json:"persistenceTimeout,omitempty" tf:"persistence_timeout,omitempty"` + + // Specifies the sticky session type. The value can be SOURCE_IP, HTTP_COOKIE, or APP_COOKIE. + Type *string `json:"type,omitempty" tf:"type,omitempty"` +} + +type SessionPersistenceObservation struct { + + // Specifies the cookie name. This parameter will take effect only when type is set to APP_COOKIE. + // The value can contain only letters, digits, hyphens (-), underscores (_), and periods (.). + CookieName *string `json:"cookieName,omitempty" tf:"cookie_name,omitempty"` + + // Specifies the stickiness duration, in minutes. + // This parameter will not take effect when type is set to APP_COOKIE. + PersistenceTimeout *float64 `json:"persistenceTimeout,omitempty" tf:"persistence_timeout,omitempty"` + + // Specifies the sticky session type. The value can be SOURCE_IP, HTTP_COOKIE, or APP_COOKIE. + Type *string `json:"type,omitempty" tf:"type,omitempty"` +} + +type SessionPersistenceParameters struct { + + // Specifies the cookie name. This parameter will take effect only when type is set to APP_COOKIE. + // The value can contain only letters, digits, hyphens (-), underscores (_), and periods (.). + // +kubebuilder:validation:Optional + CookieName *string `json:"cookieName,omitempty" tf:"cookie_name,omitempty"` + + // Specifies the stickiness duration, in minutes. + // This parameter will not take effect when type is set to APP_COOKIE. + // +kubebuilder:validation:Optional + PersistenceTimeout *float64 `json:"persistenceTimeout,omitempty" tf:"persistence_timeout,omitempty"` + + // Specifies the sticky session type. The value can be SOURCE_IP, HTTP_COOKIE, or APP_COOKIE. + // +kubebuilder:validation:Optional + Type *string `json:"type" tf:"type,omitempty"` +} + +// PoolV3Spec defines the desired state of PoolV3 +type PoolV3Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider PoolV3Parameters `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 PoolV3InitParameters `json:"initProvider,omitempty"` +} + +// PoolV3Status defines the observed state of PoolV3. +type PoolV3Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider PoolV3Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// PoolV3 is the Schema for the PoolV3s API. Manages a LB Pool resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type PoolV3 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.lbAlgorithm) || (has(self.initProvider) && has(self.initProvider.lbAlgorithm))",message="spec.forProvider.lbAlgorithm 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 PoolV3Spec `json:"spec"` + Status PoolV3Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// PoolV3List contains a list of PoolV3s +type PoolV3List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []PoolV3 `json:"items"` +} + +// Repository type metadata. +var ( + PoolV3_Kind = "PoolV3" + PoolV3_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: PoolV3_Kind}.String() + PoolV3_KindAPIVersion = PoolV3_Kind + "." + CRDGroupVersion.String() + PoolV3_GroupVersionKind = CRDGroupVersion.WithKind(PoolV3_Kind) +) + +func init() { + SchemeBuilder.Register(&PoolV3{}, &PoolV3List{}) +} diff --git a/apis/lb/v1alpha1/zz_rulev3_types.go b/apis/lb/v1alpha1/zz_rulev3_types.go new file mode 100755 index 0000000..f9d93d5 --- /dev/null +++ b/apis/lb/v1alpha1/zz_rulev3_types.go @@ -0,0 +1,206 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 ConditionsInitParameters struct { + + // Specifies the key of match item. + Key *string `json:"key,omitempty" tf:"key,omitempty"` + + // Specifies the value of the match item. For example, if a domain name is + // used for matching, value is the domain name. + Value *string `json:"value,omitempty" tf:"value,omitempty"` +} + +type ConditionsObservation struct { + + // Specifies the key of match item. + Key *string `json:"key,omitempty" tf:"key,omitempty"` + + // Specifies the value of the match item. For example, if a domain name is + // used for matching, value is the domain name. + Value *string `json:"value,omitempty" tf:"value,omitempty"` +} + +type ConditionsParameters struct { + + // Specifies the key of match item. + // +kubebuilder:validation:Optional + Key *string `json:"key,omitempty" tf:"key,omitempty"` + + // Specifies the value of the match item. For example, if a domain name is + // used for matching, value is the domain name. + // +kubebuilder:validation:Optional + Value *string `json:"value" tf:"value,omitempty"` +} + +type RuleV3InitParameters struct { + + // - Specifies how requests are matched with the domain name or URL. + // The values can be: EQUAL_TO, REGEX, STARTS_WITH. + CompareType *string `json:"compareType,omitempty" tf:"compare_type,omitempty"` + + // Specifies the matching conditions of the forwarding rule. + // This parameter is available only when advanced_forwarding is set to true. + // Not available in eu-nl. + Conditions []ConditionsInitParameters `json:"conditions,omitempty" tf:"conditions,omitempty"` + + // ID of the policy. + PolicyID *string `json:"policyId,omitempty" tf:"policy_id,omitempty"` + + // 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. + ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + + // Specifies the match content. The value can be one of the following: HOST_NAME, PATH. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Specifies the value of the match item. For example, if a domain name is + // used for matching, value is the domain name. + Value *string `json:"value,omitempty" tf:"value,omitempty"` +} + +type RuleV3Observation struct { + + // - Specifies how requests are matched with the domain name or URL. + // The values can be: EQUAL_TO, REGEX, STARTS_WITH. + CompareType *string `json:"compareType,omitempty" tf:"compare_type,omitempty"` + + // Specifies the matching conditions of the forwarding rule. + // This parameter is available only when advanced_forwarding is set to true. + // Not available in eu-nl. + Conditions []ConditionsObservation `json:"conditions,omitempty" tf:"conditions,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // ID of the policy. + PolicyID *string `json:"policyId,omitempty" tf:"policy_id,omitempty"` + + // 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. + ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + + // ID of the policy rule. + RuleID *string `json:"ruleId,omitempty" tf:"rule_id,omitempty"` + + // Specifies the match content. The value can be one of the following: HOST_NAME, PATH. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Specifies the value of the match item. For example, if a domain name is + // used for matching, value is the domain name. + Value *string `json:"value,omitempty" tf:"value,omitempty"` +} + +type RuleV3Parameters struct { + + // - Specifies how requests are matched with the domain name or URL. + // The values can be: EQUAL_TO, REGEX, STARTS_WITH. + // +kubebuilder:validation:Optional + CompareType *string `json:"compareType,omitempty" tf:"compare_type,omitempty"` + + // Specifies the matching conditions of the forwarding rule. + // This parameter is available only when advanced_forwarding is set to true. + // Not available in eu-nl. + // +kubebuilder:validation:Optional + Conditions []ConditionsParameters `json:"conditions,omitempty" tf:"conditions,omitempty"` + + // ID of the policy. + // +kubebuilder:validation:Optional + PolicyID *string `json:"policyId,omitempty" tf:"policy_id,omitempty"` + + // 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. + // +kubebuilder:validation:Optional + ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + + // 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"` + + // Specifies the value of the match item. For example, if a domain name is + // used for matching, value is the domain name. + // +kubebuilder:validation:Optional + Value *string `json:"value,omitempty" tf:"value,omitempty"` +} + +// RuleV3Spec defines the desired state of RuleV3 +type RuleV3Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider RuleV3Parameters `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 RuleV3InitParameters `json:"initProvider,omitempty"` +} + +// RuleV3Status defines the observed state of RuleV3. +type RuleV3Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider RuleV3Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// RuleV3 is the Schema for the RuleV3s API. Manages a LB Rule resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +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"` + Status RuleV3Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// RuleV3List contains a list of RuleV3s +type RuleV3List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []RuleV3 `json:"items"` +} + +// Repository type metadata. +var ( + RuleV3_Kind = "RuleV3" + RuleV3_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: RuleV3_Kind}.String() + RuleV3_KindAPIVersion = RuleV3_Kind + "." + CRDGroupVersion.String() + RuleV3_GroupVersionKind = CRDGroupVersion.WithKind(RuleV3_Kind) +) + +func init() { + SchemeBuilder.Register(&RuleV3{}, &RuleV3List{}) +} diff --git a/apis/lb/v1alpha1/zz_securitypolicyv3_types.go b/apis/lb/v1alpha1/zz_securitypolicyv3_types.go new file mode 100755 index 0000000..19a649e --- /dev/null +++ b/apis/lb/v1alpha1/zz_securitypolicyv3_types.go @@ -0,0 +1,143 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 SecurityPolicyV3InitParameters struct { + + // Lists the cipher suites supported by the custom security policy. + Ciphers []*string `json:"ciphers,omitempty" tf:"ciphers,omitempty"` + + // Provides supplementary information about the security policy. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Specifies the security policy name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Lists the TLS protocols supported by the custom security policy. + Protocols []*string `json:"protocols,omitempty" tf:"protocols,omitempty"` +} + +type SecurityPolicyV3Observation struct { + + // Lists the cipher suites supported by the custom security policy. + Ciphers []*string `json:"ciphers,omitempty" tf:"ciphers,omitempty"` + + // The time when the custom security policy was created. + CreatedAt *string `json:"createdAt,omitempty" tf:"created_at,omitempty"` + + // Provides supplementary information about the security policy. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The unique ID for the policy. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + ListenerIds []*string `json:"listenerIds,omitempty" tf:"listener_ids,omitempty"` + + // Specifies the security policy name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The project ID of the custom security policy. + ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + + // Lists the TLS protocols supported by the custom security policy. + Protocols []*string `json:"protocols,omitempty" tf:"protocols,omitempty"` + + // The time when the custom security policy was updated. + UpdatedAt *string `json:"updatedAt,omitempty" tf:"updated_at,omitempty"` +} + +type SecurityPolicyV3Parameters struct { + + // Lists the cipher suites supported by the custom security policy. + // +kubebuilder:validation:Optional + Ciphers []*string `json:"ciphers,omitempty" tf:"ciphers,omitempty"` + + // Provides supplementary information about the security policy. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Specifies the security policy name. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Lists the TLS protocols supported by the custom security policy. + // +kubebuilder:validation:Optional + Protocols []*string `json:"protocols,omitempty" tf:"protocols,omitempty"` +} + +// SecurityPolicyV3Spec defines the desired state of SecurityPolicyV3 +type SecurityPolicyV3Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider SecurityPolicyV3Parameters `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 SecurityPolicyV3InitParameters `json:"initProvider,omitempty"` +} + +// SecurityPolicyV3Status defines the observed state of SecurityPolicyV3. +type SecurityPolicyV3Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider SecurityPolicyV3Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// SecurityPolicyV3 is the Schema for the SecurityPolicyV3s API. Manages a LB Security Policy resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type SecurityPolicyV3 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.ciphers) || (has(self.initProvider) && has(self.initProvider.ciphers))",message="spec.forProvider.ciphers is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.protocols) || (has(self.initProvider) && has(self.initProvider.protocols))",message="spec.forProvider.protocols is a required parameter" + Spec SecurityPolicyV3Spec `json:"spec"` + Status SecurityPolicyV3Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// SecurityPolicyV3List contains a list of SecurityPolicyV3s +type SecurityPolicyV3List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []SecurityPolicyV3 `json:"items"` +} + +// Repository type metadata. +var ( + SecurityPolicyV3_Kind = "SecurityPolicyV3" + SecurityPolicyV3_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: SecurityPolicyV3_Kind}.String() + SecurityPolicyV3_KindAPIVersion = SecurityPolicyV3_Kind + "." + CRDGroupVersion.String() + SecurityPolicyV3_GroupVersionKind = CRDGroupVersion.WithKind(SecurityPolicyV3_Kind) +) + +func init() { + SchemeBuilder.Register(&SecurityPolicyV3{}, &SecurityPolicyV3List{}) +} diff --git a/apis/lb/v1alpha1/zz_whitelistv2_types.go b/apis/lb/v1alpha1/zz_whitelistv2_types.go new file mode 100755 index 0000000..27832be --- /dev/null +++ b/apis/lb/v1alpha1/zz_whitelistv2_types.go @@ -0,0 +1,140 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 + +// WhitelistV2 is the Schema for the WhitelistV2s API. Manages a ELB Whitelist resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +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/apis/nat/v1alpha1/zz_dnatrulev2_types.go b/apis/nat/v1alpha1/zz_dnatrulev2_types.go new file mode 100755 index 0000000..acea177 --- /dev/null +++ b/apis/nat/v1alpha1/zz_dnatrulev2_types.go @@ -0,0 +1,202 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 DnatRuleV2InitParameters struct { + + // Specifies port used by ECSs or + // BMSs to provide services for external systems. Changing this creates a new DNAT rule. + ExternalServicePort *float64 `json:"externalServicePort,omitempty" tf:"external_service_port,omitempty"` + + // Specifies the ID of the floating IP address. + // Changing this creates a new resource. + FloatingIPID *string `json:"floatingIpId,omitempty" tf:"floating_ip_id,omitempty"` + + // Specifies port used by ECSs or BMSs + // to provide services for external systems. Changing this creates a new resource. + InternalServicePort *float64 `json:"internalServicePort,omitempty" tf:"internal_service_port,omitempty"` + + // ID of the NAT gateway this DNAT rule belongs to. + // Changing this creates a new DNAT rule. + NATGatewayID *string `json:"natGatewayId,omitempty" tf:"nat_gateway_id,omitempty"` + + // Specifies the port ID of an ECS or a BMS. + // This parameter and private_ip are alternative. Changing this creates a + // new DNAT rule. + PortID *string `json:"portId,omitempty" tf:"port_id,omitempty"` + + // Specifies the private IP address of a + // user, for example, the IP address of a VPC for dedicated connection. + // This parameter and port_id are alternative. Changing this creates a new DNAT rule. + PrivateIP *string `json:"privateIp,omitempty" tf:"private_ip,omitempty"` + + // Specifies the protocol type. Currently, + // tcp, udp, and any are supported. Changing this creates a new DNAT rule. + Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` +} + +type DnatRuleV2Observation struct { + + // DNAT rule creation time. + CreatedAt *string `json:"createdAt,omitempty" tf:"created_at,omitempty"` + + // Specifies port used by ECSs or + // BMSs to provide services for external systems. Changing this creates a new DNAT rule. + ExternalServicePort *float64 `json:"externalServicePort,omitempty" tf:"external_service_port,omitempty"` + + // The actual floating IP address. + FloatingIPAddress *string `json:"floatingIpAddress,omitempty" tf:"floating_ip_address,omitempty"` + + // Specifies the ID of the floating IP address. + // Changing this creates a new resource. + FloatingIPID *string `json:"floatingIpId,omitempty" tf:"floating_ip_id,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Specifies port used by ECSs or BMSs + // to provide services for external systems. Changing this creates a new resource. + InternalServicePort *float64 `json:"internalServicePort,omitempty" tf:"internal_service_port,omitempty"` + + // ID of the NAT gateway this DNAT rule belongs to. + // Changing this creates a new DNAT rule. + NATGatewayID *string `json:"natGatewayId,omitempty" tf:"nat_gateway_id,omitempty"` + + // Specifies the port ID of an ECS or a BMS. + // This parameter and private_ip are alternative. Changing this creates a + // new DNAT rule. + PortID *string `json:"portId,omitempty" tf:"port_id,omitempty"` + + // Specifies the private IP address of a + // user, for example, the IP address of a VPC for dedicated connection. + // This parameter and port_id are alternative. Changing this creates a new DNAT rule. + PrivateIP *string `json:"privateIp,omitempty" tf:"private_ip,omitempty"` + + // Specifies the protocol type. Currently, + // tcp, udp, and any are supported. Changing this creates a new DNAT rule. + Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` + + // DNAT rule status. + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` +} + +type DnatRuleV2Parameters struct { + + // Specifies port used by ECSs or + // BMSs to provide services for external systems. Changing this creates a new DNAT rule. + // +kubebuilder:validation:Optional + ExternalServicePort *float64 `json:"externalServicePort,omitempty" tf:"external_service_port,omitempty"` + + // Specifies the ID of the floating IP address. + // Changing this creates a new resource. + // +kubebuilder:validation:Optional + FloatingIPID *string `json:"floatingIpId,omitempty" tf:"floating_ip_id,omitempty"` + + // Specifies port used by ECSs or BMSs + // to provide services for external systems. Changing this creates a new resource. + // +kubebuilder:validation:Optional + InternalServicePort *float64 `json:"internalServicePort,omitempty" tf:"internal_service_port,omitempty"` + + // ID of the NAT gateway this DNAT rule belongs to. + // Changing this creates a new DNAT rule. + // +kubebuilder:validation:Optional + NATGatewayID *string `json:"natGatewayId,omitempty" tf:"nat_gateway_id,omitempty"` + + // Specifies the port ID of an ECS or a BMS. + // This parameter and private_ip are alternative. Changing this creates a + // new DNAT rule. + // +kubebuilder:validation:Optional + PortID *string `json:"portId,omitempty" tf:"port_id,omitempty"` + + // Specifies the private IP address of a + // user, for example, the IP address of a VPC for dedicated connection. + // This parameter and port_id are alternative. Changing this creates a new DNAT rule. + // +kubebuilder:validation:Optional + PrivateIP *string `json:"privateIp,omitempty" tf:"private_ip,omitempty"` + + // Specifies the protocol type. Currently, + // tcp, udp, and any are supported. Changing this creates a new DNAT rule. + // +kubebuilder:validation:Optional + Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` +} + +// DnatRuleV2Spec defines the desired state of DnatRuleV2 +type DnatRuleV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider DnatRuleV2Parameters `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 DnatRuleV2InitParameters `json:"initProvider,omitempty"` +} + +// DnatRuleV2Status defines the observed state of DnatRuleV2. +type DnatRuleV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider DnatRuleV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// DnatRuleV2 is the Schema for the DnatRuleV2s API. Manages a NAT DNAT Rule resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type DnatRuleV2 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.externalServicePort) || (has(self.initProvider) && has(self.initProvider.externalServicePort))",message="spec.forProvider.externalServicePort is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.floatingIpId) || (has(self.initProvider) && has(self.initProvider.floatingIpId))",message="spec.forProvider.floatingIpId is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.internalServicePort) || (has(self.initProvider) && has(self.initProvider.internalServicePort))",message="spec.forProvider.internalServicePort is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.natGatewayId) || (has(self.initProvider) && has(self.initProvider.natGatewayId))",message="spec.forProvider.natGatewayId 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 DnatRuleV2Spec `json:"spec"` + Status DnatRuleV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// DnatRuleV2List contains a list of DnatRuleV2s +type DnatRuleV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []DnatRuleV2 `json:"items"` +} + +// Repository type metadata. +var ( + DnatRuleV2_Kind = "DnatRuleV2" + DnatRuleV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: DnatRuleV2_Kind}.String() + DnatRuleV2_KindAPIVersion = DnatRuleV2_Kind + "." + CRDGroupVersion.String() + DnatRuleV2_GroupVersionKind = CRDGroupVersion.WithKind(DnatRuleV2_Kind) +) + +func init() { + SchemeBuilder.Register(&DnatRuleV2{}, &DnatRuleV2List{}) +} diff --git a/apis/nat/v1alpha1/zz_gatewayv2_types.go b/apis/nat/v1alpha1/zz_gatewayv2_types.go new file mode 100755 index 0000000..9d79cc3 --- /dev/null +++ b/apis/nat/v1alpha1/zz_gatewayv2_types.go @@ -0,0 +1,179 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 GatewayV2InitParameters struct { + + // The description of the NAT Gateway. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // ID of the network this NAT Gateway connects to. + // Changing this creates a new NAT Gateway. + InternalNetworkID *string `json:"internalNetworkId,omitempty" tf:"internal_network_id,omitempty"` + + // The name of the NAT Gateway. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // ID of the router (or VPC) this NAT Gateway belongs to. Changing + // this creates a new NAT Gateway. + RouterID *string `json:"routerId,omitempty" tf:"router_id,omitempty"` + + // The specification of the NAT Gateway, valid values are "0","1", "2", "3", "4". + Spec *string `json:"spec,omitempty" tf:"spec,omitempty"` + + // Tags key/value pairs to associate with the NAT Gateway. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The target tenant ID in which to allocate the NAT + // Gateway. Changing this creates a new NAT Gateway. + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` +} + +type GatewayV2Observation struct { + + // The description of the NAT Gateway. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // ID of the network this NAT Gateway connects to. + // Changing this creates a new NAT Gateway. + InternalNetworkID *string `json:"internalNetworkId,omitempty" tf:"internal_network_id,omitempty"` + + // The name of the NAT Gateway. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // ID of the router (or VPC) this NAT Gateway belongs to. Changing + // this creates a new NAT Gateway. + RouterID *string `json:"routerId,omitempty" tf:"router_id,omitempty"` + + // The specification of the NAT Gateway, valid values are "0","1", "2", "3", "4". + Spec *string `json:"spec,omitempty" tf:"spec,omitempty"` + + // Tags key/value pairs to associate with the NAT Gateway. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The target tenant ID in which to allocate the NAT + // Gateway. Changing this creates a new NAT Gateway. + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` +} + +type GatewayV2Parameters struct { + + // The description of the NAT Gateway. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // ID of the network this NAT Gateway connects to. + // Changing this creates a new NAT Gateway. + // +kubebuilder:validation:Optional + InternalNetworkID *string `json:"internalNetworkId,omitempty" tf:"internal_network_id,omitempty"` + + // The name of the NAT Gateway. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // ID of the router (or VPC) this NAT Gateway belongs to. Changing + // this creates a new NAT Gateway. + // +kubebuilder:validation:Optional + RouterID *string `json:"routerId,omitempty" tf:"router_id,omitempty"` + + // The specification of the NAT Gateway, valid values are "0","1", "2", "3", "4". + // +kubebuilder:validation:Optional + Spec *string `json:"spec,omitempty" tf:"spec,omitempty"` + + // Tags key/value pairs to associate with the NAT Gateway. + // +kubebuilder:validation:Optional + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The target tenant ID in which to allocate the NAT + // Gateway. Changing this creates a new NAT Gateway. + // +kubebuilder:validation:Optional + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` +} + +// GatewayV2Spec defines the desired state of GatewayV2 +type GatewayV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider GatewayV2Parameters `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 GatewayV2InitParameters `json:"initProvider,omitempty"` +} + +// GatewayV2Status defines the observed state of GatewayV2. +type GatewayV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider GatewayV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// GatewayV2 is the Schema for the GatewayV2s API. Manages a NAT Gateway resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type GatewayV2 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.internalNetworkId) || (has(self.initProvider) && has(self.initProvider.internalNetworkId))",message="spec.forProvider.internalNetworkId is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.routerId) || (has(self.initProvider) && has(self.initProvider.routerId))",message="spec.forProvider.routerId is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.spec) || (has(self.initProvider) && has(self.initProvider.spec))",message="spec.forProvider.spec is a required parameter" + Spec GatewayV2Spec `json:"spec"` + Status GatewayV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// GatewayV2List contains a list of GatewayV2s +type GatewayV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []GatewayV2 `json:"items"` +} + +// Repository type metadata. +var ( + GatewayV2_Kind = "GatewayV2" + GatewayV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: GatewayV2_Kind}.String() + GatewayV2_KindAPIVersion = GatewayV2_Kind + "." + CRDGroupVersion.String() + GatewayV2_GroupVersionKind = CRDGroupVersion.WithKind(GatewayV2_Kind) +) + +func init() { + SchemeBuilder.Register(&GatewayV2{}, &GatewayV2List{}) +} diff --git a/apis/nat/v1alpha1/zz_generated.deepcopy.go b/apis/nat/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..994dab0 --- /dev/null +++ b/apis/nat/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,813 @@ +//go:build !ignore_autogenerated + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by controller-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + 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 *DnatRuleV2) DeepCopyInto(out *DnatRuleV2) { + *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 DnatRuleV2. +func (in *DnatRuleV2) DeepCopy() *DnatRuleV2 { + if in == nil { + return nil + } + out := new(DnatRuleV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DnatRuleV2) 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 *DnatRuleV2InitParameters) DeepCopyInto(out *DnatRuleV2InitParameters) { + *out = *in + if in.ExternalServicePort != nil { + in, out := &in.ExternalServicePort, &out.ExternalServicePort + *out = new(float64) + **out = **in + } + if in.FloatingIPID != nil { + in, out := &in.FloatingIPID, &out.FloatingIPID + *out = new(string) + **out = **in + } + if in.InternalServicePort != nil { + in, out := &in.InternalServicePort, &out.InternalServicePort + *out = new(float64) + **out = **in + } + if in.NATGatewayID != nil { + in, out := &in.NATGatewayID, &out.NATGatewayID + *out = new(string) + **out = **in + } + if in.PortID != nil { + in, out := &in.PortID, &out.PortID + *out = new(string) + **out = **in + } + if in.PrivateIP != nil { + in, out := &in.PrivateIP, &out.PrivateIP + *out = new(string) + **out = **in + } + if in.Protocol != nil { + in, out := &in.Protocol, &out.Protocol + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DnatRuleV2InitParameters. +func (in *DnatRuleV2InitParameters) DeepCopy() *DnatRuleV2InitParameters { + if in == nil { + return nil + } + out := new(DnatRuleV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DnatRuleV2List) DeepCopyInto(out *DnatRuleV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]DnatRuleV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DnatRuleV2List. +func (in *DnatRuleV2List) DeepCopy() *DnatRuleV2List { + if in == nil { + return nil + } + out := new(DnatRuleV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DnatRuleV2List) 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 *DnatRuleV2Observation) DeepCopyInto(out *DnatRuleV2Observation) { + *out = *in + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt + *out = new(string) + **out = **in + } + if in.ExternalServicePort != nil { + in, out := &in.ExternalServicePort, &out.ExternalServicePort + *out = new(float64) + **out = **in + } + if in.FloatingIPAddress != nil { + in, out := &in.FloatingIPAddress, &out.FloatingIPAddress + *out = new(string) + **out = **in + } + if in.FloatingIPID != nil { + in, out := &in.FloatingIPID, &out.FloatingIPID + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.InternalServicePort != nil { + in, out := &in.InternalServicePort, &out.InternalServicePort + *out = new(float64) + **out = **in + } + if in.NATGatewayID != nil { + in, out := &in.NATGatewayID, &out.NATGatewayID + *out = new(string) + **out = **in + } + if in.PortID != nil { + in, out := &in.PortID, &out.PortID + *out = new(string) + **out = **in + } + if in.PrivateIP != nil { + in, out := &in.PrivateIP, &out.PrivateIP + *out = new(string) + **out = **in + } + if in.Protocol != nil { + in, out := &in.Protocol, &out.Protocol + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *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 DnatRuleV2Observation. +func (in *DnatRuleV2Observation) DeepCopy() *DnatRuleV2Observation { + if in == nil { + return nil + } + out := new(DnatRuleV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DnatRuleV2Parameters) DeepCopyInto(out *DnatRuleV2Parameters) { + *out = *in + if in.ExternalServicePort != nil { + in, out := &in.ExternalServicePort, &out.ExternalServicePort + *out = new(float64) + **out = **in + } + if in.FloatingIPID != nil { + in, out := &in.FloatingIPID, &out.FloatingIPID + *out = new(string) + **out = **in + } + if in.InternalServicePort != nil { + in, out := &in.InternalServicePort, &out.InternalServicePort + *out = new(float64) + **out = **in + } + if in.NATGatewayID != nil { + in, out := &in.NATGatewayID, &out.NATGatewayID + *out = new(string) + **out = **in + } + if in.PortID != nil { + in, out := &in.PortID, &out.PortID + *out = new(string) + **out = **in + } + if in.PrivateIP != nil { + in, out := &in.PrivateIP, &out.PrivateIP + *out = new(string) + **out = **in + } + if in.Protocol != nil { + in, out := &in.Protocol, &out.Protocol + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DnatRuleV2Parameters. +func (in *DnatRuleV2Parameters) DeepCopy() *DnatRuleV2Parameters { + if in == nil { + return nil + } + out := new(DnatRuleV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DnatRuleV2Spec) DeepCopyInto(out *DnatRuleV2Spec) { + *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 DnatRuleV2Spec. +func (in *DnatRuleV2Spec) DeepCopy() *DnatRuleV2Spec { + if in == nil { + return nil + } + out := new(DnatRuleV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DnatRuleV2Status) DeepCopyInto(out *DnatRuleV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DnatRuleV2Status. +func (in *DnatRuleV2Status) DeepCopy() *DnatRuleV2Status { + if in == nil { + return nil + } + out := new(DnatRuleV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *GatewayV2) DeepCopyInto(out *GatewayV2) { + *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 GatewayV2. +func (in *GatewayV2) DeepCopy() *GatewayV2 { + if in == nil { + return nil + } + out := new(GatewayV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *GatewayV2) 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 *GatewayV2InitParameters) DeepCopyInto(out *GatewayV2InitParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.InternalNetworkID != nil { + in, out := &in.InternalNetworkID, &out.InternalNetworkID + *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.RouterID != nil { + in, out := &in.RouterID, &out.RouterID + *out = new(string) + **out = **in + } + if in.Spec != nil { + in, out := &in.Spec, &out.Spec + *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 + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayV2InitParameters. +func (in *GatewayV2InitParameters) DeepCopy() *GatewayV2InitParameters { + if in == nil { + return nil + } + out := new(GatewayV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *GatewayV2List) DeepCopyInto(out *GatewayV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]GatewayV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayV2List. +func (in *GatewayV2List) DeepCopy() *GatewayV2List { + if in == nil { + return nil + } + out := new(GatewayV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *GatewayV2List) 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 *GatewayV2Observation) DeepCopyInto(out *GatewayV2Observation) { + *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.InternalNetworkID != nil { + in, out := &in.InternalNetworkID, &out.InternalNetworkID + *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.RouterID != nil { + in, out := &in.RouterID, &out.RouterID + *out = new(string) + **out = **in + } + if in.Spec != nil { + in, out := &in.Spec, &out.Spec + *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 + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayV2Observation. +func (in *GatewayV2Observation) DeepCopy() *GatewayV2Observation { + if in == nil { + return nil + } + out := new(GatewayV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *GatewayV2Parameters) DeepCopyInto(out *GatewayV2Parameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.InternalNetworkID != nil { + in, out := &in.InternalNetworkID, &out.InternalNetworkID + *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.RouterID != nil { + in, out := &in.RouterID, &out.RouterID + *out = new(string) + **out = **in + } + if in.Spec != nil { + in, out := &in.Spec, &out.Spec + *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 + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayV2Parameters. +func (in *GatewayV2Parameters) DeepCopy() *GatewayV2Parameters { + if in == nil { + return nil + } + out := new(GatewayV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *GatewayV2Spec) DeepCopyInto(out *GatewayV2Spec) { + *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 GatewayV2Spec. +func (in *GatewayV2Spec) DeepCopy() *GatewayV2Spec { + if in == nil { + return nil + } + out := new(GatewayV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *GatewayV2Status) DeepCopyInto(out *GatewayV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayV2Status. +func (in *GatewayV2Status) DeepCopy() *GatewayV2Status { + if in == nil { + return nil + } + out := new(GatewayV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SnatRuleV2) DeepCopyInto(out *SnatRuleV2) { + *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 SnatRuleV2. +func (in *SnatRuleV2) DeepCopy() *SnatRuleV2 { + if in == nil { + return nil + } + out := new(SnatRuleV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *SnatRuleV2) 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 *SnatRuleV2InitParameters) DeepCopyInto(out *SnatRuleV2InitParameters) { + *out = *in + if in.Cidr != nil { + in, out := &in.Cidr, &out.Cidr + *out = new(string) + **out = **in + } + if in.FloatingIPID != nil { + in, out := &in.FloatingIPID, &out.FloatingIPID + *out = new(string) + **out = **in + } + if in.NATGatewayID != nil { + in, out := &in.NATGatewayID, &out.NATGatewayID + *out = new(string) + **out = **in + } + if in.NetworkID != nil { + in, out := &in.NetworkID, &out.NetworkID + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.SourceType != nil { + in, out := &in.SourceType, &out.SourceType + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SnatRuleV2InitParameters. +func (in *SnatRuleV2InitParameters) DeepCopy() *SnatRuleV2InitParameters { + if in == nil { + return nil + } + out := new(SnatRuleV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SnatRuleV2List) DeepCopyInto(out *SnatRuleV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]SnatRuleV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SnatRuleV2List. +func (in *SnatRuleV2List) DeepCopy() *SnatRuleV2List { + if in == nil { + return nil + } + out := new(SnatRuleV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *SnatRuleV2List) 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 *SnatRuleV2Observation) DeepCopyInto(out *SnatRuleV2Observation) { + *out = *in + if in.Cidr != nil { + in, out := &in.Cidr, &out.Cidr + *out = new(string) + **out = **in + } + if in.FloatingIPID != nil { + in, out := &in.FloatingIPID, &out.FloatingIPID + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.NATGatewayID != nil { + in, out := &in.NATGatewayID, &out.NATGatewayID + *out = new(string) + **out = **in + } + if in.NetworkID != nil { + in, out := &in.NetworkID, &out.NetworkID + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.SourceType != nil { + in, out := &in.SourceType, &out.SourceType + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SnatRuleV2Observation. +func (in *SnatRuleV2Observation) DeepCopy() *SnatRuleV2Observation { + if in == nil { + return nil + } + out := new(SnatRuleV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SnatRuleV2Parameters) DeepCopyInto(out *SnatRuleV2Parameters) { + *out = *in + if in.Cidr != nil { + in, out := &in.Cidr, &out.Cidr + *out = new(string) + **out = **in + } + if in.FloatingIPID != nil { + in, out := &in.FloatingIPID, &out.FloatingIPID + *out = new(string) + **out = **in + } + if in.NATGatewayID != nil { + in, out := &in.NATGatewayID, &out.NATGatewayID + *out = new(string) + **out = **in + } + if in.NetworkID != nil { + in, out := &in.NetworkID, &out.NetworkID + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.SourceType != nil { + in, out := &in.SourceType, &out.SourceType + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SnatRuleV2Parameters. +func (in *SnatRuleV2Parameters) DeepCopy() *SnatRuleV2Parameters { + if in == nil { + return nil + } + out := new(SnatRuleV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SnatRuleV2Spec) DeepCopyInto(out *SnatRuleV2Spec) { + *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 SnatRuleV2Spec. +func (in *SnatRuleV2Spec) DeepCopy() *SnatRuleV2Spec { + if in == nil { + return nil + } + out := new(SnatRuleV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SnatRuleV2Status) DeepCopyInto(out *SnatRuleV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SnatRuleV2Status. +func (in *SnatRuleV2Status) DeepCopy() *SnatRuleV2Status { + if in == nil { + return nil + } + out := new(SnatRuleV2Status) + in.DeepCopyInto(out) + return out +} diff --git a/apis/nat/v1alpha1/zz_generated.managed.go b/apis/nat/v1alpha1/zz_generated.managed.go new file mode 100644 index 0000000..a89c99a --- /dev/null +++ b/apis/nat/v1alpha1/zz_generated.managed.go @@ -0,0 +1,188 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import xpv1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + +// GetCondition of this DnatRuleV2. +func (mg *DnatRuleV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this DnatRuleV2. +func (mg *DnatRuleV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this DnatRuleV2. +func (mg *DnatRuleV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this DnatRuleV2. +func (mg *DnatRuleV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this DnatRuleV2. +func (mg *DnatRuleV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this DnatRuleV2. +func (mg *DnatRuleV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this DnatRuleV2. +func (mg *DnatRuleV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this DnatRuleV2. +func (mg *DnatRuleV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this DnatRuleV2. +func (mg *DnatRuleV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this DnatRuleV2. +func (mg *DnatRuleV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this DnatRuleV2. +func (mg *DnatRuleV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this DnatRuleV2. +func (mg *DnatRuleV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this GatewayV2. +func (mg *GatewayV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this GatewayV2. +func (mg *GatewayV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this GatewayV2. +func (mg *GatewayV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this GatewayV2. +func (mg *GatewayV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this GatewayV2. +func (mg *GatewayV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this GatewayV2. +func (mg *GatewayV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this GatewayV2. +func (mg *GatewayV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this GatewayV2. +func (mg *GatewayV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this GatewayV2. +func (mg *GatewayV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this GatewayV2. +func (mg *GatewayV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this GatewayV2. +func (mg *GatewayV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this GatewayV2. +func (mg *GatewayV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this SnatRuleV2. +func (mg *SnatRuleV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this SnatRuleV2. +func (mg *SnatRuleV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this SnatRuleV2. +func (mg *SnatRuleV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this SnatRuleV2. +func (mg *SnatRuleV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this SnatRuleV2. +func (mg *SnatRuleV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this SnatRuleV2. +func (mg *SnatRuleV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this SnatRuleV2. +func (mg *SnatRuleV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this SnatRuleV2. +func (mg *SnatRuleV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this SnatRuleV2. +func (mg *SnatRuleV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this SnatRuleV2. +func (mg *SnatRuleV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this SnatRuleV2. +func (mg *SnatRuleV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this SnatRuleV2. +func (mg *SnatRuleV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} diff --git a/apis/nat/v1alpha1/zz_generated.managedlist.go b/apis/nat/v1alpha1/zz_generated.managedlist.go new file mode 100644 index 0000000..6ea1b32 --- /dev/null +++ b/apis/nat/v1alpha1/zz_generated.managedlist.go @@ -0,0 +1,35 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import resource "github.com/crossplane/crossplane-runtime/pkg/resource" + +// GetItems of this DnatRuleV2List. +func (l *DnatRuleV2List) 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 GatewayV2List. +func (l *GatewayV2List) 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 SnatRuleV2List. +func (l *SnatRuleV2List) 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/nat/v1alpha1/zz_generated_terraformed.go b/apis/nat/v1alpha1/zz_generated_terraformed.go new file mode 100755 index 0000000..5b43059 --- /dev/null +++ b/apis/nat/v1alpha1/zz_generated_terraformed.go @@ -0,0 +1,270 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "github.com/pkg/errors" + + "github.com/crossplane/upjet/pkg/resource" + "github.com/crossplane/upjet/pkg/resource/json" +) + +// GetTerraformResourceType returns Terraform resource type for this DnatRuleV2 +func (mg *DnatRuleV2) GetTerraformResourceType() string { + return "opentelekomcloud_nat_dnat_rule_v2" +} + +// GetConnectionDetailsMapping for this DnatRuleV2 +func (tr *DnatRuleV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this DnatRuleV2 +func (tr *DnatRuleV2) 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 DnatRuleV2 +func (tr *DnatRuleV2) 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 DnatRuleV2 +func (tr *DnatRuleV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this DnatRuleV2 +func (tr *DnatRuleV2) 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 DnatRuleV2 +func (tr *DnatRuleV2) 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 DnatRuleV2 +func (tr *DnatRuleV2) 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) +} + +// LateInitialize this DnatRuleV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *DnatRuleV2) LateInitialize(attrs []byte) (bool, error) { + params := &DnatRuleV2Parameters{} + 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 *DnatRuleV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this GatewayV2 +func (mg *GatewayV2) GetTerraformResourceType() string { + return "opentelekomcloud_nat_gateway_v2" +} + +// GetConnectionDetailsMapping for this GatewayV2 +func (tr *GatewayV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this GatewayV2 +func (tr *GatewayV2) 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 GatewayV2 +func (tr *GatewayV2) 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 GatewayV2 +func (tr *GatewayV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this GatewayV2 +func (tr *GatewayV2) 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 GatewayV2 +func (tr *GatewayV2) 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 GatewayV2 +func (tr *GatewayV2) 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) +} + +// LateInitialize this GatewayV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *GatewayV2) LateInitialize(attrs []byte) (bool, error) { + params := &GatewayV2Parameters{} + 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 *GatewayV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this SnatRuleV2 +func (mg *SnatRuleV2) GetTerraformResourceType() string { + return "opentelekomcloud_nat_snat_rule_v2" +} + +// GetConnectionDetailsMapping for this SnatRuleV2 +func (tr *SnatRuleV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this SnatRuleV2 +func (tr *SnatRuleV2) 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 SnatRuleV2 +func (tr *SnatRuleV2) 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 SnatRuleV2 +func (tr *SnatRuleV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this SnatRuleV2 +func (tr *SnatRuleV2) 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 SnatRuleV2 +func (tr *SnatRuleV2) 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 SnatRuleV2 +func (tr *SnatRuleV2) 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) +} + +// LateInitialize this SnatRuleV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *SnatRuleV2) LateInitialize(attrs []byte) (bool, error) { + params := &SnatRuleV2Parameters{} + 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 *SnatRuleV2) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/nat/v1alpha1/zz_groupversion_info.go b/apis/nat/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..e9e9212 --- /dev/null +++ b/apis/nat/v1alpha1/zz_groupversion_info.go @@ -0,0 +1,36 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +// +kubebuilder:object:generate=true +// +groupName=nat.crossplane.io +// +versionName=v1alpha1 +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +// Package type metadata. +const ( + CRDGroup = "nat.crossplane.io" + CRDVersion = "v1alpha1" +) + +var ( + // CRDGroupVersion is the API Group Version used to register the objects + CRDGroupVersion = schema.GroupVersion{Group: CRDGroup, Version: CRDVersion} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme + SchemeBuilder = &scheme.Builder{GroupVersion: CRDGroupVersion} + + // AddToScheme adds the types in this group-version to the given scheme. + AddToScheme = SchemeBuilder.AddToScheme +) diff --git a/apis/nat/v1alpha1/zz_snatrulev2_types.go b/apis/nat/v1alpha1/zz_snatrulev2_types.go new file mode 100755 index 0000000..d1bcfaa --- /dev/null +++ b/apis/nat/v1alpha1/zz_snatrulev2_types.go @@ -0,0 +1,172 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 SnatRuleV2InitParameters struct { + + // Specifies CIDR, which can be in the format of a network segment or + // a host IP address. This parameter and network_id are alternative. If the value of + // source_type is 0, the CIDR block must be a subset of the VPC subnet CIDR block. If + // the value of source_type is 1, the CIDR block must be a CIDR block of Direct Connect + // and cannot conflict with the VPC CIDR blocks. Changing this creates a new snat rule. + Cidr *string `json:"cidr,omitempty" tf:"cidr,omitempty"` + + // ID of the floating ip this snat rule connects to. + // Changing this creates a new snat rule. + FloatingIPID *string `json:"floatingIpId,omitempty" tf:"floating_ip_id,omitempty"` + + // ID of the nat gateway this snat rule belongs to. + // Changing this creates a new snat rule. + NATGatewayID *string `json:"natGatewayId,omitempty" tf:"nat_gateway_id,omitempty"` + + // ID of the network this snat rule connects to. This parameter + // and cidr are alternative. Changing this creates a new snat rule. + NetworkID *string `json:"networkId,omitempty" tf:"network_id,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // 0: Either network_id or cidr can be specified in a VPC. 1: + // Only cidr can be specified over a dedicated network. Changing this creates a new snat rule. + SourceType *float64 `json:"sourceType,omitempty" tf:"source_type,omitempty"` +} + +type SnatRuleV2Observation struct { + + // Specifies CIDR, which can be in the format of a network segment or + // a host IP address. This parameter and network_id are alternative. If the value of + // source_type is 0, the CIDR block must be a subset of the VPC subnet CIDR block. If + // the value of source_type is 1, the CIDR block must be a CIDR block of Direct Connect + // and cannot conflict with the VPC CIDR blocks. Changing this creates a new snat rule. + Cidr *string `json:"cidr,omitempty" tf:"cidr,omitempty"` + + // ID of the floating ip this snat rule connects to. + // Changing this creates a new snat rule. + FloatingIPID *string `json:"floatingIpId,omitempty" tf:"floating_ip_id,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // ID of the nat gateway this snat rule belongs to. + // Changing this creates a new snat rule. + NATGatewayID *string `json:"natGatewayId,omitempty" tf:"nat_gateway_id,omitempty"` + + // ID of the network this snat rule connects to. This parameter + // and cidr are alternative. Changing this creates a new snat rule. + NetworkID *string `json:"networkId,omitempty" tf:"network_id,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // 0: Either network_id or cidr can be specified in a VPC. 1: + // Only cidr can be specified over a dedicated network. Changing this creates a new snat rule. + SourceType *float64 `json:"sourceType,omitempty" tf:"source_type,omitempty"` +} + +type SnatRuleV2Parameters struct { + + // Specifies CIDR, which can be in the format of a network segment or + // a host IP address. This parameter and network_id are alternative. If the value of + // source_type is 0, the CIDR block must be a subset of the VPC subnet CIDR block. If + // the value of source_type is 1, the CIDR block must be a CIDR block of Direct Connect + // and cannot conflict with the VPC CIDR blocks. Changing this creates a new snat rule. + // +kubebuilder:validation:Optional + Cidr *string `json:"cidr,omitempty" tf:"cidr,omitempty"` + + // ID of the floating ip this snat rule connects to. + // Changing this creates a new snat rule. + // +kubebuilder:validation:Optional + FloatingIPID *string `json:"floatingIpId,omitempty" tf:"floating_ip_id,omitempty"` + + // ID of the nat gateway this snat rule belongs to. + // Changing this creates a new snat rule. + // +kubebuilder:validation:Optional + NATGatewayID *string `json:"natGatewayId,omitempty" tf:"nat_gateway_id,omitempty"` + + // ID of the network this snat rule connects to. This parameter + // and cidr are alternative. Changing this creates a new snat rule. + // +kubebuilder:validation:Optional + NetworkID *string `json:"networkId,omitempty" tf:"network_id,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // 0: Either network_id or cidr can be specified in a VPC. 1: + // Only cidr can be specified over a dedicated network. Changing this creates a new snat rule. + // +kubebuilder:validation:Optional + SourceType *float64 `json:"sourceType,omitempty" tf:"source_type,omitempty"` +} + +// SnatRuleV2Spec defines the desired state of SnatRuleV2 +type SnatRuleV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider SnatRuleV2Parameters `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 SnatRuleV2InitParameters `json:"initProvider,omitempty"` +} + +// SnatRuleV2Status defines the observed state of SnatRuleV2. +type SnatRuleV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider SnatRuleV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// SnatRuleV2 is the Schema for the SnatRuleV2s API. Manages a NAT SNAT Rule resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type SnatRuleV2 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.floatingIpId) || (has(self.initProvider) && has(self.initProvider.floatingIpId))",message="spec.forProvider.floatingIpId is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.natGatewayId) || (has(self.initProvider) && has(self.initProvider.natGatewayId))",message="spec.forProvider.natGatewayId is a required parameter" + Spec SnatRuleV2Spec `json:"spec"` + Status SnatRuleV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// SnatRuleV2List contains a list of SnatRuleV2s +type SnatRuleV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []SnatRuleV2 `json:"items"` +} + +// Repository type metadata. +var ( + SnatRuleV2_Kind = "SnatRuleV2" + SnatRuleV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: SnatRuleV2_Kind}.String() + SnatRuleV2_KindAPIVersion = SnatRuleV2_Kind + "." + CRDGroupVersion.String() + SnatRuleV2_GroupVersionKind = CRDGroupVersion.WithKind(SnatRuleV2_Kind) +) + +func init() { + SchemeBuilder.Register(&SnatRuleV2{}, &SnatRuleV2List{}) +} diff --git a/apis/networking/v1alpha1/zz_floatingipassociatev2_types.go b/apis/networking/v1alpha1/zz_floatingipassociatev2_types.go new file mode 100755 index 0000000..e7ba256 --- /dev/null +++ b/apis/networking/v1alpha1/zz_floatingipassociatev2_types.go @@ -0,0 +1,121 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 FloatingipAssociateV2InitParameters struct { + + // IP Address of an existing floating IP. + FloatingIP *string `json:"floatingIp,omitempty" tf:"floating_ip,omitempty"` + + // ID of an existing port with at least one IP address to + // associate with this floating IP. + PortID *string `json:"portId,omitempty" tf:"port_id,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` +} + +type FloatingipAssociateV2Observation struct { + + // IP Address of an existing floating IP. + FloatingIP *string `json:"floatingIp,omitempty" tf:"floating_ip,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // ID of an existing port with at least one IP address to + // associate with this floating IP. + PortID *string `json:"portId,omitempty" tf:"port_id,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` +} + +type FloatingipAssociateV2Parameters struct { + + // IP Address of an existing floating IP. + // +kubebuilder:validation:Optional + FloatingIP *string `json:"floatingIp,omitempty" tf:"floating_ip,omitempty"` + + // ID of an existing port with at least one IP address to + // associate with this floating IP. + // +kubebuilder:validation:Optional + PortID *string `json:"portId,omitempty" tf:"port_id,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` +} + +// FloatingipAssociateV2Spec defines the desired state of FloatingipAssociateV2 +type FloatingipAssociateV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider FloatingipAssociateV2Parameters `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 FloatingipAssociateV2InitParameters `json:"initProvider,omitempty"` +} + +// FloatingipAssociateV2Status defines the observed state of FloatingipAssociateV2. +type FloatingipAssociateV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider FloatingipAssociateV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// FloatingipAssociateV2 is the Schema for the FloatingipAssociateV2s API. Manages a VPC Floating IP Association resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type FloatingipAssociateV2 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.floatingIp) || (has(self.initProvider) && has(self.initProvider.floatingIp))",message="spec.forProvider.floatingIp is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.portId) || (has(self.initProvider) && has(self.initProvider.portId))",message="spec.forProvider.portId is a required parameter" + Spec FloatingipAssociateV2Spec `json:"spec"` + Status FloatingipAssociateV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// FloatingipAssociateV2List contains a list of FloatingipAssociateV2s +type FloatingipAssociateV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []FloatingipAssociateV2 `json:"items"` +} + +// Repository type metadata. +var ( + FloatingipAssociateV2_Kind = "FloatingipAssociateV2" + FloatingipAssociateV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: FloatingipAssociateV2_Kind}.String() + FloatingipAssociateV2_KindAPIVersion = FloatingipAssociateV2_Kind + "." + CRDGroupVersion.String() + FloatingipAssociateV2_GroupVersionKind = CRDGroupVersion.WithKind(FloatingipAssociateV2_Kind) +) + +func init() { + SchemeBuilder.Register(&FloatingipAssociateV2{}, &FloatingipAssociateV2List{}) +} diff --git a/apis/networking/v1alpha1/zz_floatingipv2_types.go b/apis/networking/v1alpha1/zz_floatingipv2_types.go new file mode 100755 index 0000000..d50bfe0 --- /dev/null +++ b/apis/networking/v1alpha1/zz_floatingipv2_types.go @@ -0,0 +1,167 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 FloatingipV2InitParameters struct { + + // Fixed IP of the port to associate with this floating IP. Required if + // the port has multiple fixed IPs. + FixedIP *string `json:"fixedIp,omitempty" tf:"fixed_ip,omitempty"` + + // The name of the pool from which to obtain the floating + // IP. Default value is admin_external_net. Changing this creates a new floating IP. + Pool *string `json:"pool,omitempty" tf:"pool,omitempty"` + + // ID of an existing port with at least one IP address to + // associate with this floating IP. + PortID *string `json:"portId,omitempty" tf:"port_id,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The target tenant ID in which to allocate the floating + // IP, if you specify this together with a port_id, make sure the target port + // belongs to the same tenant. Changing this creates a new floating IP (which + // may or may not have a different address). + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // Map of additional options. + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +type FloatingipV2Observation struct { + + // The actual floating IP address itself. + Address *string `json:"address,omitempty" tf:"address,omitempty"` + + // Fixed IP of the port to associate with this floating IP. Required if + // the port has multiple fixed IPs. + FixedIP *string `json:"fixedIp,omitempty" tf:"fixed_ip,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The name of the pool from which to obtain the floating + // IP. Default value is admin_external_net. Changing this creates a new floating IP. + Pool *string `json:"pool,omitempty" tf:"pool,omitempty"` + + // ID of an existing port with at least one IP address to + // associate with this floating IP. + PortID *string `json:"portId,omitempty" tf:"port_id,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The target tenant ID in which to allocate the floating + // IP, if you specify this together with a port_id, make sure the target port + // belongs to the same tenant. Changing this creates a new floating IP (which + // may or may not have a different address). + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // Map of additional options. + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +type FloatingipV2Parameters struct { + + // Fixed IP of the port to associate with this floating IP. Required if + // the port has multiple fixed IPs. + // +kubebuilder:validation:Optional + FixedIP *string `json:"fixedIp,omitempty" tf:"fixed_ip,omitempty"` + + // The name of the pool from which to obtain the floating + // IP. Default value is admin_external_net. Changing this creates a new floating IP. + // +kubebuilder:validation:Optional + Pool *string `json:"pool,omitempty" tf:"pool,omitempty"` + + // ID of an existing port with at least one IP address to + // associate with this floating IP. + // +kubebuilder:validation:Optional + PortID *string `json:"portId,omitempty" tf:"port_id,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The target tenant ID in which to allocate the floating + // IP, if you specify this together with a port_id, make sure the target port + // belongs to the same tenant. Changing this creates a new floating IP (which + // may or may not have a different address). + // +kubebuilder:validation:Optional + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // Map of additional options. + // +kubebuilder:validation:Optional + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +// FloatingipV2Spec defines the desired state of FloatingipV2 +type FloatingipV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider FloatingipV2Parameters `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 FloatingipV2InitParameters `json:"initProvider,omitempty"` +} + +// FloatingipV2Status defines the observed state of FloatingipV2. +type FloatingipV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider FloatingipV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// FloatingipV2 is the Schema for the FloatingipV2s API. Manages a VPC Floating IP resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type FloatingipV2 struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec FloatingipV2Spec `json:"spec"` + Status FloatingipV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// FloatingipV2List contains a list of FloatingipV2s +type FloatingipV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []FloatingipV2 `json:"items"` +} + +// Repository type metadata. +var ( + FloatingipV2_Kind = "FloatingipV2" + FloatingipV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: FloatingipV2_Kind}.String() + FloatingipV2_KindAPIVersion = FloatingipV2_Kind + "." + CRDGroupVersion.String() + FloatingipV2_GroupVersionKind = CRDGroupVersion.WithKind(FloatingipV2_Kind) +) + +func init() { + SchemeBuilder.Register(&FloatingipV2{}, &FloatingipV2List{}) +} diff --git a/apis/networking/v1alpha1/zz_generated.deepcopy.go b/apis/networking/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..c053f71 --- /dev/null +++ b/apis/networking/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,3981 @@ +//go:build !ignore_autogenerated + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by controller-gen. DO NOT EDIT. + +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 *AllocationPoolsInitParameters) DeepCopyInto(out *AllocationPoolsInitParameters) { + *out = *in + if in.End != nil { + in, out := &in.End, &out.End + *out = new(string) + **out = **in + } + if in.Start != nil { + in, out := &in.Start, &out.Start + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllocationPoolsInitParameters. +func (in *AllocationPoolsInitParameters) DeepCopy() *AllocationPoolsInitParameters { + if in == nil { + return nil + } + out := new(AllocationPoolsInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AllocationPoolsObservation) DeepCopyInto(out *AllocationPoolsObservation) { + *out = *in + if in.End != nil { + in, out := &in.End, &out.End + *out = new(string) + **out = **in + } + if in.Start != nil { + in, out := &in.Start, &out.Start + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllocationPoolsObservation. +func (in *AllocationPoolsObservation) DeepCopy() *AllocationPoolsObservation { + if in == nil { + return nil + } + out := new(AllocationPoolsObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AllocationPoolsParameters) DeepCopyInto(out *AllocationPoolsParameters) { + *out = *in + if in.End != nil { + in, out := &in.End, &out.End + *out = new(string) + **out = **in + } + if in.Start != nil { + in, out := &in.Start, &out.Start + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllocationPoolsParameters. +func (in *AllocationPoolsParameters) DeepCopy() *AllocationPoolsParameters { + if in == nil { + return nil + } + out := new(AllocationPoolsParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AllowedAddressPairsInitParameters) DeepCopyInto(out *AllowedAddressPairsInitParameters) { + *out = *in + if in.IPAddress != nil { + in, out := &in.IPAddress, &out.IPAddress + *out = new(string) + **out = **in + } + if in.MacAddress != nil { + in, out := &in.MacAddress, &out.MacAddress + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllowedAddressPairsInitParameters. +func (in *AllowedAddressPairsInitParameters) DeepCopy() *AllowedAddressPairsInitParameters { + if in == nil { + return nil + } + out := new(AllowedAddressPairsInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AllowedAddressPairsObservation) DeepCopyInto(out *AllowedAddressPairsObservation) { + *out = *in + if in.IPAddress != nil { + in, out := &in.IPAddress, &out.IPAddress + *out = new(string) + **out = **in + } + if in.MacAddress != nil { + in, out := &in.MacAddress, &out.MacAddress + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllowedAddressPairsObservation. +func (in *AllowedAddressPairsObservation) DeepCopy() *AllowedAddressPairsObservation { + if in == nil { + return nil + } + out := new(AllowedAddressPairsObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AllowedAddressPairsParameters) DeepCopyInto(out *AllowedAddressPairsParameters) { + *out = *in + if in.IPAddress != nil { + in, out := &in.IPAddress, &out.IPAddress + *out = new(string) + **out = **in + } + if in.MacAddress != nil { + in, out := &in.MacAddress, &out.MacAddress + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AllowedAddressPairsParameters. +func (in *AllowedAddressPairsParameters) DeepCopy() *AllowedAddressPairsParameters { + if in == nil { + return nil + } + out := new(AllowedAddressPairsParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExtraDHCPOptionInitParameters) DeepCopyInto(out *ExtraDHCPOptionInitParameters) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *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 ExtraDHCPOptionInitParameters. +func (in *ExtraDHCPOptionInitParameters) DeepCopy() *ExtraDHCPOptionInitParameters { + if in == nil { + return nil + } + out := new(ExtraDHCPOptionInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExtraDHCPOptionObservation) DeepCopyInto(out *ExtraDHCPOptionObservation) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *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 ExtraDHCPOptionObservation. +func (in *ExtraDHCPOptionObservation) DeepCopy() *ExtraDHCPOptionObservation { + if in == nil { + return nil + } + out := new(ExtraDHCPOptionObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExtraDHCPOptionParameters) DeepCopyInto(out *ExtraDHCPOptionParameters) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *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 ExtraDHCPOptionParameters. +func (in *ExtraDHCPOptionParameters) DeepCopy() *ExtraDHCPOptionParameters { + if in == nil { + return nil + } + out := new(ExtraDHCPOptionParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FixedIPInitParameters) DeepCopyInto(out *FixedIPInitParameters) { + *out = *in + if in.IPAddress != nil { + in, out := &in.IPAddress, &out.IPAddress + *out = new(string) + **out = **in + } + if in.SubnetID != nil { + in, out := &in.SubnetID, &out.SubnetID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FixedIPInitParameters. +func (in *FixedIPInitParameters) DeepCopy() *FixedIPInitParameters { + if in == nil { + return nil + } + out := new(FixedIPInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FixedIPObservation) DeepCopyInto(out *FixedIPObservation) { + *out = *in + if in.IPAddress != nil { + in, out := &in.IPAddress, &out.IPAddress + *out = new(string) + **out = **in + } + if in.SubnetID != nil { + in, out := &in.SubnetID, &out.SubnetID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FixedIPObservation. +func (in *FixedIPObservation) DeepCopy() *FixedIPObservation { + if in == nil { + return nil + } + out := new(FixedIPObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FixedIPParameters) DeepCopyInto(out *FixedIPParameters) { + *out = *in + if in.IPAddress != nil { + in, out := &in.IPAddress, &out.IPAddress + *out = new(string) + **out = **in + } + if in.SubnetID != nil { + in, out := &in.SubnetID, &out.SubnetID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FixedIPParameters. +func (in *FixedIPParameters) DeepCopy() *FixedIPParameters { + if in == nil { + return nil + } + out := new(FixedIPParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FloatingipAssociateV2) DeepCopyInto(out *FloatingipAssociateV2) { + *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 FloatingipAssociateV2. +func (in *FloatingipAssociateV2) DeepCopy() *FloatingipAssociateV2 { + if in == nil { + return nil + } + out := new(FloatingipAssociateV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *FloatingipAssociateV2) 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 *FloatingipAssociateV2InitParameters) DeepCopyInto(out *FloatingipAssociateV2InitParameters) { + *out = *in + if in.FloatingIP != nil { + in, out := &in.FloatingIP, &out.FloatingIP + *out = new(string) + **out = **in + } + if in.PortID != nil { + in, out := &in.PortID, &out.PortID + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FloatingipAssociateV2InitParameters. +func (in *FloatingipAssociateV2InitParameters) DeepCopy() *FloatingipAssociateV2InitParameters { + if in == nil { + return nil + } + out := new(FloatingipAssociateV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FloatingipAssociateV2List) DeepCopyInto(out *FloatingipAssociateV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]FloatingipAssociateV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FloatingipAssociateV2List. +func (in *FloatingipAssociateV2List) DeepCopy() *FloatingipAssociateV2List { + if in == nil { + return nil + } + out := new(FloatingipAssociateV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *FloatingipAssociateV2List) 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 *FloatingipAssociateV2Observation) DeepCopyInto(out *FloatingipAssociateV2Observation) { + *out = *in + if in.FloatingIP != nil { + in, out := &in.FloatingIP, &out.FloatingIP + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.PortID != nil { + in, out := &in.PortID, &out.PortID + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FloatingipAssociateV2Observation. +func (in *FloatingipAssociateV2Observation) DeepCopy() *FloatingipAssociateV2Observation { + if in == nil { + return nil + } + out := new(FloatingipAssociateV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FloatingipAssociateV2Parameters) DeepCopyInto(out *FloatingipAssociateV2Parameters) { + *out = *in + if in.FloatingIP != nil { + in, out := &in.FloatingIP, &out.FloatingIP + *out = new(string) + **out = **in + } + if in.PortID != nil { + in, out := &in.PortID, &out.PortID + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FloatingipAssociateV2Parameters. +func (in *FloatingipAssociateV2Parameters) DeepCopy() *FloatingipAssociateV2Parameters { + if in == nil { + return nil + } + out := new(FloatingipAssociateV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FloatingipAssociateV2Spec) DeepCopyInto(out *FloatingipAssociateV2Spec) { + *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 FloatingipAssociateV2Spec. +func (in *FloatingipAssociateV2Spec) DeepCopy() *FloatingipAssociateV2Spec { + if in == nil { + return nil + } + out := new(FloatingipAssociateV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FloatingipAssociateV2Status) DeepCopyInto(out *FloatingipAssociateV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FloatingipAssociateV2Status. +func (in *FloatingipAssociateV2Status) DeepCopy() *FloatingipAssociateV2Status { + if in == nil { + return nil + } + out := new(FloatingipAssociateV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FloatingipV2) DeepCopyInto(out *FloatingipV2) { + *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 FloatingipV2. +func (in *FloatingipV2) DeepCopy() *FloatingipV2 { + if in == nil { + return nil + } + out := new(FloatingipV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *FloatingipV2) 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 *FloatingipV2InitParameters) DeepCopyInto(out *FloatingipV2InitParameters) { + *out = *in + if in.FixedIP != nil { + in, out := &in.FixedIP, &out.FixedIP + *out = new(string) + **out = **in + } + if in.Pool != nil { + in, out := &in.Pool, &out.Pool + *out = new(string) + **out = **in + } + if in.PortID != nil { + in, out := &in.PortID, &out.PortID + *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.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 FloatingipV2InitParameters. +func (in *FloatingipV2InitParameters) DeepCopy() *FloatingipV2InitParameters { + if in == nil { + return nil + } + out := new(FloatingipV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FloatingipV2List) DeepCopyInto(out *FloatingipV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]FloatingipV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FloatingipV2List. +func (in *FloatingipV2List) DeepCopy() *FloatingipV2List { + if in == nil { + return nil + } + out := new(FloatingipV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *FloatingipV2List) 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 *FloatingipV2Observation) DeepCopyInto(out *FloatingipV2Observation) { + *out = *in + if in.Address != nil { + in, out := &in.Address, &out.Address + *out = new(string) + **out = **in + } + if in.FixedIP != nil { + in, out := &in.FixedIP, &out.FixedIP + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Pool != nil { + in, out := &in.Pool, &out.Pool + *out = new(string) + **out = **in + } + if in.PortID != nil { + in, out := &in.PortID, &out.PortID + *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.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 FloatingipV2Observation. +func (in *FloatingipV2Observation) DeepCopy() *FloatingipV2Observation { + if in == nil { + return nil + } + out := new(FloatingipV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FloatingipV2Parameters) DeepCopyInto(out *FloatingipV2Parameters) { + *out = *in + if in.FixedIP != nil { + in, out := &in.FixedIP, &out.FixedIP + *out = new(string) + **out = **in + } + if in.Pool != nil { + in, out := &in.Pool, &out.Pool + *out = new(string) + **out = **in + } + if in.PortID != nil { + in, out := &in.PortID, &out.PortID + *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.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 FloatingipV2Parameters. +func (in *FloatingipV2Parameters) DeepCopy() *FloatingipV2Parameters { + if in == nil { + return nil + } + out := new(FloatingipV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FloatingipV2Spec) DeepCopyInto(out *FloatingipV2Spec) { + *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 FloatingipV2Spec. +func (in *FloatingipV2Spec) DeepCopy() *FloatingipV2Spec { + if in == nil { + return nil + } + out := new(FloatingipV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FloatingipV2Status) DeepCopyInto(out *FloatingipV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FloatingipV2Status. +func (in *FloatingipV2Status) DeepCopy() *FloatingipV2Status { + if in == nil { + return nil + } + out := new(FloatingipV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *HostRoutesInitParameters) DeepCopyInto(out *HostRoutesInitParameters) { + *out = *in + if in.DestinationCidr != nil { + in, out := &in.DestinationCidr, &out.DestinationCidr + *out = new(string) + **out = **in + } + if in.NextHop != nil { + in, out := &in.NextHop, &out.NextHop + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostRoutesInitParameters. +func (in *HostRoutesInitParameters) DeepCopy() *HostRoutesInitParameters { + if in == nil { + return nil + } + out := new(HostRoutesInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *HostRoutesObservation) DeepCopyInto(out *HostRoutesObservation) { + *out = *in + if in.DestinationCidr != nil { + in, out := &in.DestinationCidr, &out.DestinationCidr + *out = new(string) + **out = **in + } + if in.NextHop != nil { + in, out := &in.NextHop, &out.NextHop + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostRoutesObservation. +func (in *HostRoutesObservation) DeepCopy() *HostRoutesObservation { + if in == nil { + return nil + } + out := new(HostRoutesObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *HostRoutesParameters) DeepCopyInto(out *HostRoutesParameters) { + *out = *in + if in.DestinationCidr != nil { + in, out := &in.DestinationCidr, &out.DestinationCidr + *out = new(string) + **out = **in + } + if in.NextHop != nil { + in, out := &in.NextHop, &out.NextHop + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HostRoutesParameters. +func (in *HostRoutesParameters) DeepCopy() *HostRoutesParameters { + if in == nil { + return nil + } + out := new(HostRoutesParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkV2) DeepCopyInto(out *NetworkV2) { + *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 NetworkV2. +func (in *NetworkV2) DeepCopy() *NetworkV2 { + if in == nil { + return nil + } + out := new(NetworkV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *NetworkV2) 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 *NetworkV2InitParameters) DeepCopyInto(out *NetworkV2InitParameters) { + *out = *in + if in.AdminStateUp != nil { + in, out := &in.AdminStateUp, &out.AdminStateUp + *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.Segments != nil { + in, out := &in.Segments, &out.Segments + *out = make([]SegmentsInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Shared != nil { + in, out := &in.Shared, &out.Shared + *out = new(string) + **out = **in + } + if in.TenantID != nil { + in, out := &in.TenantID, &out.TenantID + *out = new(string) + **out = **in + } + if in.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 NetworkV2InitParameters. +func (in *NetworkV2InitParameters) DeepCopy() *NetworkV2InitParameters { + if in == nil { + return nil + } + out := new(NetworkV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkV2List) DeepCopyInto(out *NetworkV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]NetworkV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkV2List. +func (in *NetworkV2List) DeepCopy() *NetworkV2List { + if in == nil { + return nil + } + out := new(NetworkV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *NetworkV2List) 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 *NetworkV2Observation) DeepCopyInto(out *NetworkV2Observation) { + *out = *in + if in.AdminStateUp != nil { + in, out := &in.AdminStateUp, &out.AdminStateUp + *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.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.Segments != nil { + in, out := &in.Segments, &out.Segments + *out = make([]SegmentsObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Shared != nil { + in, out := &in.Shared, &out.Shared + *out = new(string) + **out = **in + } + if in.TenantID != nil { + in, out := &in.TenantID, &out.TenantID + *out = new(string) + **out = **in + } + if in.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 NetworkV2Observation. +func (in *NetworkV2Observation) DeepCopy() *NetworkV2Observation { + if in == nil { + return nil + } + out := new(NetworkV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkV2Parameters) DeepCopyInto(out *NetworkV2Parameters) { + *out = *in + if in.AdminStateUp != nil { + in, out := &in.AdminStateUp, &out.AdminStateUp + *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.Segments != nil { + in, out := &in.Segments, &out.Segments + *out = make([]SegmentsParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Shared != nil { + in, out := &in.Shared, &out.Shared + *out = new(string) + **out = **in + } + if in.TenantID != nil { + in, out := &in.TenantID, &out.TenantID + *out = new(string) + **out = **in + } + if in.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 NetworkV2Parameters. +func (in *NetworkV2Parameters) DeepCopy() *NetworkV2Parameters { + if in == nil { + return nil + } + out := new(NetworkV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkV2Spec) DeepCopyInto(out *NetworkV2Spec) { + *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 NetworkV2Spec. +func (in *NetworkV2Spec) DeepCopy() *NetworkV2Spec { + if in == nil { + return nil + } + out := new(NetworkV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NetworkV2Status) DeepCopyInto(out *NetworkV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NetworkV2Status. +func (in *NetworkV2Status) DeepCopy() *NetworkV2Status { + if in == nil { + return nil + } + out := new(NetworkV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PortSecgroupAssociateV2) DeepCopyInto(out *PortSecgroupAssociateV2) { + *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 PortSecgroupAssociateV2. +func (in *PortSecgroupAssociateV2) DeepCopy() *PortSecgroupAssociateV2 { + if in == nil { + return nil + } + out := new(PortSecgroupAssociateV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PortSecgroupAssociateV2) 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 *PortSecgroupAssociateV2InitParameters) DeepCopyInto(out *PortSecgroupAssociateV2InitParameters) { + *out = *in + if in.Force != nil { + in, out := &in.Force, &out.Force + *out = new(bool) + **out = **in + } + if in.PortID != nil { + in, out := &in.PortID, &out.PortID + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **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 + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortSecgroupAssociateV2InitParameters. +func (in *PortSecgroupAssociateV2InitParameters) DeepCopy() *PortSecgroupAssociateV2InitParameters { + if in == nil { + return nil + } + out := new(PortSecgroupAssociateV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PortSecgroupAssociateV2List) DeepCopyInto(out *PortSecgroupAssociateV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]PortSecgroupAssociateV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortSecgroupAssociateV2List. +func (in *PortSecgroupAssociateV2List) DeepCopy() *PortSecgroupAssociateV2List { + if in == nil { + return nil + } + out := new(PortSecgroupAssociateV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PortSecgroupAssociateV2List) 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 *PortSecgroupAssociateV2Observation) DeepCopyInto(out *PortSecgroupAssociateV2Observation) { + *out = *in + if in.AllSecurityGroupIds != nil { + in, out := &in.AllSecurityGroupIds, &out.AllSecurityGroupIds + *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.Force != nil { + in, out := &in.Force, &out.Force + *out = new(bool) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.PortID != nil { + in, out := &in.PortID, &out.PortID + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **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 + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortSecgroupAssociateV2Observation. +func (in *PortSecgroupAssociateV2Observation) DeepCopy() *PortSecgroupAssociateV2Observation { + if in == nil { + return nil + } + out := new(PortSecgroupAssociateV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PortSecgroupAssociateV2Parameters) DeepCopyInto(out *PortSecgroupAssociateV2Parameters) { + *out = *in + if in.Force != nil { + in, out := &in.Force, &out.Force + *out = new(bool) + **out = **in + } + if in.PortID != nil { + in, out := &in.PortID, &out.PortID + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **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 + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortSecgroupAssociateV2Parameters. +func (in *PortSecgroupAssociateV2Parameters) DeepCopy() *PortSecgroupAssociateV2Parameters { + if in == nil { + return nil + } + out := new(PortSecgroupAssociateV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PortSecgroupAssociateV2Spec) DeepCopyInto(out *PortSecgroupAssociateV2Spec) { + *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 PortSecgroupAssociateV2Spec. +func (in *PortSecgroupAssociateV2Spec) DeepCopy() *PortSecgroupAssociateV2Spec { + if in == nil { + return nil + } + out := new(PortSecgroupAssociateV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PortSecgroupAssociateV2Status) DeepCopyInto(out *PortSecgroupAssociateV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortSecgroupAssociateV2Status. +func (in *PortSecgroupAssociateV2Status) DeepCopy() *PortSecgroupAssociateV2Status { + if in == nil { + return nil + } + out := new(PortSecgroupAssociateV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PortV2) DeepCopyInto(out *PortV2) { + *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 PortV2. +func (in *PortV2) DeepCopy() *PortV2 { + if in == nil { + return nil + } + out := new(PortV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PortV2) 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 *PortV2InitParameters) DeepCopyInto(out *PortV2InitParameters) { + *out = *in + if in.AdminStateUp != nil { + in, out := &in.AdminStateUp, &out.AdminStateUp + *out = new(bool) + **out = **in + } + if in.AllowedAddressPairs != nil { + in, out := &in.AllowedAddressPairs, &out.AllowedAddressPairs + *out = make([]AllowedAddressPairsInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.DeviceID != nil { + in, out := &in.DeviceID, &out.DeviceID + *out = new(string) + **out = **in + } + if in.DeviceOwner != nil { + in, out := &in.DeviceOwner, &out.DeviceOwner + *out = new(string) + **out = **in + } + if in.ExtraDHCPOption != nil { + in, out := &in.ExtraDHCPOption, &out.ExtraDHCPOption + *out = make([]ExtraDHCPOptionInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.FixedIP != nil { + in, out := &in.FixedIP, &out.FixedIP + *out = make([]FixedIPInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.MacAddress != nil { + in, out := &in.MacAddress, &out.MacAddress + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NetworkID != nil { + in, out := &in.NetworkID, &out.NetworkID + *out = new(string) + **out = **in + } + if in.NoSecurityGroups != nil { + in, out := &in.NoSecurityGroups, &out.NoSecurityGroups + *out = new(bool) + **out = **in + } + if in.PortSecurityEnabled != nil { + in, out := &in.PortSecurityEnabled, &out.PortSecurityEnabled + *out = new(bool) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **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.TenantID != nil { + in, out := &in.TenantID, &out.TenantID + *out = new(string) + **out = **in + } + if in.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 PortV2InitParameters. +func (in *PortV2InitParameters) DeepCopy() *PortV2InitParameters { + if in == nil { + return nil + } + out := new(PortV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PortV2List) DeepCopyInto(out *PortV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]PortV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortV2List. +func (in *PortV2List) DeepCopy() *PortV2List { + if in == nil { + return nil + } + out := new(PortV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PortV2List) 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 *PortV2Observation) DeepCopyInto(out *PortV2Observation) { + *out = *in + if in.AdminStateUp != nil { + in, out := &in.AdminStateUp, &out.AdminStateUp + *out = new(bool) + **out = **in + } + if in.AllFixedIps != nil { + in, out := &in.AllFixedIps, &out.AllFixedIps + *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.AllowedAddressPairs != nil { + in, out := &in.AllowedAddressPairs, &out.AllowedAddressPairs + *out = make([]AllowedAddressPairsObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.DeviceID != nil { + in, out := &in.DeviceID, &out.DeviceID + *out = new(string) + **out = **in + } + if in.DeviceOwner != nil { + in, out := &in.DeviceOwner, &out.DeviceOwner + *out = new(string) + **out = **in + } + if in.ExtraDHCPOption != nil { + in, out := &in.ExtraDHCPOption, &out.ExtraDHCPOption + *out = make([]ExtraDHCPOptionObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.FixedIP != nil { + in, out := &in.FixedIP, &out.FixedIP + *out = make([]FixedIPObservation, 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.MacAddress != nil { + in, out := &in.MacAddress, &out.MacAddress + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NetworkID != nil { + in, out := &in.NetworkID, &out.NetworkID + *out = new(string) + **out = **in + } + if in.NoSecurityGroups != nil { + in, out := &in.NoSecurityGroups, &out.NoSecurityGroups + *out = new(bool) + **out = **in + } + if in.PortSecurityEnabled != nil { + in, out := &in.PortSecurityEnabled, &out.PortSecurityEnabled + *out = new(bool) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **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.TenantID != nil { + in, out := &in.TenantID, &out.TenantID + *out = new(string) + **out = **in + } + if in.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 PortV2Observation. +func (in *PortV2Observation) DeepCopy() *PortV2Observation { + if in == nil { + return nil + } + out := new(PortV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PortV2Parameters) DeepCopyInto(out *PortV2Parameters) { + *out = *in + if in.AdminStateUp != nil { + in, out := &in.AdminStateUp, &out.AdminStateUp + *out = new(bool) + **out = **in + } + if in.AllowedAddressPairs != nil { + in, out := &in.AllowedAddressPairs, &out.AllowedAddressPairs + *out = make([]AllowedAddressPairsParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.DeviceID != nil { + in, out := &in.DeviceID, &out.DeviceID + *out = new(string) + **out = **in + } + if in.DeviceOwner != nil { + in, out := &in.DeviceOwner, &out.DeviceOwner + *out = new(string) + **out = **in + } + if in.ExtraDHCPOption != nil { + in, out := &in.ExtraDHCPOption, &out.ExtraDHCPOption + *out = make([]ExtraDHCPOptionParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.FixedIP != nil { + in, out := &in.FixedIP, &out.FixedIP + *out = make([]FixedIPParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.MacAddress != nil { + in, out := &in.MacAddress, &out.MacAddress + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NetworkID != nil { + in, out := &in.NetworkID, &out.NetworkID + *out = new(string) + **out = **in + } + if in.NoSecurityGroups != nil { + in, out := &in.NoSecurityGroups, &out.NoSecurityGroups + *out = new(bool) + **out = **in + } + if in.PortSecurityEnabled != nil { + in, out := &in.PortSecurityEnabled, &out.PortSecurityEnabled + *out = new(bool) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **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.TenantID != nil { + in, out := &in.TenantID, &out.TenantID + *out = new(string) + **out = **in + } + if in.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 PortV2Parameters. +func (in *PortV2Parameters) DeepCopy() *PortV2Parameters { + if in == nil { + return nil + } + out := new(PortV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PortV2Spec) DeepCopyInto(out *PortV2Spec) { + *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 PortV2Spec. +func (in *PortV2Spec) DeepCopy() *PortV2Spec { + if in == nil { + return nil + } + out := new(PortV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PortV2Status) DeepCopyInto(out *PortV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortV2Status. +func (in *PortV2Status) DeepCopy() *PortV2Status { + if in == nil { + return nil + } + out := new(PortV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RouterInterfaceV2) DeepCopyInto(out *RouterInterfaceV2) { + *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 RouterInterfaceV2. +func (in *RouterInterfaceV2) DeepCopy() *RouterInterfaceV2 { + if in == nil { + return nil + } + out := new(RouterInterfaceV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *RouterInterfaceV2) 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 *RouterInterfaceV2InitParameters) DeepCopyInto(out *RouterInterfaceV2InitParameters) { + *out = *in + if in.PortID != nil { + in, out := &in.PortID, &out.PortID + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterInterfaceV2InitParameters. +func (in *RouterInterfaceV2InitParameters) DeepCopy() *RouterInterfaceV2InitParameters { + if in == nil { + return nil + } + out := new(RouterInterfaceV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RouterInterfaceV2List) DeepCopyInto(out *RouterInterfaceV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]RouterInterfaceV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterInterfaceV2List. +func (in *RouterInterfaceV2List) DeepCopy() *RouterInterfaceV2List { + if in == nil { + return nil + } + out := new(RouterInterfaceV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *RouterInterfaceV2List) 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 *RouterInterfaceV2Observation) DeepCopyInto(out *RouterInterfaceV2Observation) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.PortID != nil { + in, out := &in.PortID, &out.PortID + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + 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 + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterInterfaceV2Observation. +func (in *RouterInterfaceV2Observation) DeepCopy() *RouterInterfaceV2Observation { + if in == nil { + return nil + } + out := new(RouterInterfaceV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RouterInterfaceV2Parameters) DeepCopyInto(out *RouterInterfaceV2Parameters) { + *out = *in + if in.PortID != nil { + in, out := &in.PortID, &out.PortID + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.RouterID != nil { + in, out := &in.RouterID, &out.RouterID + *out = new(string) + **out = **in + } + if in.RouterIDRef != nil { + in, out := &in.RouterIDRef, &out.RouterIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + 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.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) + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterInterfaceV2Parameters. +func (in *RouterInterfaceV2Parameters) DeepCopy() *RouterInterfaceV2Parameters { + if in == nil { + return nil + } + out := new(RouterInterfaceV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RouterInterfaceV2Spec) DeepCopyInto(out *RouterInterfaceV2Spec) { + *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 RouterInterfaceV2Spec. +func (in *RouterInterfaceV2Spec) DeepCopy() *RouterInterfaceV2Spec { + if in == nil { + return nil + } + out := new(RouterInterfaceV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RouterInterfaceV2Status) DeepCopyInto(out *RouterInterfaceV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterInterfaceV2Status. +func (in *RouterInterfaceV2Status) DeepCopy() *RouterInterfaceV2Status { + if in == nil { + return nil + } + out := new(RouterInterfaceV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RouterRouteV2) DeepCopyInto(out *RouterRouteV2) { + *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 RouterRouteV2. +func (in *RouterRouteV2) DeepCopy() *RouterRouteV2 { + if in == nil { + return nil + } + out := new(RouterRouteV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *RouterRouteV2) 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 *RouterRouteV2InitParameters) DeepCopyInto(out *RouterRouteV2InitParameters) { + *out = *in + if in.DestinationCidr != nil { + in, out := &in.DestinationCidr, &out.DestinationCidr + *out = new(string) + **out = **in + } + if in.NextHop != nil { + in, out := &in.NextHop, &out.NextHop + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.RouterID != nil { + in, out := &in.RouterID, &out.RouterID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterRouteV2InitParameters. +func (in *RouterRouteV2InitParameters) DeepCopy() *RouterRouteV2InitParameters { + if in == nil { + return nil + } + out := new(RouterRouteV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RouterRouteV2List) DeepCopyInto(out *RouterRouteV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]RouterRouteV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterRouteV2List. +func (in *RouterRouteV2List) DeepCopy() *RouterRouteV2List { + if in == nil { + return nil + } + out := new(RouterRouteV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *RouterRouteV2List) 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 *RouterRouteV2Observation) DeepCopyInto(out *RouterRouteV2Observation) { + *out = *in + if in.DestinationCidr != nil { + in, out := &in.DestinationCidr, &out.DestinationCidr + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.NextHop != nil { + in, out := &in.NextHop, &out.NextHop + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.RouterID != nil { + in, out := &in.RouterID, &out.RouterID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterRouteV2Observation. +func (in *RouterRouteV2Observation) DeepCopy() *RouterRouteV2Observation { + if in == nil { + return nil + } + out := new(RouterRouteV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RouterRouteV2Parameters) DeepCopyInto(out *RouterRouteV2Parameters) { + *out = *in + if in.DestinationCidr != nil { + in, out := &in.DestinationCidr, &out.DestinationCidr + *out = new(string) + **out = **in + } + if in.NextHop != nil { + in, out := &in.NextHop, &out.NextHop + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.RouterID != nil { + in, out := &in.RouterID, &out.RouterID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterRouteV2Parameters. +func (in *RouterRouteV2Parameters) DeepCopy() *RouterRouteV2Parameters { + if in == nil { + return nil + } + out := new(RouterRouteV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RouterRouteV2Spec) DeepCopyInto(out *RouterRouteV2Spec) { + *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 RouterRouteV2Spec. +func (in *RouterRouteV2Spec) DeepCopy() *RouterRouteV2Spec { + if in == nil { + return nil + } + out := new(RouterRouteV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RouterRouteV2Status) DeepCopyInto(out *RouterRouteV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterRouteV2Status. +func (in *RouterRouteV2Status) DeepCopy() *RouterRouteV2Status { + if in == nil { + return nil + } + out := new(RouterRouteV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RouterV2) DeepCopyInto(out *RouterV2) { + *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 RouterV2. +func (in *RouterV2) DeepCopy() *RouterV2 { + if in == nil { + return nil + } + out := new(RouterV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *RouterV2) 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 *RouterV2InitParameters) DeepCopyInto(out *RouterV2InitParameters) { + *out = *in + if in.AdminStateUp != nil { + in, out := &in.AdminStateUp, &out.AdminStateUp + *out = new(bool) + **out = **in + } + if in.Distributed != nil { + in, out := &in.Distributed, &out.Distributed + *out = new(bool) + **out = **in + } + if in.EnableSnat != nil { + in, out := &in.EnableSnat, &out.EnableSnat + *out = new(bool) + **out = **in + } + if in.ExternalGateway != nil { + in, out := &in.ExternalGateway, &out.ExternalGateway + *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.TenantID != nil { + in, out := &in.TenantID, &out.TenantID + *out = new(string) + **out = **in + } + if in.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 RouterV2InitParameters. +func (in *RouterV2InitParameters) DeepCopy() *RouterV2InitParameters { + if in == nil { + return nil + } + out := new(RouterV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RouterV2List) DeepCopyInto(out *RouterV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]RouterV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterV2List. +func (in *RouterV2List) DeepCopy() *RouterV2List { + if in == nil { + return nil + } + out := new(RouterV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *RouterV2List) 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 *RouterV2Observation) DeepCopyInto(out *RouterV2Observation) { + *out = *in + if in.AdminStateUp != nil { + in, out := &in.AdminStateUp, &out.AdminStateUp + *out = new(bool) + **out = **in + } + if in.Distributed != nil { + in, out := &in.Distributed, &out.Distributed + *out = new(bool) + **out = **in + } + if in.EnableSnat != nil { + in, out := &in.EnableSnat, &out.EnableSnat + *out = new(bool) + **out = **in + } + if in.ExternalGateway != nil { + in, out := &in.ExternalGateway, &out.ExternalGateway + *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.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.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 RouterV2Observation. +func (in *RouterV2Observation) DeepCopy() *RouterV2Observation { + if in == nil { + return nil + } + out := new(RouterV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RouterV2Parameters) DeepCopyInto(out *RouterV2Parameters) { + *out = *in + if in.AdminStateUp != nil { + in, out := &in.AdminStateUp, &out.AdminStateUp + *out = new(bool) + **out = **in + } + if in.Distributed != nil { + in, out := &in.Distributed, &out.Distributed + *out = new(bool) + **out = **in + } + if in.EnableSnat != nil { + in, out := &in.EnableSnat, &out.EnableSnat + *out = new(bool) + **out = **in + } + if in.ExternalGateway != nil { + in, out := &in.ExternalGateway, &out.ExternalGateway + *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.TenantID != nil { + in, out := &in.TenantID, &out.TenantID + *out = new(string) + **out = **in + } + if in.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 RouterV2Parameters. +func (in *RouterV2Parameters) DeepCopy() *RouterV2Parameters { + if in == nil { + return nil + } + out := new(RouterV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RouterV2Spec) DeepCopyInto(out *RouterV2Spec) { + *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 RouterV2Spec. +func (in *RouterV2Spec) DeepCopy() *RouterV2Spec { + if in == nil { + return nil + } + out := new(RouterV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RouterV2Status) DeepCopyInto(out *RouterV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouterV2Status. +func (in *RouterV2Status) DeepCopy() *RouterV2Status { + if in == nil { + return nil + } + out := new(RouterV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SecgroupRuleV2) DeepCopyInto(out *SecgroupRuleV2) { + *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 SecgroupRuleV2. +func (in *SecgroupRuleV2) DeepCopy() *SecgroupRuleV2 { + if in == nil { + return nil + } + out := new(SecgroupRuleV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *SecgroupRuleV2) 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 *SecgroupRuleV2InitParameters) DeepCopyInto(out *SecgroupRuleV2InitParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Direction != nil { + in, out := &in.Direction, &out.Direction + *out = new(string) + **out = **in + } + if in.Ethertype != nil { + in, out := &in.Ethertype, &out.Ethertype + *out = new(string) + **out = **in + } + if in.PortRangeMax != nil { + in, out := &in.PortRangeMax, &out.PortRangeMax + *out = new(float64) + **out = **in + } + if in.PortRangeMin != nil { + in, out := &in.PortRangeMin, &out.PortRangeMin + *out = new(float64) + **out = **in + } + if in.Protocol != nil { + in, out := &in.Protocol, &out.Protocol + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.RemoteGroupID != nil { + in, out := &in.RemoteGroupID, &out.RemoteGroupID + *out = new(string) + **out = **in + } + if in.RemoteIPPrefix != nil { + in, out := &in.RemoteIPPrefix, &out.RemoteIPPrefix + *out = new(string) + **out = **in + } + if in.SecurityGroupID != nil { + in, out := &in.SecurityGroupID, &out.SecurityGroupID + *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 SecgroupRuleV2InitParameters. +func (in *SecgroupRuleV2InitParameters) DeepCopy() *SecgroupRuleV2InitParameters { + if in == nil { + return nil + } + out := new(SecgroupRuleV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SecgroupRuleV2List) DeepCopyInto(out *SecgroupRuleV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]SecgroupRuleV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecgroupRuleV2List. +func (in *SecgroupRuleV2List) DeepCopy() *SecgroupRuleV2List { + if in == nil { + return nil + } + out := new(SecgroupRuleV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *SecgroupRuleV2List) 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 *SecgroupRuleV2Observation) DeepCopyInto(out *SecgroupRuleV2Observation) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Direction != nil { + in, out := &in.Direction, &out.Direction + *out = new(string) + **out = **in + } + if in.Ethertype != nil { + in, out := &in.Ethertype, &out.Ethertype + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.PortRangeMax != nil { + in, out := &in.PortRangeMax, &out.PortRangeMax + *out = new(float64) + **out = **in + } + if in.PortRangeMin != nil { + in, out := &in.PortRangeMin, &out.PortRangeMin + *out = new(float64) + **out = **in + } + if in.Protocol != nil { + in, out := &in.Protocol, &out.Protocol + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.RemoteGroupID != nil { + in, out := &in.RemoteGroupID, &out.RemoteGroupID + *out = new(string) + **out = **in + } + if in.RemoteIPPrefix != nil { + in, out := &in.RemoteIPPrefix, &out.RemoteIPPrefix + *out = new(string) + **out = **in + } + if in.SecurityGroupID != nil { + in, out := &in.SecurityGroupID, &out.SecurityGroupID + *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 SecgroupRuleV2Observation. +func (in *SecgroupRuleV2Observation) DeepCopy() *SecgroupRuleV2Observation { + if in == nil { + return nil + } + out := new(SecgroupRuleV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SecgroupRuleV2Parameters) DeepCopyInto(out *SecgroupRuleV2Parameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Direction != nil { + in, out := &in.Direction, &out.Direction + *out = new(string) + **out = **in + } + if in.Ethertype != nil { + in, out := &in.Ethertype, &out.Ethertype + *out = new(string) + **out = **in + } + if in.PortRangeMax != nil { + in, out := &in.PortRangeMax, &out.PortRangeMax + *out = new(float64) + **out = **in + } + if in.PortRangeMin != nil { + in, out := &in.PortRangeMin, &out.PortRangeMin + *out = new(float64) + **out = **in + } + if in.Protocol != nil { + in, out := &in.Protocol, &out.Protocol + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.RemoteGroupID != nil { + in, out := &in.RemoteGroupID, &out.RemoteGroupID + *out = new(string) + **out = **in + } + if in.RemoteIPPrefix != nil { + in, out := &in.RemoteIPPrefix, &out.RemoteIPPrefix + *out = new(string) + **out = **in + } + if in.SecurityGroupID != nil { + in, out := &in.SecurityGroupID, &out.SecurityGroupID + *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 SecgroupRuleV2Parameters. +func (in *SecgroupRuleV2Parameters) DeepCopy() *SecgroupRuleV2Parameters { + if in == nil { + return nil + } + out := new(SecgroupRuleV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SecgroupRuleV2Spec) DeepCopyInto(out *SecgroupRuleV2Spec) { + *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 SecgroupRuleV2Spec. +func (in *SecgroupRuleV2Spec) DeepCopy() *SecgroupRuleV2Spec { + if in == nil { + return nil + } + out := new(SecgroupRuleV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SecgroupRuleV2Status) DeepCopyInto(out *SecgroupRuleV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecgroupRuleV2Status. +func (in *SecgroupRuleV2Status) DeepCopy() *SecgroupRuleV2Status { + if in == nil { + return nil + } + out := new(SecgroupRuleV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SecgroupV2) DeepCopyInto(out *SecgroupV2) { + *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 SecgroupV2. +func (in *SecgroupV2) DeepCopy() *SecgroupV2 { + if in == nil { + return nil + } + out := new(SecgroupV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *SecgroupV2) 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 *SecgroupV2InitParameters) DeepCopyInto(out *SecgroupV2InitParameters) { + *out = *in + if in.DeleteDefaultRules != nil { + in, out := &in.DeleteDefaultRules, &out.DeleteDefaultRules + *out = new(bool) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *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.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 SecgroupV2InitParameters. +func (in *SecgroupV2InitParameters) DeepCopy() *SecgroupV2InitParameters { + if in == nil { + return nil + } + out := new(SecgroupV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SecgroupV2List) DeepCopyInto(out *SecgroupV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]SecgroupV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecgroupV2List. +func (in *SecgroupV2List) DeepCopy() *SecgroupV2List { + if in == nil { + return nil + } + out := new(SecgroupV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *SecgroupV2List) 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 *SecgroupV2Observation) DeepCopyInto(out *SecgroupV2Observation) { + *out = *in + if in.DeleteDefaultRules != nil { + in, out := &in.DeleteDefaultRules, &out.DeleteDefaultRules + *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.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.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 SecgroupV2Observation. +func (in *SecgroupV2Observation) DeepCopy() *SecgroupV2Observation { + if in == nil { + return nil + } + out := new(SecgroupV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SecgroupV2Parameters) DeepCopyInto(out *SecgroupV2Parameters) { + *out = *in + if in.DeleteDefaultRules != nil { + in, out := &in.DeleteDefaultRules, &out.DeleteDefaultRules + *out = new(bool) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *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.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 SecgroupV2Parameters. +func (in *SecgroupV2Parameters) DeepCopy() *SecgroupV2Parameters { + if in == nil { + return nil + } + out := new(SecgroupV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SecgroupV2Spec) DeepCopyInto(out *SecgroupV2Spec) { + *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 SecgroupV2Spec. +func (in *SecgroupV2Spec) DeepCopy() *SecgroupV2Spec { + if in == nil { + return nil + } + out := new(SecgroupV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SecgroupV2Status) DeepCopyInto(out *SecgroupV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SecgroupV2Status. +func (in *SecgroupV2Status) DeepCopy() *SecgroupV2Status { + if in == nil { + return nil + } + out := new(SecgroupV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SegmentsInitParameters) DeepCopyInto(out *SegmentsInitParameters) { + *out = *in + if in.NetworkType != nil { + in, out := &in.NetworkType, &out.NetworkType + *out = new(string) + **out = **in + } + if in.PhysicalNetwork != nil { + in, out := &in.PhysicalNetwork, &out.PhysicalNetwork + *out = new(string) + **out = **in + } + if in.SegmentationID != nil { + in, out := &in.SegmentationID, &out.SegmentationID + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SegmentsInitParameters. +func (in *SegmentsInitParameters) DeepCopy() *SegmentsInitParameters { + if in == nil { + return nil + } + out := new(SegmentsInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SegmentsObservation) DeepCopyInto(out *SegmentsObservation) { + *out = *in + if in.NetworkType != nil { + in, out := &in.NetworkType, &out.NetworkType + *out = new(string) + **out = **in + } + if in.PhysicalNetwork != nil { + in, out := &in.PhysicalNetwork, &out.PhysicalNetwork + *out = new(string) + **out = **in + } + if in.SegmentationID != nil { + in, out := &in.SegmentationID, &out.SegmentationID + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SegmentsObservation. +func (in *SegmentsObservation) DeepCopy() *SegmentsObservation { + if in == nil { + return nil + } + out := new(SegmentsObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SegmentsParameters) DeepCopyInto(out *SegmentsParameters) { + *out = *in + if in.NetworkType != nil { + in, out := &in.NetworkType, &out.NetworkType + *out = new(string) + **out = **in + } + if in.PhysicalNetwork != nil { + in, out := &in.PhysicalNetwork, &out.PhysicalNetwork + *out = new(string) + **out = **in + } + if in.SegmentationID != nil { + in, out := &in.SegmentationID, &out.SegmentationID + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SegmentsParameters. +func (in *SegmentsParameters) DeepCopy() *SegmentsParameters { + if in == nil { + return nil + } + out := new(SegmentsParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SubnetV2) DeepCopyInto(out *SubnetV2) { + *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 SubnetV2. +func (in *SubnetV2) DeepCopy() *SubnetV2 { + if in == nil { + return nil + } + out := new(SubnetV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *SubnetV2) 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 *SubnetV2InitParameters) DeepCopyInto(out *SubnetV2InitParameters) { + *out = *in + if in.AllocationPools != nil { + in, out := &in.AllocationPools, &out.AllocationPools + *out = make([]AllocationPoolsInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Cidr != nil { + in, out := &in.Cidr, &out.Cidr + *out = new(string) + **out = **in + } + if in.DNSNameservers != nil { + in, out := &in.DNSNameservers, &out.DNSNameservers + *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.EnableDHCP != nil { + in, out := &in.EnableDHCP, &out.EnableDHCP + *out = new(bool) + **out = **in + } + if in.GatewayIP != nil { + in, out := &in.GatewayIP, &out.GatewayIP + *out = new(string) + **out = **in + } + if in.HostRoutes != nil { + in, out := &in.HostRoutes, &out.HostRoutes + *out = make([]HostRoutesInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.IPVersion != nil { + in, out := &in.IPVersion, &out.IPVersion + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NoGateway != nil { + in, out := &in.NoGateway, &out.NoGateway + *out = new(bool) + **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.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 SubnetV2InitParameters. +func (in *SubnetV2InitParameters) DeepCopy() *SubnetV2InitParameters { + if in == nil { + return nil + } + out := new(SubnetV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SubnetV2List) DeepCopyInto(out *SubnetV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]SubnetV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubnetV2List. +func (in *SubnetV2List) DeepCopy() *SubnetV2List { + if in == nil { + return nil + } + out := new(SubnetV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *SubnetV2List) 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 *SubnetV2Observation) DeepCopyInto(out *SubnetV2Observation) { + *out = *in + if in.AllocationPools != nil { + in, out := &in.AllocationPools, &out.AllocationPools + *out = make([]AllocationPoolsObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Cidr != nil { + in, out := &in.Cidr, &out.Cidr + *out = new(string) + **out = **in + } + if in.DNSNameservers != nil { + in, out := &in.DNSNameservers, &out.DNSNameservers + *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.EnableDHCP != nil { + in, out := &in.EnableDHCP, &out.EnableDHCP + *out = new(bool) + **out = **in + } + if in.GatewayIP != nil { + in, out := &in.GatewayIP, &out.GatewayIP + *out = new(string) + **out = **in + } + if in.HostRoutes != nil { + in, out := &in.HostRoutes, &out.HostRoutes + *out = make([]HostRoutesObservation, 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.IPVersion != nil { + in, out := &in.IPVersion, &out.IPVersion + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NetworkID != nil { + in, out := &in.NetworkID, &out.NetworkID + *out = new(string) + **out = **in + } + if in.NoGateway != nil { + in, out := &in.NoGateway, &out.NoGateway + *out = new(bool) + **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.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 SubnetV2Observation. +func (in *SubnetV2Observation) DeepCopy() *SubnetV2Observation { + if in == nil { + return nil + } + out := new(SubnetV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SubnetV2Parameters) DeepCopyInto(out *SubnetV2Parameters) { + *out = *in + if in.AllocationPools != nil { + in, out := &in.AllocationPools, &out.AllocationPools + *out = make([]AllocationPoolsParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Cidr != nil { + in, out := &in.Cidr, &out.Cidr + *out = new(string) + **out = **in + } + if in.DNSNameservers != nil { + in, out := &in.DNSNameservers, &out.DNSNameservers + *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.EnableDHCP != nil { + in, out := &in.EnableDHCP, &out.EnableDHCP + *out = new(bool) + **out = **in + } + if in.GatewayIP != nil { + in, out := &in.GatewayIP, &out.GatewayIP + *out = new(string) + **out = **in + } + if in.HostRoutes != nil { + in, out := &in.HostRoutes, &out.HostRoutes + *out = make([]HostRoutesParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.IPVersion != nil { + in, out := &in.IPVersion, &out.IPVersion + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NetworkID != nil { + in, out := &in.NetworkID, &out.NetworkID + *out = new(string) + **out = **in + } + if in.NetworkIDRef != nil { + in, out := &in.NetworkIDRef, &out.NetworkIDRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.NetworkIDSelector != nil { + in, out := &in.NetworkIDSelector, &out.NetworkIDSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } + if in.NoGateway != nil { + in, out := &in.NoGateway, &out.NoGateway + *out = new(bool) + **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.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 SubnetV2Parameters. +func (in *SubnetV2Parameters) DeepCopy() *SubnetV2Parameters { + if in == nil { + return nil + } + out := new(SubnetV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SubnetV2Spec) DeepCopyInto(out *SubnetV2Spec) { + *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 SubnetV2Spec. +func (in *SubnetV2Spec) DeepCopy() *SubnetV2Spec { + if in == nil { + return nil + } + out := new(SubnetV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SubnetV2Status) DeepCopyInto(out *SubnetV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubnetV2Status. +func (in *SubnetV2Status) DeepCopy() *SubnetV2Status { + if in == nil { + return nil + } + out := new(SubnetV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VipAssociateV2) DeepCopyInto(out *VipAssociateV2) { + *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 VipAssociateV2. +func (in *VipAssociateV2) DeepCopy() *VipAssociateV2 { + if in == nil { + return nil + } + out := new(VipAssociateV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *VipAssociateV2) 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 *VipAssociateV2InitParameters) DeepCopyInto(out *VipAssociateV2InitParameters) { + *out = *in + if in.PortIds != nil { + in, out := &in.PortIds, &out.PortIds + *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.VipID != nil { + in, out := &in.VipID, &out.VipID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VipAssociateV2InitParameters. +func (in *VipAssociateV2InitParameters) DeepCopy() *VipAssociateV2InitParameters { + if in == nil { + return nil + } + out := new(VipAssociateV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VipAssociateV2List) DeepCopyInto(out *VipAssociateV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]VipAssociateV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VipAssociateV2List. +func (in *VipAssociateV2List) DeepCopy() *VipAssociateV2List { + if in == nil { + return nil + } + out := new(VipAssociateV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *VipAssociateV2List) 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 *VipAssociateV2Observation) DeepCopyInto(out *VipAssociateV2Observation) { + *out = *in + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.PortIds != nil { + in, out := &in.PortIds, &out.PortIds + *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.VipID != nil { + in, out := &in.VipID, &out.VipID + *out = new(string) + **out = **in + } + if in.VipIPAddress != nil { + in, out := &in.VipIPAddress, &out.VipIPAddress + *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 VipAssociateV2Observation. +func (in *VipAssociateV2Observation) DeepCopy() *VipAssociateV2Observation { + if in == nil { + return nil + } + out := new(VipAssociateV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VipAssociateV2Parameters) DeepCopyInto(out *VipAssociateV2Parameters) { + *out = *in + if in.PortIds != nil { + in, out := &in.PortIds, &out.PortIds + *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.VipID != nil { + in, out := &in.VipID, &out.VipID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VipAssociateV2Parameters. +func (in *VipAssociateV2Parameters) DeepCopy() *VipAssociateV2Parameters { + if in == nil { + return nil + } + out := new(VipAssociateV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VipAssociateV2Spec) DeepCopyInto(out *VipAssociateV2Spec) { + *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 VipAssociateV2Spec. +func (in *VipAssociateV2Spec) DeepCopy() *VipAssociateV2Spec { + if in == nil { + return nil + } + out := new(VipAssociateV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VipAssociateV2Status) DeepCopyInto(out *VipAssociateV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VipAssociateV2Status. +func (in *VipAssociateV2Status) DeepCopy() *VipAssociateV2Status { + if in == nil { + return nil + } + out := new(VipAssociateV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VipV2) DeepCopyInto(out *VipV2) { + *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 VipV2. +func (in *VipV2) DeepCopy() *VipV2 { + if in == nil { + return nil + } + out := new(VipV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *VipV2) 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 *VipV2InitParameters) DeepCopyInto(out *VipV2InitParameters) { + *out = *in + if in.IPAddress != nil { + in, out := &in.IPAddress, &out.IPAddress + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NetworkID != nil { + in, out := &in.NetworkID, &out.NetworkID + *out = new(string) + **out = **in + } + if in.SubnetID != nil { + in, out := &in.SubnetID, &out.SubnetID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VipV2InitParameters. +func (in *VipV2InitParameters) DeepCopy() *VipV2InitParameters { + if in == nil { + return nil + } + out := new(VipV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VipV2List) DeepCopyInto(out *VipV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]VipV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VipV2List. +func (in *VipV2List) DeepCopy() *VipV2List { + if in == nil { + return nil + } + out := new(VipV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *VipV2List) 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 *VipV2Observation) DeepCopyInto(out *VipV2Observation) { + *out = *in + if in.DeviceOwner != nil { + in, out := &in.DeviceOwner, &out.DeviceOwner + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.IPAddress != nil { + in, out := &in.IPAddress, &out.IPAddress + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NetworkID != nil { + in, out := &in.NetworkID, &out.NetworkID + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *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 + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VipV2Observation. +func (in *VipV2Observation) DeepCopy() *VipV2Observation { + if in == nil { + return nil + } + out := new(VipV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VipV2Parameters) DeepCopyInto(out *VipV2Parameters) { + *out = *in + if in.IPAddress != nil { + in, out := &in.IPAddress, &out.IPAddress + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NetworkID != nil { + in, out := &in.NetworkID, &out.NetworkID + *out = new(string) + **out = **in + } + if in.SubnetID != nil { + in, out := &in.SubnetID, &out.SubnetID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VipV2Parameters. +func (in *VipV2Parameters) DeepCopy() *VipV2Parameters { + if in == nil { + return nil + } + out := new(VipV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VipV2Spec) DeepCopyInto(out *VipV2Spec) { + *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 VipV2Spec. +func (in *VipV2Spec) DeepCopy() *VipV2Spec { + if in == nil { + return nil + } + out := new(VipV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VipV2Status) DeepCopyInto(out *VipV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VipV2Status. +func (in *VipV2Status) DeepCopy() *VipV2Status { + if in == nil { + return nil + } + out := new(VipV2Status) + in.DeepCopyInto(out) + return out +} diff --git a/apis/networking/v1alpha1/zz_generated.managed.go b/apis/networking/v1alpha1/zz_generated.managed.go new file mode 100644 index 0000000..8515942 --- /dev/null +++ b/apis/networking/v1alpha1/zz_generated.managed.go @@ -0,0 +1,788 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import xpv1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + +// GetCondition of this FloatingipAssociateV2. +func (mg *FloatingipAssociateV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this FloatingipAssociateV2. +func (mg *FloatingipAssociateV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this FloatingipAssociateV2. +func (mg *FloatingipAssociateV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this FloatingipAssociateV2. +func (mg *FloatingipAssociateV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this FloatingipAssociateV2. +func (mg *FloatingipAssociateV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this FloatingipAssociateV2. +func (mg *FloatingipAssociateV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this FloatingipAssociateV2. +func (mg *FloatingipAssociateV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this FloatingipAssociateV2. +func (mg *FloatingipAssociateV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this FloatingipAssociateV2. +func (mg *FloatingipAssociateV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this FloatingipAssociateV2. +func (mg *FloatingipAssociateV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this FloatingipAssociateV2. +func (mg *FloatingipAssociateV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this FloatingipAssociateV2. +func (mg *FloatingipAssociateV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this FloatingipV2. +func (mg *FloatingipV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this FloatingipV2. +func (mg *FloatingipV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this FloatingipV2. +func (mg *FloatingipV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this FloatingipV2. +func (mg *FloatingipV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this FloatingipV2. +func (mg *FloatingipV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this FloatingipV2. +func (mg *FloatingipV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this FloatingipV2. +func (mg *FloatingipV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this FloatingipV2. +func (mg *FloatingipV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this FloatingipV2. +func (mg *FloatingipV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this FloatingipV2. +func (mg *FloatingipV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this FloatingipV2. +func (mg *FloatingipV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this FloatingipV2. +func (mg *FloatingipV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this NetworkV2. +func (mg *NetworkV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this NetworkV2. +func (mg *NetworkV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this NetworkV2. +func (mg *NetworkV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this NetworkV2. +func (mg *NetworkV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this NetworkV2. +func (mg *NetworkV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this NetworkV2. +func (mg *NetworkV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this NetworkV2. +func (mg *NetworkV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this NetworkV2. +func (mg *NetworkV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this NetworkV2. +func (mg *NetworkV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this NetworkV2. +func (mg *NetworkV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this NetworkV2. +func (mg *NetworkV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this NetworkV2. +func (mg *NetworkV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this PortSecgroupAssociateV2. +func (mg *PortSecgroupAssociateV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this PortSecgroupAssociateV2. +func (mg *PortSecgroupAssociateV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this PortSecgroupAssociateV2. +func (mg *PortSecgroupAssociateV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this PortSecgroupAssociateV2. +func (mg *PortSecgroupAssociateV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this PortSecgroupAssociateV2. +func (mg *PortSecgroupAssociateV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this PortSecgroupAssociateV2. +func (mg *PortSecgroupAssociateV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this PortSecgroupAssociateV2. +func (mg *PortSecgroupAssociateV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this PortSecgroupAssociateV2. +func (mg *PortSecgroupAssociateV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this PortSecgroupAssociateV2. +func (mg *PortSecgroupAssociateV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this PortSecgroupAssociateV2. +func (mg *PortSecgroupAssociateV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this PortSecgroupAssociateV2. +func (mg *PortSecgroupAssociateV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this PortSecgroupAssociateV2. +func (mg *PortSecgroupAssociateV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this PortV2. +func (mg *PortV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this PortV2. +func (mg *PortV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this PortV2. +func (mg *PortV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this PortV2. +func (mg *PortV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this PortV2. +func (mg *PortV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this PortV2. +func (mg *PortV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this PortV2. +func (mg *PortV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this PortV2. +func (mg *PortV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this PortV2. +func (mg *PortV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this PortV2. +func (mg *PortV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this PortV2. +func (mg *PortV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this PortV2. +func (mg *PortV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this RouterInterfaceV2. +func (mg *RouterInterfaceV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this RouterInterfaceV2. +func (mg *RouterInterfaceV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this RouterInterfaceV2. +func (mg *RouterInterfaceV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this RouterInterfaceV2. +func (mg *RouterInterfaceV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this RouterInterfaceV2. +func (mg *RouterInterfaceV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this RouterInterfaceV2. +func (mg *RouterInterfaceV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this RouterInterfaceV2. +func (mg *RouterInterfaceV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this RouterInterfaceV2. +func (mg *RouterInterfaceV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this RouterInterfaceV2. +func (mg *RouterInterfaceV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this RouterInterfaceV2. +func (mg *RouterInterfaceV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this RouterInterfaceV2. +func (mg *RouterInterfaceV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this RouterInterfaceV2. +func (mg *RouterInterfaceV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this RouterRouteV2. +func (mg *RouterRouteV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this RouterRouteV2. +func (mg *RouterRouteV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this RouterRouteV2. +func (mg *RouterRouteV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this RouterRouteV2. +func (mg *RouterRouteV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this RouterRouteV2. +func (mg *RouterRouteV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this RouterRouteV2. +func (mg *RouterRouteV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this RouterRouteV2. +func (mg *RouterRouteV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this RouterRouteV2. +func (mg *RouterRouteV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this RouterRouteV2. +func (mg *RouterRouteV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this RouterRouteV2. +func (mg *RouterRouteV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this RouterRouteV2. +func (mg *RouterRouteV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this RouterRouteV2. +func (mg *RouterRouteV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this RouterV2. +func (mg *RouterV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this RouterV2. +func (mg *RouterV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this RouterV2. +func (mg *RouterV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this RouterV2. +func (mg *RouterV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this RouterV2. +func (mg *RouterV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this RouterV2. +func (mg *RouterV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this RouterV2. +func (mg *RouterV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this RouterV2. +func (mg *RouterV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this RouterV2. +func (mg *RouterV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this RouterV2. +func (mg *RouterV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this RouterV2. +func (mg *RouterV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this RouterV2. +func (mg *RouterV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this SecgroupRuleV2. +func (mg *SecgroupRuleV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this SecgroupRuleV2. +func (mg *SecgroupRuleV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this SecgroupRuleV2. +func (mg *SecgroupRuleV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this SecgroupRuleV2. +func (mg *SecgroupRuleV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this SecgroupRuleV2. +func (mg *SecgroupRuleV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this SecgroupRuleV2. +func (mg *SecgroupRuleV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this SecgroupRuleV2. +func (mg *SecgroupRuleV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this SecgroupRuleV2. +func (mg *SecgroupRuleV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this SecgroupRuleV2. +func (mg *SecgroupRuleV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this SecgroupRuleV2. +func (mg *SecgroupRuleV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this SecgroupRuleV2. +func (mg *SecgroupRuleV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this SecgroupRuleV2. +func (mg *SecgroupRuleV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this SecgroupV2. +func (mg *SecgroupV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this SecgroupV2. +func (mg *SecgroupV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this SecgroupV2. +func (mg *SecgroupV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this SecgroupV2. +func (mg *SecgroupV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this SecgroupV2. +func (mg *SecgroupV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this SecgroupV2. +func (mg *SecgroupV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this SecgroupV2. +func (mg *SecgroupV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this SecgroupV2. +func (mg *SecgroupV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this SecgroupV2. +func (mg *SecgroupV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this SecgroupV2. +func (mg *SecgroupV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this SecgroupV2. +func (mg *SecgroupV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this SecgroupV2. +func (mg *SecgroupV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this SubnetV2. +func (mg *SubnetV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this SubnetV2. +func (mg *SubnetV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this SubnetV2. +func (mg *SubnetV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this SubnetV2. +func (mg *SubnetV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this SubnetV2. +func (mg *SubnetV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this SubnetV2. +func (mg *SubnetV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this SubnetV2. +func (mg *SubnetV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this SubnetV2. +func (mg *SubnetV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this SubnetV2. +func (mg *SubnetV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this SubnetV2. +func (mg *SubnetV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this SubnetV2. +func (mg *SubnetV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this SubnetV2. +func (mg *SubnetV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this VipAssociateV2. +func (mg *VipAssociateV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this VipAssociateV2. +func (mg *VipAssociateV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this VipAssociateV2. +func (mg *VipAssociateV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this VipAssociateV2. +func (mg *VipAssociateV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this VipAssociateV2. +func (mg *VipAssociateV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this VipAssociateV2. +func (mg *VipAssociateV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this VipAssociateV2. +func (mg *VipAssociateV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this VipAssociateV2. +func (mg *VipAssociateV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this VipAssociateV2. +func (mg *VipAssociateV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this VipAssociateV2. +func (mg *VipAssociateV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this VipAssociateV2. +func (mg *VipAssociateV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this VipAssociateV2. +func (mg *VipAssociateV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this VipV2. +func (mg *VipV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this VipV2. +func (mg *VipV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this VipV2. +func (mg *VipV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this VipV2. +func (mg *VipV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this VipV2. +func (mg *VipV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this VipV2. +func (mg *VipV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this VipV2. +func (mg *VipV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this VipV2. +func (mg *VipV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this VipV2. +func (mg *VipV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this VipV2. +func (mg *VipV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this VipV2. +func (mg *VipV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this VipV2. +func (mg *VipV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} diff --git a/apis/networking/v1alpha1/zz_generated.managedlist.go b/apis/networking/v1alpha1/zz_generated.managedlist.go new file mode 100644 index 0000000..403d005 --- /dev/null +++ b/apis/networking/v1alpha1/zz_generated.managedlist.go @@ -0,0 +1,125 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import resource "github.com/crossplane/crossplane-runtime/pkg/resource" + +// GetItems of this FloatingipAssociateV2List. +func (l *FloatingipAssociateV2List) 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 FloatingipV2List. +func (l *FloatingipV2List) 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 NetworkV2List. +func (l *NetworkV2List) 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 PortSecgroupAssociateV2List. +func (l *PortSecgroupAssociateV2List) 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 PortV2List. +func (l *PortV2List) 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 RouterInterfaceV2List. +func (l *RouterInterfaceV2List) 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 RouterRouteV2List. +func (l *RouterRouteV2List) 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 RouterV2List. +func (l *RouterV2List) 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 SecgroupRuleV2List. +func (l *SecgroupRuleV2List) 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 SecgroupV2List. +func (l *SecgroupV2List) 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 SubnetV2List. +func (l *SubnetV2List) 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 VipAssociateV2List. +func (l *VipAssociateV2List) 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 VipV2List. +func (l *VipV2List) 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/networking/v1alpha1/zz_generated.resolvers.go b/apis/networking/v1alpha1/zz_generated.resolvers.go new file mode 100644 index 0000000..ef8ed17 --- /dev/null +++ b/apis/networking/v1alpha1/zz_generated.resolvers.go @@ -0,0 +1,81 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "context" + reference "github.com/crossplane/crossplane-runtime/pkg/reference" + errors "github.com/pkg/errors" + client "sigs.k8s.io/controller-runtime/pkg/client" +) + +// ResolveReferences of this RouterInterfaceV2. +func (mg *RouterInterfaceV2) 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.RouterID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.RouterIDRef, + Selector: mg.Spec.ForProvider.RouterIDSelector, + To: reference.To{ + List: &RouterV2List{}, + Managed: &RouterV2{}, + }, + }) + 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: &SubnetV2List{}, + Managed: &SubnetV2{}, + }, + }) + 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 + + return nil +} + +// ResolveReferences of this SubnetV2. +func (mg *SubnetV2) 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.NetworkID), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.NetworkIDRef, + Selector: mg.Spec.ForProvider.NetworkIDSelector, + To: reference.To{ + List: &NetworkV2List{}, + Managed: &NetworkV2{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.NetworkID") + } + mg.Spec.ForProvider.NetworkID = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.NetworkIDRef = rsp.ResolvedReference + + return nil +} diff --git a/apis/networking/v1alpha1/zz_generated_terraformed.go b/apis/networking/v1alpha1/zz_generated_terraformed.go new file mode 100755 index 0000000..589d6f2 --- /dev/null +++ b/apis/networking/v1alpha1/zz_generated_terraformed.go @@ -0,0 +1,1112 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "github.com/pkg/errors" + + "github.com/crossplane/upjet/pkg/resource" + "github.com/crossplane/upjet/pkg/resource/json" +) + +// GetTerraformResourceType returns Terraform resource type for this FloatingipAssociateV2 +func (mg *FloatingipAssociateV2) GetTerraformResourceType() string { + return "opentelekomcloud_networking_floatingip_associate_v2" +} + +// GetConnectionDetailsMapping for this FloatingipAssociateV2 +func (tr *FloatingipAssociateV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this FloatingipAssociateV2 +func (tr *FloatingipAssociateV2) 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 FloatingipAssociateV2 +func (tr *FloatingipAssociateV2) 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 FloatingipAssociateV2 +func (tr *FloatingipAssociateV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this FloatingipAssociateV2 +func (tr *FloatingipAssociateV2) 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 FloatingipAssociateV2 +func (tr *FloatingipAssociateV2) 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 FloatingipAssociateV2 +func (tr *FloatingipAssociateV2) 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) +} + +// LateInitialize this FloatingipAssociateV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *FloatingipAssociateV2) LateInitialize(attrs []byte) (bool, error) { + params := &FloatingipAssociateV2Parameters{} + 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 *FloatingipAssociateV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this FloatingipV2 +func (mg *FloatingipV2) GetTerraformResourceType() string { + return "opentelekomcloud_networking_floatingip_v2" +} + +// GetConnectionDetailsMapping for this FloatingipV2 +func (tr *FloatingipV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this FloatingipV2 +func (tr *FloatingipV2) 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 FloatingipV2 +func (tr *FloatingipV2) 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 FloatingipV2 +func (tr *FloatingipV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this FloatingipV2 +func (tr *FloatingipV2) 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 FloatingipV2 +func (tr *FloatingipV2) 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 FloatingipV2 +func (tr *FloatingipV2) 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) +} + +// LateInitialize this FloatingipV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *FloatingipV2) LateInitialize(attrs []byte) (bool, error) { + params := &FloatingipV2Parameters{} + 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 *FloatingipV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this NetworkV2 +func (mg *NetworkV2) GetTerraformResourceType() string { + return "opentelekomcloud_networking_network_v2" +} + +// GetConnectionDetailsMapping for this NetworkV2 +func (tr *NetworkV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this NetworkV2 +func (tr *NetworkV2) 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 NetworkV2 +func (tr *NetworkV2) 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 NetworkV2 +func (tr *NetworkV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this NetworkV2 +func (tr *NetworkV2) 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 NetworkV2 +func (tr *NetworkV2) 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 NetworkV2 +func (tr *NetworkV2) 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) +} + +// LateInitialize this NetworkV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *NetworkV2) LateInitialize(attrs []byte) (bool, error) { + params := &NetworkV2Parameters{} + 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 *NetworkV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this PortSecgroupAssociateV2 +func (mg *PortSecgroupAssociateV2) GetTerraformResourceType() string { + return "opentelekomcloud_networking_port_secgroup_associate_v2" +} + +// GetConnectionDetailsMapping for this PortSecgroupAssociateV2 +func (tr *PortSecgroupAssociateV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this PortSecgroupAssociateV2 +func (tr *PortSecgroupAssociateV2) 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 PortSecgroupAssociateV2 +func (tr *PortSecgroupAssociateV2) 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 PortSecgroupAssociateV2 +func (tr *PortSecgroupAssociateV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this PortSecgroupAssociateV2 +func (tr *PortSecgroupAssociateV2) 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 PortSecgroupAssociateV2 +func (tr *PortSecgroupAssociateV2) 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 PortSecgroupAssociateV2 +func (tr *PortSecgroupAssociateV2) 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) +} + +// LateInitialize this PortSecgroupAssociateV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *PortSecgroupAssociateV2) LateInitialize(attrs []byte) (bool, error) { + params := &PortSecgroupAssociateV2Parameters{} + 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 *PortSecgroupAssociateV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this PortV2 +func (mg *PortV2) GetTerraformResourceType() string { + return "opentelekomcloud_networking_port_v2" +} + +// GetConnectionDetailsMapping for this PortV2 +func (tr *PortV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this PortV2 +func (tr *PortV2) 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 PortV2 +func (tr *PortV2) 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 PortV2 +func (tr *PortV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this PortV2 +func (tr *PortV2) 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 PortV2 +func (tr *PortV2) 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 PortV2 +func (tr *PortV2) 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) +} + +// LateInitialize this PortV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *PortV2) LateInitialize(attrs []byte) (bool, error) { + params := &PortV2Parameters{} + 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 *PortV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this RouterInterfaceV2 +func (mg *RouterInterfaceV2) GetTerraformResourceType() string { + return "opentelekomcloud_networking_router_interface_v2" +} + +// GetConnectionDetailsMapping for this RouterInterfaceV2 +func (tr *RouterInterfaceV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this RouterInterfaceV2 +func (tr *RouterInterfaceV2) 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 RouterInterfaceV2 +func (tr *RouterInterfaceV2) 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 RouterInterfaceV2 +func (tr *RouterInterfaceV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this RouterInterfaceV2 +func (tr *RouterInterfaceV2) 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 RouterInterfaceV2 +func (tr *RouterInterfaceV2) 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 RouterInterfaceV2 +func (tr *RouterInterfaceV2) 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) +} + +// LateInitialize this RouterInterfaceV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *RouterInterfaceV2) LateInitialize(attrs []byte) (bool, error) { + params := &RouterInterfaceV2Parameters{} + 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 *RouterInterfaceV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this RouterRouteV2 +func (mg *RouterRouteV2) GetTerraformResourceType() string { + return "opentelekomcloud_networking_router_route_v2" +} + +// GetConnectionDetailsMapping for this RouterRouteV2 +func (tr *RouterRouteV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this RouterRouteV2 +func (tr *RouterRouteV2) 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 RouterRouteV2 +func (tr *RouterRouteV2) 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 RouterRouteV2 +func (tr *RouterRouteV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this RouterRouteV2 +func (tr *RouterRouteV2) 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 RouterRouteV2 +func (tr *RouterRouteV2) 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 RouterRouteV2 +func (tr *RouterRouteV2) 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) +} + +// LateInitialize this RouterRouteV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *RouterRouteV2) LateInitialize(attrs []byte) (bool, error) { + params := &RouterRouteV2Parameters{} + 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 *RouterRouteV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this RouterV2 +func (mg *RouterV2) GetTerraformResourceType() string { + return "opentelekomcloud_networking_router_v2" +} + +// GetConnectionDetailsMapping for this RouterV2 +func (tr *RouterV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this RouterV2 +func (tr *RouterV2) 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 RouterV2 +func (tr *RouterV2) 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 RouterV2 +func (tr *RouterV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this RouterV2 +func (tr *RouterV2) 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 RouterV2 +func (tr *RouterV2) 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 RouterV2 +func (tr *RouterV2) 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) +} + +// LateInitialize this RouterV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *RouterV2) LateInitialize(attrs []byte) (bool, error) { + params := &RouterV2Parameters{} + 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)} + opts = append(opts, resource.WithNameFilter("ExternalGateway")) + + li := resource.NewGenericLateInitializer(opts...) + return li.LateInitialize(&tr.Spec.ForProvider, params) +} + +// GetTerraformSchemaVersion returns the associated Terraform schema version +func (tr *RouterV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this SecgroupRuleV2 +func (mg *SecgroupRuleV2) GetTerraformResourceType() string { + return "opentelekomcloud_networking_secgroup_rule_v2" +} + +// GetConnectionDetailsMapping for this SecgroupRuleV2 +func (tr *SecgroupRuleV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this SecgroupRuleV2 +func (tr *SecgroupRuleV2) 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 SecgroupRuleV2 +func (tr *SecgroupRuleV2) 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 SecgroupRuleV2 +func (tr *SecgroupRuleV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this SecgroupRuleV2 +func (tr *SecgroupRuleV2) 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 SecgroupRuleV2 +func (tr *SecgroupRuleV2) 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 SecgroupRuleV2 +func (tr *SecgroupRuleV2) 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) +} + +// LateInitialize this SecgroupRuleV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *SecgroupRuleV2) LateInitialize(attrs []byte) (bool, error) { + params := &SecgroupRuleV2Parameters{} + 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 *SecgroupRuleV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this SecgroupV2 +func (mg *SecgroupV2) GetTerraformResourceType() string { + return "opentelekomcloud_networking_secgroup_v2" +} + +// GetConnectionDetailsMapping for this SecgroupV2 +func (tr *SecgroupV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this SecgroupV2 +func (tr *SecgroupV2) 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 SecgroupV2 +func (tr *SecgroupV2) 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 SecgroupV2 +func (tr *SecgroupV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this SecgroupV2 +func (tr *SecgroupV2) 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 SecgroupV2 +func (tr *SecgroupV2) 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 SecgroupV2 +func (tr *SecgroupV2) 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) +} + +// LateInitialize this SecgroupV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *SecgroupV2) LateInitialize(attrs []byte) (bool, error) { + params := &SecgroupV2Parameters{} + 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 *SecgroupV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this SubnetV2 +func (mg *SubnetV2) GetTerraformResourceType() string { + return "opentelekomcloud_networking_subnet_v2" +} + +// GetConnectionDetailsMapping for this SubnetV2 +func (tr *SubnetV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this SubnetV2 +func (tr *SubnetV2) 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 SubnetV2 +func (tr *SubnetV2) 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 SubnetV2 +func (tr *SubnetV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this SubnetV2 +func (tr *SubnetV2) 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 SubnetV2 +func (tr *SubnetV2) 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 SubnetV2 +func (tr *SubnetV2) 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) +} + +// LateInitialize this SubnetV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *SubnetV2) LateInitialize(attrs []byte) (bool, error) { + params := &SubnetV2Parameters{} + 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)} + opts = append(opts, resource.WithNameFilter("AllocationPools")) + + li := resource.NewGenericLateInitializer(opts...) + return li.LateInitialize(&tr.Spec.ForProvider, params) +} + +// GetTerraformSchemaVersion returns the associated Terraform schema version +func (tr *SubnetV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this VipAssociateV2 +func (mg *VipAssociateV2) GetTerraformResourceType() string { + return "opentelekomcloud_networking_vip_associate_v2" +} + +// GetConnectionDetailsMapping for this VipAssociateV2 +func (tr *VipAssociateV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this VipAssociateV2 +func (tr *VipAssociateV2) 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 VipAssociateV2 +func (tr *VipAssociateV2) 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 VipAssociateV2 +func (tr *VipAssociateV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this VipAssociateV2 +func (tr *VipAssociateV2) 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 VipAssociateV2 +func (tr *VipAssociateV2) 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 VipAssociateV2 +func (tr *VipAssociateV2) 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) +} + +// LateInitialize this VipAssociateV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *VipAssociateV2) LateInitialize(attrs []byte) (bool, error) { + params := &VipAssociateV2Parameters{} + 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 *VipAssociateV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this VipV2 +func (mg *VipV2) GetTerraformResourceType() string { + return "opentelekomcloud_networking_vip_v2" +} + +// GetConnectionDetailsMapping for this VipV2 +func (tr *VipV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this VipV2 +func (tr *VipV2) 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 VipV2 +func (tr *VipV2) 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 VipV2 +func (tr *VipV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this VipV2 +func (tr *VipV2) 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 VipV2 +func (tr *VipV2) 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 VipV2 +func (tr *VipV2) 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) +} + +// LateInitialize this VipV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *VipV2) LateInitialize(attrs []byte) (bool, error) { + params := &VipV2Parameters{} + 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 *VipV2) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/networking/v1alpha1/zz_groupversion_info.go b/apis/networking/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..895240d --- /dev/null +++ b/apis/networking/v1alpha1/zz_groupversion_info.go @@ -0,0 +1,36 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +// +kubebuilder:object:generate=true +// +groupName=networking.crossplane.io +// +versionName=v1alpha1 +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +// Package type metadata. +const ( + CRDGroup = "networking.crossplane.io" + CRDVersion = "v1alpha1" +) + +var ( + // CRDGroupVersion is the API Group Version used to register the objects + CRDGroupVersion = schema.GroupVersion{Group: CRDGroup, Version: CRDVersion} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme + SchemeBuilder = &scheme.Builder{GroupVersion: CRDGroupVersion} + + // AddToScheme adds the types in this group-version to the given scheme. + AddToScheme = SchemeBuilder.AddToScheme +) diff --git a/apis/networking/v1alpha1/zz_networkv2_types.go b/apis/networking/v1alpha1/zz_networkv2_types.go new file mode 100755 index 0000000..af0f61d --- /dev/null +++ b/apis/networking/v1alpha1/zz_networkv2_types.go @@ -0,0 +1,213 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 NetworkV2InitParameters struct { + + // The administrative state of the network. + // Acceptable values are "true" and "false". Changing this value updates the + // state of the existing network. + AdminStateUp *string `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` + + // The name of the network. Changing this updates the name of + // the existing network. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // An array of one or more provider segment objects. + Segments []SegmentsInitParameters `json:"segments,omitempty" tf:"segments,omitempty"` + + // Specifies whether the network resource can be accessed + // by any tenant or not. Changing this updates the sharing capabilities of the + // existing network. Shared SNAT only available in eu-de region. + Shared *string `json:"shared,omitempty" tf:"shared,omitempty"` + + // The owner of the network. Required if admin wants to + // create a network for another tenant. Changing this creates a new network. + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // Map of additional options. + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +type NetworkV2Observation struct { + + // The administrative state of the network. + // Acceptable values are "true" and "false". Changing this value updates the + // state of the existing network. + AdminStateUp *string `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The name of the network. Changing this updates the name of + // the existing network. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // An array of one or more provider segment objects. + Segments []SegmentsObservation `json:"segments,omitempty" tf:"segments,omitempty"` + + // Specifies whether the network resource can be accessed + // by any tenant or not. Changing this updates the sharing capabilities of the + // existing network. Shared SNAT only available in eu-de region. + Shared *string `json:"shared,omitempty" tf:"shared,omitempty"` + + // The owner of the network. Required if admin wants to + // create a network for another tenant. Changing this creates a new network. + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // Map of additional options. + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +type NetworkV2Parameters struct { + + // The administrative state of the network. + // Acceptable values are "true" and "false". Changing this value updates the + // state of the existing network. + // +kubebuilder:validation:Optional + AdminStateUp *string `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` + + // The name of the network. Changing this updates the name of + // the existing network. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // An array of one or more provider segment objects. + // +kubebuilder:validation:Optional + Segments []SegmentsParameters `json:"segments,omitempty" tf:"segments,omitempty"` + + // Specifies whether the network resource can be accessed + // by any tenant or not. Changing this updates the sharing capabilities of the + // existing network. Shared SNAT only available in eu-de region. + // +kubebuilder:validation:Optional + Shared *string `json:"shared,omitempty" tf:"shared,omitempty"` + + // The owner of the network. Required if admin wants to + // create a network for another tenant. Changing this creates a new network. + // +kubebuilder:validation:Optional + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // Map of additional options. + // +kubebuilder:validation:Optional + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +type SegmentsInitParameters struct { + + // The type of physical network. + NetworkType *string `json:"networkType,omitempty" tf:"network_type,omitempty"` + + // The physical network where this network is implemented. + PhysicalNetwork *string `json:"physicalNetwork,omitempty" tf:"physical_network,omitempty"` + + // An isolated segment on the physical network. + SegmentationID *float64 `json:"segmentationId,omitempty" tf:"segmentation_id,omitempty"` +} + +type SegmentsObservation struct { + + // The type of physical network. + NetworkType *string `json:"networkType,omitempty" tf:"network_type,omitempty"` + + // The physical network where this network is implemented. + PhysicalNetwork *string `json:"physicalNetwork,omitempty" tf:"physical_network,omitempty"` + + // An isolated segment on the physical network. + SegmentationID *float64 `json:"segmentationId,omitempty" tf:"segmentation_id,omitempty"` +} + +type SegmentsParameters struct { + + // The type of physical network. + // +kubebuilder:validation:Optional + NetworkType *string `json:"networkType,omitempty" tf:"network_type,omitempty"` + + // The physical network where this network is implemented. + // +kubebuilder:validation:Optional + PhysicalNetwork *string `json:"physicalNetwork,omitempty" tf:"physical_network,omitempty"` + + // An isolated segment on the physical network. + // +kubebuilder:validation:Optional + SegmentationID *float64 `json:"segmentationId,omitempty" tf:"segmentation_id,omitempty"` +} + +// NetworkV2Spec defines the desired state of NetworkV2 +type NetworkV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider NetworkV2Parameters `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 NetworkV2InitParameters `json:"initProvider,omitempty"` +} + +// NetworkV2Status defines the observed state of NetworkV2. +type NetworkV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider NetworkV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// NetworkV2 is the Schema for the NetworkV2s API. Manages a VPC Network resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type NetworkV2 struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec NetworkV2Spec `json:"spec"` + Status NetworkV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// NetworkV2List contains a list of NetworkV2s +type NetworkV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []NetworkV2 `json:"items"` +} + +// Repository type metadata. +var ( + NetworkV2_Kind = "NetworkV2" + NetworkV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: NetworkV2_Kind}.String() + NetworkV2_KindAPIVersion = NetworkV2_Kind + "." + CRDGroupVersion.String() + NetworkV2_GroupVersionKind = CRDGroupVersion.WithKind(NetworkV2_Kind) +) + +func init() { + SchemeBuilder.Register(&NetworkV2{}, &NetworkV2List{}) +} diff --git a/apis/networking/v1alpha1/zz_portsecgroupassociatev2_types.go b/apis/networking/v1alpha1/zz_portsecgroupassociatev2_types.go new file mode 100755 index 0000000..6b080b6 --- /dev/null +++ b/apis/networking/v1alpha1/zz_portsecgroupassociatev2_types.go @@ -0,0 +1,153 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 PortSecgroupAssociateV2InitParameters struct { + + // Whether to replace or append the list of security + // groups, specified in the security_group_ids. Defaults to false. + Force *bool `json:"force,omitempty" tf:"force,omitempty"` + + // An UUID of the port to apply security groups to. + PortID *string `json:"portId,omitempty" tf:"port_id,omitempty"` + + // The region in which to obtain the V2 networking client. + // A networking client is needed to manage a port. If omitted, the + // region argument of the provider is used. Changing this creates a new + // resource. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // A list of security group IDs to apply to + // the port. The security groups must be specified by ID and not name (as + // opposed to how they are configured with the Compute Instance). + SecurityGroupIds []*string `json:"securityGroupIds,omitempty" tf:"security_group_ids,omitempty"` +} + +type PortSecgroupAssociateV2Observation struct { + + // The collection of Security Group IDs on the port + // which have been explicitly and implicitly added. + AllSecurityGroupIds []*string `json:"allSecurityGroupIds,omitempty" tf:"all_security_group_ids,omitempty"` + + // Whether to replace or append the list of security + // groups, specified in the security_group_ids. Defaults to false. + Force *bool `json:"force,omitempty" tf:"force,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // An UUID of the port to apply security groups to. + PortID *string `json:"portId,omitempty" tf:"port_id,omitempty"` + + // The region in which to obtain the V2 networking client. + // A networking client is needed to manage a port. If omitted, the + // region argument of the provider is used. Changing this creates a new + // resource. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // A list of security group IDs to apply to + // the port. The security groups must be specified by ID and not name (as + // opposed to how they are configured with the Compute Instance). + SecurityGroupIds []*string `json:"securityGroupIds,omitempty" tf:"security_group_ids,omitempty"` +} + +type PortSecgroupAssociateV2Parameters struct { + + // Whether to replace or append the list of security + // groups, specified in the security_group_ids. Defaults to false. + // +kubebuilder:validation:Optional + Force *bool `json:"force,omitempty" tf:"force,omitempty"` + + // An UUID of the port to apply security groups to. + // +kubebuilder:validation:Optional + PortID *string `json:"portId,omitempty" tf:"port_id,omitempty"` + + // The region in which to obtain the V2 networking client. + // A networking client is needed to manage a port. If omitted, the + // region argument of the provider is used. Changing this creates a new + // resource. + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // A list of security group IDs to apply to + // the port. The security groups must be specified by ID and not name (as + // opposed to how they are configured with the Compute Instance). + // +kubebuilder:validation:Optional + SecurityGroupIds []*string `json:"securityGroupIds,omitempty" tf:"security_group_ids,omitempty"` +} + +// PortSecgroupAssociateV2Spec defines the desired state of PortSecgroupAssociateV2 +type PortSecgroupAssociateV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider PortSecgroupAssociateV2Parameters `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 PortSecgroupAssociateV2InitParameters `json:"initProvider,omitempty"` +} + +// PortSecgroupAssociateV2Status defines the observed state of PortSecgroupAssociateV2. +type PortSecgroupAssociateV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider PortSecgroupAssociateV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// PortSecgroupAssociateV2 is the Schema for the PortSecgroupAssociateV2s API. Manages a VPC Port's Security Groups resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type PortSecgroupAssociateV2 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.portId) || (has(self.initProvider) && has(self.initProvider.portId))",message="spec.forProvider.portId is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.securityGroupIds) || (has(self.initProvider) && has(self.initProvider.securityGroupIds))",message="spec.forProvider.securityGroupIds is a required parameter" + Spec PortSecgroupAssociateV2Spec `json:"spec"` + Status PortSecgroupAssociateV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// PortSecgroupAssociateV2List contains a list of PortSecgroupAssociateV2s +type PortSecgroupAssociateV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []PortSecgroupAssociateV2 `json:"items"` +} + +// Repository type metadata. +var ( + PortSecgroupAssociateV2_Kind = "PortSecgroupAssociateV2" + PortSecgroupAssociateV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: PortSecgroupAssociateV2_Kind}.String() + PortSecgroupAssociateV2_KindAPIVersion = PortSecgroupAssociateV2_Kind + "." + CRDGroupVersion.String() + PortSecgroupAssociateV2_GroupVersionKind = CRDGroupVersion.WithKind(PortSecgroupAssociateV2_Kind) +) + +func init() { + SchemeBuilder.Register(&PortSecgroupAssociateV2{}, &PortSecgroupAssociateV2List{}) +} diff --git a/apis/networking/v1alpha1/zz_portv2_types.go b/apis/networking/v1alpha1/zz_portv2_types.go new file mode 100755 index 0000000..e07aa23 --- /dev/null +++ b/apis/networking/v1alpha1/zz_portv2_types.go @@ -0,0 +1,404 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 AllowedAddressPairsInitParameters struct { + + // The additional IP address. + IPAddress *string `json:"ipAddress,omitempty" tf:"ip_address,omitempty"` + + // The additional MAC address. + MacAddress *string `json:"macAddress,omitempty" tf:"mac_address,omitempty"` +} + +type AllowedAddressPairsObservation struct { + + // The additional IP address. + IPAddress *string `json:"ipAddress,omitempty" tf:"ip_address,omitempty"` + + // The additional MAC address. + MacAddress *string `json:"macAddress,omitempty" tf:"mac_address,omitempty"` +} + +type AllowedAddressPairsParameters struct { + + // The additional IP address. + // +kubebuilder:validation:Optional + IPAddress *string `json:"ipAddress" tf:"ip_address,omitempty"` + + // The additional MAC address. + // +kubebuilder:validation:Optional + MacAddress *string `json:"macAddress,omitempty" tf:"mac_address,omitempty"` +} + +type ExtraDHCPOptionInitParameters struct { + + // Specifies the option name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the option value. + Value *string `json:"value,omitempty" tf:"value,omitempty"` +} + +type ExtraDHCPOptionObservation struct { + + // Specifies the option name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the option value. + Value *string `json:"value,omitempty" tf:"value,omitempty"` +} + +type ExtraDHCPOptionParameters struct { + + // Specifies the option name. + // +kubebuilder:validation:Optional + Name *string `json:"name" tf:"name,omitempty"` + + // Specifies the option value. + // +kubebuilder:validation:Optional + Value *string `json:"value" tf:"value,omitempty"` +} + +type FixedIPInitParameters struct { + + // IP address desired in the subnet for this port. If + // you don't specify ip_address, an available IP address from the specified + // subnet will be allocated to this port. + IPAddress *string `json:"ipAddress,omitempty" tf:"ip_address,omitempty"` + + // Subnet in which to allocate IP address for + // this port. + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` +} + +type FixedIPObservation struct { + + // IP address desired in the subnet for this port. If + // you don't specify ip_address, an available IP address from the specified + // subnet will be allocated to this port. + IPAddress *string `json:"ipAddress,omitempty" tf:"ip_address,omitempty"` + + // Subnet in which to allocate IP address for + // this port. + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` +} + +type FixedIPParameters struct { + + // IP address desired in the subnet for this port. If + // you don't specify ip_address, an available IP address from the specified + // subnet will be allocated to this port. + // +kubebuilder:validation:Optional + IPAddress *string `json:"ipAddress,omitempty" tf:"ip_address,omitempty"` + + // Subnet in which to allocate IP address for + // this port. + // +kubebuilder:validation:Optional + SubnetID *string `json:"subnetId" tf:"subnet_id,omitempty"` +} + +type PortV2InitParameters struct { + + // Administrative up/down status for the port + // (must be "true" or "false" if provided). Changing this updates the + // admin_state_up of an existing port. + AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` + + // An IP/MAC Address pair of additional IP + // addresses that can be active on this port. The structure is described below. + // The allowed_address_pairs block supports: + AllowedAddressPairs []AllowedAddressPairsInitParameters `json:"allowedAddressPairs,omitempty" tf:"allowed_address_pairs,omitempty"` + + // The ID of the device attached to the port. Changing this + // creates a new port. + DeviceID *string `json:"deviceId,omitempty" tf:"device_id,omitempty"` + + // The device owner of the Port. Changing this creates + // a new port. + DeviceOwner *string `json:"deviceOwner,omitempty" tf:"device_owner,omitempty"` + + // Specifies the extended DHCP option. This is an extended attribute. + // The extra_dhcp_option block supports: + ExtraDHCPOption []ExtraDHCPOptionInitParameters `json:"extraDhcpOption,omitempty" tf:"extra_dhcp_option,omitempty"` + + // An array of desired IPs for this port. The structure is + // described below. A single fixed_ip entry is allowed for a port. + // The fixed_ip block supports: + FixedIP []FixedIPInitParameters `json:"fixedIp,omitempty" tf:"fixed_ip,omitempty"` + + // Specify a specific MAC address for the port. Changing + // this creates a new port. + MacAddress *string `json:"macAddress,omitempty" tf:"mac_address,omitempty"` + + // A unique name for the port. Changing this + // updates the name of an existing port. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The ID of the network to attach the port to. Changing + // this creates a new port. + NetworkID *string `json:"networkId,omitempty" tf:"network_id,omitempty"` + + // If set to true, then no security groups + // are applied to the port. If set to false and no security_group_ids are specified, + // then the port will yield to the default behavior of the Networking service, + // which is to usually apply the "default" security group. + NoSecurityGroups *bool `json:"noSecurityGroups,omitempty" tf:"no_security_groups,omitempty"` + + // Whether to explicitly enable or disable + // port security on the port. Port Security is usually enabled by default, so + // omitting argument will usually result in a value of true. Setting this + // explicitly to false will disable port security. In order to disable port + // security, the port must not have any security groups. Valid values are true + // and false. + PortSecurityEnabled *bool `json:"portSecurityEnabled,omitempty" tf:"port_security_enabled,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // A list of security group IDs to apply to the + // port. The security groups must be specified by ID and not name (as opposed + // to how they are configured with the Compute Instance). + SecurityGroupIds []*string `json:"securityGroupIds,omitempty" tf:"security_group_ids,omitempty"` + + // The owner of the Port. Required if admin wants + // to create a port for another tenant. Changing this creates a new port. + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // Map of additional options. + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +type PortV2Observation struct { + + // Administrative up/down status for the port + // (must be "true" or "false" if provided). Changing this updates the + // admin_state_up of an existing port. + AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` + + AllFixedIps []*string `json:"allFixedIps,omitempty" tf:"all_fixed_ips,omitempty"` + + // An IP/MAC Address pair of additional IP + // addresses that can be active on this port. The structure is described below. + // The allowed_address_pairs block supports: + AllowedAddressPairs []AllowedAddressPairsObservation `json:"allowedAddressPairs,omitempty" tf:"allowed_address_pairs,omitempty"` + + // The ID of the device attached to the port. Changing this + // creates a new port. + DeviceID *string `json:"deviceId,omitempty" tf:"device_id,omitempty"` + + // The device owner of the Port. Changing this creates + // a new port. + DeviceOwner *string `json:"deviceOwner,omitempty" tf:"device_owner,omitempty"` + + // Specifies the extended DHCP option. This is an extended attribute. + // The extra_dhcp_option block supports: + ExtraDHCPOption []ExtraDHCPOptionObservation `json:"extraDhcpOption,omitempty" tf:"extra_dhcp_option,omitempty"` + + // An array of desired IPs for this port. The structure is + // described below. A single fixed_ip entry is allowed for a port. + // The fixed_ip block supports: + FixedIP []FixedIPObservation `json:"fixedIp,omitempty" tf:"fixed_ip,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Specify a specific MAC address for the port. Changing + // this creates a new port. + MacAddress *string `json:"macAddress,omitempty" tf:"mac_address,omitempty"` + + // A unique name for the port. Changing this + // updates the name of an existing port. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The ID of the network to attach the port to. Changing + // this creates a new port. + NetworkID *string `json:"networkId,omitempty" tf:"network_id,omitempty"` + + // If set to true, then no security groups + // are applied to the port. If set to false and no security_group_ids are specified, + // then the port will yield to the default behavior of the Networking service, + // which is to usually apply the "default" security group. + NoSecurityGroups *bool `json:"noSecurityGroups,omitempty" tf:"no_security_groups,omitempty"` + + // Whether to explicitly enable or disable + // port security on the port. Port Security is usually enabled by default, so + // omitting argument will usually result in a value of true. Setting this + // explicitly to false will disable port security. In order to disable port + // security, the port must not have any security groups. Valid values are true + // and false. + PortSecurityEnabled *bool `json:"portSecurityEnabled,omitempty" tf:"port_security_enabled,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // A list of security group IDs to apply to the + // port. The security groups must be specified by ID and not name (as opposed + // to how they are configured with the Compute Instance). + SecurityGroupIds []*string `json:"securityGroupIds,omitempty" tf:"security_group_ids,omitempty"` + + // The owner of the Port. Required if admin wants + // to create a port for another tenant. Changing this creates a new port. + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // Map of additional options. + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +type PortV2Parameters struct { + + // Administrative up/down status for the port + // (must be "true" or "false" if provided). Changing this updates the + // admin_state_up of an existing port. + // +kubebuilder:validation:Optional + AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` + + // An IP/MAC Address pair of additional IP + // addresses that can be active on this port. The structure is described below. + // The allowed_address_pairs block supports: + // +kubebuilder:validation:Optional + AllowedAddressPairs []AllowedAddressPairsParameters `json:"allowedAddressPairs,omitempty" tf:"allowed_address_pairs,omitempty"` + + // The ID of the device attached to the port. Changing this + // creates a new port. + // +kubebuilder:validation:Optional + DeviceID *string `json:"deviceId,omitempty" tf:"device_id,omitempty"` + + // The device owner of the Port. Changing this creates + // a new port. + // +kubebuilder:validation:Optional + DeviceOwner *string `json:"deviceOwner,omitempty" tf:"device_owner,omitempty"` + + // Specifies the extended DHCP option. This is an extended attribute. + // The extra_dhcp_option block supports: + // +kubebuilder:validation:Optional + ExtraDHCPOption []ExtraDHCPOptionParameters `json:"extraDhcpOption,omitempty" tf:"extra_dhcp_option,omitempty"` + + // An array of desired IPs for this port. The structure is + // described below. A single fixed_ip entry is allowed for a port. + // The fixed_ip block supports: + // +kubebuilder:validation:Optional + FixedIP []FixedIPParameters `json:"fixedIp,omitempty" tf:"fixed_ip,omitempty"` + + // Specify a specific MAC address for the port. Changing + // this creates a new port. + // +kubebuilder:validation:Optional + MacAddress *string `json:"macAddress,omitempty" tf:"mac_address,omitempty"` + + // A unique name for the port. Changing this + // updates the name of an existing port. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The ID of the network to attach the port to. Changing + // this creates a new port. + // +kubebuilder:validation:Optional + NetworkID *string `json:"networkId,omitempty" tf:"network_id,omitempty"` + + // If set to true, then no security groups + // are applied to the port. If set to false and no security_group_ids are specified, + // then the port will yield to the default behavior of the Networking service, + // which is to usually apply the "default" security group. + // +kubebuilder:validation:Optional + NoSecurityGroups *bool `json:"noSecurityGroups,omitempty" tf:"no_security_groups,omitempty"` + + // Whether to explicitly enable or disable + // port security on the port. Port Security is usually enabled by default, so + // omitting argument will usually result in a value of true. Setting this + // explicitly to false will disable port security. In order to disable port + // security, the port must not have any security groups. Valid values are true + // and false. + // +kubebuilder:validation:Optional + PortSecurityEnabled *bool `json:"portSecurityEnabled,omitempty" tf:"port_security_enabled,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // A list of security group IDs to apply to the + // port. The security groups must be specified by ID and not name (as opposed + // to how they are configured with the Compute Instance). + // +kubebuilder:validation:Optional + SecurityGroupIds []*string `json:"securityGroupIds,omitempty" tf:"security_group_ids,omitempty"` + + // The owner of the Port. Required if admin wants + // to create a port for another tenant. Changing this creates a new port. + // +kubebuilder:validation:Optional + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // Map of additional options. + // +kubebuilder:validation:Optional + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +// PortV2Spec defines the desired state of PortV2 +type PortV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider PortV2Parameters `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 PortV2InitParameters `json:"initProvider,omitempty"` +} + +// PortV2Status defines the observed state of PortV2. +type PortV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider PortV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// PortV2 is the Schema for the PortV2s API. Manages a VPC Port resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type PortV2 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.networkId) || (has(self.initProvider) && has(self.initProvider.networkId))",message="spec.forProvider.networkId is a required parameter" + Spec PortV2Spec `json:"spec"` + Status PortV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// PortV2List contains a list of PortV2s +type PortV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []PortV2 `json:"items"` +} + +// Repository type metadata. +var ( + PortV2_Kind = "PortV2" + PortV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: PortV2_Kind}.String() + PortV2_KindAPIVersion = PortV2_Kind + "." + CRDGroupVersion.String() + PortV2_GroupVersionKind = CRDGroupVersion.WithKind(PortV2_Kind) +) + +func init() { + SchemeBuilder.Register(&PortV2{}, &PortV2List{}) +} diff --git a/apis/networking/v1alpha1/zz_routerinterfacev2_types.go b/apis/networking/v1alpha1/zz_routerinterfacev2_types.go new file mode 100755 index 0000000..384705c --- /dev/null +++ b/apis/networking/v1alpha1/zz_routerinterfacev2_types.go @@ -0,0 +1,144 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 RouterInterfaceV2InitParameters struct { + + // ID of the port this interface connects to. Changing + // this creates a new router interface. + PortID *string `json:"portId,omitempty" tf:"port_id,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` +} + +type RouterInterfaceV2Observation struct { + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // ID of the port this interface connects to. Changing + // this creates a new router interface. + PortID *string `json:"portId,omitempty" tf:"port_id,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // ID of the router this interface belongs to. Changing + // this creates a new router interface. + RouterID *string `json:"routerId,omitempty" tf:"router_id,omitempty"` + + // ID of the subnet this interface connects to. Changing + // this creates a new router interface. + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` +} + +type RouterInterfaceV2Parameters struct { + + // ID of the port this interface connects to. Changing + // this creates a new router interface. + // +kubebuilder:validation:Optional + PortID *string `json:"portId,omitempty" tf:"port_id,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // ID of the router this interface belongs to. Changing + // this creates a new router interface. + // +crossplane:generate:reference:type=RouterV2 + // +kubebuilder:validation:Optional + RouterID *string `json:"routerId,omitempty" tf:"router_id,omitempty"` + + // Reference to a RouterV2 to populate routerId. + // +kubebuilder:validation:Optional + RouterIDRef *v1.Reference `json:"routerIdRef,omitempty" tf:"-"` + + // Selector for a RouterV2 to populate routerId. + // +kubebuilder:validation:Optional + RouterIDSelector *v1.Selector `json:"routerIdSelector,omitempty" tf:"-"` + + // ID of the subnet this interface connects to. Changing + // this creates a new router interface. + // +crossplane:generate:reference:type=SubnetV2 + // +kubebuilder:validation:Optional + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // Reference to a SubnetV2 to populate subnetId. + // +kubebuilder:validation:Optional + SubnetIDRef *v1.Reference `json:"subnetIdRef,omitempty" tf:"-"` + + // Selector for a SubnetV2 to populate subnetId. + // +kubebuilder:validation:Optional + SubnetIDSelector *v1.Selector `json:"subnetIdSelector,omitempty" tf:"-"` +} + +// RouterInterfaceV2Spec defines the desired state of RouterInterfaceV2 +type RouterInterfaceV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider RouterInterfaceV2Parameters `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 RouterInterfaceV2InitParameters `json:"initProvider,omitempty"` +} + +// RouterInterfaceV2Status defines the observed state of RouterInterfaceV2. +type RouterInterfaceV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider RouterInterfaceV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// RouterInterfaceV2 is the Schema for the RouterInterfaceV2s API. Manages a VPC Router Interface resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type RouterInterfaceV2 struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec RouterInterfaceV2Spec `json:"spec"` + Status RouterInterfaceV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// RouterInterfaceV2List contains a list of RouterInterfaceV2s +type RouterInterfaceV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []RouterInterfaceV2 `json:"items"` +} + +// Repository type metadata. +var ( + RouterInterfaceV2_Kind = "RouterInterfaceV2" + RouterInterfaceV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: RouterInterfaceV2_Kind}.String() + RouterInterfaceV2_KindAPIVersion = RouterInterfaceV2_Kind + "." + CRDGroupVersion.String() + RouterInterfaceV2_GroupVersionKind = CRDGroupVersion.WithKind(RouterInterfaceV2_Kind) +) + +func init() { + SchemeBuilder.Register(&RouterInterfaceV2{}, &RouterInterfaceV2List{}) +} diff --git a/apis/networking/v1alpha1/zz_routerroutev2_types.go b/apis/networking/v1alpha1/zz_routerroutev2_types.go new file mode 100755 index 0000000..68cd169 --- /dev/null +++ b/apis/networking/v1alpha1/zz_routerroutev2_types.go @@ -0,0 +1,138 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 RouterRouteV2InitParameters struct { + + // CIDR block to match on the packet’s destination IP. Changing + // this creates a new routing entry. + DestinationCidr *string `json:"destinationCidr,omitempty" tf:"destination_cidr,omitempty"` + + // IP address of the next hop gateway. Changing + // this creates a new routing entry. + NextHop *string `json:"nextHop,omitempty" tf:"next_hop,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // ID of the router this routing entry belongs to. Changing + // this creates a new routing entry. + RouterID *string `json:"routerId,omitempty" tf:"router_id,omitempty"` +} + +type RouterRouteV2Observation struct { + + // CIDR block to match on the packet’s destination IP. Changing + // this creates a new routing entry. + DestinationCidr *string `json:"destinationCidr,omitempty" tf:"destination_cidr,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // IP address of the next hop gateway. Changing + // this creates a new routing entry. + NextHop *string `json:"nextHop,omitempty" tf:"next_hop,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // ID of the router this routing entry belongs to. Changing + // this creates a new routing entry. + RouterID *string `json:"routerId,omitempty" tf:"router_id,omitempty"` +} + +type RouterRouteV2Parameters struct { + + // CIDR block to match on the packet’s destination IP. Changing + // this creates a new routing entry. + // +kubebuilder:validation:Optional + DestinationCidr *string `json:"destinationCidr,omitempty" tf:"destination_cidr,omitempty"` + + // IP address of the next hop gateway. Changing + // this creates a new routing entry. + // +kubebuilder:validation:Optional + NextHop *string `json:"nextHop,omitempty" tf:"next_hop,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // ID of the router this routing entry belongs to. Changing + // this creates a new routing entry. + // +kubebuilder:validation:Optional + RouterID *string `json:"routerId,omitempty" tf:"router_id,omitempty"` +} + +// RouterRouteV2Spec defines the desired state of RouterRouteV2 +type RouterRouteV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider RouterRouteV2Parameters `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 RouterRouteV2InitParameters `json:"initProvider,omitempty"` +} + +// RouterRouteV2Status defines the observed state of RouterRouteV2. +type RouterRouteV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider RouterRouteV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// RouterRouteV2 is the Schema for the RouterRouteV2s API. Manages a VPC Router Route resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type RouterRouteV2 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.destinationCidr) || (has(self.initProvider) && has(self.initProvider.destinationCidr))",message="spec.forProvider.destinationCidr is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.nextHop) || (has(self.initProvider) && has(self.initProvider.nextHop))",message="spec.forProvider.nextHop is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.routerId) || (has(self.initProvider) && has(self.initProvider.routerId))",message="spec.forProvider.routerId is a required parameter" + Spec RouterRouteV2Spec `json:"spec"` + Status RouterRouteV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// RouterRouteV2List contains a list of RouterRouteV2s +type RouterRouteV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []RouterRouteV2 `json:"items"` +} + +// Repository type metadata. +var ( + RouterRouteV2_Kind = "RouterRouteV2" + RouterRouteV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: RouterRouteV2_Kind}.String() + RouterRouteV2_KindAPIVersion = RouterRouteV2_Kind + "." + CRDGroupVersion.String() + RouterRouteV2_GroupVersionKind = CRDGroupVersion.WithKind(RouterRouteV2_Kind) +) + +func init() { + SchemeBuilder.Register(&RouterRouteV2{}, &RouterRouteV2List{}) +} diff --git a/apis/networking/v1alpha1/zz_routerv2_types.go b/apis/networking/v1alpha1/zz_routerv2_types.go new file mode 100755 index 0000000..e68b4c2 --- /dev/null +++ b/apis/networking/v1alpha1/zz_routerv2_types.go @@ -0,0 +1,200 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 RouterV2InitParameters struct { + + // Administrative up/down status for the router + // (must be true or false if provided). Changing this updates the + // admin_state_up of an existing router. + AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` + + // Indicates whether or not to create a + // distributed router. The default policy setting in Neutron restricts + // usage of this property to administrative users only. + Distributed *bool `json:"distributed,omitempty" tf:"distributed,omitempty"` + + // Enable Source NAT for the router. Valid values are + // true or false. An external_gateway has to be set in order to set this + // property. Changing this updates the enable_snat of the router. + EnableSnat *bool `json:"enableSnat,omitempty" tf:"enable_snat,omitempty"` + + // The network UUID of an external gateway for + // the router. A router with an external gateway is required if any compute + // instances or load balancers will be using floating IPs. Changing this + // updates the external_gateway of an existing router. + ExternalGateway *string `json:"externalGateway,omitempty" tf:"external_gateway,omitempty"` + + // A unique name for the router. Changing this + // updates the name of an existing router. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The owner of the floating IP. Required if admin wants + // to create a router for another tenant. Changing this creates a new router. + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // Map of additional driver-specific options. + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +type RouterV2Observation struct { + + // Administrative up/down status for the router + // (must be true or false if provided). Changing this updates the + // admin_state_up of an existing router. + AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` + + // Indicates whether or not to create a + // distributed router. The default policy setting in Neutron restricts + // usage of this property to administrative users only. + Distributed *bool `json:"distributed,omitempty" tf:"distributed,omitempty"` + + // Enable Source NAT for the router. Valid values are + // true or false. An external_gateway has to be set in order to set this + // property. Changing this updates the enable_snat of the router. + EnableSnat *bool `json:"enableSnat,omitempty" tf:"enable_snat,omitempty"` + + // The network UUID of an external gateway for + // the router. A router with an external gateway is required if any compute + // instances or load balancers will be using floating IPs. Changing this + // updates the external_gateway of an existing router. + ExternalGateway *string `json:"externalGateway,omitempty" tf:"external_gateway,omitempty"` + + // ID of the router. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // A unique name for the router. Changing this + // updates the name of an existing router. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The owner of the floating IP. Required if admin wants + // to create a router for another tenant. Changing this creates a new router. + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // Map of additional driver-specific options. + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +type RouterV2Parameters struct { + + // Administrative up/down status for the router + // (must be true or false if provided). Changing this updates the + // admin_state_up of an existing router. + // +kubebuilder:validation:Optional + AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` + + // Indicates whether or not to create a + // distributed router. The default policy setting in Neutron restricts + // usage of this property to administrative users only. + // +kubebuilder:validation:Optional + Distributed *bool `json:"distributed,omitempty" tf:"distributed,omitempty"` + + // Enable Source NAT for the router. Valid values are + // true or false. An external_gateway has to be set in order to set this + // property. Changing this updates the enable_snat of the router. + // +kubebuilder:validation:Optional + EnableSnat *bool `json:"enableSnat,omitempty" tf:"enable_snat,omitempty"` + + // The network UUID of an external gateway for + // the router. A router with an external gateway is required if any compute + // instances or load balancers will be using floating IPs. Changing this + // updates the external_gateway of an existing router. + // +kubebuilder:validation:Optional + ExternalGateway *string `json:"externalGateway,omitempty" tf:"external_gateway,omitempty"` + + // A unique name for the router. Changing this + // updates the name of an existing router. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The owner of the floating IP. Required if admin wants + // to create a router for another tenant. Changing this creates a new router. + // +kubebuilder:validation:Optional + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // Map of additional driver-specific options. + // +kubebuilder:validation:Optional + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +// RouterV2Spec defines the desired state of RouterV2 +type RouterV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider RouterV2Parameters `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 RouterV2InitParameters `json:"initProvider,omitempty"` +} + +// RouterV2Status defines the observed state of RouterV2. +type RouterV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider RouterV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// RouterV2 is the Schema for the RouterV2s API. Manages a VPC Router resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type RouterV2 struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec RouterV2Spec `json:"spec"` + Status RouterV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// RouterV2List contains a list of RouterV2s +type RouterV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []RouterV2 `json:"items"` +} + +// Repository type metadata. +var ( + RouterV2_Kind = "RouterV2" + RouterV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: RouterV2_Kind}.String() + RouterV2_KindAPIVersion = RouterV2_Kind + "." + CRDGroupVersion.String() + RouterV2_GroupVersionKind = CRDGroupVersion.WithKind(RouterV2_Kind) +) + +func init() { + SchemeBuilder.Register(&RouterV2{}, &RouterV2List{}) +} diff --git a/apis/networking/v1alpha1/zz_secgrouprulev2_types.go b/apis/networking/v1alpha1/zz_secgrouprulev2_types.go new file mode 100755 index 0000000..06604e3 --- /dev/null +++ b/apis/networking/v1alpha1/zz_secgrouprulev2_types.go @@ -0,0 +1,229 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 SecgroupRuleV2InitParameters struct { + + // A description of the rule. Changing this creates a new security group rule. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The direction of the rule, valid values are ingress + // or egress. Changing this creates a new security group rule. + Direction *string `json:"direction,omitempty" tf:"direction,omitempty"` + + // The layer 3 protocol type, valid values are IPv4 + // or IPv6. Changing this creates a new security group rule. + Ethertype *string `json:"ethertype,omitempty" tf:"ethertype,omitempty"` + + // = 255 + PortRangeMax *float64 `json:"portRangeMax,omitempty" tf:"port_range_max,omitempty"` + + // = 0 + PortRangeMin *float64 `json:"portRangeMin,omitempty" tf:"port_range_min,omitempty"` + + // The layer 4 protocol type, valid values are following. Changing this creates a new security group rule. + // This is required if you want to specify a port range. + Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The remote group id, the value needs to be an + // OpenTelekomCloud ID of a security group in the same tenant. Changing this creates + // a new security group rule. + RemoteGroupID *string `json:"remoteGroupId,omitempty" tf:"remote_group_id,omitempty"` + + // The remote CIDR, the value needs to be a valid + // CIDR (i.e. 192.168.0.0/16). Changing this creates a new security group rule. + RemoteIPPrefix *string `json:"remoteIpPrefix,omitempty" tf:"remote_ip_prefix,omitempty"` + + // The security group id the rule should belong + // to, the value needs to be an OpenTelekomCloud ID of a security group in the same + // tenant. Changing this creates a new security group rule. + SecurityGroupID *string `json:"securityGroupId,omitempty" tf:"security_group_id,omitempty"` + + // The owner of the security group. Required if admin + // wants to create a port for another tenant. Changing this creates a new + // security group rule. + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` +} + +type SecgroupRuleV2Observation struct { + + // A description of the rule. Changing this creates a new security group rule. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The direction of the rule, valid values are ingress + // or egress. Changing this creates a new security group rule. + Direction *string `json:"direction,omitempty" tf:"direction,omitempty"` + + // The layer 3 protocol type, valid values are IPv4 + // or IPv6. Changing this creates a new security group rule. + Ethertype *string `json:"ethertype,omitempty" tf:"ethertype,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // = 255 + PortRangeMax *float64 `json:"portRangeMax,omitempty" tf:"port_range_max,omitempty"` + + // = 0 + PortRangeMin *float64 `json:"portRangeMin,omitempty" tf:"port_range_min,omitempty"` + + // The layer 4 protocol type, valid values are following. Changing this creates a new security group rule. + // This is required if you want to specify a port range. + Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The remote group id, the value needs to be an + // OpenTelekomCloud ID of a security group in the same tenant. Changing this creates + // a new security group rule. + RemoteGroupID *string `json:"remoteGroupId,omitempty" tf:"remote_group_id,omitempty"` + + // The remote CIDR, the value needs to be a valid + // CIDR (i.e. 192.168.0.0/16). Changing this creates a new security group rule. + RemoteIPPrefix *string `json:"remoteIpPrefix,omitempty" tf:"remote_ip_prefix,omitempty"` + + // The security group id the rule should belong + // to, the value needs to be an OpenTelekomCloud ID of a security group in the same + // tenant. Changing this creates a new security group rule. + SecurityGroupID *string `json:"securityGroupId,omitempty" tf:"security_group_id,omitempty"` + + // The owner of the security group. Required if admin + // wants to create a port for another tenant. Changing this creates a new + // security group rule. + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` +} + +type SecgroupRuleV2Parameters struct { + + // A description of the rule. Changing this creates a new security group rule. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The direction of the rule, valid values are ingress + // or egress. Changing this creates a new security group rule. + // +kubebuilder:validation:Optional + Direction *string `json:"direction,omitempty" tf:"direction,omitempty"` + + // The layer 3 protocol type, valid values are IPv4 + // or IPv6. Changing this creates a new security group rule. + // +kubebuilder:validation:Optional + Ethertype *string `json:"ethertype,omitempty" tf:"ethertype,omitempty"` + + // = 255 + // +kubebuilder:validation:Optional + PortRangeMax *float64 `json:"portRangeMax,omitempty" tf:"port_range_max,omitempty"` + + // = 0 + // +kubebuilder:validation:Optional + PortRangeMin *float64 `json:"portRangeMin,omitempty" tf:"port_range_min,omitempty"` + + // The layer 4 protocol type, valid values are following. Changing this creates a new security group rule. + // This is required if you want to specify a port range. + // +kubebuilder:validation:Optional + Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The remote group id, the value needs to be an + // OpenTelekomCloud ID of a security group in the same tenant. Changing this creates + // a new security group rule. + // +kubebuilder:validation:Optional + RemoteGroupID *string `json:"remoteGroupId,omitempty" tf:"remote_group_id,omitempty"` + + // The remote CIDR, the value needs to be a valid + // CIDR (i.e. 192.168.0.0/16). Changing this creates a new security group rule. + // +kubebuilder:validation:Optional + RemoteIPPrefix *string `json:"remoteIpPrefix,omitempty" tf:"remote_ip_prefix,omitempty"` + + // The security group id the rule should belong + // to, the value needs to be an OpenTelekomCloud ID of a security group in the same + // tenant. Changing this creates a new security group rule. + // +kubebuilder:validation:Optional + SecurityGroupID *string `json:"securityGroupId,omitempty" tf:"security_group_id,omitempty"` + + // The owner of the security group. Required if admin + // wants to create a port for another tenant. Changing this creates a new + // security group rule. + // +kubebuilder:validation:Optional + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` +} + +// SecgroupRuleV2Spec defines the desired state of SecgroupRuleV2 +type SecgroupRuleV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider SecgroupRuleV2Parameters `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 SecgroupRuleV2InitParameters `json:"initProvider,omitempty"` +} + +// SecgroupRuleV2Status defines the observed state of SecgroupRuleV2. +type SecgroupRuleV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider SecgroupRuleV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// SecgroupRuleV2 is the Schema for the SecgroupRuleV2s API. Manages a VPC Security Group Rule resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type SecgroupRuleV2 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.direction) || (has(self.initProvider) && has(self.initProvider.direction))",message="spec.forProvider.direction is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.ethertype) || (has(self.initProvider) && has(self.initProvider.ethertype))",message="spec.forProvider.ethertype is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.securityGroupId) || (has(self.initProvider) && has(self.initProvider.securityGroupId))",message="spec.forProvider.securityGroupId is a required parameter" + Spec SecgroupRuleV2Spec `json:"spec"` + Status SecgroupRuleV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// SecgroupRuleV2List contains a list of SecgroupRuleV2s +type SecgroupRuleV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []SecgroupRuleV2 `json:"items"` +} + +// Repository type metadata. +var ( + SecgroupRuleV2_Kind = "SecgroupRuleV2" + SecgroupRuleV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: SecgroupRuleV2_Kind}.String() + SecgroupRuleV2_KindAPIVersion = SecgroupRuleV2_Kind + "." + CRDGroupVersion.String() + SecgroupRuleV2_GroupVersionKind = CRDGroupVersion.WithKind(SecgroupRuleV2_Kind) +) + +func init() { + SchemeBuilder.Register(&SecgroupRuleV2{}, &SecgroupRuleV2List{}) +} diff --git a/apis/networking/v1alpha1/zz_secgroupv2_types.go b/apis/networking/v1alpha1/zz_secgroupv2_types.go new file mode 100755 index 0000000..f7f056d --- /dev/null +++ b/apis/networking/v1alpha1/zz_secgroupv2_types.go @@ -0,0 +1,146 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 SecgroupV2InitParameters struct { + + // Whether or not to delete the default + // egress security rules. This is false by default. + DeleteDefaultRules *bool `json:"deleteDefaultRules,omitempty" tf:"delete_default_rules,omitempty"` + + // A unique name for the security group. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // A unique name for the security group. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The owner of the security group. Required if admin + // wants to create a port for another tenant. Changing this creates a new + // security group. + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` +} + +type SecgroupV2Observation struct { + + // Whether or not to delete the default + // egress security rules. This is false by default. + DeleteDefaultRules *bool `json:"deleteDefaultRules,omitempty" tf:"delete_default_rules,omitempty"` + + // A unique name for the security group. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // A unique name for the security group. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The owner of the security group. Required if admin + // wants to create a port for another tenant. Changing this creates a new + // security group. + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` +} + +type SecgroupV2Parameters struct { + + // Whether or not to delete the default + // egress security rules. This is false by default. + // +kubebuilder:validation:Optional + DeleteDefaultRules *bool `json:"deleteDefaultRules,omitempty" tf:"delete_default_rules,omitempty"` + + // A unique name for the security group. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // A unique name for the security group. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The owner of the security group. Required if admin + // wants to create a port for another tenant. Changing this creates a new + // security group. + // +kubebuilder:validation:Optional + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` +} + +// SecgroupV2Spec defines the desired state of SecgroupV2 +type SecgroupV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider SecgroupV2Parameters `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 SecgroupV2InitParameters `json:"initProvider,omitempty"` +} + +// SecgroupV2Status defines the observed state of SecgroupV2. +type SecgroupV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider SecgroupV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// SecgroupV2 is the Schema for the SecgroupV2s API. Manages a VPC Security Group resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type SecgroupV2 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.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + Spec SecgroupV2Spec `json:"spec"` + Status SecgroupV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// SecgroupV2List contains a list of SecgroupV2s +type SecgroupV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []SecgroupV2 `json:"items"` +} + +// Repository type metadata. +var ( + SecgroupV2_Kind = "SecgroupV2" + SecgroupV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: SecgroupV2_Kind}.String() + SecgroupV2_KindAPIVersion = SecgroupV2_Kind + "." + CRDGroupVersion.String() + SecgroupV2_GroupVersionKind = CRDGroupVersion.WithKind(SecgroupV2_Kind) +) + +func init() { + SchemeBuilder.Register(&SecgroupV2{}, &SecgroupV2List{}) +} diff --git a/apis/networking/v1alpha1/zz_subnetv2_types.go b/apis/networking/v1alpha1/zz_subnetv2_types.go new file mode 100755 index 0000000..2c9cda6 --- /dev/null +++ b/apis/networking/v1alpha1/zz_subnetv2_types.go @@ -0,0 +1,334 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 AllocationPoolsInitParameters struct { + + // The ending address. + End *string `json:"end,omitempty" tf:"end,omitempty"` + + // The starting address. + Start *string `json:"start,omitempty" tf:"start,omitempty"` +} + +type AllocationPoolsObservation struct { + + // The ending address. + End *string `json:"end,omitempty" tf:"end,omitempty"` + + // The starting address. + Start *string `json:"start,omitempty" tf:"start,omitempty"` +} + +type AllocationPoolsParameters struct { + + // The ending address. + // +kubebuilder:validation:Optional + End *string `json:"end" tf:"end,omitempty"` + + // The starting address. + // +kubebuilder:validation:Optional + Start *string `json:"start" tf:"start,omitempty"` +} + +type HostRoutesInitParameters struct { + + // The destination CIDR. + DestinationCidr *string `json:"destinationCidr,omitempty" tf:"destination_cidr,omitempty"` + + // The next hop in the route. + NextHop *string `json:"nextHop,omitempty" tf:"next_hop,omitempty"` +} + +type HostRoutesObservation struct { + + // The destination CIDR. + DestinationCidr *string `json:"destinationCidr,omitempty" tf:"destination_cidr,omitempty"` + + // The next hop in the route. + NextHop *string `json:"nextHop,omitempty" tf:"next_hop,omitempty"` +} + +type HostRoutesParameters struct { + + // The destination CIDR. + // +kubebuilder:validation:Optional + DestinationCidr *string `json:"destinationCidr" tf:"destination_cidr,omitempty"` + + // The next hop in the route. + // +kubebuilder:validation:Optional + NextHop *string `json:"nextHop" tf:"next_hop,omitempty"` +} + +type SubnetV2InitParameters struct { + + // An array of sub-ranges of CIDR available for + // dynamic allocation to ports. The allocation_pool object structure is + // documented below. Changing this creates a new subnet. + AllocationPools []AllocationPoolsInitParameters `json:"allocationPools,omitempty" tf:"allocation_pools,omitempty"` + + // CIDR representing IP range for this subnet, based on IP + // version. Changing this creates a new subnet. + Cidr *string `json:"cidr,omitempty" tf:"cidr,omitempty"` + + // An array of DNS name server names used by hosts + // in this subnet. Changing this updates the DNS name servers for the existing + // subnet. Default value is ["100.125.4.25", "100.125.129.199"] + DNSNameservers []*string `json:"dnsNameservers,omitempty" tf:"dns_nameservers,omitempty"` + + // The administrative state of the network. + // Acceptable values are "true" and "false". Changing this value enables or + // disables the DHCP capabilities of the existing subnet. Defaults to true. + EnableDHCP *bool `json:"enableDhcp,omitempty" tf:"enable_dhcp,omitempty"` + + // Default gateway used by devices in this subnet. + // Leaving this blank and not setting no_gateway will cause a default + // gateway of .1 to be used. Changing this updates the gateway IP of the + // existing subnet. + GatewayIP *string `json:"gatewayIp,omitempty" tf:"gateway_ip,omitempty"` + + // An array of routes that should be used by devices + // with IPs from this subnet (not including local subnet route). The host_route + // object structure is documented below. Changing this updates the host routes + // for the existing subnet. + HostRoutes []HostRoutesInitParameters `json:"hostRoutes,omitempty" tf:"host_routes,omitempty"` + + // IP version, either 4 (default) or 6. Changing this creates a + // new subnet. + IPVersion *float64 `json:"ipVersion,omitempty" tf:"ip_version,omitempty"` + + // The name of the subnet. Changing this updates the name of + // the existing subnet. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Do not set a gateway IP on this subnet. Changing + // this removes or adds a default gateway IP of the existing subnet. + NoGateway *bool `json:"noGateway,omitempty" tf:"no_gateway,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The owner of the subnet. Required if admin wants to + // create a subnet for another tenant. Changing this creates a new subnet. + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // Map of additional options. + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +type SubnetV2Observation struct { + + // An array of sub-ranges of CIDR available for + // dynamic allocation to ports. The allocation_pool object structure is + // documented below. Changing this creates a new subnet. + AllocationPools []AllocationPoolsObservation `json:"allocationPools,omitempty" tf:"allocation_pools,omitempty"` + + // CIDR representing IP range for this subnet, based on IP + // version. Changing this creates a new subnet. + Cidr *string `json:"cidr,omitempty" tf:"cidr,omitempty"` + + // An array of DNS name server names used by hosts + // in this subnet. Changing this updates the DNS name servers for the existing + // subnet. Default value is ["100.125.4.25", "100.125.129.199"] + DNSNameservers []*string `json:"dnsNameservers,omitempty" tf:"dns_nameservers,omitempty"` + + // The administrative state of the network. + // Acceptable values are "true" and "false". Changing this value enables or + // disables the DHCP capabilities of the existing subnet. Defaults to true. + EnableDHCP *bool `json:"enableDhcp,omitempty" tf:"enable_dhcp,omitempty"` + + // Default gateway used by devices in this subnet. + // Leaving this blank and not setting no_gateway will cause a default + // gateway of .1 to be used. Changing this updates the gateway IP of the + // existing subnet. + GatewayIP *string `json:"gatewayIp,omitempty" tf:"gateway_ip,omitempty"` + + // An array of routes that should be used by devices + // with IPs from this subnet (not including local subnet route). The host_route + // object structure is documented below. Changing this updates the host routes + // for the existing subnet. + HostRoutes []HostRoutesObservation `json:"hostRoutes,omitempty" tf:"host_routes,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // IP version, either 4 (default) or 6. Changing this creates a + // new subnet. + IPVersion *float64 `json:"ipVersion,omitempty" tf:"ip_version,omitempty"` + + // The name of the subnet. Changing this updates the name of + // the existing subnet. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The UUID of the parent network. Changing this + // creates a new subnet. + NetworkID *string `json:"networkId,omitempty" tf:"network_id,omitempty"` + + // Do not set a gateway IP on this subnet. Changing + // this removes or adds a default gateway IP of the existing subnet. + NoGateway *bool `json:"noGateway,omitempty" tf:"no_gateway,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The owner of the subnet. Required if admin wants to + // create a subnet for another tenant. Changing this creates a new subnet. + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // Map of additional options. + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +type SubnetV2Parameters struct { + + // An array of sub-ranges of CIDR available for + // dynamic allocation to ports. The allocation_pool object structure is + // documented below. Changing this creates a new subnet. + // +kubebuilder:validation:Optional + AllocationPools []AllocationPoolsParameters `json:"allocationPools,omitempty" tf:"allocation_pools,omitempty"` + + // CIDR representing IP range for this subnet, based on IP + // version. Changing this creates a new subnet. + // +kubebuilder:validation:Optional + Cidr *string `json:"cidr,omitempty" tf:"cidr,omitempty"` + + // An array of DNS name server names used by hosts + // in this subnet. Changing this updates the DNS name servers for the existing + // subnet. Default value is ["100.125.4.25", "100.125.129.199"] + // +kubebuilder:validation:Optional + DNSNameservers []*string `json:"dnsNameservers,omitempty" tf:"dns_nameservers,omitempty"` + + // The administrative state of the network. + // Acceptable values are "true" and "false". Changing this value enables or + // disables the DHCP capabilities of the existing subnet. Defaults to true. + // +kubebuilder:validation:Optional + EnableDHCP *bool `json:"enableDhcp,omitempty" tf:"enable_dhcp,omitempty"` + + // Default gateway used by devices in this subnet. + // Leaving this blank and not setting no_gateway will cause a default + // gateway of .1 to be used. Changing this updates the gateway IP of the + // existing subnet. + // +kubebuilder:validation:Optional + GatewayIP *string `json:"gatewayIp,omitempty" tf:"gateway_ip,omitempty"` + + // An array of routes that should be used by devices + // with IPs from this subnet (not including local subnet route). The host_route + // object structure is documented below. Changing this updates the host routes + // for the existing subnet. + // +kubebuilder:validation:Optional + HostRoutes []HostRoutesParameters `json:"hostRoutes,omitempty" tf:"host_routes,omitempty"` + + // IP version, either 4 (default) or 6. Changing this creates a + // new subnet. + // +kubebuilder:validation:Optional + IPVersion *float64 `json:"ipVersion,omitempty" tf:"ip_version,omitempty"` + + // The name of the subnet. Changing this updates the name of + // the existing subnet. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The UUID of the parent network. Changing this + // creates a new subnet. + // +crossplane:generate:reference:type=NetworkV2 + // +kubebuilder:validation:Optional + NetworkID *string `json:"networkId,omitempty" tf:"network_id,omitempty"` + + // Reference to a NetworkV2 to populate networkId. + // +kubebuilder:validation:Optional + NetworkIDRef *v1.Reference `json:"networkIdRef,omitempty" tf:"-"` + + // Selector for a NetworkV2 to populate networkId. + // +kubebuilder:validation:Optional + NetworkIDSelector *v1.Selector `json:"networkIdSelector,omitempty" tf:"-"` + + // Do not set a gateway IP on this subnet. Changing + // this removes or adds a default gateway IP of the existing subnet. + // +kubebuilder:validation:Optional + NoGateway *bool `json:"noGateway,omitempty" tf:"no_gateway,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The owner of the subnet. Required if admin wants to + // create a subnet for another tenant. Changing this creates a new subnet. + // +kubebuilder:validation:Optional + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // Map of additional options. + // +kubebuilder:validation:Optional + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +// SubnetV2Spec defines the desired state of SubnetV2 +type SubnetV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider SubnetV2Parameters `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 SubnetV2InitParameters `json:"initProvider,omitempty"` +} + +// SubnetV2Status defines the observed state of SubnetV2. +type SubnetV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider SubnetV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// SubnetV2 is the Schema for the SubnetV2s API. Manages a VPC Subnet resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type SubnetV2 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.cidr) || (has(self.initProvider) && has(self.initProvider.cidr))",message="spec.forProvider.cidr is a required parameter" + Spec SubnetV2Spec `json:"spec"` + Status SubnetV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// SubnetV2List contains a list of SubnetV2s +type SubnetV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []SubnetV2 `json:"items"` +} + +// Repository type metadata. +var ( + SubnetV2_Kind = "SubnetV2" + SubnetV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: SubnetV2_Kind}.String() + SubnetV2_KindAPIVersion = SubnetV2_Kind + "." + CRDGroupVersion.String() + SubnetV2_GroupVersionKind = CRDGroupVersion.WithKind(SubnetV2_Kind) +) + +func init() { + SchemeBuilder.Register(&SubnetV2{}, &SubnetV2List{}) +} diff --git a/apis/networking/v1alpha1/zz_vipassociatev2_types.go b/apis/networking/v1alpha1/zz_vipassociatev2_types.go new file mode 100755 index 0000000..781bd38 --- /dev/null +++ b/apis/networking/v1alpha1/zz_vipassociatev2_types.go @@ -0,0 +1,122 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 VipAssociateV2InitParameters struct { + + // An array of one or more IDs of the ports to attach the vip to. + // Changing this creates a new vip associate. + PortIds []*string `json:"portIds,omitempty" tf:"port_ids,omitempty"` + + // The ID of vip to attach the port to. + // Changing this creates a new vip associate. + VipID *string `json:"vipId,omitempty" tf:"vip_id,omitempty"` +} + +type VipAssociateV2Observation struct { + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // An array of one or more IDs of the ports to attach the vip to. + // Changing this creates a new vip associate. + PortIds []*string `json:"portIds,omitempty" tf:"port_ids,omitempty"` + + // The ID of vip to attach the port to. + // Changing this creates a new vip associate. + VipID *string `json:"vipId,omitempty" tf:"vip_id,omitempty"` + + // The IP address in the subnet for this vip. + VipIPAddress *string `json:"vipIpAddress,omitempty" tf:"vip_ip_address,omitempty"` + + // The ID of the subnet this vip connects to. + VipSubnetID *string `json:"vipSubnetId,omitempty" tf:"vip_subnet_id,omitempty"` +} + +type VipAssociateV2Parameters struct { + + // An array of one or more IDs of the ports to attach the vip to. + // Changing this creates a new vip associate. + // +kubebuilder:validation:Optional + PortIds []*string `json:"portIds,omitempty" tf:"port_ids,omitempty"` + + // The ID of vip to attach the port to. + // Changing this creates a new vip associate. + // +kubebuilder:validation:Optional + VipID *string `json:"vipId,omitempty" tf:"vip_id,omitempty"` +} + +// VipAssociateV2Spec defines the desired state of VipAssociateV2 +type VipAssociateV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider VipAssociateV2Parameters `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 VipAssociateV2InitParameters `json:"initProvider,omitempty"` +} + +// VipAssociateV2Status defines the observed state of VipAssociateV2. +type VipAssociateV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider VipAssociateV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// VipAssociateV2 is the Schema for the VipAssociateV2s API. Manages a VPC VIP Associate resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type VipAssociateV2 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.portIds) || (has(self.initProvider) && has(self.initProvider.portIds))",message="spec.forProvider.portIds is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.vipId) || (has(self.initProvider) && has(self.initProvider.vipId))",message="spec.forProvider.vipId is a required parameter" + Spec VipAssociateV2Spec `json:"spec"` + Status VipAssociateV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// VipAssociateV2List contains a list of VipAssociateV2s +type VipAssociateV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []VipAssociateV2 `json:"items"` +} + +// Repository type metadata. +var ( + VipAssociateV2_Kind = "VipAssociateV2" + VipAssociateV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: VipAssociateV2_Kind}.String() + VipAssociateV2_KindAPIVersion = VipAssociateV2_Kind + "." + CRDGroupVersion.String() + VipAssociateV2_GroupVersionKind = CRDGroupVersion.WithKind(VipAssociateV2_Kind) +) + +func init() { + SchemeBuilder.Register(&VipAssociateV2{}, &VipAssociateV2List{}) +} diff --git a/apis/networking/v1alpha1/zz_vipv2_types.go b/apis/networking/v1alpha1/zz_vipv2_types.go new file mode 100755 index 0000000..4a6b1e2 --- /dev/null +++ b/apis/networking/v1alpha1/zz_vipv2_types.go @@ -0,0 +1,153 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 VipV2InitParameters struct { + + // IP address desired in the subnet for this vip. + // If you don't specify ip_address, an available IP address from + // the specified subnet will be allocated to this vip. + IPAddress *string `json:"ipAddress,omitempty" tf:"ip_address,omitempty"` + + // A unique name for the vip. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The ID of the network to attach the vip to. + // Changing this creates a new vip. + NetworkID *string `json:"networkId,omitempty" tf:"network_id,omitempty"` + + // Subnet in which to allocate IP address for this vip. + // Changing this creates a new vip. + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` +} + +type VipV2Observation struct { + + // The device owner of the vip. + DeviceOwner *string `json:"deviceOwner,omitempty" tf:"device_owner,omitempty"` + + // The ID of the vip. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // IP address desired in the subnet for this vip. + // If you don't specify ip_address, an available IP address from + // the specified subnet will be allocated to this vip. + IPAddress *string `json:"ipAddress,omitempty" tf:"ip_address,omitempty"` + + // A unique name for the vip. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The ID of the network to attach the vip to. + // Changing this creates a new vip. + NetworkID *string `json:"networkId,omitempty" tf:"network_id,omitempty"` + + // The status of vip. + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + // Subnet in which to allocate IP address for this vip. + // Changing this creates a new vip. + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // The tenant ID of the vip. + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` +} + +type VipV2Parameters struct { + + // IP address desired in the subnet for this vip. + // If you don't specify ip_address, an available IP address from + // the specified subnet will be allocated to this vip. + // +kubebuilder:validation:Optional + IPAddress *string `json:"ipAddress,omitempty" tf:"ip_address,omitempty"` + + // A unique name for the vip. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The ID of the network to attach the vip to. + // Changing this creates a new vip. + // +kubebuilder:validation:Optional + NetworkID *string `json:"networkId,omitempty" tf:"network_id,omitempty"` + + // Subnet in which to allocate IP address for this vip. + // Changing this creates a new vip. + // +kubebuilder:validation:Optional + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` +} + +// VipV2Spec defines the desired state of VipV2 +type VipV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider VipV2Parameters `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 VipV2InitParameters `json:"initProvider,omitempty"` +} + +// VipV2Status defines the observed state of VipV2. +type VipV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider VipV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// VipV2 is the Schema for the VipV2s API. Manages a VPC VIP resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type VipV2 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.networkId) || (has(self.initProvider) && has(self.initProvider.networkId))",message="spec.forProvider.networkId 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 VipV2Spec `json:"spec"` + Status VipV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// VipV2List contains a list of VipV2s +type VipV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []VipV2 `json:"items"` +} + +// Repository type metadata. +var ( + VipV2_Kind = "VipV2" + VipV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: VipV2_Kind}.String() + VipV2_KindAPIVersion = VipV2_Kind + "." + CRDGroupVersion.String() + VipV2_GroupVersionKind = CRDGroupVersion.WithKind(VipV2_Kind) +) + +func init() { + SchemeBuilder.Register(&VipV2{}, &VipV2List{}) +} diff --git a/apis/null/v1alpha1/zz_generated.deepcopy.go b/apis/null/v1alpha1/zz_generated.deepcopy.go deleted file mode 100644 index 1af19ad..0000000 --- a/apis/null/v1alpha1/zz_generated.deepcopy.go +++ /dev/null @@ -1,205 +0,0 @@ -//go:build !ignore_autogenerated - -/* -Copyright 2022 Upbound Inc. -*/ - -// Code generated by controller-gen. DO NOT EDIT. - -package v1alpha1 - -import ( - 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 *Resource) DeepCopyInto(out *Resource) { - *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 Resource. -func (in *Resource) DeepCopy() *Resource { - if in == nil { - return nil - } - out := new(Resource) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Resource) 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 *ResourceInitParameters) DeepCopyInto(out *ResourceInitParameters) { - *out = *in - if in.Triggers != nil { - in, out := &in.Triggers, &out.Triggers - *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 ResourceInitParameters. -func (in *ResourceInitParameters) DeepCopy() *ResourceInitParameters { - if in == nil { - return nil - } - out := new(ResourceInitParameters) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ResourceList) DeepCopyInto(out *ResourceList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]Resource, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceList. -func (in *ResourceList) DeepCopy() *ResourceList { - if in == nil { - return nil - } - out := new(ResourceList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *ResourceList) 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 *ResourceObservation) DeepCopyInto(out *ResourceObservation) { - *out = *in - if in.ID != nil { - in, out := &in.ID, &out.ID - *out = new(string) - **out = **in - } - if in.Triggers != nil { - in, out := &in.Triggers, &out.Triggers - *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 ResourceObservation. -func (in *ResourceObservation) DeepCopy() *ResourceObservation { - if in == nil { - return nil - } - out := new(ResourceObservation) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ResourceParameters) DeepCopyInto(out *ResourceParameters) { - *out = *in - if in.Triggers != nil { - in, out := &in.Triggers, &out.Triggers - *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 ResourceParameters. -func (in *ResourceParameters) DeepCopy() *ResourceParameters { - if in == nil { - return nil - } - out := new(ResourceParameters) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ResourceSpec) DeepCopyInto(out *ResourceSpec) { - *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 ResourceSpec. -func (in *ResourceSpec) DeepCopy() *ResourceSpec { - if in == nil { - return nil - } - out := new(ResourceSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ResourceStatus) DeepCopyInto(out *ResourceStatus) { - *out = *in - in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) - in.AtProvider.DeepCopyInto(&out.AtProvider) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResourceStatus. -func (in *ResourceStatus) DeepCopy() *ResourceStatus { - if in == nil { - return nil - } - out := new(ResourceStatus) - in.DeepCopyInto(out) - return out -} diff --git a/apis/null/v1alpha1/zz_generated.managed.go b/apis/null/v1alpha1/zz_generated.managed.go deleted file mode 100644 index 74df9c5..0000000 --- a/apis/null/v1alpha1/zz_generated.managed.go +++ /dev/null @@ -1,68 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ -// Code generated by angryjet. DO NOT EDIT. - -package v1alpha1 - -import xpv1 "github.com/crossplane/crossplane-runtime/apis/common/v1" - -// GetCondition of this Resource. -func (mg *Resource) GetCondition(ct xpv1.ConditionType) xpv1.Condition { - return mg.Status.GetCondition(ct) -} - -// GetDeletionPolicy of this Resource. -func (mg *Resource) GetDeletionPolicy() xpv1.DeletionPolicy { - return mg.Spec.DeletionPolicy -} - -// GetManagementPolicies of this Resource. -func (mg *Resource) GetManagementPolicies() xpv1.ManagementPolicies { - return mg.Spec.ManagementPolicies -} - -// GetProviderConfigReference of this Resource. -func (mg *Resource) GetProviderConfigReference() *xpv1.Reference { - return mg.Spec.ProviderConfigReference -} - -// GetPublishConnectionDetailsTo of this Resource. -func (mg *Resource) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { - return mg.Spec.PublishConnectionDetailsTo -} - -// GetWriteConnectionSecretToReference of this Resource. -func (mg *Resource) GetWriteConnectionSecretToReference() *xpv1.SecretReference { - return mg.Spec.WriteConnectionSecretToReference -} - -// SetConditions of this Resource. -func (mg *Resource) SetConditions(c ...xpv1.Condition) { - mg.Status.SetConditions(c...) -} - -// SetDeletionPolicy of this Resource. -func (mg *Resource) SetDeletionPolicy(r xpv1.DeletionPolicy) { - mg.Spec.DeletionPolicy = r -} - -// SetManagementPolicies of this Resource. -func (mg *Resource) SetManagementPolicies(r xpv1.ManagementPolicies) { - mg.Spec.ManagementPolicies = r -} - -// SetProviderConfigReference of this Resource. -func (mg *Resource) SetProviderConfigReference(r *xpv1.Reference) { - mg.Spec.ProviderConfigReference = r -} - -// SetPublishConnectionDetailsTo of this Resource. -func (mg *Resource) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { - mg.Spec.PublishConnectionDetailsTo = r -} - -// SetWriteConnectionSecretToReference of this Resource. -func (mg *Resource) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { - mg.Spec.WriteConnectionSecretToReference = r -} diff --git a/apis/obs/v1alpha1/zz_bucket_types.go b/apis/obs/v1alpha1/zz_bucket_types.go new file mode 100755 index 0000000..1793124 --- /dev/null +++ b/apis/obs/v1alpha1/zz_bucket_types.go @@ -0,0 +1,822 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 BucketInitParameters struct { + + // Specifies the ACL policy for a bucket. The predefined common policies are as follows: + // private, public-read, public-read-write and log-delivery-write. Defaults to private. + ACL *string `json:"acl,omitempty" tf:"acl,omitempty"` + + // Specifies the name of the bucket. Changing this parameter will create a new resource. + // A bucket must be named according to the globally applied DNS naming regulations as follows: + Bucket *string `json:"bucket,omitempty" tf:"bucket,omitempty"` + + // A rule of Cross-Origin Resource Sharing (documented below). + CorsRule []CorsRuleInitParameters `json:"corsRule,omitempty" tf:"cors_rule,omitempty"` + + // A configuration of bucket event notifications (documented below). + EventNotifications []EventNotificationsInitParameters `json:"eventNotifications,omitempty" tf:"event_notifications,omitempty"` + + // A boolean that indicates all objects should be deleted from the bucket so that the + // bucket can be destroyed without error. Default to false. + ForceDestroy *bool `json:"forceDestroy,omitempty" tf:"force_destroy,omitempty"` + + // A configuration of object lifecycle management (documented below). + LifecycleRule []LifecycleRuleInitParameters `json:"lifecycleRule,omitempty" tf:"lifecycle_rule,omitempty"` + + // A settings of bucket logging (documented below). + Logging []LoggingInitParameters `json:"logging,omitempty" tf:"logging,omitempty"` + + // Whether enable a bucket as a parallel file system. + ParallelFs *bool `json:"parallelFs,omitempty" tf:"parallel_fs,omitempty"` + + // If specified, the region this bucket should reside in. Otherwise, + // the region used by the provider. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // A configuration of server side encryption (documented below). + ServerSideEncryption []ServerSideEncryptionInitParameters `json:"serverSideEncryption,omitempty" tf:"server_side_encryption,omitempty"` + + // Specifies the storage class of the bucket. OBS provides three storage classes: + // STANDARD, WARM (Infrequent Access) and COLD (Archive). Defaults to STANDARD. + StorageClass *string `json:"storageClass,omitempty" tf:"storage_class,omitempty"` + + // A mapping of tags to assign to the bucket. Each tag is represented by one key-value pair. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Specifies the user domain names. The restriction requirements for this field + // are as follows: + UserDomainNames []*string `json:"userDomainNames,omitempty" tf:"user_domain_names,omitempty"` + + // Set to true to enable versioning. Once you version-enable a bucket, it can never return to an + // unversioned state. You can, however, suspend versioning on that bucket. If omitted, during bucket + // creation it will be in Disabled state. + Versioning *bool `json:"versioning,omitempty" tf:"versioning,omitempty"` + + // A website object (documented below). + Website []WebsiteInitParameters `json:"website,omitempty" tf:"website,omitempty"` + + // A settings of bucket default WORM policy and a retention period (documented below). + // worm_policy requires versioning to be enabled. + WormPolicy []WormPolicyInitParameters `json:"wormPolicy,omitempty" tf:"worm_policy,omitempty"` +} + +type BucketObservation struct { + + // Specifies the ACL policy for a bucket. The predefined common policies are as follows: + // private, public-read, public-read-write and log-delivery-write. Defaults to private. + ACL *string `json:"acl,omitempty" tf:"acl,omitempty"` + + // Specifies the name of the bucket. Changing this parameter will create a new resource. + // A bucket must be named according to the globally applied DNS naming regulations as follows: + Bucket *string `json:"bucket,omitempty" tf:"bucket,omitempty"` + + // The bucket domain name. Will be of format bucketname.obs.region.otc.t-systems.com. + BucketDomainName *string `json:"bucketDomainName,omitempty" tf:"bucket_domain_name,omitempty"` + + // The OBS version of the bucket. + BucketVersion *string `json:"bucketVersion,omitempty" tf:"bucket_version,omitempty"` + + // A rule of Cross-Origin Resource Sharing (documented below). + CorsRule []CorsRuleObservation `json:"corsRule,omitempty" tf:"cors_rule,omitempty"` + + // A configuration of bucket event notifications (documented below). + EventNotifications []EventNotificationsObservation `json:"eventNotifications,omitempty" tf:"event_notifications,omitempty"` + + // A boolean that indicates all objects should be deleted from the bucket so that the + // bucket can be destroyed without error. Default to false. + ForceDestroy *bool `json:"forceDestroy,omitempty" tf:"force_destroy,omitempty"` + + // Unique ID of the event notification. If the user does not specify an ID, the system assigns an ID automatically. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // A configuration of object lifecycle management (documented below). + LifecycleRule []LifecycleRuleObservation `json:"lifecycleRule,omitempty" tf:"lifecycle_rule,omitempty"` + + // A settings of bucket logging (documented below). + Logging []LoggingObservation `json:"logging,omitempty" tf:"logging,omitempty"` + + // Whether enable a bucket as a parallel file system. + ParallelFs *bool `json:"parallelFs,omitempty" tf:"parallel_fs,omitempty"` + + // If specified, the region this bucket should reside in. Otherwise, + // the region used by the provider. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // A configuration of server side encryption (documented below). + ServerSideEncryption []ServerSideEncryptionObservation `json:"serverSideEncryption,omitempty" tf:"server_side_encryption,omitempty"` + + // Specifies the storage class of the bucket. OBS provides three storage classes: + // STANDARD, WARM (Infrequent Access) and COLD (Archive). Defaults to STANDARD. + StorageClass *string `json:"storageClass,omitempty" tf:"storage_class,omitempty"` + + // A mapping of tags to assign to the bucket. Each tag is represented by one key-value pair. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Specifies the user domain names. The restriction requirements for this field + // are as follows: + UserDomainNames []*string `json:"userDomainNames,omitempty" tf:"user_domain_names,omitempty"` + + // Set to true to enable versioning. Once you version-enable a bucket, it can never return to an + // unversioned state. You can, however, suspend versioning on that bucket. If omitted, during bucket + // creation it will be in Disabled state. + Versioning *bool `json:"versioning,omitempty" tf:"versioning,omitempty"` + + // A website object (documented below). + Website []WebsiteObservation `json:"website,omitempty" tf:"website,omitempty"` + + // A settings of bucket default WORM policy and a retention period (documented below). + // worm_policy requires versioning to be enabled. + WormPolicy []WormPolicyObservation `json:"wormPolicy,omitempty" tf:"worm_policy,omitempty"` +} + +type BucketParameters struct { + + // Specifies the ACL policy for a bucket. The predefined common policies are as follows: + // private, public-read, public-read-write and log-delivery-write. Defaults to private. + // +kubebuilder:validation:Optional + ACL *string `json:"acl,omitempty" tf:"acl,omitempty"` + + // Specifies the name of the bucket. Changing this parameter will create a new resource. + // A bucket must be named according to the globally applied DNS naming regulations as follows: + // +kubebuilder:validation:Optional + Bucket *string `json:"bucket,omitempty" tf:"bucket,omitempty"` + + // A rule of Cross-Origin Resource Sharing (documented below). + // +kubebuilder:validation:Optional + CorsRule []CorsRuleParameters `json:"corsRule,omitempty" tf:"cors_rule,omitempty"` + + // A configuration of bucket event notifications (documented below). + // +kubebuilder:validation:Optional + EventNotifications []EventNotificationsParameters `json:"eventNotifications,omitempty" tf:"event_notifications,omitempty"` + + // A boolean that indicates all objects should be deleted from the bucket so that the + // bucket can be destroyed without error. Default to false. + // +kubebuilder:validation:Optional + ForceDestroy *bool `json:"forceDestroy,omitempty" tf:"force_destroy,omitempty"` + + // A configuration of object lifecycle management (documented below). + // +kubebuilder:validation:Optional + LifecycleRule []LifecycleRuleParameters `json:"lifecycleRule,omitempty" tf:"lifecycle_rule,omitempty"` + + // A settings of bucket logging (documented below). + // +kubebuilder:validation:Optional + Logging []LoggingParameters `json:"logging,omitempty" tf:"logging,omitempty"` + + // Whether enable a bucket as a parallel file system. + // +kubebuilder:validation:Optional + ParallelFs *bool `json:"parallelFs,omitempty" tf:"parallel_fs,omitempty"` + + // If specified, the region this bucket should reside in. Otherwise, + // the region used by the provider. + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // A configuration of server side encryption (documented below). + // +kubebuilder:validation:Optional + ServerSideEncryption []ServerSideEncryptionParameters `json:"serverSideEncryption,omitempty" tf:"server_side_encryption,omitempty"` + + // Specifies the storage class of the bucket. OBS provides three storage classes: + // STANDARD, WARM (Infrequent Access) and COLD (Archive). Defaults to STANDARD. + // +kubebuilder:validation:Optional + StorageClass *string `json:"storageClass,omitempty" tf:"storage_class,omitempty"` + + // A mapping of tags to assign to the bucket. Each tag is represented by one key-value pair. + // +kubebuilder:validation:Optional + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Specifies the user domain names. The restriction requirements for this field + // are as follows: + // +kubebuilder:validation:Optional + UserDomainNames []*string `json:"userDomainNames,omitempty" tf:"user_domain_names,omitempty"` + + // Set to true to enable versioning. Once you version-enable a bucket, it can never return to an + // unversioned state. You can, however, suspend versioning on that bucket. If omitted, during bucket + // creation it will be in Disabled state. + // +kubebuilder:validation:Optional + Versioning *bool `json:"versioning,omitempty" tf:"versioning,omitempty"` + + // A website object (documented below). + // +kubebuilder:validation:Optional + Website []WebsiteParameters `json:"website,omitempty" tf:"website,omitempty"` + + // A settings of bucket default WORM policy and a retention period (documented below). + // worm_policy requires versioning to be enabled. + // +kubebuilder:validation:Optional + WormPolicy []WormPolicyParameters `json:"wormPolicy,omitempty" tf:"worm_policy,omitempty"` +} + +type CorsRuleInitParameters struct { + + // Specifies the allowed header of cross-origin requests. + // Only CORS requests matching the allowed header are valid. + AllowedHeaders []*string `json:"allowedHeaders,omitempty" tf:"allowed_headers,omitempty"` + + // Specifies the acceptable operation type of buckets and objects. + // The methods include GET, PUT, POST, DELETE or HEAD. + AllowedMethods []*string `json:"allowedMethods,omitempty" tf:"allowed_methods,omitempty"` + + // Requests from this origin can access the bucket. Multiple matching rules are allowed. + // One rule occupies one line, and allows one wildcard character (*) at most. + AllowedOrigins []*string `json:"allowedOrigins,omitempty" tf:"allowed_origins,omitempty"` + + // Specifies the exposed header in CORS responses, providing additional + // information for clients. + ExposeHeaders []*string `json:"exposeHeaders,omitempty" tf:"expose_headers,omitempty"` + + // Specifies the duration that your browser can cache CORS responses, + // expressed in seconds. The default value is 100. + MaxAgeSeconds *float64 `json:"maxAgeSeconds,omitempty" tf:"max_age_seconds,omitempty"` +} + +type CorsRuleObservation struct { + + // Specifies the allowed header of cross-origin requests. + // Only CORS requests matching the allowed header are valid. + AllowedHeaders []*string `json:"allowedHeaders,omitempty" tf:"allowed_headers,omitempty"` + + // Specifies the acceptable operation type of buckets and objects. + // The methods include GET, PUT, POST, DELETE or HEAD. + AllowedMethods []*string `json:"allowedMethods,omitempty" tf:"allowed_methods,omitempty"` + + // Requests from this origin can access the bucket. Multiple matching rules are allowed. + // One rule occupies one line, and allows one wildcard character (*) at most. + AllowedOrigins []*string `json:"allowedOrigins,omitempty" tf:"allowed_origins,omitempty"` + + // Specifies the exposed header in CORS responses, providing additional + // information for clients. + ExposeHeaders []*string `json:"exposeHeaders,omitempty" tf:"expose_headers,omitempty"` + + // Specifies the duration that your browser can cache CORS responses, + // expressed in seconds. The default value is 100. + MaxAgeSeconds *float64 `json:"maxAgeSeconds,omitempty" tf:"max_age_seconds,omitempty"` +} + +type CorsRuleParameters struct { + + // Specifies the allowed header of cross-origin requests. + // Only CORS requests matching the allowed header are valid. + // +kubebuilder:validation:Optional + AllowedHeaders []*string `json:"allowedHeaders,omitempty" tf:"allowed_headers,omitempty"` + + // Specifies the acceptable operation type of buckets and objects. + // The methods include GET, PUT, POST, DELETE or HEAD. + // +kubebuilder:validation:Optional + AllowedMethods []*string `json:"allowedMethods" tf:"allowed_methods,omitempty"` + + // Requests from this origin can access the bucket. Multiple matching rules are allowed. + // One rule occupies one line, and allows one wildcard character (*) at most. + // +kubebuilder:validation:Optional + AllowedOrigins []*string `json:"allowedOrigins" tf:"allowed_origins,omitempty"` + + // Specifies the exposed header in CORS responses, providing additional + // information for clients. + // +kubebuilder:validation:Optional + ExposeHeaders []*string `json:"exposeHeaders,omitempty" tf:"expose_headers,omitempty"` + + // Specifies the duration that your browser can cache CORS responses, + // expressed in seconds. The default value is 100. + // +kubebuilder:validation:Optional + MaxAgeSeconds *float64 `json:"maxAgeSeconds,omitempty" tf:"max_age_seconds,omitempty"` +} + +type EventNotificationsInitParameters struct { + + // Type of events that need to be notified. + Events []*string `json:"events,omitempty" tf:"events,omitempty"` + + // Filtering rules. The rules filter objects based on the prefixes and suffixes of object names. + FilterRule []FilterRuleInitParameters `json:"filterRule,omitempty" tf:"filter_rule,omitempty"` + + // Unique ID of the event notification. If the user does not specify an ID, the system assigns an ID automatically. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // URN of the event notification topic. After detecting a specific event, OBS sends a message to the topic. + Topic *string `json:"topic,omitempty" tf:"topic,omitempty"` +} + +type EventNotificationsObservation struct { + + // Type of events that need to be notified. + Events []*string `json:"events,omitempty" tf:"events,omitempty"` + + // Filtering rules. The rules filter objects based on the prefixes and suffixes of object names. + FilterRule []FilterRuleObservation `json:"filterRule,omitempty" tf:"filter_rule,omitempty"` + + // Unique ID of the event notification. If the user does not specify an ID, the system assigns an ID automatically. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // URN of the event notification topic. After detecting a specific event, OBS sends a message to the topic. + Topic *string `json:"topic,omitempty" tf:"topic,omitempty"` +} + +type EventNotificationsParameters struct { + + // Type of events that need to be notified. + // +kubebuilder:validation:Optional + Events []*string `json:"events" tf:"events,omitempty"` + + // Filtering rules. The rules filter objects based on the prefixes and suffixes of object names. + // +kubebuilder:validation:Optional + FilterRule []FilterRuleParameters `json:"filterRule,omitempty" tf:"filter_rule,omitempty"` + + // Unique ID of the event notification. If the user does not specify an ID, the system assigns an ID automatically. + // +kubebuilder:validation:Optional + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // URN of the event notification topic. After detecting a specific event, OBS sends a message to the topic. + // +kubebuilder:validation:Optional + Topic *string `json:"topic" tf:"topic,omitempty"` +} + +type ExpirationInitParameters struct { + + // Default protection period, in days. + // The value is from 1 to 36500. + Days *float64 `json:"days,omitempty" tf:"days,omitempty"` +} + +type ExpirationObservation struct { + + // Default protection period, in days. + // The value is from 1 to 36500. + Days *float64 `json:"days,omitempty" tf:"days,omitempty"` +} + +type ExpirationParameters struct { + + // Default protection period, in days. + // The value is from 1 to 36500. + // +kubebuilder:validation:Optional + Days *float64 `json:"days" tf:"days,omitempty"` +} + +type FilterRuleInitParameters struct { + + // Unique identifier for lifecycle rules. The Rule Name contains a maximum of 255 characters. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies keywords of object names so that objects can be filtered based on the prefixes or suffixes. + // The value contains a maximum of 1024 characters. + Value *string `json:"value,omitempty" tf:"value,omitempty"` +} + +type FilterRuleObservation struct { + + // Unique identifier for lifecycle rules. The Rule Name contains a maximum of 255 characters. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies keywords of object names so that objects can be filtered based on the prefixes or suffixes. + // The value contains a maximum of 1024 characters. + Value *string `json:"value,omitempty" tf:"value,omitempty"` +} + +type FilterRuleParameters struct { + + // Unique identifier for lifecycle rules. The Rule Name contains a maximum of 255 characters. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies keywords of object names so that objects can be filtered based on the prefixes or suffixes. + // The value contains a maximum of 1024 characters. + // +kubebuilder:validation:Optional + Value *string `json:"value,omitempty" tf:"value,omitempty"` +} + +type LifecycleRuleInitParameters struct { + + // Specifies lifecycle rule status. + Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + + // Specifies a period when objects that have been last updated are automatically + // deleted. (documented below). + Expiration []ExpirationInitParameters `json:"expiration,omitempty" tf:"expiration,omitempty"` + + // Unique identifier for lifecycle rules. The Rule Name contains a maximum of 255 characters. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies a period when noncurrent object versions are + // automatically deleted. (documented below). + NoncurrentVersionExpiration []NoncurrentVersionExpirationInitParameters `json:"noncurrentVersionExpiration,omitempty" tf:"noncurrent_version_expiration,omitempty"` + + // Specifies a period when noncurrent object versions are + // automatically transitioned to WARM or COLD storage class (documented below). + NoncurrentVersionTransition []NoncurrentVersionTransitionInitParameters `json:"noncurrentVersionTransition,omitempty" tf:"noncurrent_version_transition,omitempty"` + + // Object key prefix identifying one or more objects to which the rule applies. + // If omitted, all objects in the bucket will be managed by the lifecycle rule. The prefix cannot start + // or end with a slash (/), cannot have consecutive slashes (/), and cannot contain the following + // special characters: :*?"<>|. + Prefix *string `json:"prefix,omitempty" tf:"prefix,omitempty"` + + // Specifies a period when objects that have been last updated are automatically + // transitioned to WARM or COLD storage class (documented below). + Transition []TransitionInitParameters `json:"transition,omitempty" tf:"transition,omitempty"` +} + +type LifecycleRuleObservation struct { + + // Specifies lifecycle rule status. + Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + + // Specifies a period when objects that have been last updated are automatically + // deleted. (documented below). + Expiration []ExpirationObservation `json:"expiration,omitempty" tf:"expiration,omitempty"` + + // Unique identifier for lifecycle rules. The Rule Name contains a maximum of 255 characters. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies a period when noncurrent object versions are + // automatically deleted. (documented below). + NoncurrentVersionExpiration []NoncurrentVersionExpirationObservation `json:"noncurrentVersionExpiration,omitempty" tf:"noncurrent_version_expiration,omitempty"` + + // Specifies a period when noncurrent object versions are + // automatically transitioned to WARM or COLD storage class (documented below). + NoncurrentVersionTransition []NoncurrentVersionTransitionObservation `json:"noncurrentVersionTransition,omitempty" tf:"noncurrent_version_transition,omitempty"` + + // Object key prefix identifying one or more objects to which the rule applies. + // If omitted, all objects in the bucket will be managed by the lifecycle rule. The prefix cannot start + // or end with a slash (/), cannot have consecutive slashes (/), and cannot contain the following + // special characters: :*?"<>|. + Prefix *string `json:"prefix,omitempty" tf:"prefix,omitempty"` + + // Specifies a period when objects that have been last updated are automatically + // transitioned to WARM or COLD storage class (documented below). + Transition []TransitionObservation `json:"transition,omitempty" tf:"transition,omitempty"` +} + +type LifecycleRuleParameters struct { + + // Specifies lifecycle rule status. + // +kubebuilder:validation:Optional + Enabled *bool `json:"enabled" tf:"enabled,omitempty"` + + // Specifies a period when objects that have been last updated are automatically + // deleted. (documented below). + // +kubebuilder:validation:Optional + Expiration []ExpirationParameters `json:"expiration,omitempty" tf:"expiration,omitempty"` + + // Unique identifier for lifecycle rules. The Rule Name contains a maximum of 255 characters. + // +kubebuilder:validation:Optional + Name *string `json:"name" tf:"name,omitempty"` + + // Specifies a period when noncurrent object versions are + // automatically deleted. (documented below). + // +kubebuilder:validation:Optional + NoncurrentVersionExpiration []NoncurrentVersionExpirationParameters `json:"noncurrentVersionExpiration,omitempty" tf:"noncurrent_version_expiration,omitempty"` + + // Specifies a period when noncurrent object versions are + // automatically transitioned to WARM or COLD storage class (documented below). + // +kubebuilder:validation:Optional + NoncurrentVersionTransition []NoncurrentVersionTransitionParameters `json:"noncurrentVersionTransition,omitempty" tf:"noncurrent_version_transition,omitempty"` + + // Object key prefix identifying one or more objects to which the rule applies. + // If omitted, all objects in the bucket will be managed by the lifecycle rule. The prefix cannot start + // or end with a slash (/), cannot have consecutive slashes (/), and cannot contain the following + // special characters: :*?"<>|. + // +kubebuilder:validation:Optional + Prefix *string `json:"prefix,omitempty" tf:"prefix,omitempty"` + + // Specifies a period when objects that have been last updated are automatically + // transitioned to WARM or COLD storage class (documented below). + // +kubebuilder:validation:Optional + Transition []TransitionParameters `json:"transition,omitempty" tf:"transition,omitempty"` +} + +type LoggingInitParameters struct { + + // The name of the bucket that will receive the log objects. + // The acl policy of the target bucket should be log-delivery-write. + TargetBucket *string `json:"targetBucket,omitempty" tf:"target_bucket,omitempty"` + + // To specify a key prefix for log objects. + TargetPrefix *string `json:"targetPrefix,omitempty" tf:"target_prefix,omitempty"` +} + +type LoggingObservation struct { + + // The name of the bucket that will receive the log objects. + // The acl policy of the target bucket should be log-delivery-write. + TargetBucket *string `json:"targetBucket,omitempty" tf:"target_bucket,omitempty"` + + // To specify a key prefix for log objects. + TargetPrefix *string `json:"targetPrefix,omitempty" tf:"target_prefix,omitempty"` +} + +type LoggingParameters struct { + + // The name of the bucket that will receive the log objects. + // The acl policy of the target bucket should be log-delivery-write. + // +kubebuilder:validation:Optional + TargetBucket *string `json:"targetBucket" tf:"target_bucket,omitempty"` + + // To specify a key prefix for log objects. + // +kubebuilder:validation:Optional + TargetPrefix *string `json:"targetPrefix,omitempty" tf:"target_prefix,omitempty"` +} + +type NoncurrentVersionExpirationInitParameters struct { + + // Default protection period, in days. + // The value is from 1 to 36500. + Days *float64 `json:"days,omitempty" tf:"days,omitempty"` +} + +type NoncurrentVersionExpirationObservation struct { + + // Default protection period, in days. + // The value is from 1 to 36500. + Days *float64 `json:"days,omitempty" tf:"days,omitempty"` +} + +type NoncurrentVersionExpirationParameters struct { + + // Default protection period, in days. + // The value is from 1 to 36500. + // +kubebuilder:validation:Optional + Days *float64 `json:"days" tf:"days,omitempty"` +} + +type NoncurrentVersionTransitionInitParameters struct { + + // Default protection period, in days. + // The value is from 1 to 36500. + Days *float64 `json:"days,omitempty" tf:"days,omitempty"` + + // Specifies the storage class of the bucket. OBS provides three storage classes: + // STANDARD, WARM (Infrequent Access) and COLD (Archive). Defaults to STANDARD. + StorageClass *string `json:"storageClass,omitempty" tf:"storage_class,omitempty"` +} + +type NoncurrentVersionTransitionObservation struct { + + // Default protection period, in days. + // The value is from 1 to 36500. + Days *float64 `json:"days,omitempty" tf:"days,omitempty"` + + // Specifies the storage class of the bucket. OBS provides three storage classes: + // STANDARD, WARM (Infrequent Access) and COLD (Archive). Defaults to STANDARD. + StorageClass *string `json:"storageClass,omitempty" tf:"storage_class,omitempty"` +} + +type NoncurrentVersionTransitionParameters struct { + + // Default protection period, in days. + // The value is from 1 to 36500. + // +kubebuilder:validation:Optional + Days *float64 `json:"days" tf:"days,omitempty"` + + // Specifies the storage class of the bucket. OBS provides three storage classes: + // STANDARD, WARM (Infrequent Access) and COLD (Archive). Defaults to STANDARD. + // +kubebuilder:validation:Optional + StorageClass *string `json:"storageClass" tf:"storage_class,omitempty"` +} + +type ServerSideEncryptionInitParameters struct { + + // The algorithm used for SSE. Only kms is supported. + Algorithm *string `json:"algorithm,omitempty" tf:"algorithm,omitempty"` + + // The ID of KMS key used for the encryption. + KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` +} + +type ServerSideEncryptionObservation struct { + + // The algorithm used for SSE. Only kms is supported. + Algorithm *string `json:"algorithm,omitempty" tf:"algorithm,omitempty"` + + // The ID of KMS key used for the encryption. + KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` +} + +type ServerSideEncryptionParameters struct { + + // The algorithm used for SSE. Only kms is supported. + // +kubebuilder:validation:Optional + Algorithm *string `json:"algorithm" tf:"algorithm,omitempty"` + + // The ID of KMS key used for the encryption. + // +kubebuilder:validation:Optional + KMSKeyID *string `json:"kmsKeyId" tf:"kms_key_id,omitempty"` +} + +type TransitionInitParameters struct { + + // Default protection period, in days. + // The value is from 1 to 36500. + Days *float64 `json:"days,omitempty" tf:"days,omitempty"` + + // Specifies the storage class of the bucket. OBS provides three storage classes: + // STANDARD, WARM (Infrequent Access) and COLD (Archive). Defaults to STANDARD. + StorageClass *string `json:"storageClass,omitempty" tf:"storage_class,omitempty"` +} + +type TransitionObservation struct { + + // Default protection period, in days. + // The value is from 1 to 36500. + Days *float64 `json:"days,omitempty" tf:"days,omitempty"` + + // Specifies the storage class of the bucket. OBS provides three storage classes: + // STANDARD, WARM (Infrequent Access) and COLD (Archive). Defaults to STANDARD. + StorageClass *string `json:"storageClass,omitempty" tf:"storage_class,omitempty"` +} + +type TransitionParameters struct { + + // Default protection period, in days. + // The value is from 1 to 36500. + // +kubebuilder:validation:Optional + Days *float64 `json:"days" tf:"days,omitempty"` + + // Specifies the storage class of the bucket. OBS provides three storage classes: + // STANDARD, WARM (Infrequent Access) and COLD (Archive). Defaults to STANDARD. + // +kubebuilder:validation:Optional + StorageClass *string `json:"storageClass" tf:"storage_class,omitempty"` +} + +type WebsiteInitParameters struct { + + // Specifies the error page returned when an error occurs during static website access. + // Only HTML, JPG, PNG, BMP, and WEBP files under the root directory are supported. + ErrorDocument *string `json:"errorDocument,omitempty" tf:"error_document,omitempty"` + + // Specifies the default homepage of the + // static website, only HTML web pages are supported. OBS only allows files such as index.html in the root + // directory of a bucket to function as the default homepage. That is to say, do not set the default homepage + // with a multi-level directory structure (for example, /page/index.html). + IndexDocument *string `json:"indexDocument,omitempty" tf:"index_document,omitempty"` + + // A hostname to redirect all website requests for this bucket to. + // Hostname can optionally be prefixed with a protocol (http:// or https://) to use when redirecting + // requests. The default is the protocol that is used in the original request. + RedirectAllRequestsTo *string `json:"redirectAllRequestsTo,omitempty" tf:"redirect_all_requests_to,omitempty"` + + // A JSON or XML format containing routing rules describing redirect + // behavior and when redirects are applied. Each rule contains a Condition and a Redirect + // as shown in the following table: + RoutingRules *string `json:"routingRules,omitempty" tf:"routing_rules,omitempty"` +} + +type WebsiteObservation struct { + + // Specifies the error page returned when an error occurs during static website access. + // Only HTML, JPG, PNG, BMP, and WEBP files under the root directory are supported. + ErrorDocument *string `json:"errorDocument,omitempty" tf:"error_document,omitempty"` + + // Specifies the default homepage of the + // static website, only HTML web pages are supported. OBS only allows files such as index.html in the root + // directory of a bucket to function as the default homepage. That is to say, do not set the default homepage + // with a multi-level directory structure (for example, /page/index.html). + IndexDocument *string `json:"indexDocument,omitempty" tf:"index_document,omitempty"` + + // A hostname to redirect all website requests for this bucket to. + // Hostname can optionally be prefixed with a protocol (http:// or https://) to use when redirecting + // requests. The default is the protocol that is used in the original request. + RedirectAllRequestsTo *string `json:"redirectAllRequestsTo,omitempty" tf:"redirect_all_requests_to,omitempty"` + + // A JSON or XML format containing routing rules describing redirect + // behavior and when redirects are applied. Each rule contains a Condition and a Redirect + // as shown in the following table: + RoutingRules *string `json:"routingRules,omitempty" tf:"routing_rules,omitempty"` +} + +type WebsiteParameters struct { + + // Specifies the error page returned when an error occurs during static website access. + // Only HTML, JPG, PNG, BMP, and WEBP files under the root directory are supported. + // +kubebuilder:validation:Optional + ErrorDocument *string `json:"errorDocument,omitempty" tf:"error_document,omitempty"` + + // Specifies the default homepage of the + // static website, only HTML web pages are supported. OBS only allows files such as index.html in the root + // directory of a bucket to function as the default homepage. That is to say, do not set the default homepage + // with a multi-level directory structure (for example, /page/index.html). + // +kubebuilder:validation:Optional + IndexDocument *string `json:"indexDocument,omitempty" tf:"index_document,omitempty"` + + // A hostname to redirect all website requests for this bucket to. + // Hostname can optionally be prefixed with a protocol (http:// or https://) to use when redirecting + // requests. The default is the protocol that is used in the original request. + // +kubebuilder:validation:Optional + RedirectAllRequestsTo *string `json:"redirectAllRequestsTo,omitempty" tf:"redirect_all_requests_to,omitempty"` + + // A JSON or XML format containing routing rules describing redirect + // behavior and when redirects are applied. Each rule contains a Condition and a Redirect + // as shown in the following table: + // +kubebuilder:validation:Optional + RoutingRules *string `json:"routingRules,omitempty" tf:"routing_rules,omitempty"` +} + +type WormPolicyInitParameters struct { + + // Default protection period, in days. + // The value is from 1 to 36500. + Days *float64 `json:"days,omitempty" tf:"days,omitempty"` + + // Default protection period, in years. In a leap year, only 365 days are calculated. + // The value is from 1 to 100. + Years *float64 `json:"years,omitempty" tf:"years,omitempty"` +} + +type WormPolicyObservation struct { + + // Default protection period, in days. + // The value is from 1 to 36500. + Days *float64 `json:"days,omitempty" tf:"days,omitempty"` + + // Default protection period, in years. In a leap year, only 365 days are calculated. + // The value is from 1 to 100. + Years *float64 `json:"years,omitempty" tf:"years,omitempty"` +} + +type WormPolicyParameters struct { + + // Default protection period, in days. + // The value is from 1 to 36500. + // +kubebuilder:validation:Optional + Days *float64 `json:"days,omitempty" tf:"days,omitempty"` + + // Default protection period, in years. In a leap year, only 365 days are calculated. + // The value is from 1 to 100. + // +kubebuilder:validation:Optional + Years *float64 `json:"years,omitempty" tf:"years,omitempty"` +} + +// BucketSpec defines the desired state of Bucket +type BucketSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider BucketParameters `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 BucketInitParameters `json:"initProvider,omitempty"` +} + +// BucketStatus defines the observed state of Bucket. +type BucketStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider BucketObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// Bucket is the Schema for the Buckets API. Manages a OBS Bucket resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type Bucket 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.bucket) || (has(self.initProvider) && has(self.initProvider.bucket))",message="spec.forProvider.bucket is a required parameter" + Spec BucketSpec `json:"spec"` + Status BucketStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// BucketList contains a list of Buckets +type BucketList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []Bucket `json:"items"` +} + +// Repository type metadata. +var ( + Bucket_Kind = "Bucket" + Bucket_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: Bucket_Kind}.String() + Bucket_KindAPIVersion = Bucket_Kind + "." + CRDGroupVersion.String() + Bucket_GroupVersionKind = CRDGroupVersion.WithKind(Bucket_Kind) +) + +func init() { + SchemeBuilder.Register(&Bucket{}, &BucketList{}) +} diff --git a/apis/obs/v1alpha1/zz_bucketinventory_types.go b/apis/obs/v1alpha1/zz_bucketinventory_types.go new file mode 100755 index 0000000..c77da13 --- /dev/null +++ b/apis/obs/v1alpha1/zz_bucketinventory_types.go @@ -0,0 +1,222 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 BucketInventoryInitParameters struct { + + // Name of the bucket for saving inventories. + Bucket *string `json:"bucket,omitempty" tf:"bucket,omitempty"` + + // ID of the inventory configuration. Valid characters: letters, digits, hyphens (-), + // periods (.) and underscores (_). + ConfigurationID *string `json:"configurationId,omitempty" tf:"configuration_id,omitempty"` + + // Destination bucket settings of an inventory. + // The structure is documented below. + Destination []DestinationInitParameters `json:"destination,omitempty" tf:"destination,omitempty"` + + // Filtering by name prefix. Only objects with the specified name prefix are included in the inventory. + FilterPrefix *string `json:"filterPrefix,omitempty" tf:"filter_prefix,omitempty"` + + // Intervals when inventories are generated. + // An inventory is generated within one hour after it is configured for the first time. Then it is generated at the specified intervals. + // Possible values: + Frequency *string `json:"frequency,omitempty" tf:"frequency,omitempty"` + + // Indicates whether versions of objects are included in an inventory. + // Possible values: + IncludedObjectVersions *string `json:"includedObjectVersions,omitempty" tf:"included_object_versions,omitempty"` + + // Indicates whether the rule is enabled. If this parameter is set to true, the inventory is generated. + IsEnabled *bool `json:"isEnabled,omitempty" tf:"is_enabled,omitempty"` +} + +type BucketInventoryObservation struct { + + // Name of the bucket for saving inventories. + Bucket *string `json:"bucket,omitempty" tf:"bucket,omitempty"` + + // ID of the inventory configuration. Valid characters: letters, digits, hyphens (-), + // periods (.) and underscores (_). + ConfigurationID *string `json:"configurationId,omitempty" tf:"configuration_id,omitempty"` + + // Destination bucket settings of an inventory. + // The structure is documented below. + Destination []DestinationObservation `json:"destination,omitempty" tf:"destination,omitempty"` + + // Filtering by name prefix. Only objects with the specified name prefix are included in the inventory. + FilterPrefix *string `json:"filterPrefix,omitempty" tf:"filter_prefix,omitempty"` + + // Intervals when inventories are generated. + // An inventory is generated within one hour after it is configured for the first time. Then it is generated at the specified intervals. + // Possible values: + Frequency *string `json:"frequency,omitempty" tf:"frequency,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Indicates whether versions of objects are included in an inventory. + // Possible values: + IncludedObjectVersions *string `json:"includedObjectVersions,omitempty" tf:"included_object_versions,omitempty"` + + // Indicates whether the rule is enabled. If this parameter is set to true, the inventory is generated. + IsEnabled *bool `json:"isEnabled,omitempty" tf:"is_enabled,omitempty"` + + // Specifies the bucket region. + Region *string `json:"region,omitempty" tf:"region,omitempty"` +} + +type BucketInventoryParameters struct { + + // Name of the bucket for saving inventories. + // +kubebuilder:validation:Optional + Bucket *string `json:"bucket,omitempty" tf:"bucket,omitempty"` + + // ID of the inventory configuration. Valid characters: letters, digits, hyphens (-), + // periods (.) and underscores (_). + // +kubebuilder:validation:Optional + ConfigurationID *string `json:"configurationId,omitempty" tf:"configuration_id,omitempty"` + + // Destination bucket settings of an inventory. + // The structure is documented below. + // +kubebuilder:validation:Optional + Destination []DestinationParameters `json:"destination,omitempty" tf:"destination,omitempty"` + + // Filtering by name prefix. Only objects with the specified name prefix are included in the inventory. + // +kubebuilder:validation:Optional + FilterPrefix *string `json:"filterPrefix,omitempty" tf:"filter_prefix,omitempty"` + + // Intervals when inventories are generated. + // An inventory is generated within one hour after it is configured for the first time. Then it is generated at the specified intervals. + // Possible values: + // +kubebuilder:validation:Optional + Frequency *string `json:"frequency,omitempty" tf:"frequency,omitempty"` + + // Indicates whether versions of objects are included in an inventory. + // Possible values: + // +kubebuilder:validation:Optional + IncludedObjectVersions *string `json:"includedObjectVersions,omitempty" tf:"included_object_versions,omitempty"` + + // Indicates whether the rule is enabled. If this parameter is set to true, the inventory is generated. + // +kubebuilder:validation:Optional + IsEnabled *bool `json:"isEnabled,omitempty" tf:"is_enabled,omitempty"` +} + +type DestinationInitParameters struct { + + // Name of the bucket for saving inventories. + Bucket *string `json:"bucket,omitempty" tf:"bucket,omitempty"` + + // Inventory format. Only the CSV format is supported. + Format *string `json:"format,omitempty" tf:"format,omitempty"` + + // The name prefix of inventory files. If no prefix is configured, the names of inventory files will start with the BucketInventory by default. + Prefix *string `json:"prefix,omitempty" tf:"prefix,omitempty"` +} + +type DestinationObservation struct { + + // Name of the bucket for saving inventories. + Bucket *string `json:"bucket,omitempty" tf:"bucket,omitempty"` + + // Inventory format. Only the CSV format is supported. + Format *string `json:"format,omitempty" tf:"format,omitempty"` + + // The name prefix of inventory files. If no prefix is configured, the names of inventory files will start with the BucketInventory by default. + Prefix *string `json:"prefix,omitempty" tf:"prefix,omitempty"` +} + +type DestinationParameters struct { + + // Name of the bucket for saving inventories. + // +kubebuilder:validation:Optional + Bucket *string `json:"bucket" tf:"bucket,omitempty"` + + // Inventory format. Only the CSV format is supported. + // +kubebuilder:validation:Optional + Format *string `json:"format" tf:"format,omitempty"` + + // The name prefix of inventory files. If no prefix is configured, the names of inventory files will start with the BucketInventory by default. + // +kubebuilder:validation:Optional + Prefix *string `json:"prefix,omitempty" tf:"prefix,omitempty"` +} + +// BucketInventorySpec defines the desired state of BucketInventory +type BucketInventorySpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider BucketInventoryParameters `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 BucketInventoryInitParameters `json:"initProvider,omitempty"` +} + +// BucketInventoryStatus defines the observed state of BucketInventory. +type BucketInventoryStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider BucketInventoryObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// BucketInventory is the Schema for the BucketInventorys API. Manages a OBS Bucket Inventory resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type BucketInventory 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.bucket) || (has(self.initProvider) && has(self.initProvider.bucket))",message="spec.forProvider.bucket is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.configurationId) || (has(self.initProvider) && has(self.initProvider.configurationId))",message="spec.forProvider.configurationId is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.destination) || (has(self.initProvider) && has(self.initProvider.destination))",message="spec.forProvider.destination is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.frequency) || (has(self.initProvider) && has(self.initProvider.frequency))",message="spec.forProvider.frequency is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.includedObjectVersions) || (has(self.initProvider) && has(self.initProvider.includedObjectVersions))",message="spec.forProvider.includedObjectVersions is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.isEnabled) || (has(self.initProvider) && has(self.initProvider.isEnabled))",message="spec.forProvider.isEnabled is a required parameter" + Spec BucketInventorySpec `json:"spec"` + Status BucketInventoryStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// BucketInventoryList contains a list of BucketInventorys +type BucketInventoryList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []BucketInventory `json:"items"` +} + +// Repository type metadata. +var ( + BucketInventory_Kind = "BucketInventory" + BucketInventory_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: BucketInventory_Kind}.String() + BucketInventory_KindAPIVersion = BucketInventory_Kind + "." + CRDGroupVersion.String() + BucketInventory_GroupVersionKind = CRDGroupVersion.WithKind(BucketInventory_Kind) +) + +func init() { + SchemeBuilder.Register(&BucketInventory{}, &BucketInventoryList{}) +} diff --git a/apis/obs/v1alpha1/zz_bucketobject_types.go b/apis/obs/v1alpha1/zz_bucketobject_types.go new file mode 100755 index 0000000..f32ede8 --- /dev/null +++ b/apis/obs/v1alpha1/zz_bucketobject_types.go @@ -0,0 +1,204 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 BucketObjectInitParameters struct { + + // The ACL policy to apply. Defaults to private. + ACL *string `json:"acl,omitempty" tf:"acl,omitempty"` + + // The name of the bucket to put the file in. + Bucket *string `json:"bucket,omitempty" tf:"bucket,omitempty"` + + // The literal content being uploaded to the bucket. + Content *string `json:"content,omitempty" tf:"content,omitempty"` + + // A standard MIME type describing the format of the object data, e.g. application/octet-stream. + // All Valid MIME Types are valid for this input. + ContentType *string `json:"contentType,omitempty" tf:"content_type,omitempty"` + + // Whether enable server-side encryption of the object in SSE-KMS mode. + Encryption *bool `json:"encryption,omitempty" tf:"encryption,omitempty"` + + // Specifies the unique identifier of the object content. It can be used to trigger updates. + // The only meaningful value is md5(file("path_to_file")). + Etag *string `json:"etag,omitempty" tf:"etag,omitempty"` + + // the key of the resource supplied above. + KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` + + // The name of the object once it is in the bucket. + Key *string `json:"key,omitempty" tf:"key,omitempty"` + + // The path to the source file being uploaded to the bucket. + Source *string `json:"source,omitempty" tf:"source,omitempty"` + + // (Optioanl) Specifies the storage class of the object. Defaults to STANDARD. + StorageClass *string `json:"storageClass,omitempty" tf:"storage_class,omitempty"` +} + +type BucketObjectObservation struct { + + // The ACL policy to apply. Defaults to private. + ACL *string `json:"acl,omitempty" tf:"acl,omitempty"` + + // The name of the bucket to put the file in. + Bucket *string `json:"bucket,omitempty" tf:"bucket,omitempty"` + + // The literal content being uploaded to the bucket. + Content *string `json:"content,omitempty" tf:"content,omitempty"` + + // A standard MIME type describing the format of the object data, e.g. application/octet-stream. + // All Valid MIME Types are valid for this input. + ContentType *string `json:"contentType,omitempty" tf:"content_type,omitempty"` + + // Whether enable server-side encryption of the object in SSE-KMS mode. + Encryption *bool `json:"encryption,omitempty" tf:"encryption,omitempty"` + + // Specifies the unique identifier of the object content. It can be used to trigger updates. + // The only meaningful value is md5(file("path_to_file")). + Etag *string `json:"etag,omitempty" tf:"etag,omitempty"` + + // the key of the resource supplied above. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // the key of the resource supplied above. + KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` + + // The name of the object once it is in the bucket. + Key *string `json:"key,omitempty" tf:"key,omitempty"` + + // the size of the object in bytes. + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // The path to the source file being uploaded to the bucket. + Source *string `json:"source,omitempty" tf:"source,omitempty"` + + // (Optioanl) Specifies the storage class of the object. Defaults to STANDARD. + StorageClass *string `json:"storageClass,omitempty" tf:"storage_class,omitempty"` + + // A unique version ID value for the object, if bucket versioning is enabled. + VersionID *string `json:"versionId,omitempty" tf:"version_id,omitempty"` +} + +type BucketObjectParameters struct { + + // The ACL policy to apply. Defaults to private. + // +kubebuilder:validation:Optional + ACL *string `json:"acl,omitempty" tf:"acl,omitempty"` + + // The name of the bucket to put the file in. + // +kubebuilder:validation:Optional + Bucket *string `json:"bucket,omitempty" tf:"bucket,omitempty"` + + // The literal content being uploaded to the bucket. + // +kubebuilder:validation:Optional + Content *string `json:"content,omitempty" tf:"content,omitempty"` + + // A standard MIME type describing the format of the object data, e.g. application/octet-stream. + // All Valid MIME Types are valid for this input. + // +kubebuilder:validation:Optional + ContentType *string `json:"contentType,omitempty" tf:"content_type,omitempty"` + + // Whether enable server-side encryption of the object in SSE-KMS mode. + // +kubebuilder:validation:Optional + Encryption *bool `json:"encryption,omitempty" tf:"encryption,omitempty"` + + // Specifies the unique identifier of the object content. It can be used to trigger updates. + // The only meaningful value is md5(file("path_to_file")). + // +kubebuilder:validation:Optional + Etag *string `json:"etag,omitempty" tf:"etag,omitempty"` + + // the key of the resource supplied above. + // +kubebuilder:validation:Optional + KMSKeyID *string `json:"kmsKeyId,omitempty" tf:"kms_key_id,omitempty"` + + // The name of the object once it is in the bucket. + // +kubebuilder:validation:Optional + Key *string `json:"key,omitempty" tf:"key,omitempty"` + + // The path to the source file being uploaded to the bucket. + // +kubebuilder:validation:Optional + Source *string `json:"source,omitempty" tf:"source,omitempty"` + + // (Optioanl) Specifies the storage class of the object. Defaults to STANDARD. + // +kubebuilder:validation:Optional + StorageClass *string `json:"storageClass,omitempty" tf:"storage_class,omitempty"` +} + +// BucketObjectSpec defines the desired state of BucketObject +type BucketObjectSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider BucketObjectParameters `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 BucketObjectInitParameters `json:"initProvider,omitempty"` +} + +// BucketObjectStatus defines the observed state of BucketObject. +type BucketObjectStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider BucketObjectObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// BucketObject is the Schema for the BucketObjects API. Manages a OBS Bucket Object resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type BucketObject 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.bucket) || (has(self.initProvider) && has(self.initProvider.bucket))",message="spec.forProvider.bucket is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.key) || (has(self.initProvider) && has(self.initProvider.key))",message="spec.forProvider.key is a required parameter" + Spec BucketObjectSpec `json:"spec"` + Status BucketObjectStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// BucketObjectList contains a list of BucketObjects +type BucketObjectList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []BucketObject `json:"items"` +} + +// Repository type metadata. +var ( + BucketObject_Kind = "BucketObject" + BucketObject_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: BucketObject_Kind}.String() + BucketObject_KindAPIVersion = BucketObject_Kind + "." + CRDGroupVersion.String() + BucketObject_GroupVersionKind = CRDGroupVersion.WithKind(BucketObject_Kind) +) + +func init() { + SchemeBuilder.Register(&BucketObject{}, &BucketObjectList{}) +} diff --git a/apis/obs/v1alpha1/zz_bucketpolicy_types.go b/apis/obs/v1alpha1/zz_bucketpolicy_types.go new file mode 100755 index 0000000..e9404db --- /dev/null +++ b/apis/obs/v1alpha1/zz_bucketpolicy_types.go @@ -0,0 +1,111 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 BucketPolicyInitParameters struct { + + // The name of the bucket to which to apply the policy. + Bucket *string `json:"bucket,omitempty" tf:"bucket,omitempty"` + + // The text of the policy. + Policy *string `json:"policy,omitempty" tf:"policy,omitempty"` +} + +type BucketPolicyObservation struct { + + // The name of the bucket to which to apply the policy. + Bucket *string `json:"bucket,omitempty" tf:"bucket,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The text of the policy. + Policy *string `json:"policy,omitempty" tf:"policy,omitempty"` +} + +type BucketPolicyParameters struct { + + // The name of the bucket to which to apply the policy. + // +kubebuilder:validation:Optional + Bucket *string `json:"bucket,omitempty" tf:"bucket,omitempty"` + + // The text of the policy. + // +kubebuilder:validation:Optional + Policy *string `json:"policy,omitempty" tf:"policy,omitempty"` +} + +// BucketPolicySpec defines the desired state of BucketPolicy +type BucketPolicySpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider BucketPolicyParameters `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 BucketPolicyInitParameters `json:"initProvider,omitempty"` +} + +// BucketPolicyStatus defines the observed state of BucketPolicy. +type BucketPolicyStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider BucketPolicyObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// BucketPolicy is the Schema for the BucketPolicys API. Manages a OBS Bucket Policy resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type BucketPolicy 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.bucket) || (has(self.initProvider) && has(self.initProvider.bucket))",message="spec.forProvider.bucket is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.policy) || (has(self.initProvider) && has(self.initProvider.policy))",message="spec.forProvider.policy is a required parameter" + Spec BucketPolicySpec `json:"spec"` + Status BucketPolicyStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// BucketPolicyList contains a list of BucketPolicys +type BucketPolicyList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []BucketPolicy `json:"items"` +} + +// Repository type metadata. +var ( + BucketPolicy_Kind = "BucketPolicy" + BucketPolicy_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: BucketPolicy_Kind}.String() + BucketPolicy_KindAPIVersion = BucketPolicy_Kind + "." + CRDGroupVersion.String() + BucketPolicy_GroupVersionKind = CRDGroupVersion.WithKind(BucketPolicy_Kind) +) + +func init() { + SchemeBuilder.Register(&BucketPolicy{}, &BucketPolicyList{}) +} diff --git a/apis/obs/v1alpha1/zz_bucketreplication_types.go b/apis/obs/v1alpha1/zz_bucketreplication_types.go new file mode 100755 index 0000000..5a489fe --- /dev/null +++ b/apis/obs/v1alpha1/zz_bucketreplication_types.go @@ -0,0 +1,232 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 BucketReplicationInitParameters struct { + + // Specifies the IAM agency name applied to the cross-region replication. + Agency *string `json:"agency,omitempty" tf:"agency,omitempty"` + + // Specifies the name of the source bucket. + Bucket *string `json:"bucket,omitempty" tf:"bucket,omitempty"` + + // Specifies the name of the destination bucket. + DestinationBucket *string `json:"destinationBucket,omitempty" tf:"destination_bucket,omitempty"` + + // Specifies the region in which to create the resource. + // If omitted, the provider-level region will be used. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Specifies the configurations of object cross-region replication management. + // The structure is documented below. + Rule []RuleInitParameters `json:"rule,omitempty" tf:"rule,omitempty"` +} + +type BucketReplicationObservation struct { + + // Specifies the IAM agency name applied to the cross-region replication. + Agency *string `json:"agency,omitempty" tf:"agency,omitempty"` + + // Specifies the name of the source bucket. + Bucket *string `json:"bucket,omitempty" tf:"bucket,omitempty"` + + // Specifies the name of the destination bucket. + DestinationBucket *string `json:"destinationBucket,omitempty" tf:"destination_bucket,omitempty"` + + // The name of the bucket. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Specifies the region in which to create the resource. + // If omitted, the provider-level region will be used. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Specifies the configurations of object cross-region replication management. + // The structure is documented below. + Rule []RuleObservation `json:"rule,omitempty" tf:"rule,omitempty"` +} + +type BucketReplicationParameters struct { + + // Specifies the IAM agency name applied to the cross-region replication. + // +kubebuilder:validation:Optional + Agency *string `json:"agency,omitempty" tf:"agency,omitempty"` + + // Specifies the name of the source bucket. + // +kubebuilder:validation:Optional + Bucket *string `json:"bucket,omitempty" tf:"bucket,omitempty"` + + // Specifies the name of the destination bucket. + // +kubebuilder:validation:Optional + DestinationBucket *string `json:"destinationBucket,omitempty" tf:"destination_bucket,omitempty"` + + // Specifies the region in which to create the resource. + // If omitted, the provider-level region will be used. + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Specifies the configurations of object cross-region replication management. + // The structure is documented below. + // +kubebuilder:validation:Optional + Rule []RuleParameters `json:"rule,omitempty" tf:"rule,omitempty"` +} + +type RuleInitParameters struct { + + // Specifies cross-region replication object deletion operations status. Defaults to false. + // If the value is true, object deletion for the source bucket will be replicated to the destination bucket. + DeleteData *bool `json:"deleteData,omitempty" tf:"delete_data,omitempty"` + + // Specifies cross-region replication rule status. Defaults to true. + Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + + // Specifies cross-region replication history rule status. Defaults to false. + // If the value is true, historical objects meeting this rule are copied. + HistoryEnabled *bool `json:"historyEnabled,omitempty" tf:"history_enabled,omitempty"` + + // Specifies the prefix of an object key name, applicable to one or more objects. + // The maximum length of a prefix is 1024 characters. + // Duplicated prefixes are not supported. If omitted, all objects in the bucket will be managed by the lifecycle rule. + // To copy a folder, end the prefix with a slash (/), for example, imgs/. + Prefix *string `json:"prefix,omitempty" tf:"prefix,omitempty"` + + // Specifies the storage class for replicated objects. Valid values are STANDARD, + // WARM (Infrequent Access) and COLD (Archive). + // If omitted, the storage class of object copies is the same as that of objects in the source bucket. + StorageClass *string `json:"storageClass,omitempty" tf:"storage_class,omitempty"` +} + +type RuleObservation struct { + + // Specifies cross-region replication object deletion operations status. Defaults to false. + // If the value is true, object deletion for the source bucket will be replicated to the destination bucket. + DeleteData *bool `json:"deleteData,omitempty" tf:"delete_data,omitempty"` + + // Specifies cross-region replication rule status. Defaults to true. + Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + + // Specifies cross-region replication history rule status. Defaults to false. + // If the value is true, historical objects meeting this rule are copied. + HistoryEnabled *bool `json:"historyEnabled,omitempty" tf:"history_enabled,omitempty"` + + // The name of the bucket. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Specifies the prefix of an object key name, applicable to one or more objects. + // The maximum length of a prefix is 1024 characters. + // Duplicated prefixes are not supported. If omitted, all objects in the bucket will be managed by the lifecycle rule. + // To copy a folder, end the prefix with a slash (/), for example, imgs/. + Prefix *string `json:"prefix,omitempty" tf:"prefix,omitempty"` + + // Specifies the storage class for replicated objects. Valid values are STANDARD, + // WARM (Infrequent Access) and COLD (Archive). + // If omitted, the storage class of object copies is the same as that of objects in the source bucket. + StorageClass *string `json:"storageClass,omitempty" tf:"storage_class,omitempty"` +} + +type RuleParameters struct { + + // Specifies cross-region replication object deletion operations status. Defaults to false. + // If the value is true, object deletion for the source bucket will be replicated to the destination bucket. + // +kubebuilder:validation:Optional + DeleteData *bool `json:"deleteData,omitempty" tf:"delete_data,omitempty"` + + // Specifies cross-region replication rule status. Defaults to true. + // +kubebuilder:validation:Optional + Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + + // Specifies cross-region replication history rule status. Defaults to false. + // If the value is true, historical objects meeting this rule are copied. + // +kubebuilder:validation:Optional + HistoryEnabled *bool `json:"historyEnabled,omitempty" tf:"history_enabled,omitempty"` + + // Specifies the prefix of an object key name, applicable to one or more objects. + // The maximum length of a prefix is 1024 characters. + // Duplicated prefixes are not supported. If omitted, all objects in the bucket will be managed by the lifecycle rule. + // To copy a folder, end the prefix with a slash (/), for example, imgs/. + // +kubebuilder:validation:Optional + Prefix *string `json:"prefix,omitempty" tf:"prefix,omitempty"` + + // Specifies the storage class for replicated objects. Valid values are STANDARD, + // WARM (Infrequent Access) and COLD (Archive). + // If omitted, the storage class of object copies is the same as that of objects in the source bucket. + // +kubebuilder:validation:Optional + StorageClass *string `json:"storageClass,omitempty" tf:"storage_class,omitempty"` +} + +// BucketReplicationSpec defines the desired state of BucketReplication +type BucketReplicationSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider BucketReplicationParameters `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 BucketReplicationInitParameters `json:"initProvider,omitempty"` +} + +// BucketReplicationStatus defines the observed state of BucketReplication. +type BucketReplicationStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider BucketReplicationObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// BucketReplication is the Schema for the BucketReplications API. Manages a OBS Bucket Replication resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type BucketReplication 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.agency) || (has(self.initProvider) && has(self.initProvider.agency))",message="spec.forProvider.agency is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.bucket) || (has(self.initProvider) && has(self.initProvider.bucket))",message="spec.forProvider.bucket is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.destinationBucket) || (has(self.initProvider) && has(self.initProvider.destinationBucket))",message="spec.forProvider.destinationBucket is a required parameter" + Spec BucketReplicationSpec `json:"spec"` + Status BucketReplicationStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// BucketReplicationList contains a list of BucketReplications +type BucketReplicationList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []BucketReplication `json:"items"` +} + +// Repository type metadata. +var ( + BucketReplication_Kind = "BucketReplication" + BucketReplication_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: BucketReplication_Kind}.String() + BucketReplication_KindAPIVersion = BucketReplication_Kind + "." + CRDGroupVersion.String() + BucketReplication_GroupVersionKind = CRDGroupVersion.WithKind(BucketReplication_Kind) +) + +func init() { + SchemeBuilder.Register(&BucketReplication{}, &BucketReplicationList{}) +} diff --git a/apis/obs/v1alpha1/zz_generated.deepcopy.go b/apis/obs/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..2bec667 --- /dev/null +++ b/apis/obs/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,2848 @@ +//go:build !ignore_autogenerated + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by controller-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + 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 *Bucket) DeepCopyInto(out *Bucket) { + *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 Bucket. +func (in *Bucket) DeepCopy() *Bucket { + if in == nil { + return nil + } + out := new(Bucket) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Bucket) 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 *BucketInitParameters) DeepCopyInto(out *BucketInitParameters) { + *out = *in + if in.ACL != nil { + in, out := &in.ACL, &out.ACL + *out = new(string) + **out = **in + } + if in.Bucket != nil { + in, out := &in.Bucket, &out.Bucket + *out = new(string) + **out = **in + } + if in.CorsRule != nil { + in, out := &in.CorsRule, &out.CorsRule + *out = make([]CorsRuleInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.EventNotifications != nil { + in, out := &in.EventNotifications, &out.EventNotifications + *out = make([]EventNotificationsInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ForceDestroy != nil { + in, out := &in.ForceDestroy, &out.ForceDestroy + *out = new(bool) + **out = **in + } + if in.LifecycleRule != nil { + in, out := &in.LifecycleRule, &out.LifecycleRule + *out = make([]LifecycleRuleInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Logging != nil { + in, out := &in.Logging, &out.Logging + *out = make([]LoggingInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ParallelFs != nil { + in, out := &in.ParallelFs, &out.ParallelFs + *out = new(bool) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.ServerSideEncryption != nil { + in, out := &in.ServerSideEncryption, &out.ServerSideEncryption + *out = make([]ServerSideEncryptionInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.StorageClass != nil { + in, out := &in.StorageClass, &out.StorageClass + *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.UserDomainNames != nil { + in, out := &in.UserDomainNames, &out.UserDomainNames + *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.Versioning != nil { + in, out := &in.Versioning, &out.Versioning + *out = new(bool) + **out = **in + } + if in.Website != nil { + in, out := &in.Website, &out.Website + *out = make([]WebsiteInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.WormPolicy != nil { + in, out := &in.WormPolicy, &out.WormPolicy + *out = make([]WormPolicyInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketInitParameters. +func (in *BucketInitParameters) DeepCopy() *BucketInitParameters { + if in == nil { + return nil + } + out := new(BucketInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BucketInventory) DeepCopyInto(out *BucketInventory) { + *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 BucketInventory. +func (in *BucketInventory) DeepCopy() *BucketInventory { + if in == nil { + return nil + } + out := new(BucketInventory) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *BucketInventory) 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 *BucketInventoryInitParameters) DeepCopyInto(out *BucketInventoryInitParameters) { + *out = *in + if in.Bucket != nil { + in, out := &in.Bucket, &out.Bucket + *out = new(string) + **out = **in + } + if in.ConfigurationID != nil { + in, out := &in.ConfigurationID, &out.ConfigurationID + *out = new(string) + **out = **in + } + if in.Destination != nil { + in, out := &in.Destination, &out.Destination + *out = make([]DestinationInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.FilterPrefix != nil { + in, out := &in.FilterPrefix, &out.FilterPrefix + *out = new(string) + **out = **in + } + if in.Frequency != nil { + in, out := &in.Frequency, &out.Frequency + *out = new(string) + **out = **in + } + if in.IncludedObjectVersions != nil { + in, out := &in.IncludedObjectVersions, &out.IncludedObjectVersions + *out = new(string) + **out = **in + } + if in.IsEnabled != nil { + in, out := &in.IsEnabled, &out.IsEnabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketInventoryInitParameters. +func (in *BucketInventoryInitParameters) DeepCopy() *BucketInventoryInitParameters { + if in == nil { + return nil + } + out := new(BucketInventoryInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BucketInventoryList) DeepCopyInto(out *BucketInventoryList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]BucketInventory, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketInventoryList. +func (in *BucketInventoryList) DeepCopy() *BucketInventoryList { + if in == nil { + return nil + } + out := new(BucketInventoryList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *BucketInventoryList) 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 *BucketInventoryObservation) DeepCopyInto(out *BucketInventoryObservation) { + *out = *in + if in.Bucket != nil { + in, out := &in.Bucket, &out.Bucket + *out = new(string) + **out = **in + } + if in.ConfigurationID != nil { + in, out := &in.ConfigurationID, &out.ConfigurationID + *out = new(string) + **out = **in + } + if in.Destination != nil { + in, out := &in.Destination, &out.Destination + *out = make([]DestinationObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.FilterPrefix != nil { + in, out := &in.FilterPrefix, &out.FilterPrefix + *out = new(string) + **out = **in + } + if in.Frequency != nil { + in, out := &in.Frequency, &out.Frequency + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.IncludedObjectVersions != nil { + in, out := &in.IncludedObjectVersions, &out.IncludedObjectVersions + *out = new(string) + **out = **in + } + if in.IsEnabled != nil { + in, out := &in.IsEnabled, &out.IsEnabled + *out = new(bool) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketInventoryObservation. +func (in *BucketInventoryObservation) DeepCopy() *BucketInventoryObservation { + if in == nil { + return nil + } + out := new(BucketInventoryObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BucketInventoryParameters) DeepCopyInto(out *BucketInventoryParameters) { + *out = *in + if in.Bucket != nil { + in, out := &in.Bucket, &out.Bucket + *out = new(string) + **out = **in + } + if in.ConfigurationID != nil { + in, out := &in.ConfigurationID, &out.ConfigurationID + *out = new(string) + **out = **in + } + if in.Destination != nil { + in, out := &in.Destination, &out.Destination + *out = make([]DestinationParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.FilterPrefix != nil { + in, out := &in.FilterPrefix, &out.FilterPrefix + *out = new(string) + **out = **in + } + if in.Frequency != nil { + in, out := &in.Frequency, &out.Frequency + *out = new(string) + **out = **in + } + if in.IncludedObjectVersions != nil { + in, out := &in.IncludedObjectVersions, &out.IncludedObjectVersions + *out = new(string) + **out = **in + } + if in.IsEnabled != nil { + in, out := &in.IsEnabled, &out.IsEnabled + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketInventoryParameters. +func (in *BucketInventoryParameters) DeepCopy() *BucketInventoryParameters { + if in == nil { + return nil + } + out := new(BucketInventoryParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BucketInventorySpec) DeepCopyInto(out *BucketInventorySpec) { + *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 BucketInventorySpec. +func (in *BucketInventorySpec) DeepCopy() *BucketInventorySpec { + if in == nil { + return nil + } + out := new(BucketInventorySpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BucketInventoryStatus) DeepCopyInto(out *BucketInventoryStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketInventoryStatus. +func (in *BucketInventoryStatus) DeepCopy() *BucketInventoryStatus { + if in == nil { + return nil + } + out := new(BucketInventoryStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BucketList) DeepCopyInto(out *BucketList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Bucket, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketList. +func (in *BucketList) DeepCopy() *BucketList { + if in == nil { + return nil + } + out := new(BucketList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *BucketList) 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 *BucketObject) DeepCopyInto(out *BucketObject) { + *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 BucketObject. +func (in *BucketObject) DeepCopy() *BucketObject { + if in == nil { + return nil + } + out := new(BucketObject) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *BucketObject) 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 *BucketObjectInitParameters) DeepCopyInto(out *BucketObjectInitParameters) { + *out = *in + if in.ACL != nil { + in, out := &in.ACL, &out.ACL + *out = new(string) + **out = **in + } + if in.Bucket != nil { + in, out := &in.Bucket, &out.Bucket + *out = new(string) + **out = **in + } + if in.Content != nil { + in, out := &in.Content, &out.Content + *out = new(string) + **out = **in + } + if in.ContentType != nil { + in, out := &in.ContentType, &out.ContentType + *out = new(string) + **out = **in + } + if in.Encryption != nil { + in, out := &in.Encryption, &out.Encryption + *out = new(bool) + **out = **in + } + if in.Etag != nil { + in, out := &in.Etag, &out.Etag + *out = new(string) + **out = **in + } + if in.KMSKeyID != nil { + in, out := &in.KMSKeyID, &out.KMSKeyID + *out = new(string) + **out = **in + } + if in.Key != nil { + in, out := &in.Key, &out.Key + *out = new(string) + **out = **in + } + if in.Source != nil { + in, out := &in.Source, &out.Source + *out = new(string) + **out = **in + } + if in.StorageClass != nil { + in, out := &in.StorageClass, &out.StorageClass + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketObjectInitParameters. +func (in *BucketObjectInitParameters) DeepCopy() *BucketObjectInitParameters { + if in == nil { + return nil + } + out := new(BucketObjectInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BucketObjectList) DeepCopyInto(out *BucketObjectList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]BucketObject, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketObjectList. +func (in *BucketObjectList) DeepCopy() *BucketObjectList { + if in == nil { + return nil + } + out := new(BucketObjectList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *BucketObjectList) 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 *BucketObjectObservation) DeepCopyInto(out *BucketObjectObservation) { + *out = *in + if in.ACL != nil { + in, out := &in.ACL, &out.ACL + *out = new(string) + **out = **in + } + if in.Bucket != nil { + in, out := &in.Bucket, &out.Bucket + *out = new(string) + **out = **in + } + if in.Content != nil { + in, out := &in.Content, &out.Content + *out = new(string) + **out = **in + } + if in.ContentType != nil { + in, out := &in.ContentType, &out.ContentType + *out = new(string) + **out = **in + } + if in.Encryption != nil { + in, out := &in.Encryption, &out.Encryption + *out = new(bool) + **out = **in + } + if in.Etag != nil { + in, out := &in.Etag, &out.Etag + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.KMSKeyID != nil { + in, out := &in.KMSKeyID, &out.KMSKeyID + *out = new(string) + **out = **in + } + if in.Key != nil { + in, out := &in.Key, &out.Key + *out = new(string) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } + if in.Source != nil { + in, out := &in.Source, &out.Source + *out = new(string) + **out = **in + } + if in.StorageClass != nil { + in, out := &in.StorageClass, &out.StorageClass + *out = new(string) + **out = **in + } + if in.VersionID != nil { + in, out := &in.VersionID, &out.VersionID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketObjectObservation. +func (in *BucketObjectObservation) DeepCopy() *BucketObjectObservation { + if in == nil { + return nil + } + out := new(BucketObjectObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BucketObjectParameters) DeepCopyInto(out *BucketObjectParameters) { + *out = *in + if in.ACL != nil { + in, out := &in.ACL, &out.ACL + *out = new(string) + **out = **in + } + if in.Bucket != nil { + in, out := &in.Bucket, &out.Bucket + *out = new(string) + **out = **in + } + if in.Content != nil { + in, out := &in.Content, &out.Content + *out = new(string) + **out = **in + } + if in.ContentType != nil { + in, out := &in.ContentType, &out.ContentType + *out = new(string) + **out = **in + } + if in.Encryption != nil { + in, out := &in.Encryption, &out.Encryption + *out = new(bool) + **out = **in + } + if in.Etag != nil { + in, out := &in.Etag, &out.Etag + *out = new(string) + **out = **in + } + if in.KMSKeyID != nil { + in, out := &in.KMSKeyID, &out.KMSKeyID + *out = new(string) + **out = **in + } + if in.Key != nil { + in, out := &in.Key, &out.Key + *out = new(string) + **out = **in + } + if in.Source != nil { + in, out := &in.Source, &out.Source + *out = new(string) + **out = **in + } + if in.StorageClass != nil { + in, out := &in.StorageClass, &out.StorageClass + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketObjectParameters. +func (in *BucketObjectParameters) DeepCopy() *BucketObjectParameters { + if in == nil { + return nil + } + out := new(BucketObjectParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BucketObjectSpec) DeepCopyInto(out *BucketObjectSpec) { + *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 BucketObjectSpec. +func (in *BucketObjectSpec) DeepCopy() *BucketObjectSpec { + if in == nil { + return nil + } + out := new(BucketObjectSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BucketObjectStatus) DeepCopyInto(out *BucketObjectStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketObjectStatus. +func (in *BucketObjectStatus) DeepCopy() *BucketObjectStatus { + if in == nil { + return nil + } + out := new(BucketObjectStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BucketObservation) DeepCopyInto(out *BucketObservation) { + *out = *in + if in.ACL != nil { + in, out := &in.ACL, &out.ACL + *out = new(string) + **out = **in + } + if in.Bucket != nil { + in, out := &in.Bucket, &out.Bucket + *out = new(string) + **out = **in + } + if in.BucketDomainName != nil { + in, out := &in.BucketDomainName, &out.BucketDomainName + *out = new(string) + **out = **in + } + if in.BucketVersion != nil { + in, out := &in.BucketVersion, &out.BucketVersion + *out = new(string) + **out = **in + } + if in.CorsRule != nil { + in, out := &in.CorsRule, &out.CorsRule + *out = make([]CorsRuleObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.EventNotifications != nil { + in, out := &in.EventNotifications, &out.EventNotifications + *out = make([]EventNotificationsObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ForceDestroy != nil { + in, out := &in.ForceDestroy, &out.ForceDestroy + *out = new(bool) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.LifecycleRule != nil { + in, out := &in.LifecycleRule, &out.LifecycleRule + *out = make([]LifecycleRuleObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Logging != nil { + in, out := &in.Logging, &out.Logging + *out = make([]LoggingObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ParallelFs != nil { + in, out := &in.ParallelFs, &out.ParallelFs + *out = new(bool) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.ServerSideEncryption != nil { + in, out := &in.ServerSideEncryption, &out.ServerSideEncryption + *out = make([]ServerSideEncryptionObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.StorageClass != nil { + in, out := &in.StorageClass, &out.StorageClass + *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.UserDomainNames != nil { + in, out := &in.UserDomainNames, &out.UserDomainNames + *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.Versioning != nil { + in, out := &in.Versioning, &out.Versioning + *out = new(bool) + **out = **in + } + if in.Website != nil { + in, out := &in.Website, &out.Website + *out = make([]WebsiteObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.WormPolicy != nil { + in, out := &in.WormPolicy, &out.WormPolicy + *out = make([]WormPolicyObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketObservation. +func (in *BucketObservation) DeepCopy() *BucketObservation { + if in == nil { + return nil + } + out := new(BucketObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BucketParameters) DeepCopyInto(out *BucketParameters) { + *out = *in + if in.ACL != nil { + in, out := &in.ACL, &out.ACL + *out = new(string) + **out = **in + } + if in.Bucket != nil { + in, out := &in.Bucket, &out.Bucket + *out = new(string) + **out = **in + } + if in.CorsRule != nil { + in, out := &in.CorsRule, &out.CorsRule + *out = make([]CorsRuleParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.EventNotifications != nil { + in, out := &in.EventNotifications, &out.EventNotifications + *out = make([]EventNotificationsParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ForceDestroy != nil { + in, out := &in.ForceDestroy, &out.ForceDestroy + *out = new(bool) + **out = **in + } + if in.LifecycleRule != nil { + in, out := &in.LifecycleRule, &out.LifecycleRule + *out = make([]LifecycleRuleParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Logging != nil { + in, out := &in.Logging, &out.Logging + *out = make([]LoggingParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ParallelFs != nil { + in, out := &in.ParallelFs, &out.ParallelFs + *out = new(bool) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.ServerSideEncryption != nil { + in, out := &in.ServerSideEncryption, &out.ServerSideEncryption + *out = make([]ServerSideEncryptionParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.StorageClass != nil { + in, out := &in.StorageClass, &out.StorageClass + *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.UserDomainNames != nil { + in, out := &in.UserDomainNames, &out.UserDomainNames + *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.Versioning != nil { + in, out := &in.Versioning, &out.Versioning + *out = new(bool) + **out = **in + } + if in.Website != nil { + in, out := &in.Website, &out.Website + *out = make([]WebsiteParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.WormPolicy != nil { + in, out := &in.WormPolicy, &out.WormPolicy + *out = make([]WormPolicyParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketParameters. +func (in *BucketParameters) DeepCopy() *BucketParameters { + if in == nil { + return nil + } + out := new(BucketParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BucketPolicy) DeepCopyInto(out *BucketPolicy) { + *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 BucketPolicy. +func (in *BucketPolicy) DeepCopy() *BucketPolicy { + if in == nil { + return nil + } + out := new(BucketPolicy) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *BucketPolicy) 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 *BucketPolicyInitParameters) DeepCopyInto(out *BucketPolicyInitParameters) { + *out = *in + if in.Bucket != nil { + in, out := &in.Bucket, &out.Bucket + *out = new(string) + **out = **in + } + if in.Policy != nil { + in, out := &in.Policy, &out.Policy + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketPolicyInitParameters. +func (in *BucketPolicyInitParameters) DeepCopy() *BucketPolicyInitParameters { + if in == nil { + return nil + } + out := new(BucketPolicyInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BucketPolicyList) DeepCopyInto(out *BucketPolicyList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]BucketPolicy, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketPolicyList. +func (in *BucketPolicyList) DeepCopy() *BucketPolicyList { + if in == nil { + return nil + } + out := new(BucketPolicyList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *BucketPolicyList) 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 *BucketPolicyObservation) DeepCopyInto(out *BucketPolicyObservation) { + *out = *in + if in.Bucket != nil { + in, out := &in.Bucket, &out.Bucket + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Policy != nil { + in, out := &in.Policy, &out.Policy + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketPolicyObservation. +func (in *BucketPolicyObservation) DeepCopy() *BucketPolicyObservation { + if in == nil { + return nil + } + out := new(BucketPolicyObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BucketPolicyParameters) DeepCopyInto(out *BucketPolicyParameters) { + *out = *in + if in.Bucket != nil { + in, out := &in.Bucket, &out.Bucket + *out = new(string) + **out = **in + } + if in.Policy != nil { + in, out := &in.Policy, &out.Policy + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketPolicyParameters. +func (in *BucketPolicyParameters) DeepCopy() *BucketPolicyParameters { + if in == nil { + return nil + } + out := new(BucketPolicyParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BucketPolicySpec) DeepCopyInto(out *BucketPolicySpec) { + *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 BucketPolicySpec. +func (in *BucketPolicySpec) DeepCopy() *BucketPolicySpec { + if in == nil { + return nil + } + out := new(BucketPolicySpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BucketPolicyStatus) DeepCopyInto(out *BucketPolicyStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketPolicyStatus. +func (in *BucketPolicyStatus) DeepCopy() *BucketPolicyStatus { + if in == nil { + return nil + } + out := new(BucketPolicyStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BucketReplication) DeepCopyInto(out *BucketReplication) { + *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 BucketReplication. +func (in *BucketReplication) DeepCopy() *BucketReplication { + if in == nil { + return nil + } + out := new(BucketReplication) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *BucketReplication) 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 *BucketReplicationInitParameters) DeepCopyInto(out *BucketReplicationInitParameters) { + *out = *in + if in.Agency != nil { + in, out := &in.Agency, &out.Agency + *out = new(string) + **out = **in + } + if in.Bucket != nil { + in, out := &in.Bucket, &out.Bucket + *out = new(string) + **out = **in + } + if in.DestinationBucket != nil { + in, out := &in.DestinationBucket, &out.DestinationBucket + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.Rule != nil { + in, out := &in.Rule, &out.Rule + *out = make([]RuleInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketReplicationInitParameters. +func (in *BucketReplicationInitParameters) DeepCopy() *BucketReplicationInitParameters { + if in == nil { + return nil + } + out := new(BucketReplicationInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BucketReplicationList) DeepCopyInto(out *BucketReplicationList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]BucketReplication, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketReplicationList. +func (in *BucketReplicationList) DeepCopy() *BucketReplicationList { + if in == nil { + return nil + } + out := new(BucketReplicationList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *BucketReplicationList) 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 *BucketReplicationObservation) DeepCopyInto(out *BucketReplicationObservation) { + *out = *in + if in.Agency != nil { + in, out := &in.Agency, &out.Agency + *out = new(string) + **out = **in + } + if in.Bucket != nil { + in, out := &in.Bucket, &out.Bucket + *out = new(string) + **out = **in + } + if in.DestinationBucket != nil { + in, out := &in.DestinationBucket, &out.DestinationBucket + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.Rule != nil { + in, out := &in.Rule, &out.Rule + *out = make([]RuleObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketReplicationObservation. +func (in *BucketReplicationObservation) DeepCopy() *BucketReplicationObservation { + if in == nil { + return nil + } + out := new(BucketReplicationObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BucketReplicationParameters) DeepCopyInto(out *BucketReplicationParameters) { + *out = *in + if in.Agency != nil { + in, out := &in.Agency, &out.Agency + *out = new(string) + **out = **in + } + if in.Bucket != nil { + in, out := &in.Bucket, &out.Bucket + *out = new(string) + **out = **in + } + if in.DestinationBucket != nil { + in, out := &in.DestinationBucket, &out.DestinationBucket + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.Rule != nil { + in, out := &in.Rule, &out.Rule + *out = make([]RuleParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketReplicationParameters. +func (in *BucketReplicationParameters) DeepCopy() *BucketReplicationParameters { + if in == nil { + return nil + } + out := new(BucketReplicationParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BucketReplicationSpec) DeepCopyInto(out *BucketReplicationSpec) { + *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 BucketReplicationSpec. +func (in *BucketReplicationSpec) DeepCopy() *BucketReplicationSpec { + if in == nil { + return nil + } + out := new(BucketReplicationSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BucketReplicationStatus) DeepCopyInto(out *BucketReplicationStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketReplicationStatus. +func (in *BucketReplicationStatus) DeepCopy() *BucketReplicationStatus { + if in == nil { + return nil + } + out := new(BucketReplicationStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BucketSpec) DeepCopyInto(out *BucketSpec) { + *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 BucketSpec. +func (in *BucketSpec) DeepCopy() *BucketSpec { + if in == nil { + return nil + } + out := new(BucketSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BucketStatus) DeepCopyInto(out *BucketStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketStatus. +func (in *BucketStatus) DeepCopy() *BucketStatus { + if in == nil { + return nil + } + out := new(BucketStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CorsRuleInitParameters) DeepCopyInto(out *CorsRuleInitParameters) { + *out = *in + if in.AllowedHeaders != nil { + in, out := &in.AllowedHeaders, &out.AllowedHeaders + *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.AllowedMethods != nil { + in, out := &in.AllowedMethods, &out.AllowedMethods + *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.AllowedOrigins != nil { + in, out := &in.AllowedOrigins, &out.AllowedOrigins + *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.ExposeHeaders != nil { + in, out := &in.ExposeHeaders, &out.ExposeHeaders + *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.MaxAgeSeconds != nil { + in, out := &in.MaxAgeSeconds, &out.MaxAgeSeconds + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CorsRuleInitParameters. +func (in *CorsRuleInitParameters) DeepCopy() *CorsRuleInitParameters { + if in == nil { + return nil + } + out := new(CorsRuleInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CorsRuleObservation) DeepCopyInto(out *CorsRuleObservation) { + *out = *in + if in.AllowedHeaders != nil { + in, out := &in.AllowedHeaders, &out.AllowedHeaders + *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.AllowedMethods != nil { + in, out := &in.AllowedMethods, &out.AllowedMethods + *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.AllowedOrigins != nil { + in, out := &in.AllowedOrigins, &out.AllowedOrigins + *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.ExposeHeaders != nil { + in, out := &in.ExposeHeaders, &out.ExposeHeaders + *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.MaxAgeSeconds != nil { + in, out := &in.MaxAgeSeconds, &out.MaxAgeSeconds + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CorsRuleObservation. +func (in *CorsRuleObservation) DeepCopy() *CorsRuleObservation { + if in == nil { + return nil + } + out := new(CorsRuleObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CorsRuleParameters) DeepCopyInto(out *CorsRuleParameters) { + *out = *in + if in.AllowedHeaders != nil { + in, out := &in.AllowedHeaders, &out.AllowedHeaders + *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.AllowedMethods != nil { + in, out := &in.AllowedMethods, &out.AllowedMethods + *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.AllowedOrigins != nil { + in, out := &in.AllowedOrigins, &out.AllowedOrigins + *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.ExposeHeaders != nil { + in, out := &in.ExposeHeaders, &out.ExposeHeaders + *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.MaxAgeSeconds != nil { + in, out := &in.MaxAgeSeconds, &out.MaxAgeSeconds + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CorsRuleParameters. +func (in *CorsRuleParameters) DeepCopy() *CorsRuleParameters { + if in == nil { + return nil + } + out := new(CorsRuleParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DestinationInitParameters) DeepCopyInto(out *DestinationInitParameters) { + *out = *in + if in.Bucket != nil { + in, out := &in.Bucket, &out.Bucket + *out = new(string) + **out = **in + } + if in.Format != nil { + in, out := &in.Format, &out.Format + *out = new(string) + **out = **in + } + if in.Prefix != nil { + in, out := &in.Prefix, &out.Prefix + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DestinationInitParameters. +func (in *DestinationInitParameters) DeepCopy() *DestinationInitParameters { + if in == nil { + return nil + } + out := new(DestinationInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DestinationObservation) DeepCopyInto(out *DestinationObservation) { + *out = *in + if in.Bucket != nil { + in, out := &in.Bucket, &out.Bucket + *out = new(string) + **out = **in + } + if in.Format != nil { + in, out := &in.Format, &out.Format + *out = new(string) + **out = **in + } + if in.Prefix != nil { + in, out := &in.Prefix, &out.Prefix + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DestinationObservation. +func (in *DestinationObservation) DeepCopy() *DestinationObservation { + if in == nil { + return nil + } + out := new(DestinationObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DestinationParameters) DeepCopyInto(out *DestinationParameters) { + *out = *in + if in.Bucket != nil { + in, out := &in.Bucket, &out.Bucket + *out = new(string) + **out = **in + } + if in.Format != nil { + in, out := &in.Format, &out.Format + *out = new(string) + **out = **in + } + if in.Prefix != nil { + in, out := &in.Prefix, &out.Prefix + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DestinationParameters. +func (in *DestinationParameters) DeepCopy() *DestinationParameters { + if in == nil { + return nil + } + out := new(DestinationParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EventNotificationsInitParameters) DeepCopyInto(out *EventNotificationsInitParameters) { + *out = *in + if in.Events != nil { + in, out := &in.Events, &out.Events + *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.FilterRule != nil { + in, out := &in.FilterRule, &out.FilterRule + *out = make([]FilterRuleInitParameters, 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.Topic != nil { + in, out := &in.Topic, &out.Topic + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventNotificationsInitParameters. +func (in *EventNotificationsInitParameters) DeepCopy() *EventNotificationsInitParameters { + if in == nil { + return nil + } + out := new(EventNotificationsInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EventNotificationsObservation) DeepCopyInto(out *EventNotificationsObservation) { + *out = *in + if in.Events != nil { + in, out := &in.Events, &out.Events + *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.FilterRule != nil { + in, out := &in.FilterRule, &out.FilterRule + *out = make([]FilterRuleObservation, 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.Topic != nil { + in, out := &in.Topic, &out.Topic + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventNotificationsObservation. +func (in *EventNotificationsObservation) DeepCopy() *EventNotificationsObservation { + if in == nil { + return nil + } + out := new(EventNotificationsObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EventNotificationsParameters) DeepCopyInto(out *EventNotificationsParameters) { + *out = *in + if in.Events != nil { + in, out := &in.Events, &out.Events + *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.FilterRule != nil { + in, out := &in.FilterRule, &out.FilterRule + *out = make([]FilterRuleParameters, 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.Topic != nil { + in, out := &in.Topic, &out.Topic + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EventNotificationsParameters. +func (in *EventNotificationsParameters) DeepCopy() *EventNotificationsParameters { + if in == nil { + return nil + } + out := new(EventNotificationsParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExpirationInitParameters) DeepCopyInto(out *ExpirationInitParameters) { + *out = *in + if in.Days != nil { + in, out := &in.Days, &out.Days + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExpirationInitParameters. +func (in *ExpirationInitParameters) DeepCopy() *ExpirationInitParameters { + if in == nil { + return nil + } + out := new(ExpirationInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExpirationObservation) DeepCopyInto(out *ExpirationObservation) { + *out = *in + if in.Days != nil { + in, out := &in.Days, &out.Days + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExpirationObservation. +func (in *ExpirationObservation) DeepCopy() *ExpirationObservation { + if in == nil { + return nil + } + out := new(ExpirationObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExpirationParameters) DeepCopyInto(out *ExpirationParameters) { + *out = *in + if in.Days != nil { + in, out := &in.Days, &out.Days + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExpirationParameters. +func (in *ExpirationParameters) DeepCopy() *ExpirationParameters { + if in == nil { + return nil + } + out := new(ExpirationParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FilterRuleInitParameters) DeepCopyInto(out *FilterRuleInitParameters) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *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 FilterRuleInitParameters. +func (in *FilterRuleInitParameters) DeepCopy() *FilterRuleInitParameters { + if in == nil { + return nil + } + out := new(FilterRuleInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FilterRuleObservation) DeepCopyInto(out *FilterRuleObservation) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *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 FilterRuleObservation. +func (in *FilterRuleObservation) DeepCopy() *FilterRuleObservation { + if in == nil { + return nil + } + out := new(FilterRuleObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FilterRuleParameters) DeepCopyInto(out *FilterRuleParameters) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *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 FilterRuleParameters. +func (in *FilterRuleParameters) DeepCopy() *FilterRuleParameters { + if in == nil { + return nil + } + out := new(FilterRuleParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LifecycleRuleInitParameters) DeepCopyInto(out *LifecycleRuleInitParameters) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.Expiration != nil { + in, out := &in.Expiration, &out.Expiration + *out = make([]ExpirationInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NoncurrentVersionExpiration != nil { + in, out := &in.NoncurrentVersionExpiration, &out.NoncurrentVersionExpiration + *out = make([]NoncurrentVersionExpirationInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.NoncurrentVersionTransition != nil { + in, out := &in.NoncurrentVersionTransition, &out.NoncurrentVersionTransition + *out = make([]NoncurrentVersionTransitionInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Prefix != nil { + in, out := &in.Prefix, &out.Prefix + *out = new(string) + **out = **in + } + if in.Transition != nil { + in, out := &in.Transition, &out.Transition + *out = make([]TransitionInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LifecycleRuleInitParameters. +func (in *LifecycleRuleInitParameters) DeepCopy() *LifecycleRuleInitParameters { + if in == nil { + return nil + } + out := new(LifecycleRuleInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LifecycleRuleObservation) DeepCopyInto(out *LifecycleRuleObservation) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.Expiration != nil { + in, out := &in.Expiration, &out.Expiration + *out = make([]ExpirationObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NoncurrentVersionExpiration != nil { + in, out := &in.NoncurrentVersionExpiration, &out.NoncurrentVersionExpiration + *out = make([]NoncurrentVersionExpirationObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.NoncurrentVersionTransition != nil { + in, out := &in.NoncurrentVersionTransition, &out.NoncurrentVersionTransition + *out = make([]NoncurrentVersionTransitionObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Prefix != nil { + in, out := &in.Prefix, &out.Prefix + *out = new(string) + **out = **in + } + if in.Transition != nil { + in, out := &in.Transition, &out.Transition + *out = make([]TransitionObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LifecycleRuleObservation. +func (in *LifecycleRuleObservation) DeepCopy() *LifecycleRuleObservation { + if in == nil { + return nil + } + out := new(LifecycleRuleObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LifecycleRuleParameters) DeepCopyInto(out *LifecycleRuleParameters) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.Expiration != nil { + in, out := &in.Expiration, &out.Expiration + *out = make([]ExpirationParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NoncurrentVersionExpiration != nil { + in, out := &in.NoncurrentVersionExpiration, &out.NoncurrentVersionExpiration + *out = make([]NoncurrentVersionExpirationParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.NoncurrentVersionTransition != nil { + in, out := &in.NoncurrentVersionTransition, &out.NoncurrentVersionTransition + *out = make([]NoncurrentVersionTransitionParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Prefix != nil { + in, out := &in.Prefix, &out.Prefix + *out = new(string) + **out = **in + } + if in.Transition != nil { + in, out := &in.Transition, &out.Transition + *out = make([]TransitionParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LifecycleRuleParameters. +func (in *LifecycleRuleParameters) DeepCopy() *LifecycleRuleParameters { + if in == nil { + return nil + } + out := new(LifecycleRuleParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LoggingInitParameters) DeepCopyInto(out *LoggingInitParameters) { + *out = *in + if in.TargetBucket != nil { + in, out := &in.TargetBucket, &out.TargetBucket + *out = new(string) + **out = **in + } + if in.TargetPrefix != nil { + in, out := &in.TargetPrefix, &out.TargetPrefix + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoggingInitParameters. +func (in *LoggingInitParameters) DeepCopy() *LoggingInitParameters { + if in == nil { + return nil + } + out := new(LoggingInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LoggingObservation) DeepCopyInto(out *LoggingObservation) { + *out = *in + if in.TargetBucket != nil { + in, out := &in.TargetBucket, &out.TargetBucket + *out = new(string) + **out = **in + } + if in.TargetPrefix != nil { + in, out := &in.TargetPrefix, &out.TargetPrefix + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoggingObservation. +func (in *LoggingObservation) DeepCopy() *LoggingObservation { + if in == nil { + return nil + } + out := new(LoggingObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LoggingParameters) DeepCopyInto(out *LoggingParameters) { + *out = *in + if in.TargetBucket != nil { + in, out := &in.TargetBucket, &out.TargetBucket + *out = new(string) + **out = **in + } + if in.TargetPrefix != nil { + in, out := &in.TargetPrefix, &out.TargetPrefix + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoggingParameters. +func (in *LoggingParameters) DeepCopy() *LoggingParameters { + if in == nil { + return nil + } + out := new(LoggingParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NoncurrentVersionExpirationInitParameters) DeepCopyInto(out *NoncurrentVersionExpirationInitParameters) { + *out = *in + if in.Days != nil { + in, out := &in.Days, &out.Days + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NoncurrentVersionExpirationInitParameters. +func (in *NoncurrentVersionExpirationInitParameters) DeepCopy() *NoncurrentVersionExpirationInitParameters { + if in == nil { + return nil + } + out := new(NoncurrentVersionExpirationInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NoncurrentVersionExpirationObservation) DeepCopyInto(out *NoncurrentVersionExpirationObservation) { + *out = *in + if in.Days != nil { + in, out := &in.Days, &out.Days + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NoncurrentVersionExpirationObservation. +func (in *NoncurrentVersionExpirationObservation) DeepCopy() *NoncurrentVersionExpirationObservation { + if in == nil { + return nil + } + out := new(NoncurrentVersionExpirationObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NoncurrentVersionExpirationParameters) DeepCopyInto(out *NoncurrentVersionExpirationParameters) { + *out = *in + if in.Days != nil { + in, out := &in.Days, &out.Days + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NoncurrentVersionExpirationParameters. +func (in *NoncurrentVersionExpirationParameters) DeepCopy() *NoncurrentVersionExpirationParameters { + if in == nil { + return nil + } + out := new(NoncurrentVersionExpirationParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NoncurrentVersionTransitionInitParameters) DeepCopyInto(out *NoncurrentVersionTransitionInitParameters) { + *out = *in + if in.Days != nil { + in, out := &in.Days, &out.Days + *out = new(float64) + **out = **in + } + if in.StorageClass != nil { + in, out := &in.StorageClass, &out.StorageClass + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NoncurrentVersionTransitionInitParameters. +func (in *NoncurrentVersionTransitionInitParameters) DeepCopy() *NoncurrentVersionTransitionInitParameters { + if in == nil { + return nil + } + out := new(NoncurrentVersionTransitionInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NoncurrentVersionTransitionObservation) DeepCopyInto(out *NoncurrentVersionTransitionObservation) { + *out = *in + if in.Days != nil { + in, out := &in.Days, &out.Days + *out = new(float64) + **out = **in + } + if in.StorageClass != nil { + in, out := &in.StorageClass, &out.StorageClass + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NoncurrentVersionTransitionObservation. +func (in *NoncurrentVersionTransitionObservation) DeepCopy() *NoncurrentVersionTransitionObservation { + if in == nil { + return nil + } + out := new(NoncurrentVersionTransitionObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NoncurrentVersionTransitionParameters) DeepCopyInto(out *NoncurrentVersionTransitionParameters) { + *out = *in + if in.Days != nil { + in, out := &in.Days, &out.Days + *out = new(float64) + **out = **in + } + if in.StorageClass != nil { + in, out := &in.StorageClass, &out.StorageClass + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NoncurrentVersionTransitionParameters. +func (in *NoncurrentVersionTransitionParameters) DeepCopy() *NoncurrentVersionTransitionParameters { + if in == nil { + return nil + } + out := new(NoncurrentVersionTransitionParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RuleInitParameters) DeepCopyInto(out *RuleInitParameters) { + *out = *in + if in.DeleteData != nil { + in, out := &in.DeleteData, &out.DeleteData + *out = new(bool) + **out = **in + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.HistoryEnabled != nil { + in, out := &in.HistoryEnabled, &out.HistoryEnabled + *out = new(bool) + **out = **in + } + if in.Prefix != nil { + in, out := &in.Prefix, &out.Prefix + *out = new(string) + **out = **in + } + if in.StorageClass != nil { + in, out := &in.StorageClass, &out.StorageClass + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RuleInitParameters. +func (in *RuleInitParameters) DeepCopy() *RuleInitParameters { + if in == nil { + return nil + } + out := new(RuleInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RuleObservation) DeepCopyInto(out *RuleObservation) { + *out = *in + if in.DeleteData != nil { + in, out := &in.DeleteData, &out.DeleteData + *out = new(bool) + **out = **in + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.HistoryEnabled != nil { + in, out := &in.HistoryEnabled, &out.HistoryEnabled + *out = new(bool) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Prefix != nil { + in, out := &in.Prefix, &out.Prefix + *out = new(string) + **out = **in + } + if in.StorageClass != nil { + in, out := &in.StorageClass, &out.StorageClass + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RuleObservation. +func (in *RuleObservation) DeepCopy() *RuleObservation { + if in == nil { + return nil + } + out := new(RuleObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RuleParameters) DeepCopyInto(out *RuleParameters) { + *out = *in + if in.DeleteData != nil { + in, out := &in.DeleteData, &out.DeleteData + *out = new(bool) + **out = **in + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.HistoryEnabled != nil { + in, out := &in.HistoryEnabled, &out.HistoryEnabled + *out = new(bool) + **out = **in + } + if in.Prefix != nil { + in, out := &in.Prefix, &out.Prefix + *out = new(string) + **out = **in + } + if in.StorageClass != nil { + in, out := &in.StorageClass, &out.StorageClass + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RuleParameters. +func (in *RuleParameters) DeepCopy() *RuleParameters { + if in == nil { + return nil + } + out := new(RuleParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServerSideEncryptionInitParameters) DeepCopyInto(out *ServerSideEncryptionInitParameters) { + *out = *in + if in.Algorithm != nil { + in, out := &in.Algorithm, &out.Algorithm + *out = new(string) + **out = **in + } + if in.KMSKeyID != nil { + in, out := &in.KMSKeyID, &out.KMSKeyID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerSideEncryptionInitParameters. +func (in *ServerSideEncryptionInitParameters) DeepCopy() *ServerSideEncryptionInitParameters { + if in == nil { + return nil + } + out := new(ServerSideEncryptionInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServerSideEncryptionObservation) DeepCopyInto(out *ServerSideEncryptionObservation) { + *out = *in + if in.Algorithm != nil { + in, out := &in.Algorithm, &out.Algorithm + *out = new(string) + **out = **in + } + if in.KMSKeyID != nil { + in, out := &in.KMSKeyID, &out.KMSKeyID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerSideEncryptionObservation. +func (in *ServerSideEncryptionObservation) DeepCopy() *ServerSideEncryptionObservation { + if in == nil { + return nil + } + out := new(ServerSideEncryptionObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServerSideEncryptionParameters) DeepCopyInto(out *ServerSideEncryptionParameters) { + *out = *in + if in.Algorithm != nil { + in, out := &in.Algorithm, &out.Algorithm + *out = new(string) + **out = **in + } + if in.KMSKeyID != nil { + in, out := &in.KMSKeyID, &out.KMSKeyID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerSideEncryptionParameters. +func (in *ServerSideEncryptionParameters) DeepCopy() *ServerSideEncryptionParameters { + if in == nil { + return nil + } + out := new(ServerSideEncryptionParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TransitionInitParameters) DeepCopyInto(out *TransitionInitParameters) { + *out = *in + if in.Days != nil { + in, out := &in.Days, &out.Days + *out = new(float64) + **out = **in + } + if in.StorageClass != nil { + in, out := &in.StorageClass, &out.StorageClass + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransitionInitParameters. +func (in *TransitionInitParameters) DeepCopy() *TransitionInitParameters { + if in == nil { + return nil + } + out := new(TransitionInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TransitionObservation) DeepCopyInto(out *TransitionObservation) { + *out = *in + if in.Days != nil { + in, out := &in.Days, &out.Days + *out = new(float64) + **out = **in + } + if in.StorageClass != nil { + in, out := &in.StorageClass, &out.StorageClass + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransitionObservation. +func (in *TransitionObservation) DeepCopy() *TransitionObservation { + if in == nil { + return nil + } + out := new(TransitionObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TransitionParameters) DeepCopyInto(out *TransitionParameters) { + *out = *in + if in.Days != nil { + in, out := &in.Days, &out.Days + *out = new(float64) + **out = **in + } + if in.StorageClass != nil { + in, out := &in.StorageClass, &out.StorageClass + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TransitionParameters. +func (in *TransitionParameters) DeepCopy() *TransitionParameters { + if in == nil { + return nil + } + out := new(TransitionParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *WebsiteInitParameters) DeepCopyInto(out *WebsiteInitParameters) { + *out = *in + if in.ErrorDocument != nil { + in, out := &in.ErrorDocument, &out.ErrorDocument + *out = new(string) + **out = **in + } + if in.IndexDocument != nil { + in, out := &in.IndexDocument, &out.IndexDocument + *out = new(string) + **out = **in + } + if in.RedirectAllRequestsTo != nil { + in, out := &in.RedirectAllRequestsTo, &out.RedirectAllRequestsTo + *out = new(string) + **out = **in + } + if in.RoutingRules != nil { + in, out := &in.RoutingRules, &out.RoutingRules + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebsiteInitParameters. +func (in *WebsiteInitParameters) DeepCopy() *WebsiteInitParameters { + if in == nil { + return nil + } + out := new(WebsiteInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *WebsiteObservation) DeepCopyInto(out *WebsiteObservation) { + *out = *in + if in.ErrorDocument != nil { + in, out := &in.ErrorDocument, &out.ErrorDocument + *out = new(string) + **out = **in + } + if in.IndexDocument != nil { + in, out := &in.IndexDocument, &out.IndexDocument + *out = new(string) + **out = **in + } + if in.RedirectAllRequestsTo != nil { + in, out := &in.RedirectAllRequestsTo, &out.RedirectAllRequestsTo + *out = new(string) + **out = **in + } + if in.RoutingRules != nil { + in, out := &in.RoutingRules, &out.RoutingRules + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebsiteObservation. +func (in *WebsiteObservation) DeepCopy() *WebsiteObservation { + if in == nil { + return nil + } + out := new(WebsiteObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *WebsiteParameters) DeepCopyInto(out *WebsiteParameters) { + *out = *in + if in.ErrorDocument != nil { + in, out := &in.ErrorDocument, &out.ErrorDocument + *out = new(string) + **out = **in + } + if in.IndexDocument != nil { + in, out := &in.IndexDocument, &out.IndexDocument + *out = new(string) + **out = **in + } + if in.RedirectAllRequestsTo != nil { + in, out := &in.RedirectAllRequestsTo, &out.RedirectAllRequestsTo + *out = new(string) + **out = **in + } + if in.RoutingRules != nil { + in, out := &in.RoutingRules, &out.RoutingRules + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebsiteParameters. +func (in *WebsiteParameters) DeepCopy() *WebsiteParameters { + if in == nil { + return nil + } + out := new(WebsiteParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *WormPolicyInitParameters) DeepCopyInto(out *WormPolicyInitParameters) { + *out = *in + if in.Days != nil { + in, out := &in.Days, &out.Days + *out = new(float64) + **out = **in + } + if in.Years != nil { + in, out := &in.Years, &out.Years + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WormPolicyInitParameters. +func (in *WormPolicyInitParameters) DeepCopy() *WormPolicyInitParameters { + if in == nil { + return nil + } + out := new(WormPolicyInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *WormPolicyObservation) DeepCopyInto(out *WormPolicyObservation) { + *out = *in + if in.Days != nil { + in, out := &in.Days, &out.Days + *out = new(float64) + **out = **in + } + if in.Years != nil { + in, out := &in.Years, &out.Years + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WormPolicyObservation. +func (in *WormPolicyObservation) DeepCopy() *WormPolicyObservation { + if in == nil { + return nil + } + out := new(WormPolicyObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *WormPolicyParameters) DeepCopyInto(out *WormPolicyParameters) { + *out = *in + if in.Days != nil { + in, out := &in.Days, &out.Days + *out = new(float64) + **out = **in + } + if in.Years != nil { + in, out := &in.Years, &out.Years + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WormPolicyParameters. +func (in *WormPolicyParameters) DeepCopy() *WormPolicyParameters { + if in == nil { + return nil + } + out := new(WormPolicyParameters) + in.DeepCopyInto(out) + return out +} diff --git a/apis/obs/v1alpha1/zz_generated.managed.go b/apis/obs/v1alpha1/zz_generated.managed.go new file mode 100644 index 0000000..c2905e9 --- /dev/null +++ b/apis/obs/v1alpha1/zz_generated.managed.go @@ -0,0 +1,308 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import xpv1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + +// GetCondition of this Bucket. +func (mg *Bucket) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this Bucket. +func (mg *Bucket) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this Bucket. +func (mg *Bucket) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this Bucket. +func (mg *Bucket) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this Bucket. +func (mg *Bucket) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this Bucket. +func (mg *Bucket) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this Bucket. +func (mg *Bucket) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this Bucket. +func (mg *Bucket) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this Bucket. +func (mg *Bucket) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this Bucket. +func (mg *Bucket) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this Bucket. +func (mg *Bucket) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this Bucket. +func (mg *Bucket) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this BucketInventory. +func (mg *BucketInventory) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this BucketInventory. +func (mg *BucketInventory) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this BucketInventory. +func (mg *BucketInventory) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this BucketInventory. +func (mg *BucketInventory) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this BucketInventory. +func (mg *BucketInventory) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this BucketInventory. +func (mg *BucketInventory) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this BucketInventory. +func (mg *BucketInventory) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this BucketInventory. +func (mg *BucketInventory) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this BucketInventory. +func (mg *BucketInventory) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this BucketInventory. +func (mg *BucketInventory) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this BucketInventory. +func (mg *BucketInventory) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this BucketInventory. +func (mg *BucketInventory) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this BucketObject. +func (mg *BucketObject) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this BucketObject. +func (mg *BucketObject) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this BucketObject. +func (mg *BucketObject) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this BucketObject. +func (mg *BucketObject) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this BucketObject. +func (mg *BucketObject) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this BucketObject. +func (mg *BucketObject) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this BucketObject. +func (mg *BucketObject) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this BucketObject. +func (mg *BucketObject) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this BucketObject. +func (mg *BucketObject) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this BucketObject. +func (mg *BucketObject) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this BucketObject. +func (mg *BucketObject) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this BucketObject. +func (mg *BucketObject) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this BucketPolicy. +func (mg *BucketPolicy) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this BucketPolicy. +func (mg *BucketPolicy) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this BucketPolicy. +func (mg *BucketPolicy) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this BucketPolicy. +func (mg *BucketPolicy) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this BucketPolicy. +func (mg *BucketPolicy) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this BucketPolicy. +func (mg *BucketPolicy) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this BucketPolicy. +func (mg *BucketPolicy) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this BucketPolicy. +func (mg *BucketPolicy) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this BucketPolicy. +func (mg *BucketPolicy) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this BucketPolicy. +func (mg *BucketPolicy) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this BucketPolicy. +func (mg *BucketPolicy) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this BucketPolicy. +func (mg *BucketPolicy) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this BucketReplication. +func (mg *BucketReplication) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this BucketReplication. +func (mg *BucketReplication) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this BucketReplication. +func (mg *BucketReplication) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this BucketReplication. +func (mg *BucketReplication) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this BucketReplication. +func (mg *BucketReplication) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this BucketReplication. +func (mg *BucketReplication) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this BucketReplication. +func (mg *BucketReplication) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this BucketReplication. +func (mg *BucketReplication) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this BucketReplication. +func (mg *BucketReplication) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this BucketReplication. +func (mg *BucketReplication) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this BucketReplication. +func (mg *BucketReplication) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this BucketReplication. +func (mg *BucketReplication) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} diff --git a/apis/obs/v1alpha1/zz_generated.managedlist.go b/apis/obs/v1alpha1/zz_generated.managedlist.go new file mode 100644 index 0000000..8992ca3 --- /dev/null +++ b/apis/obs/v1alpha1/zz_generated.managedlist.go @@ -0,0 +1,53 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import resource "github.com/crossplane/crossplane-runtime/pkg/resource" + +// GetItems of this BucketInventoryList. +func (l *BucketInventoryList) 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 BucketList. +func (l *BucketList) 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 BucketObjectList. +func (l *BucketObjectList) 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 BucketPolicyList. +func (l *BucketPolicyList) 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 BucketReplicationList. +func (l *BucketReplicationList) 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/obs/v1alpha1/zz_generated_terraformed.go b/apis/obs/v1alpha1/zz_generated_terraformed.go new file mode 100755 index 0000000..d55f0d4 --- /dev/null +++ b/apis/obs/v1alpha1/zz_generated_terraformed.go @@ -0,0 +1,438 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "github.com/pkg/errors" + + "github.com/crossplane/upjet/pkg/resource" + "github.com/crossplane/upjet/pkg/resource/json" +) + +// GetTerraformResourceType returns Terraform resource type for this Bucket +func (mg *Bucket) GetTerraformResourceType() string { + return "opentelekomcloud_obs_bucket" +} + +// GetConnectionDetailsMapping for this Bucket +func (tr *Bucket) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this Bucket +func (tr *Bucket) 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 Bucket +func (tr *Bucket) 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 Bucket +func (tr *Bucket) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this Bucket +func (tr *Bucket) 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 Bucket +func (tr *Bucket) 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 Bucket +func (tr *Bucket) 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) +} + +// LateInitialize this Bucket using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *Bucket) LateInitialize(attrs []byte) (bool, error) { + params := &BucketParameters{} + 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 *Bucket) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this BucketInventory +func (mg *BucketInventory) GetTerraformResourceType() string { + return "opentelekomcloud_obs_bucket_inventory" +} + +// GetConnectionDetailsMapping for this BucketInventory +func (tr *BucketInventory) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this BucketInventory +func (tr *BucketInventory) 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 BucketInventory +func (tr *BucketInventory) 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 BucketInventory +func (tr *BucketInventory) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this BucketInventory +func (tr *BucketInventory) 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 BucketInventory +func (tr *BucketInventory) 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 BucketInventory +func (tr *BucketInventory) 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) +} + +// LateInitialize this BucketInventory using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *BucketInventory) LateInitialize(attrs []byte) (bool, error) { + params := &BucketInventoryParameters{} + 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 *BucketInventory) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this BucketObject +func (mg *BucketObject) GetTerraformResourceType() string { + return "opentelekomcloud_obs_bucket_object" +} + +// GetConnectionDetailsMapping for this BucketObject +func (tr *BucketObject) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this BucketObject +func (tr *BucketObject) 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 BucketObject +func (tr *BucketObject) 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 BucketObject +func (tr *BucketObject) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this BucketObject +func (tr *BucketObject) 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 BucketObject +func (tr *BucketObject) 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 BucketObject +func (tr *BucketObject) 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) +} + +// LateInitialize this BucketObject using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *BucketObject) LateInitialize(attrs []byte) (bool, error) { + params := &BucketObjectParameters{} + 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 *BucketObject) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this BucketPolicy +func (mg *BucketPolicy) GetTerraformResourceType() string { + return "opentelekomcloud_obs_bucket_policy" +} + +// GetConnectionDetailsMapping for this BucketPolicy +func (tr *BucketPolicy) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this BucketPolicy +func (tr *BucketPolicy) 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 BucketPolicy +func (tr *BucketPolicy) 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 BucketPolicy +func (tr *BucketPolicy) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this BucketPolicy +func (tr *BucketPolicy) 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 BucketPolicy +func (tr *BucketPolicy) 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 BucketPolicy +func (tr *BucketPolicy) 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) +} + +// LateInitialize this BucketPolicy using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *BucketPolicy) LateInitialize(attrs []byte) (bool, error) { + params := &BucketPolicyParameters{} + 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 *BucketPolicy) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this BucketReplication +func (mg *BucketReplication) GetTerraformResourceType() string { + return "opentelekomcloud_obs_bucket_replication" +} + +// GetConnectionDetailsMapping for this BucketReplication +func (tr *BucketReplication) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this BucketReplication +func (tr *BucketReplication) 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 BucketReplication +func (tr *BucketReplication) 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 BucketReplication +func (tr *BucketReplication) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this BucketReplication +func (tr *BucketReplication) 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 BucketReplication +func (tr *BucketReplication) 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 BucketReplication +func (tr *BucketReplication) 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) +} + +// LateInitialize this BucketReplication using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *BucketReplication) LateInitialize(attrs []byte) (bool, error) { + params := &BucketReplicationParameters{} + 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 *BucketReplication) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/obs/v1alpha1/zz_groupversion_info.go b/apis/obs/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..5041a2f --- /dev/null +++ b/apis/obs/v1alpha1/zz_groupversion_info.go @@ -0,0 +1,36 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +// +kubebuilder:object:generate=true +// +groupName=obs.crossplane.io +// +versionName=v1alpha1 +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +// Package type metadata. +const ( + CRDGroup = "obs.crossplane.io" + CRDVersion = "v1alpha1" +) + +var ( + // CRDGroupVersion is the API Group Version used to register the objects + CRDGroupVersion = schema.GroupVersion{Group: CRDGroup, Version: CRDVersion} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme + SchemeBuilder = &scheme.Builder{GroupVersion: CRDGroupVersion} + + // AddToScheme adds the types in this group-version to the given scheme. + AddToScheme = SchemeBuilder.AddToScheme +) diff --git a/apis/rds/v1alpha1/zz_backupv3_types.go b/apis/rds/v1alpha1/zz_backupv3_types.go new file mode 100755 index 0000000..153110d --- /dev/null +++ b/apis/rds/v1alpha1/zz_backupv3_types.go @@ -0,0 +1,195 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 BackupV3InitParameters struct { + + // Specifies a list of self-built Microsoft SQL Server databases that are partially backed up. + // (Only Microsoft SQL Server support partial backups.) + Databases []DatabasesInitParameters `json:"databases,omitempty" tf:"databases,omitempty"` + + // Specifies the backup description. + // It contains a maximum of 256 characters and cannot contain the following special characters: >!<"&'= + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The ID of the RDS instance to which the backup belongs. + InstanceID *string `json:"instanceId,omitempty" tf:"instance_id,omitempty"` + + // The name of the backup. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Indicates the backup type. Value: + // - auto: automated full backup + // - manual: manual full backup + // - fragment: differential full backup + // - incremental: automated incremental backup + Type *string `json:"type,omitempty" tf:"type,omitempty"` +} + +type BackupV3Observation struct { + + // The ID of the backup. + BackupID *string `json:"backupId,omitempty" tf:"backup_id,omitempty"` + + // Indicates the backup start time in the "yyyy-mm-ddThh:mm:ssZ" format, + // where "T" indicates the start time of the time field, and "Z" indicates the time zone offset. + BeginTime *string `json:"beginTime,omitempty" tf:"begin_time,omitempty"` + + // Specifies a list of self-built Microsoft SQL Server databases that are partially backed up. + // (Only Microsoft SQL Server support partial backups.) + Databases []DatabasesObservation `json:"databases,omitempty" tf:"databases,omitempty"` + + // Specifies the backup description. + // It contains a maximum of 256 characters and cannot contain the following special characters: >!<"&'= + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The ID of the backup. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The ID of the RDS instance to which the backup belongs. + InstanceID *string `json:"instanceId,omitempty" tf:"instance_id,omitempty"` + + // The name of the backup. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // Indicates the backup status. Value: + // - BUILDING: Backup in progress + // - COMPLETED: Backup completed + // - FAILED: Backup failed + // - DELETING: Backup being deleted + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + // Indicates the backup type. Value: + // - auto: automated full backup + // - manual: manual full backup + // - fragment: differential full backup + // - incremental: automated incremental backup + Type *string `json:"type,omitempty" tf:"type,omitempty"` +} + +type BackupV3Parameters struct { + + // Specifies a list of self-built Microsoft SQL Server databases that are partially backed up. + // (Only Microsoft SQL Server support partial backups.) + // +kubebuilder:validation:Optional + Databases []DatabasesParameters `json:"databases,omitempty" tf:"databases,omitempty"` + + // Specifies the backup description. + // It contains a maximum of 256 characters and cannot contain the following special characters: >!<"&'= + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The ID of the RDS instance to which the backup belongs. + // +kubebuilder:validation:Optional + InstanceID *string `json:"instanceId,omitempty" tf:"instance_id,omitempty"` + + // The name of the backup. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Indicates the backup type. Value: + // - auto: automated full backup + // - manual: manual full backup + // - fragment: differential full backup + // - incremental: automated incremental backup + // +kubebuilder:validation:Optional + Type *string `json:"type,omitempty" tf:"type,omitempty"` +} + +type DatabasesInitParameters struct { + + // The name of the backup. + Name *string `json:"name,omitempty" tf:"name,omitempty"` +} + +type DatabasesObservation struct { + + // The name of the backup. + Name *string `json:"name,omitempty" tf:"name,omitempty"` +} + +type DatabasesParameters struct { + + // The name of the backup. + // +kubebuilder:validation:Optional + Name *string `json:"name" tf:"name,omitempty"` +} + +// BackupV3Spec defines the desired state of BackupV3 +type BackupV3Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider BackupV3Parameters `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 BackupV3InitParameters `json:"initProvider,omitempty"` +} + +// BackupV3Status defines the observed state of BackupV3. +type BackupV3Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider BackupV3Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// BackupV3 is the Schema for the BackupV3s API. Manages an RDS Backup resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type BackupV3 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.instanceId) || (has(self.initProvider) && has(self.initProvider.instanceId))",message="spec.forProvider.instanceId is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + Spec BackupV3Spec `json:"spec"` + Status BackupV3Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// BackupV3List contains a list of BackupV3s +type BackupV3List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []BackupV3 `json:"items"` +} + +// Repository type metadata. +var ( + BackupV3_Kind = "BackupV3" + BackupV3_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: BackupV3_Kind}.String() + BackupV3_KindAPIVersion = BackupV3_Kind + "." + CRDGroupVersion.String() + BackupV3_GroupVersionKind = CRDGroupVersion.WithKind(BackupV3_Kind) +) + +func init() { + SchemeBuilder.Register(&BackupV3{}, &BackupV3List{}) +} diff --git a/apis/rds/v1alpha1/zz_generated.deepcopy.go b/apis/rds/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..3a82f3c --- /dev/null +++ b/apis/rds/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,3241 @@ +//go:build !ignore_autogenerated + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by controller-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + 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 *BackupStrategyInitParameters) DeepCopyInto(out *BackupStrategyInitParameters) { + *out = *in + if in.KeepDays != nil { + in, out := &in.KeepDays, &out.KeepDays + *out = new(float64) + **out = **in + } + if in.StartTime != nil { + in, out := &in.StartTime, &out.StartTime + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupStrategyInitParameters. +func (in *BackupStrategyInitParameters) DeepCopy() *BackupStrategyInitParameters { + if in == nil { + return nil + } + out := new(BackupStrategyInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BackupStrategyObservation) DeepCopyInto(out *BackupStrategyObservation) { + *out = *in + if in.KeepDays != nil { + in, out := &in.KeepDays, &out.KeepDays + *out = new(float64) + **out = **in + } + if in.StartTime != nil { + in, out := &in.StartTime, &out.StartTime + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupStrategyObservation. +func (in *BackupStrategyObservation) DeepCopy() *BackupStrategyObservation { + if in == nil { + return nil + } + out := new(BackupStrategyObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BackupStrategyParameters) DeepCopyInto(out *BackupStrategyParameters) { + *out = *in + if in.KeepDays != nil { + in, out := &in.KeepDays, &out.KeepDays + *out = new(float64) + **out = **in + } + if in.StartTime != nil { + in, out := &in.StartTime, &out.StartTime + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupStrategyParameters. +func (in *BackupStrategyParameters) DeepCopy() *BackupStrategyParameters { + if in == nil { + return nil + } + out := new(BackupStrategyParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BackupV3) DeepCopyInto(out *BackupV3) { + *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 BackupV3. +func (in *BackupV3) DeepCopy() *BackupV3 { + if in == nil { + return nil + } + out := new(BackupV3) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *BackupV3) 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 *BackupV3InitParameters) DeepCopyInto(out *BackupV3InitParameters) { + *out = *in + if in.Databases != nil { + in, out := &in.Databases, &out.Databases + *out = make([]DatabasesInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.InstanceID != nil { + in, out := &in.InstanceID, &out.InstanceID + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *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 BackupV3InitParameters. +func (in *BackupV3InitParameters) DeepCopy() *BackupV3InitParameters { + if in == nil { + return nil + } + out := new(BackupV3InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BackupV3List) DeepCopyInto(out *BackupV3List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]BackupV3, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupV3List. +func (in *BackupV3List) DeepCopy() *BackupV3List { + if in == nil { + return nil + } + out := new(BackupV3List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *BackupV3List) 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 *BackupV3Observation) DeepCopyInto(out *BackupV3Observation) { + *out = *in + if in.BackupID != nil { + in, out := &in.BackupID, &out.BackupID + *out = new(string) + **out = **in + } + if in.BeginTime != nil { + in, out := &in.BeginTime, &out.BeginTime + *out = new(string) + **out = **in + } + if in.Databases != nil { + in, out := &in.Databases, &out.Databases + *out = make([]DatabasesObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + 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.InstanceID != nil { + in, out := &in.InstanceID, &out.InstanceID + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *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 BackupV3Observation. +func (in *BackupV3Observation) DeepCopy() *BackupV3Observation { + if in == nil { + return nil + } + out := new(BackupV3Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BackupV3Parameters) DeepCopyInto(out *BackupV3Parameters) { + *out = *in + if in.Databases != nil { + in, out := &in.Databases, &out.Databases + *out = make([]DatabasesParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.InstanceID != nil { + in, out := &in.InstanceID, &out.InstanceID + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *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 BackupV3Parameters. +func (in *BackupV3Parameters) DeepCopy() *BackupV3Parameters { + if in == nil { + return nil + } + out := new(BackupV3Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BackupV3Spec) DeepCopyInto(out *BackupV3Spec) { + *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 BackupV3Spec. +func (in *BackupV3Spec) DeepCopy() *BackupV3Spec { + if in == nil { + return nil + } + out := new(BackupV3Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BackupV3Status) DeepCopyInto(out *BackupV3Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupV3Status. +func (in *BackupV3Status) DeepCopy() *BackupV3Status { + if in == nil { + return nil + } + out := new(BackupV3Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BackupstrategyInitParameters) DeepCopyInto(out *BackupstrategyInitParameters) { + *out = *in + if in.Keepdays != nil { + in, out := &in.Keepdays, &out.Keepdays + *out = new(float64) + **out = **in + } + if in.Starttime != nil { + in, out := &in.Starttime, &out.Starttime + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupstrategyInitParameters. +func (in *BackupstrategyInitParameters) DeepCopy() *BackupstrategyInitParameters { + if in == nil { + return nil + } + out := new(BackupstrategyInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BackupstrategyObservation) DeepCopyInto(out *BackupstrategyObservation) { + *out = *in + if in.Keepdays != nil { + in, out := &in.Keepdays, &out.Keepdays + *out = new(float64) + **out = **in + } + if in.Starttime != nil { + in, out := &in.Starttime, &out.Starttime + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupstrategyObservation. +func (in *BackupstrategyObservation) DeepCopy() *BackupstrategyObservation { + if in == nil { + return nil + } + out := new(BackupstrategyObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BackupstrategyParameters) DeepCopyInto(out *BackupstrategyParameters) { + *out = *in + if in.Keepdays != nil { + in, out := &in.Keepdays, &out.Keepdays + *out = new(float64) + **out = **in + } + if in.Starttime != nil { + in, out := &in.Starttime, &out.Starttime + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BackupstrategyParameters. +func (in *BackupstrategyParameters) DeepCopy() *BackupstrategyParameters { + if in == nil { + return nil + } + out := new(BackupstrategyParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ConfigurationParametersInitParameters) DeepCopyInto(out *ConfigurationParametersInitParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigurationParametersInitParameters. +func (in *ConfigurationParametersInitParameters) DeepCopy() *ConfigurationParametersInitParameters { + if in == nil { + return nil + } + out := new(ConfigurationParametersInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ConfigurationParametersObservation) DeepCopyInto(out *ConfigurationParametersObservation) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Readonly != nil { + in, out := &in.Readonly, &out.Readonly + *out = new(bool) + **out = **in + } + if in.RestartRequired != nil { + in, out := &in.RestartRequired, &out.RestartRequired + *out = new(bool) + **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 + } + if in.ValueRange != nil { + in, out := &in.ValueRange, &out.ValueRange + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigurationParametersObservation. +func (in *ConfigurationParametersObservation) DeepCopy() *ConfigurationParametersObservation { + if in == nil { + return nil + } + out := new(ConfigurationParametersObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ConfigurationParametersParameters) DeepCopyInto(out *ConfigurationParametersParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConfigurationParametersParameters. +func (in *ConfigurationParametersParameters) DeepCopy() *ConfigurationParametersParameters { + if in == nil { + return nil + } + out := new(ConfigurationParametersParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DBInitParameters) DeepCopyInto(out *DBInitParameters) { + *out = *in + if in.Port != nil { + in, out := &in.Port, &out.Port + *out = new(float64) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.Version != nil { + in, out := &in.Version, &out.Version + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DBInitParameters. +func (in *DBInitParameters) DeepCopy() *DBInitParameters { + if in == nil { + return nil + } + out := new(DBInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DBObservation) DeepCopyInto(out *DBObservation) { + *out = *in + if in.Port != nil { + in, out := &in.Port, &out.Port + *out = new(float64) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.UserName != nil { + in, out := &in.UserName, &out.UserName + *out = new(string) + **out = **in + } + if in.Version != nil { + in, out := &in.Version, &out.Version + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DBObservation. +func (in *DBObservation) DeepCopy() *DBObservation { + if in == nil { + return nil + } + out := new(DBObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DBParameters) DeepCopyInto(out *DBParameters) { + *out = *in + out.PasswordSecretRef = in.PasswordSecretRef + if in.Port != nil { + in, out := &in.Port, &out.Port + *out = new(float64) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.Version != nil { + in, out := &in.Version, &out.Version + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DBParameters. +func (in *DBParameters) DeepCopy() *DBParameters { + if in == nil { + return nil + } + out := new(DBParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DatabasesInitParameters) DeepCopyInto(out *DatabasesInitParameters) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatabasesInitParameters. +func (in *DatabasesInitParameters) DeepCopy() *DatabasesInitParameters { + if in == nil { + return nil + } + out := new(DatabasesInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DatabasesObservation) DeepCopyInto(out *DatabasesObservation) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatabasesObservation. +func (in *DatabasesObservation) DeepCopy() *DatabasesObservation { + if in == nil { + return nil + } + out := new(DatabasesObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DatabasesParameters) DeepCopyInto(out *DatabasesParameters) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatabasesParameters. +func (in *DatabasesParameters) DeepCopy() *DatabasesParameters { + if in == nil { + return nil + } + out := new(DatabasesParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DatastoreInitParameters) DeepCopyInto(out *DatastoreInitParameters) { + *out = *in + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.Version != nil { + in, out := &in.Version, &out.Version + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatastoreInitParameters. +func (in *DatastoreInitParameters) DeepCopy() *DatastoreInitParameters { + if in == nil { + return nil + } + out := new(DatastoreInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DatastoreObservation) DeepCopyInto(out *DatastoreObservation) { + *out = *in + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.Version != nil { + in, out := &in.Version, &out.Version + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatastoreObservation. +func (in *DatastoreObservation) DeepCopy() *DatastoreObservation { + if in == nil { + return nil + } + out := new(DatastoreObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DatastoreParameters) DeepCopyInto(out *DatastoreParameters) { + *out = *in + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.Version != nil { + in, out := &in.Version, &out.Version + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DatastoreParameters. +func (in *DatastoreParameters) DeepCopy() *DatastoreParameters { + if in == nil { + return nil + } + out := new(DatastoreParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *HaInitParameters) DeepCopyInto(out *HaInitParameters) { + *out = *in + if in.Enable != nil { + in, out := &in.Enable, &out.Enable + *out = new(bool) + **out = **in + } + if in.Replicationmode != nil { + in, out := &in.Replicationmode, &out.Replicationmode + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HaInitParameters. +func (in *HaInitParameters) DeepCopy() *HaInitParameters { + if in == nil { + return nil + } + out := new(HaInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *HaObservation) DeepCopyInto(out *HaObservation) { + *out = *in + if in.Enable != nil { + in, out := &in.Enable, &out.Enable + *out = new(bool) + **out = **in + } + if in.Replicationmode != nil { + in, out := &in.Replicationmode, &out.Replicationmode + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HaObservation. +func (in *HaObservation) DeepCopy() *HaObservation { + if in == nil { + return nil + } + out := new(HaObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *HaParameters) DeepCopyInto(out *HaParameters) { + *out = *in + if in.Enable != nil { + in, out := &in.Enable, &out.Enable + *out = new(bool) + **out = **in + } + if in.Replicationmode != nil { + in, out := &in.Replicationmode, &out.Replicationmode + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HaParameters. +func (in *HaParameters) DeepCopy() *HaParameters { + if in == nil { + return nil + } + out := new(HaParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV1) DeepCopyInto(out *InstanceV1) { + *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 InstanceV1. +func (in *InstanceV1) DeepCopy() *InstanceV1 { + if in == nil { + return nil + } + out := new(InstanceV1) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *InstanceV1) 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 *InstanceV1InitParameters) DeepCopyInto(out *InstanceV1InitParameters) { + *out = *in + if in.Availabilityzone != nil { + in, out := &in.Availabilityzone, &out.Availabilityzone + *out = new(string) + **out = **in + } + if in.Backupstrategy != nil { + in, out := &in.Backupstrategy, &out.Backupstrategy + *out = make([]BackupstrategyInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Datastore != nil { + in, out := &in.Datastore, &out.Datastore + *out = make([]DatastoreInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Dbport != nil { + in, out := &in.Dbport, &out.Dbport + *out = new(string) + **out = **in + } + if in.Dbrtpd != nil { + in, out := &in.Dbrtpd, &out.Dbrtpd + *out = new(string) + **out = **in + } + if in.Flavorref != nil { + in, out := &in.Flavorref, &out.Flavorref + *out = new(string) + **out = **in + } + if in.Ha != nil { + in, out := &in.Ha, &out.Ha + *out = make([]HaInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Nics != nil { + in, out := &in.Nics, &out.Nics + *out = make([]NicsInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.Securitygroup != nil { + in, out := &in.Securitygroup, &out.Securitygroup + *out = make([]SecuritygroupInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Tag != nil { + in, out := &in.Tag, &out.Tag + *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.VPC != nil { + in, out := &in.VPC, &out.VPC + *out = new(string) + **out = **in + } + if in.Volume != nil { + in, out := &in.Volume, &out.Volume + *out = make([]VolumeInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV1InitParameters. +func (in *InstanceV1InitParameters) DeepCopy() *InstanceV1InitParameters { + if in == nil { + return nil + } + out := new(InstanceV1InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV1List) DeepCopyInto(out *InstanceV1List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]InstanceV1, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV1List. +func (in *InstanceV1List) DeepCopy() *InstanceV1List { + if in == nil { + return nil + } + out := new(InstanceV1List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *InstanceV1List) 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 *InstanceV1Observation) DeepCopyInto(out *InstanceV1Observation) { + *out = *in + if in.Availabilityzone != nil { + in, out := &in.Availabilityzone, &out.Availabilityzone + *out = new(string) + **out = **in + } + if in.Backupstrategy != nil { + in, out := &in.Backupstrategy, &out.Backupstrategy + *out = make([]BackupstrategyObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Created != nil { + in, out := &in.Created, &out.Created + *out = new(string) + **out = **in + } + if in.Datastore != nil { + in, out := &in.Datastore, &out.Datastore + *out = make([]DatastoreObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Dbport != nil { + in, out := &in.Dbport, &out.Dbport + *out = new(string) + **out = **in + } + if in.Dbrtpd != nil { + in, out := &in.Dbrtpd, &out.Dbrtpd + *out = new(string) + **out = **in + } + if in.Flavorref != nil { + in, out := &in.Flavorref, &out.Flavorref + *out = new(string) + **out = **in + } + if in.Ha != nil { + in, out := &in.Ha, &out.Ha + *out = make([]HaObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Hostname != nil { + in, out := &in.Hostname, &out.Hostname + *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.Nics != nil { + in, out := &in.Nics, &out.Nics + *out = make([]NicsObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.Securitygroup != nil { + in, out := &in.Securitygroup, &out.Securitygroup + *out = make([]SecuritygroupObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(string) + **out = **in + } + if in.Tag != nil { + in, out := &in.Tag, &out.Tag + *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.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.Updated != nil { + in, out := &in.Updated, &out.Updated + *out = new(string) + **out = **in + } + if in.VPC != nil { + in, out := &in.VPC, &out.VPC + *out = new(string) + **out = **in + } + if in.Volume != nil { + in, out := &in.Volume, &out.Volume + *out = make([]VolumeObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV1Observation. +func (in *InstanceV1Observation) DeepCopy() *InstanceV1Observation { + if in == nil { + return nil + } + out := new(InstanceV1Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV1Parameters) DeepCopyInto(out *InstanceV1Parameters) { + *out = *in + if in.Availabilityzone != nil { + in, out := &in.Availabilityzone, &out.Availabilityzone + *out = new(string) + **out = **in + } + if in.Backupstrategy != nil { + in, out := &in.Backupstrategy, &out.Backupstrategy + *out = make([]BackupstrategyParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Datastore != nil { + in, out := &in.Datastore, &out.Datastore + *out = make([]DatastoreParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Dbport != nil { + in, out := &in.Dbport, &out.Dbport + *out = new(string) + **out = **in + } + if in.Dbrtpd != nil { + in, out := &in.Dbrtpd, &out.Dbrtpd + *out = new(string) + **out = **in + } + if in.Flavorref != nil { + in, out := &in.Flavorref, &out.Flavorref + *out = new(string) + **out = **in + } + if in.Ha != nil { + in, out := &in.Ha, &out.Ha + *out = make([]HaParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Nics != nil { + in, out := &in.Nics, &out.Nics + *out = make([]NicsParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.Securitygroup != nil { + in, out := &in.Securitygroup, &out.Securitygroup + *out = make([]SecuritygroupParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Tag != nil { + in, out := &in.Tag, &out.Tag + *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.VPC != nil { + in, out := &in.VPC, &out.VPC + *out = new(string) + **out = **in + } + if in.Volume != nil { + in, out := &in.Volume, &out.Volume + *out = make([]VolumeParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV1Parameters. +func (in *InstanceV1Parameters) DeepCopy() *InstanceV1Parameters { + if in == nil { + return nil + } + out := new(InstanceV1Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV1Spec) DeepCopyInto(out *InstanceV1Spec) { + *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 InstanceV1Spec. +func (in *InstanceV1Spec) DeepCopy() *InstanceV1Spec { + if in == nil { + return nil + } + out := new(InstanceV1Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV1Status) DeepCopyInto(out *InstanceV1Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV1Status. +func (in *InstanceV1Status) DeepCopy() *InstanceV1Status { + if in == nil { + return nil + } + out := new(InstanceV1Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV3) DeepCopyInto(out *InstanceV3) { + *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 InstanceV3. +func (in *InstanceV3) DeepCopy() *InstanceV3 { + if in == nil { + return nil + } + out := new(InstanceV3) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *InstanceV3) 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 *InstanceV3InitParameters) DeepCopyInto(out *InstanceV3InitParameters) { + *out = *in + if in.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *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.BackupStrategy != nil { + in, out := &in.BackupStrategy, &out.BackupStrategy + *out = make([]BackupStrategyInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.DB != nil { + in, out := &in.DB, &out.DB + *out = make([]DBInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Flavor != nil { + in, out := &in.Flavor, &out.Flavor + *out = new(string) + **out = **in + } + if in.HaReplicationMode != nil { + in, out := &in.HaReplicationMode, &out.HaReplicationMode + *out = new(string) + **out = **in + } + if in.LowerCaseTableNames != nil { + in, out := &in.LowerCaseTableNames, &out.LowerCaseTableNames + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.ParamGroupID != nil { + in, out := &in.ParamGroupID, &out.ParamGroupID + *out = new(string) + **out = **in + } + if in.Parameters != nil { + in, out := &in.Parameters, &out.Parameters + *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.PublicIps != nil { + in, out := &in.PublicIps, &out.PublicIps + *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.RestoreFromBackup != nil { + in, out := &in.RestoreFromBackup, &out.RestoreFromBackup + *out = make([]RestoreFromBackupInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.RestorePoint != nil { + in, out := &in.RestorePoint, &out.RestorePoint + *out = make([]RestorePointInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.SSLEnable != nil { + in, out := &in.SSLEnable, &out.SSLEnable + *out = new(bool) + **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) + **out = **in + } + if in.Tag != nil { + in, out := &in.Tag, &out.Tag + *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.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.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } + if in.Volume != nil { + in, out := &in.Volume, &out.Volume + *out = make([]InstanceV3VolumeInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV3InitParameters. +func (in *InstanceV3InitParameters) DeepCopy() *InstanceV3InitParameters { + if in == nil { + return nil + } + out := new(InstanceV3InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV3List) DeepCopyInto(out *InstanceV3List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]InstanceV3, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV3List. +func (in *InstanceV3List) DeepCopy() *InstanceV3List { + if in == nil { + return nil + } + out := new(InstanceV3List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *InstanceV3List) 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 *InstanceV3Observation) DeepCopyInto(out *InstanceV3Observation) { + *out = *in + if in.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *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.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.BackupStrategy != nil { + in, out := &in.BackupStrategy, &out.BackupStrategy + *out = make([]BackupStrategyObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Created != nil { + in, out := &in.Created, &out.Created + *out = new(string) + **out = **in + } + if in.DB != nil { + in, out := &in.DB, &out.DB + *out = make([]DBObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Flavor != nil { + in, out := &in.Flavor, &out.Flavor + *out = new(string) + **out = **in + } + if in.HaReplicationMode != nil { + in, out := &in.HaReplicationMode, &out.HaReplicationMode + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.LowerCaseTableNames != nil { + in, out := &in.LowerCaseTableNames, &out.LowerCaseTableNames + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Nodes != nil { + in, out := &in.Nodes, &out.Nodes + *out = make([]NodesObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ParamGroupID != nil { + in, out := &in.ParamGroupID, &out.ParamGroupID + *out = new(string) + **out = **in + } + if in.Parameters != nil { + in, out := &in.Parameters, &out.Parameters + *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.PrivateIps != nil { + in, out := &in.PrivateIps, &out.PrivateIps + *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.PublicIps != nil { + in, out := &in.PublicIps, &out.PublicIps + *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.RestoreFromBackup != nil { + in, out := &in.RestoreFromBackup, &out.RestoreFromBackup + *out = make([]RestoreFromBackupObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.RestorePoint != nil { + in, out := &in.RestorePoint, &out.RestorePoint + *out = make([]RestorePointObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.RestoredBackupID != nil { + in, out := &in.RestoredBackupID, &out.RestoredBackupID + *out = new(string) + **out = **in + } + if in.SSLEnable != nil { + in, out := &in.SSLEnable, &out.SSLEnable + *out = new(bool) + **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) + **out = **in + } + if in.Tag != nil { + in, out := &in.Tag, &out.Tag + *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.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.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } + if in.Volume != nil { + in, out := &in.Volume, &out.Volume + *out = make([]InstanceV3VolumeObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV3Observation. +func (in *InstanceV3Observation) DeepCopy() *InstanceV3Observation { + if in == nil { + return nil + } + out := new(InstanceV3Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV3Parameters) DeepCopyInto(out *InstanceV3Parameters) { + *out = *in + if in.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *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.BackupStrategy != nil { + in, out := &in.BackupStrategy, &out.BackupStrategy + *out = make([]BackupStrategyParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.DB != nil { + in, out := &in.DB, &out.DB + *out = make([]DBParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Flavor != nil { + in, out := &in.Flavor, &out.Flavor + *out = new(string) + **out = **in + } + if in.HaReplicationMode != nil { + in, out := &in.HaReplicationMode, &out.HaReplicationMode + *out = new(string) + **out = **in + } + if in.LowerCaseTableNames != nil { + in, out := &in.LowerCaseTableNames, &out.LowerCaseTableNames + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.ParamGroupID != nil { + in, out := &in.ParamGroupID, &out.ParamGroupID + *out = new(string) + **out = **in + } + if in.Parameters != nil { + in, out := &in.Parameters, &out.Parameters + *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.PublicIps != nil { + in, out := &in.PublicIps, &out.PublicIps + *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.RestoreFromBackup != nil { + in, out := &in.RestoreFromBackup, &out.RestoreFromBackup + *out = make([]RestoreFromBackupParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.RestorePoint != nil { + in, out := &in.RestorePoint, &out.RestorePoint + *out = make([]RestorePointParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.SSLEnable != nil { + in, out := &in.SSLEnable, &out.SSLEnable + *out = new(bool) + **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) + **out = **in + } + if in.Tag != nil { + in, out := &in.Tag, &out.Tag + *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.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.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } + if in.Volume != nil { + in, out := &in.Volume, &out.Volume + *out = make([]InstanceV3VolumeParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV3Parameters. +func (in *InstanceV3Parameters) DeepCopy() *InstanceV3Parameters { + if in == nil { + return nil + } + out := new(InstanceV3Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV3Spec) DeepCopyInto(out *InstanceV3Spec) { + *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 InstanceV3Spec. +func (in *InstanceV3Spec) DeepCopy() *InstanceV3Spec { + if in == nil { + return nil + } + out := new(InstanceV3Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV3Status) DeepCopyInto(out *InstanceV3Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InstanceV3Status. +func (in *InstanceV3Status) DeepCopy() *InstanceV3Status { + if in == nil { + return nil + } + out := new(InstanceV3Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV3VolumeInitParameters) DeepCopyInto(out *InstanceV3VolumeInitParameters) { + *out = *in + if in.DiskEncryptionID != nil { + in, out := &in.DiskEncryptionID, &out.DiskEncryptionID + *out = new(string) + **out = **in + } + if in.LimitSize != nil { + in, out := &in.LimitSize, &out.LimitSize + *out = new(float64) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } + if in.TriggerThreshold != nil { + in, out := &in.TriggerThreshold, &out.TriggerThreshold + *out = new(float64) + **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 InstanceV3VolumeInitParameters. +func (in *InstanceV3VolumeInitParameters) DeepCopy() *InstanceV3VolumeInitParameters { + if in == nil { + return nil + } + out := new(InstanceV3VolumeInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV3VolumeObservation) DeepCopyInto(out *InstanceV3VolumeObservation) { + *out = *in + if in.DiskEncryptionID != nil { + in, out := &in.DiskEncryptionID, &out.DiskEncryptionID + *out = new(string) + **out = **in + } + if in.LimitSize != nil { + in, out := &in.LimitSize, &out.LimitSize + *out = new(float64) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } + if in.TriggerThreshold != nil { + in, out := &in.TriggerThreshold, &out.TriggerThreshold + *out = new(float64) + **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 InstanceV3VolumeObservation. +func (in *InstanceV3VolumeObservation) DeepCopy() *InstanceV3VolumeObservation { + if in == nil { + return nil + } + out := new(InstanceV3VolumeObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InstanceV3VolumeParameters) DeepCopyInto(out *InstanceV3VolumeParameters) { + *out = *in + if in.DiskEncryptionID != nil { + in, out := &in.DiskEncryptionID, &out.DiskEncryptionID + *out = new(string) + **out = **in + } + if in.LimitSize != nil { + in, out := &in.LimitSize, &out.LimitSize + *out = new(float64) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } + if in.TriggerThreshold != nil { + in, out := &in.TriggerThreshold, &out.TriggerThreshold + *out = new(float64) + **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 InstanceV3VolumeParameters. +func (in *InstanceV3VolumeParameters) DeepCopy() *InstanceV3VolumeParameters { + if in == nil { + return nil + } + out := new(InstanceV3VolumeParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NicsInitParameters) DeepCopyInto(out *NicsInitParameters) { + *out = *in + if in.Subnetid != nil { + in, out := &in.Subnetid, &out.Subnetid + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NicsInitParameters. +func (in *NicsInitParameters) DeepCopy() *NicsInitParameters { + if in == nil { + return nil + } + out := new(NicsInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NicsObservation) DeepCopyInto(out *NicsObservation) { + *out = *in + if in.Subnetid != nil { + in, out := &in.Subnetid, &out.Subnetid + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NicsObservation. +func (in *NicsObservation) DeepCopy() *NicsObservation { + if in == nil { + return nil + } + out := new(NicsObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NicsParameters) DeepCopyInto(out *NicsParameters) { + *out = *in + if in.Subnetid != nil { + in, out := &in.Subnetid, &out.Subnetid + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NicsParameters. +func (in *NicsParameters) DeepCopy() *NicsParameters { + if in == nil { + return nil + } + out := new(NicsParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodesInitParameters) DeepCopyInto(out *NodesInitParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodesInitParameters. +func (in *NodesInitParameters) DeepCopy() *NodesInitParameters { + if in == nil { + return nil + } + out := new(NodesInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodesObservation) DeepCopyInto(out *NodesObservation) { + *out = *in + if in.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *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.Role != nil { + in, out := &in.Role, &out.Role + *out = new(string) + **out = **in + } + 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 NodesObservation. +func (in *NodesObservation) DeepCopy() *NodesObservation { + if in == nil { + return nil + } + out := new(NodesObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodesParameters) DeepCopyInto(out *NodesParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodesParameters. +func (in *NodesParameters) DeepCopy() *NodesParameters { + if in == nil { + return nil + } + out := new(NodesParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ParametergroupV3) DeepCopyInto(out *ParametergroupV3) { + *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 ParametergroupV3. +func (in *ParametergroupV3) DeepCopy() *ParametergroupV3 { + if in == nil { + return nil + } + out := new(ParametergroupV3) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ParametergroupV3) 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 *ParametergroupV3DatastoreInitParameters) DeepCopyInto(out *ParametergroupV3DatastoreInitParameters) { + *out = *in + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.Version != nil { + in, out := &in.Version, &out.Version + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParametergroupV3DatastoreInitParameters. +func (in *ParametergroupV3DatastoreInitParameters) DeepCopy() *ParametergroupV3DatastoreInitParameters { + if in == nil { + return nil + } + out := new(ParametergroupV3DatastoreInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ParametergroupV3DatastoreObservation) DeepCopyInto(out *ParametergroupV3DatastoreObservation) { + *out = *in + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.Version != nil { + in, out := &in.Version, &out.Version + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParametergroupV3DatastoreObservation. +func (in *ParametergroupV3DatastoreObservation) DeepCopy() *ParametergroupV3DatastoreObservation { + if in == nil { + return nil + } + out := new(ParametergroupV3DatastoreObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ParametergroupV3DatastoreParameters) DeepCopyInto(out *ParametergroupV3DatastoreParameters) { + *out = *in + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.Version != nil { + in, out := &in.Version, &out.Version + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParametergroupV3DatastoreParameters. +func (in *ParametergroupV3DatastoreParameters) DeepCopy() *ParametergroupV3DatastoreParameters { + if in == nil { + return nil + } + out := new(ParametergroupV3DatastoreParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ParametergroupV3InitParameters) DeepCopyInto(out *ParametergroupV3InitParameters) { + *out = *in + if in.Datastore != nil { + in, out := &in.Datastore, &out.Datastore + *out = make([]ParametergroupV3DatastoreInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Values != nil { + in, out := &in.Values, &out.Values + *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 ParametergroupV3InitParameters. +func (in *ParametergroupV3InitParameters) DeepCopy() *ParametergroupV3InitParameters { + if in == nil { + return nil + } + out := new(ParametergroupV3InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ParametergroupV3List) DeepCopyInto(out *ParametergroupV3List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ParametergroupV3, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParametergroupV3List. +func (in *ParametergroupV3List) DeepCopy() *ParametergroupV3List { + if in == nil { + return nil + } + out := new(ParametergroupV3List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ParametergroupV3List) 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 *ParametergroupV3Observation) DeepCopyInto(out *ParametergroupV3Observation) { + *out = *in + if in.ConfigurationParameters != nil { + in, out := &in.ConfigurationParameters, &out.ConfigurationParameters + *out = make([]ConfigurationParametersObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Created != nil { + in, out := &in.Created, &out.Created + *out = new(string) + **out = **in + } + if in.Datastore != nil { + in, out := &in.Datastore, &out.Datastore + *out = make([]ParametergroupV3DatastoreObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + 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.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Updated != nil { + in, out := &in.Updated, &out.Updated + *out = new(string) + **out = **in + } + if in.Values != nil { + in, out := &in.Values, &out.Values + *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 ParametergroupV3Observation. +func (in *ParametergroupV3Observation) DeepCopy() *ParametergroupV3Observation { + if in == nil { + return nil + } + out := new(ParametergroupV3Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ParametergroupV3Parameters) DeepCopyInto(out *ParametergroupV3Parameters) { + *out = *in + if in.Datastore != nil { + in, out := &in.Datastore, &out.Datastore + *out = make([]ParametergroupV3DatastoreParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Values != nil { + in, out := &in.Values, &out.Values + *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 ParametergroupV3Parameters. +func (in *ParametergroupV3Parameters) DeepCopy() *ParametergroupV3Parameters { + if in == nil { + return nil + } + out := new(ParametergroupV3Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ParametergroupV3Spec) DeepCopyInto(out *ParametergroupV3Spec) { + *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 ParametergroupV3Spec. +func (in *ParametergroupV3Spec) DeepCopy() *ParametergroupV3Spec { + if in == nil { + return nil + } + out := new(ParametergroupV3Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ParametergroupV3Status) DeepCopyInto(out *ParametergroupV3Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParametergroupV3Status. +func (in *ParametergroupV3Status) DeepCopy() *ParametergroupV3Status { + if in == nil { + return nil + } + out := new(ParametergroupV3Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ReadReplicaV3) DeepCopyInto(out *ReadReplicaV3) { + *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 ReadReplicaV3. +func (in *ReadReplicaV3) DeepCopy() *ReadReplicaV3 { + if in == nil { + return nil + } + out := new(ReadReplicaV3) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ReadReplicaV3) 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 *ReadReplicaV3DBInitParameters) DeepCopyInto(out *ReadReplicaV3DBInitParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReadReplicaV3DBInitParameters. +func (in *ReadReplicaV3DBInitParameters) DeepCopy() *ReadReplicaV3DBInitParameters { + if in == nil { + return nil + } + out := new(ReadReplicaV3DBInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ReadReplicaV3DBObservation) DeepCopyInto(out *ReadReplicaV3DBObservation) { + *out = *in + if in.Port != nil { + in, out := &in.Port, &out.Port + *out = new(float64) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.UserName != nil { + in, out := &in.UserName, &out.UserName + *out = new(string) + **out = **in + } + if in.Version != nil { + in, out := &in.Version, &out.Version + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReadReplicaV3DBObservation. +func (in *ReadReplicaV3DBObservation) DeepCopy() *ReadReplicaV3DBObservation { + if in == nil { + return nil + } + out := new(ReadReplicaV3DBObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ReadReplicaV3DBParameters) DeepCopyInto(out *ReadReplicaV3DBParameters) { + *out = *in +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReadReplicaV3DBParameters. +func (in *ReadReplicaV3DBParameters) DeepCopy() *ReadReplicaV3DBParameters { + if in == nil { + return nil + } + out := new(ReadReplicaV3DBParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ReadReplicaV3InitParameters) DeepCopyInto(out *ReadReplicaV3InitParameters) { + *out = *in + if in.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *out = new(string) + **out = **in + } + if in.FlavorRef != nil { + in, out := &in.FlavorRef, &out.FlavorRef + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PublicIps != nil { + in, out := &in.PublicIps, &out.PublicIps + *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.ReplicaOfID != nil { + in, out := &in.ReplicaOfID, &out.ReplicaOfID + *out = new(string) + **out = **in + } + if in.Volume != nil { + in, out := &in.Volume, &out.Volume + *out = make([]ReadReplicaV3VolumeInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReadReplicaV3InitParameters. +func (in *ReadReplicaV3InitParameters) DeepCopy() *ReadReplicaV3InitParameters { + if in == nil { + return nil + } + out := new(ReadReplicaV3InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ReadReplicaV3List) DeepCopyInto(out *ReadReplicaV3List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ReadReplicaV3, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReadReplicaV3List. +func (in *ReadReplicaV3List) DeepCopy() *ReadReplicaV3List { + if in == nil { + return nil + } + out := new(ReadReplicaV3List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ReadReplicaV3List) 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 *ReadReplicaV3Observation) DeepCopyInto(out *ReadReplicaV3Observation) { + *out = *in + if in.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *out = new(string) + **out = **in + } + if in.DB != nil { + in, out := &in.DB, &out.DB + *out = make([]ReadReplicaV3DBObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.FlavorRef != nil { + in, out := &in.FlavorRef, &out.FlavorRef + *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.PrivateIps != nil { + in, out := &in.PrivateIps, &out.PrivateIps + *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.PublicIps != nil { + in, out := &in.PublicIps, &out.PublicIps + *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.ReplicaOfID != nil { + in, out := &in.ReplicaOfID, &out.ReplicaOfID + *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) + **out = **in + } + if in.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } + if in.Volume != nil { + in, out := &in.Volume, &out.Volume + *out = make([]ReadReplicaV3VolumeObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReadReplicaV3Observation. +func (in *ReadReplicaV3Observation) DeepCopy() *ReadReplicaV3Observation { + if in == nil { + return nil + } + out := new(ReadReplicaV3Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ReadReplicaV3Parameters) DeepCopyInto(out *ReadReplicaV3Parameters) { + *out = *in + if in.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *out = new(string) + **out = **in + } + if in.FlavorRef != nil { + in, out := &in.FlavorRef, &out.FlavorRef + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PublicIps != nil { + in, out := &in.PublicIps, &out.PublicIps + *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.ReplicaOfID != nil { + in, out := &in.ReplicaOfID, &out.ReplicaOfID + *out = new(string) + **out = **in + } + if in.Volume != nil { + in, out := &in.Volume, &out.Volume + *out = make([]ReadReplicaV3VolumeParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReadReplicaV3Parameters. +func (in *ReadReplicaV3Parameters) DeepCopy() *ReadReplicaV3Parameters { + if in == nil { + return nil + } + out := new(ReadReplicaV3Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ReadReplicaV3Spec) DeepCopyInto(out *ReadReplicaV3Spec) { + *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 ReadReplicaV3Spec. +func (in *ReadReplicaV3Spec) DeepCopy() *ReadReplicaV3Spec { + if in == nil { + return nil + } + out := new(ReadReplicaV3Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ReadReplicaV3Status) DeepCopyInto(out *ReadReplicaV3Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ReadReplicaV3Status. +func (in *ReadReplicaV3Status) DeepCopy() *ReadReplicaV3Status { + if in == nil { + return nil + } + out := new(ReadReplicaV3Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ReadReplicaV3VolumeInitParameters) DeepCopyInto(out *ReadReplicaV3VolumeInitParameters) { + *out = *in + if in.DiskEncryptionID != nil { + in, out := &in.DiskEncryptionID, &out.DiskEncryptionID + *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 ReadReplicaV3VolumeInitParameters. +func (in *ReadReplicaV3VolumeInitParameters) DeepCopy() *ReadReplicaV3VolumeInitParameters { + if in == nil { + return nil + } + out := new(ReadReplicaV3VolumeInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ReadReplicaV3VolumeObservation) DeepCopyInto(out *ReadReplicaV3VolumeObservation) { + *out = *in + if in.DiskEncryptionID != nil { + in, out := &in.DiskEncryptionID, &out.DiskEncryptionID + *out = new(string) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **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 ReadReplicaV3VolumeObservation. +func (in *ReadReplicaV3VolumeObservation) DeepCopy() *ReadReplicaV3VolumeObservation { + if in == nil { + return nil + } + out := new(ReadReplicaV3VolumeObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ReadReplicaV3VolumeParameters) DeepCopyInto(out *ReadReplicaV3VolumeParameters) { + *out = *in + if in.DiskEncryptionID != nil { + in, out := &in.DiskEncryptionID, &out.DiskEncryptionID + *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 ReadReplicaV3VolumeParameters. +func (in *ReadReplicaV3VolumeParameters) DeepCopy() *ReadReplicaV3VolumeParameters { + if in == nil { + return nil + } + out := new(ReadReplicaV3VolumeParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RestoreFromBackupInitParameters) DeepCopyInto(out *RestoreFromBackupInitParameters) { + *out = *in + if in.BackupID != nil { + in, out := &in.BackupID, &out.BackupID + *out = new(string) + **out = **in + } + if in.RestoreTime != nil { + in, out := &in.RestoreTime, &out.RestoreTime + *out = new(float64) + **out = **in + } + if in.SourceInstanceID != nil { + in, out := &in.SourceInstanceID, &out.SourceInstanceID + *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 RestoreFromBackupInitParameters. +func (in *RestoreFromBackupInitParameters) DeepCopy() *RestoreFromBackupInitParameters { + if in == nil { + return nil + } + out := new(RestoreFromBackupInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RestoreFromBackupObservation) DeepCopyInto(out *RestoreFromBackupObservation) { + *out = *in + if in.BackupID != nil { + in, out := &in.BackupID, &out.BackupID + *out = new(string) + **out = **in + } + if in.RestoreTime != nil { + in, out := &in.RestoreTime, &out.RestoreTime + *out = new(float64) + **out = **in + } + if in.SourceInstanceID != nil { + in, out := &in.SourceInstanceID, &out.SourceInstanceID + *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 RestoreFromBackupObservation. +func (in *RestoreFromBackupObservation) DeepCopy() *RestoreFromBackupObservation { + if in == nil { + return nil + } + out := new(RestoreFromBackupObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RestoreFromBackupParameters) DeepCopyInto(out *RestoreFromBackupParameters) { + *out = *in + if in.BackupID != nil { + in, out := &in.BackupID, &out.BackupID + *out = new(string) + **out = **in + } + if in.RestoreTime != nil { + in, out := &in.RestoreTime, &out.RestoreTime + *out = new(float64) + **out = **in + } + if in.SourceInstanceID != nil { + in, out := &in.SourceInstanceID, &out.SourceInstanceID + *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 RestoreFromBackupParameters. +func (in *RestoreFromBackupParameters) DeepCopy() *RestoreFromBackupParameters { + if in == nil { + return nil + } + out := new(RestoreFromBackupParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RestorePointInitParameters) DeepCopyInto(out *RestorePointInitParameters) { + *out = *in + if in.BackupID != nil { + in, out := &in.BackupID, &out.BackupID + *out = new(string) + **out = **in + } + if in.InstanceID != nil { + in, out := &in.InstanceID, &out.InstanceID + *out = new(string) + **out = **in + } + if in.RestoreTime != nil { + in, out := &in.RestoreTime, &out.RestoreTime + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RestorePointInitParameters. +func (in *RestorePointInitParameters) DeepCopy() *RestorePointInitParameters { + if in == nil { + return nil + } + out := new(RestorePointInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RestorePointObservation) DeepCopyInto(out *RestorePointObservation) { + *out = *in + if in.BackupID != nil { + in, out := &in.BackupID, &out.BackupID + *out = new(string) + **out = **in + } + if in.InstanceID != nil { + in, out := &in.InstanceID, &out.InstanceID + *out = new(string) + **out = **in + } + if in.RestoreTime != nil { + in, out := &in.RestoreTime, &out.RestoreTime + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RestorePointObservation. +func (in *RestorePointObservation) DeepCopy() *RestorePointObservation { + if in == nil { + return nil + } + out := new(RestorePointObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RestorePointParameters) DeepCopyInto(out *RestorePointParameters) { + *out = *in + if in.BackupID != nil { + in, out := &in.BackupID, &out.BackupID + *out = new(string) + **out = **in + } + if in.InstanceID != nil { + in, out := &in.InstanceID, &out.InstanceID + *out = new(string) + **out = **in + } + if in.RestoreTime != nil { + in, out := &in.RestoreTime, &out.RestoreTime + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RestorePointParameters. +func (in *RestorePointParameters) DeepCopy() *RestorePointParameters { + if in == nil { + return nil + } + out := new(RestorePointParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SecuritygroupInitParameters) DeepCopyInto(out *SecuritygroupInitParameters) { + *out = *in + 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 SecuritygroupInitParameters. +func (in *SecuritygroupInitParameters) DeepCopy() *SecuritygroupInitParameters { + if in == nil { + return nil + } + out := new(SecuritygroupInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SecuritygroupObservation) DeepCopyInto(out *SecuritygroupObservation) { + *out = *in + 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 SecuritygroupObservation. +func (in *SecuritygroupObservation) DeepCopy() *SecuritygroupObservation { + if in == nil { + return nil + } + out := new(SecuritygroupObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SecuritygroupParameters) DeepCopyInto(out *SecuritygroupParameters) { + *out = *in + 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 SecuritygroupParameters. +func (in *SecuritygroupParameters) DeepCopy() *SecuritygroupParameters { + if in == nil { + return nil + } + out := new(SecuritygroupParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VolumeInitParameters) DeepCopyInto(out *VolumeInitParameters) { + *out = *in + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **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 VolumeInitParameters. +func (in *VolumeInitParameters) DeepCopy() *VolumeInitParameters { + if in == nil { + return nil + } + out := new(VolumeInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VolumeObservation) DeepCopyInto(out *VolumeObservation) { + *out = *in + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **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 VolumeObservation. +func (in *VolumeObservation) DeepCopy() *VolumeObservation { + if in == nil { + return nil + } + out := new(VolumeObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VolumeParameters) DeepCopyInto(out *VolumeParameters) { + *out = *in + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **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 VolumeParameters. +func (in *VolumeParameters) DeepCopy() *VolumeParameters { + if in == nil { + return nil + } + out := new(VolumeParameters) + in.DeepCopyInto(out) + return out +} diff --git a/apis/rds/v1alpha1/zz_generated.managed.go b/apis/rds/v1alpha1/zz_generated.managed.go new file mode 100644 index 0000000..000f28c --- /dev/null +++ b/apis/rds/v1alpha1/zz_generated.managed.go @@ -0,0 +1,308 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import xpv1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + +// GetCondition of this BackupV3. +func (mg *BackupV3) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this BackupV3. +func (mg *BackupV3) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this BackupV3. +func (mg *BackupV3) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this BackupV3. +func (mg *BackupV3) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this BackupV3. +func (mg *BackupV3) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this BackupV3. +func (mg *BackupV3) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this BackupV3. +func (mg *BackupV3) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this BackupV3. +func (mg *BackupV3) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this BackupV3. +func (mg *BackupV3) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this BackupV3. +func (mg *BackupV3) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this BackupV3. +func (mg *BackupV3) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this BackupV3. +func (mg *BackupV3) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this InstanceV1. +func (mg *InstanceV1) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this InstanceV1. +func (mg *InstanceV1) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this InstanceV1. +func (mg *InstanceV1) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this InstanceV1. +func (mg *InstanceV1) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this InstanceV1. +func (mg *InstanceV1) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this InstanceV1. +func (mg *InstanceV1) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this InstanceV1. +func (mg *InstanceV1) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this InstanceV1. +func (mg *InstanceV1) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this InstanceV1. +func (mg *InstanceV1) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this InstanceV1. +func (mg *InstanceV1) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this InstanceV1. +func (mg *InstanceV1) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this InstanceV1. +func (mg *InstanceV1) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this InstanceV3. +func (mg *InstanceV3) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this InstanceV3. +func (mg *InstanceV3) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this InstanceV3. +func (mg *InstanceV3) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this InstanceV3. +func (mg *InstanceV3) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this InstanceV3. +func (mg *InstanceV3) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this InstanceV3. +func (mg *InstanceV3) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this InstanceV3. +func (mg *InstanceV3) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this InstanceV3. +func (mg *InstanceV3) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this InstanceV3. +func (mg *InstanceV3) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this InstanceV3. +func (mg *InstanceV3) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this InstanceV3. +func (mg *InstanceV3) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this InstanceV3. +func (mg *InstanceV3) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this ParametergroupV3. +func (mg *ParametergroupV3) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this ParametergroupV3. +func (mg *ParametergroupV3) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this ParametergroupV3. +func (mg *ParametergroupV3) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this ParametergroupV3. +func (mg *ParametergroupV3) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this ParametergroupV3. +func (mg *ParametergroupV3) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this ParametergroupV3. +func (mg *ParametergroupV3) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this ParametergroupV3. +func (mg *ParametergroupV3) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this ParametergroupV3. +func (mg *ParametergroupV3) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this ParametergroupV3. +func (mg *ParametergroupV3) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this ParametergroupV3. +func (mg *ParametergroupV3) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this ParametergroupV3. +func (mg *ParametergroupV3) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this ParametergroupV3. +func (mg *ParametergroupV3) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this ReadReplicaV3. +func (mg *ReadReplicaV3) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this ReadReplicaV3. +func (mg *ReadReplicaV3) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this ReadReplicaV3. +func (mg *ReadReplicaV3) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this ReadReplicaV3. +func (mg *ReadReplicaV3) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this ReadReplicaV3. +func (mg *ReadReplicaV3) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this ReadReplicaV3. +func (mg *ReadReplicaV3) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this ReadReplicaV3. +func (mg *ReadReplicaV3) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this ReadReplicaV3. +func (mg *ReadReplicaV3) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this ReadReplicaV3. +func (mg *ReadReplicaV3) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this ReadReplicaV3. +func (mg *ReadReplicaV3) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this ReadReplicaV3. +func (mg *ReadReplicaV3) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this ReadReplicaV3. +func (mg *ReadReplicaV3) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} diff --git a/apis/rds/v1alpha1/zz_generated.managedlist.go b/apis/rds/v1alpha1/zz_generated.managedlist.go new file mode 100644 index 0000000..b8b1093 --- /dev/null +++ b/apis/rds/v1alpha1/zz_generated.managedlist.go @@ -0,0 +1,53 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import resource "github.com/crossplane/crossplane-runtime/pkg/resource" + +// GetItems of this BackupV3List. +func (l *BackupV3List) 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 InstanceV1List. +func (l *InstanceV1List) 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 InstanceV3List. +func (l *InstanceV3List) 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 ParametergroupV3List. +func (l *ParametergroupV3List) 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 ReadReplicaV3List. +func (l *ReadReplicaV3List) 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/rds/v1alpha1/zz_generated_terraformed.go b/apis/rds/v1alpha1/zz_generated_terraformed.go new file mode 100755 index 0000000..40f508d --- /dev/null +++ b/apis/rds/v1alpha1/zz_generated_terraformed.go @@ -0,0 +1,438 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "github.com/pkg/errors" + + "github.com/crossplane/upjet/pkg/resource" + "github.com/crossplane/upjet/pkg/resource/json" +) + +// GetTerraformResourceType returns Terraform resource type for this BackupV3 +func (mg *BackupV3) GetTerraformResourceType() string { + return "opentelekomcloud_rds_backup_v3" +} + +// GetConnectionDetailsMapping for this BackupV3 +func (tr *BackupV3) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this BackupV3 +func (tr *BackupV3) 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 BackupV3 +func (tr *BackupV3) 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 BackupV3 +func (tr *BackupV3) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this BackupV3 +func (tr *BackupV3) 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 BackupV3 +func (tr *BackupV3) 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 BackupV3 +func (tr *BackupV3) 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) +} + +// LateInitialize this BackupV3 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *BackupV3) LateInitialize(attrs []byte) (bool, error) { + params := &BackupV3Parameters{} + 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 *BackupV3) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this InstanceV1 +func (mg *InstanceV1) GetTerraformResourceType() string { + return "opentelekomcloud_rds_instance_v1" +} + +// GetConnectionDetailsMapping for this InstanceV1 +func (tr *InstanceV1) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this InstanceV1 +func (tr *InstanceV1) 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 InstanceV1 +func (tr *InstanceV1) 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 InstanceV1 +func (tr *InstanceV1) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this InstanceV1 +func (tr *InstanceV1) 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 InstanceV1 +func (tr *InstanceV1) 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 InstanceV1 +func (tr *InstanceV1) 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) +} + +// LateInitialize this InstanceV1 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *InstanceV1) LateInitialize(attrs []byte) (bool, error) { + params := &InstanceV1Parameters{} + 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 *InstanceV1) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this InstanceV3 +func (mg *InstanceV3) GetTerraformResourceType() string { + return "opentelekomcloud_rds_instance_v3" +} + +// GetConnectionDetailsMapping for this InstanceV3 +func (tr *InstanceV3) GetConnectionDetailsMapping() map[string]string { + return map[string]string{"db[*].password": "spec.forProvider.db[*].passwordSecretRef"} +} + +// GetObservation of this InstanceV3 +func (tr *InstanceV3) 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 InstanceV3 +func (tr *InstanceV3) 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 InstanceV3 +func (tr *InstanceV3) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this InstanceV3 +func (tr *InstanceV3) 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 InstanceV3 +func (tr *InstanceV3) 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 InstanceV3 +func (tr *InstanceV3) 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) +} + +// LateInitialize this InstanceV3 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *InstanceV3) LateInitialize(attrs []byte) (bool, error) { + params := &InstanceV3Parameters{} + 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 *InstanceV3) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this ParametergroupV3 +func (mg *ParametergroupV3) GetTerraformResourceType() string { + return "opentelekomcloud_rds_parametergroup_v3" +} + +// GetConnectionDetailsMapping for this ParametergroupV3 +func (tr *ParametergroupV3) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this ParametergroupV3 +func (tr *ParametergroupV3) 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 ParametergroupV3 +func (tr *ParametergroupV3) 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 ParametergroupV3 +func (tr *ParametergroupV3) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this ParametergroupV3 +func (tr *ParametergroupV3) 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 ParametergroupV3 +func (tr *ParametergroupV3) 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 ParametergroupV3 +func (tr *ParametergroupV3) 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) +} + +// LateInitialize this ParametergroupV3 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *ParametergroupV3) LateInitialize(attrs []byte) (bool, error) { + params := &ParametergroupV3Parameters{} + 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 *ParametergroupV3) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this ReadReplicaV3 +func (mg *ReadReplicaV3) GetTerraformResourceType() string { + return "opentelekomcloud_rds_read_replica_v3" +} + +// GetConnectionDetailsMapping for this ReadReplicaV3 +func (tr *ReadReplicaV3) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this ReadReplicaV3 +func (tr *ReadReplicaV3) 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 ReadReplicaV3 +func (tr *ReadReplicaV3) 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 ReadReplicaV3 +func (tr *ReadReplicaV3) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this ReadReplicaV3 +func (tr *ReadReplicaV3) 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 ReadReplicaV3 +func (tr *ReadReplicaV3) 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 ReadReplicaV3 +func (tr *ReadReplicaV3) 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) +} + +// LateInitialize this ReadReplicaV3 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *ReadReplicaV3) LateInitialize(attrs []byte) (bool, error) { + params := &ReadReplicaV3Parameters{} + 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 *ReadReplicaV3) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/rds/v1alpha1/zz_groupversion_info.go b/apis/rds/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..813d051 --- /dev/null +++ b/apis/rds/v1alpha1/zz_groupversion_info.go @@ -0,0 +1,36 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +// +kubebuilder:object:generate=true +// +groupName=rds.crossplane.io +// +versionName=v1alpha1 +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +// Package type metadata. +const ( + CRDGroup = "rds.crossplane.io" + CRDVersion = "v1alpha1" +) + +var ( + // CRDGroupVersion is the API Group Version used to register the objects + CRDGroupVersion = schema.GroupVersion{Group: CRDGroup, Version: CRDVersion} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme + SchemeBuilder = &scheme.Builder{GroupVersion: CRDGroupVersion} + + // AddToScheme adds the types in this group-version to the given scheme. + AddToScheme = SchemeBuilder.AddToScheme +) diff --git a/apis/rds/v1alpha1/zz_instancev1_types.go b/apis/rds/v1alpha1/zz_instancev1_types.go new file mode 100755 index 0000000..ffc9644 --- /dev/null +++ b/apis/rds/v1alpha1/zz_instancev1_types.go @@ -0,0 +1,483 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 BackupstrategyInitParameters struct { + + // Specifies the number of days to retain the generated backup files. + // Its value range is 0 to 35. If this parameter is not specified or set to 0, the + // automated backup policy is disabled. + Keepdays *float64 `json:"keepdays,omitempty" tf:"keepdays,omitempty"` + + // Indicates the backup start time that has been set. + // The backup task will be triggered within one hour after the backup start time. + // Valid value: The value cannot be empty. It must use the hh:mm:ss format and + // must be valid. The current time is the UTC time. + Starttime *string `json:"starttime,omitempty" tf:"starttime,omitempty"` +} + +type BackupstrategyObservation struct { + + // Specifies the number of days to retain the generated backup files. + // Its value range is 0 to 35. If this parameter is not specified or set to 0, the + // automated backup policy is disabled. + Keepdays *float64 `json:"keepdays,omitempty" tf:"keepdays,omitempty"` + + // Indicates the backup start time that has been set. + // The backup task will be triggered within one hour after the backup start time. + // Valid value: The value cannot be empty. It must use the hh:mm:ss format and + // must be valid. The current time is the UTC time. + Starttime *string `json:"starttime,omitempty" tf:"starttime,omitempty"` +} + +type BackupstrategyParameters struct { + + // Specifies the number of days to retain the generated backup files. + // Its value range is 0 to 35. If this parameter is not specified or set to 0, the + // automated backup policy is disabled. + // +kubebuilder:validation:Optional + Keepdays *float64 `json:"keepdays,omitempty" tf:"keepdays,omitempty"` + + // Indicates the backup start time that has been set. + // The backup task will be triggered within one hour after the backup start time. + // Valid value: The value cannot be empty. It must use the hh:mm:ss format and + // must be valid. The current time is the UTC time. + // +kubebuilder:validation:Optional + Starttime *string `json:"starttime,omitempty" tf:"starttime,omitempty"` +} + +type DatastoreInitParameters struct { + + // Specifies the DB engine. Currently, MySQL, PostgreSQL, and + // Microsoft SQL Server are supported. The value is MySQL, PostgreSQL, or SQLServer. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Specifies the DB instance version. + Version *string `json:"version,omitempty" tf:"version,omitempty"` +} + +type DatastoreObservation struct { + + // Specifies the DB engine. Currently, MySQL, PostgreSQL, and + // Microsoft SQL Server are supported. The value is MySQL, PostgreSQL, or SQLServer. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Specifies the DB instance version. + Version *string `json:"version,omitempty" tf:"version,omitempty"` +} + +type DatastoreParameters struct { + + // Specifies the DB engine. Currently, MySQL, PostgreSQL, and + // Microsoft SQL Server are supported. The value is MySQL, PostgreSQL, or SQLServer. + // +kubebuilder:validation:Optional + Type *string `json:"type" tf:"type,omitempty"` + + // Specifies the DB instance version. + // +kubebuilder:validation:Optional + Version *string `json:"version" tf:"version,omitempty"` +} + +type HaInitParameters struct { + + // Specifies the configured parameters on the HA. + // Valid value: The value is true or false. The value true indicates creating + // HA DB instances. The value false indicates creating a single DB instance. + Enable *bool `json:"enable,omitempty" tf:"enable,omitempty"` + + // Specifies the replication mode for the standby DB instance. + // The value cannot be empty. + // For MySQL, the value is async or semisync. + // For PostgreSQL, the value is async or sync. + Replicationmode *string `json:"replicationmode,omitempty" tf:"replicationmode,omitempty"` +} + +type HaObservation struct { + + // Specifies the configured parameters on the HA. + // Valid value: The value is true or false. The value true indicates creating + // HA DB instances. The value false indicates creating a single DB instance. + Enable *bool `json:"enable,omitempty" tf:"enable,omitempty"` + + // Specifies the replication mode for the standby DB instance. + // The value cannot be empty. + // For MySQL, the value is async or semisync. + // For PostgreSQL, the value is async or sync. + Replicationmode *string `json:"replicationmode,omitempty" tf:"replicationmode,omitempty"` +} + +type HaParameters struct { + + // Specifies the configured parameters on the HA. + // Valid value: The value is true or false. The value true indicates creating + // HA DB instances. The value false indicates creating a single DB instance. + // +kubebuilder:validation:Optional + Enable *bool `json:"enable,omitempty" tf:"enable,omitempty"` + + // Specifies the replication mode for the standby DB instance. + // The value cannot be empty. + // For MySQL, the value is async or semisync. + // For PostgreSQL, the value is async or sync. + // +kubebuilder:validation:Optional + Replicationmode *string `json:"replicationmode,omitempty" tf:"replicationmode,omitempty"` +} + +type InstanceV1InitParameters struct { + + // Specifies the ID of the AZ. + Availabilityzone *string `json:"availabilityzone,omitempty" tf:"availabilityzone,omitempty"` + + // Specifies the advanced backup policy. The structure + // is described below. + Backupstrategy []BackupstrategyInitParameters `json:"backupstrategy,omitempty" tf:"backupstrategy,omitempty"` + + // Specifies database information. The structure is + // described below. + Datastore []DatastoreInitParameters `json:"datastore,omitempty" tf:"datastore,omitempty"` + + // Specifies the database port number. + Dbport *string `json:"dbport,omitempty" tf:"dbport,omitempty"` + + // Specifies the password for user root of the database. + Dbrtpd *string `json:"dbrtpd,omitempty" tf:"dbrtpd,omitempty"` + + // Specifies the specification ID (flavors.id in the + // response message in Obtaining All DB Instance Specifications). If you want + // to enable ha for the rds instance, a flavor with ha speccode is required. + Flavorref *string `json:"flavorref,omitempty" tf:"flavorref,omitempty"` + + // Specifies the parameters configured on HA and is used when + // creating HA DB instances. The structure is described below. NOTICE: + // RDS for Microsoft SQL Server does not support creating HA DB instances and + // this parameter is not involved. + Ha []HaInitParameters `json:"ha,omitempty" tf:"ha,omitempty"` + + // Specifies the DB instance name. The DB instance name of + // the same type is unique in the same tenant. The changes of the instance name + // will be suppressed in HA scenario. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the nics information. For details about how + // to obtain this parameter value, see section "Subnet" in the Virtual Private + // Cloud API Reference. The structure is described below. + Nics []NicsInitParameters `json:"nics,omitempty" tf:"nics,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Specifies the security group which the RDS DB + // instance belongs to. The structure is described below. + Securitygroup []SecuritygroupInitParameters `json:"securitygroup,omitempty" tf:"securitygroup,omitempty"` + + // Tags key/value pairs to associate with the instance. + Tag map[string]*string `json:"tag,omitempty" tf:"tag,omitempty"` + + // Specifies the VPC ID. For details about how to obtain this + // parameter value, see section "Virtual Private Cloud" in the Virtual Private + // Cloud API Reference. + VPC *string `json:"vpc,omitempty" tf:"vpc,omitempty"` + + // Specifies the volume information. The structure is described + // below. + Volume []VolumeInitParameters `json:"volume,omitempty" tf:"volume,omitempty"` +} + +type InstanceV1Observation struct { + + // Specifies the ID of the AZ. + Availabilityzone *string `json:"availabilityzone,omitempty" tf:"availabilityzone,omitempty"` + + // Specifies the advanced backup policy. The structure + // is described below. + Backupstrategy []BackupstrategyObservation `json:"backupstrategy,omitempty" tf:"backupstrategy,omitempty"` + + // Indicates the creation time in the following format: yyyy-mm-dd Thh:mm:ssZ. + Created *string `json:"created,omitempty" tf:"created,omitempty"` + + // Specifies database information. The structure is + // described below. + Datastore []DatastoreObservation `json:"datastore,omitempty" tf:"datastore,omitempty"` + + // Specifies the database port number. + Dbport *string `json:"dbport,omitempty" tf:"dbport,omitempty"` + + // Specifies the password for user root of the database. + Dbrtpd *string `json:"dbrtpd,omitempty" tf:"dbrtpd,omitempty"` + + // Specifies the specification ID (flavors.id in the + // response message in Obtaining All DB Instance Specifications). If you want + // to enable ha for the rds instance, a flavor with ha speccode is required. + Flavorref *string `json:"flavorref,omitempty" tf:"flavorref,omitempty"` + + // Specifies the parameters configured on HA and is used when + // creating HA DB instances. The structure is described below. NOTICE: + // RDS for Microsoft SQL Server does not support creating HA DB instances and + // this parameter is not involved. + Ha []HaObservation `json:"ha,omitempty" tf:"ha,omitempty"` + + // Indicates the instance connection address. It is a blank string. + Hostname *string `json:"hostname,omitempty" tf:"hostname,omitempty"` + + // Specifies the ID obtained from the securitygroup. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Specifies the DB instance name. The DB instance name of + // the same type is unique in the same tenant. The changes of the instance name + // will be suppressed in HA scenario. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the nics information. For details about how + // to obtain this parameter value, see section "Subnet" in the Virtual Private + // Cloud API Reference. The structure is described below. + Nics []NicsObservation `json:"nics,omitempty" tf:"nics,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Specifies the security group which the RDS DB + // instance belongs to. The structure is described below. + Securitygroup []SecuritygroupObservation `json:"securitygroup,omitempty" tf:"securitygroup,omitempty"` + + // Indicates the DB instance status. + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + // Tags key/value pairs to associate with the instance. + Tag map[string]*string `json:"tag,omitempty" tf:"tag,omitempty"` + + // Indicates the DB instance type, which can be master or readreplica. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Indicates the update time in the following format: yyyy-mm-dd Thh:mm:ssZ. + Updated *string `json:"updated,omitempty" tf:"updated,omitempty"` + + // Specifies the VPC ID. For details about how to obtain this + // parameter value, see section "Virtual Private Cloud" in the Virtual Private + // Cloud API Reference. + VPC *string `json:"vpc,omitempty" tf:"vpc,omitempty"` + + // Specifies the volume information. The structure is described + // below. + Volume []VolumeObservation `json:"volume,omitempty" tf:"volume,omitempty"` +} + +type InstanceV1Parameters struct { + + // Specifies the ID of the AZ. + // +kubebuilder:validation:Optional + Availabilityzone *string `json:"availabilityzone,omitempty" tf:"availabilityzone,omitempty"` + + // Specifies the advanced backup policy. The structure + // is described below. + // +kubebuilder:validation:Optional + Backupstrategy []BackupstrategyParameters `json:"backupstrategy,omitempty" tf:"backupstrategy,omitempty"` + + // Specifies database information. The structure is + // described below. + // +kubebuilder:validation:Optional + Datastore []DatastoreParameters `json:"datastore,omitempty" tf:"datastore,omitempty"` + + // Specifies the database port number. + // +kubebuilder:validation:Optional + Dbport *string `json:"dbport,omitempty" tf:"dbport,omitempty"` + + // Specifies the password for user root of the database. + // +kubebuilder:validation:Optional + Dbrtpd *string `json:"dbrtpd,omitempty" tf:"dbrtpd,omitempty"` + + // Specifies the specification ID (flavors.id in the + // response message in Obtaining All DB Instance Specifications). If you want + // to enable ha for the rds instance, a flavor with ha speccode is required. + // +kubebuilder:validation:Optional + Flavorref *string `json:"flavorref,omitempty" tf:"flavorref,omitempty"` + + // Specifies the parameters configured on HA and is used when + // creating HA DB instances. The structure is described below. NOTICE: + // RDS for Microsoft SQL Server does not support creating HA DB instances and + // this parameter is not involved. + // +kubebuilder:validation:Optional + Ha []HaParameters `json:"ha,omitempty" tf:"ha,omitempty"` + + // Specifies the DB instance name. The DB instance name of + // the same type is unique in the same tenant. The changes of the instance name + // will be suppressed in HA scenario. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the nics information. For details about how + // to obtain this parameter value, see section "Subnet" in the Virtual Private + // Cloud API Reference. The structure is described below. + // +kubebuilder:validation:Optional + Nics []NicsParameters `json:"nics,omitempty" tf:"nics,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Specifies the security group which the RDS DB + // instance belongs to. The structure is described below. + // +kubebuilder:validation:Optional + Securitygroup []SecuritygroupParameters `json:"securitygroup,omitempty" tf:"securitygroup,omitempty"` + + // Tags key/value pairs to associate with the instance. + // +kubebuilder:validation:Optional + Tag map[string]*string `json:"tag,omitempty" tf:"tag,omitempty"` + + // Specifies the VPC ID. For details about how to obtain this + // parameter value, see section "Virtual Private Cloud" in the Virtual Private + // Cloud API Reference. + // +kubebuilder:validation:Optional + VPC *string `json:"vpc,omitempty" tf:"vpc,omitempty"` + + // Specifies the volume information. The structure is described + // below. + // +kubebuilder:validation:Optional + Volume []VolumeParameters `json:"volume,omitempty" tf:"volume,omitempty"` +} + +type NicsInitParameters struct { + Subnetid *string `json:"subnetid,omitempty" tf:"subnetid,omitempty"` +} + +type NicsObservation struct { + Subnetid *string `json:"subnetid,omitempty" tf:"subnetid,omitempty"` +} + +type NicsParameters struct { + + // +kubebuilder:validation:Optional + Subnetid *string `json:"subnetid" tf:"subnetid,omitempty"` +} + +type SecuritygroupInitParameters struct { + + // Specifies the ID obtained from the securitygroup. + ID *string `json:"id,omitempty" tf:"id,omitempty"` +} + +type SecuritygroupObservation struct { + + // Specifies the ID obtained from the securitygroup. + ID *string `json:"id,omitempty" tf:"id,omitempty"` +} + +type SecuritygroupParameters struct { + + // Specifies the ID obtained from the securitygroup. + // +kubebuilder:validation:Optional + ID *string `json:"id" tf:"id,omitempty"` +} + +type VolumeInitParameters struct { + + // Specifies the volume size. + // Its value must be a multiple of 10 and the value range is 100 GB to 2000 GB. + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // Specifies the volume type. Valid value: + // It must be COMMON (SATA) or ULTRAHIGH (SSD) and is case-sensitive. + Type *string `json:"type,omitempty" tf:"type,omitempty"` +} + +type VolumeObservation struct { + + // Specifies the volume size. + // Its value must be a multiple of 10 and the value range is 100 GB to 2000 GB. + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // Specifies the volume type. Valid value: + // It must be COMMON (SATA) or ULTRAHIGH (SSD) and is case-sensitive. + Type *string `json:"type,omitempty" tf:"type,omitempty"` +} + +type VolumeParameters struct { + + // Specifies the volume size. + // Its value must be a multiple of 10 and the value range is 100 GB to 2000 GB. + // +kubebuilder:validation:Optional + Size *float64 `json:"size" tf:"size,omitempty"` + + // Specifies the volume type. Valid value: + // It must be COMMON (SATA) or ULTRAHIGH (SSD) and is case-sensitive. + // +kubebuilder:validation:Optional + Type *string `json:"type" tf:"type,omitempty"` +} + +// InstanceV1Spec defines the desired state of InstanceV1 +type InstanceV1Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider InstanceV1Parameters `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 InstanceV1InitParameters `json:"initProvider,omitempty"` +} + +// InstanceV1Status defines the observed state of InstanceV1. +type InstanceV1Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider InstanceV1Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// InstanceV1 is the Schema for the InstanceV1s API. Manages an RDS Instance v1 resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type InstanceV1 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.availabilityzone) || (has(self.initProvider) && has(self.initProvider.availabilityzone))",message="spec.forProvider.availabilityzone is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.datastore) || (has(self.initProvider) && has(self.initProvider.datastore))",message="spec.forProvider.datastore is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.dbrtpd) || (has(self.initProvider) && has(self.initProvider.dbrtpd))",message="spec.forProvider.dbrtpd is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.flavorref) || (has(self.initProvider) && has(self.initProvider.flavorref))",message="spec.forProvider.flavorref is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.nics) || (has(self.initProvider) && has(self.initProvider.nics))",message="spec.forProvider.nics is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.securitygroup) || (has(self.initProvider) && has(self.initProvider.securitygroup))",message="spec.forProvider.securitygroup is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.volume) || (has(self.initProvider) && has(self.initProvider.volume))",message="spec.forProvider.volume is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.vpc) || (has(self.initProvider) && has(self.initProvider.vpc))",message="spec.forProvider.vpc is a required parameter" + Spec InstanceV1Spec `json:"spec"` + Status InstanceV1Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// InstanceV1List contains a list of InstanceV1s +type InstanceV1List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []InstanceV1 `json:"items"` +} + +// Repository type metadata. +var ( + InstanceV1_Kind = "InstanceV1" + InstanceV1_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: InstanceV1_Kind}.String() + InstanceV1_KindAPIVersion = InstanceV1_Kind + "." + CRDGroupVersion.String() + InstanceV1_GroupVersionKind = CRDGroupVersion.WithKind(InstanceV1_Kind) +) + +func init() { + SchemeBuilder.Register(&InstanceV1{}, &InstanceV1List{}) +} diff --git a/apis/rds/v1alpha1/zz_instancev3_types.go b/apis/rds/v1alpha1/zz_instancev3_types.go new file mode 100755 index 0000000..a2dcba6 --- /dev/null +++ b/apis/rds/v1alpha1/zz_instancev3_types.go @@ -0,0 +1,685 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 BackupStrategyInitParameters struct { + + // Specifies the retention days for specific backup files. The value + // range is from 0 to 732. If this parameter is not specified or set + // to 0, the automated backup policy is disabled. NOTICE: + // Primary/standby DB instances of Microsoft SQL Server do not + // support disabling the automated backup policy. + KeepDays *float64 `json:"keepDays,omitempty" tf:"keep_days,omitempty"` + + // Specifies the backup time window. Automated backups will be + // triggered during the backup time window. It must be a valid value in the "hh:mm-HH:MM" + // format. The current time is in the UTC format. The HH value must + // be 1 greater than the hh value. The values of mm and MM must be + // the same and must be set to any of the following: 00, 15, 30, or + // 45. Example value: 08:15-09:15 23:00-00:00. + StartTime *string `json:"startTime,omitempty" tf:"start_time,omitempty"` +} + +type BackupStrategyObservation struct { + + // Specifies the retention days for specific backup files. The value + // range is from 0 to 732. If this parameter is not specified or set + // to 0, the automated backup policy is disabled. NOTICE: + // Primary/standby DB instances of Microsoft SQL Server do not + // support disabling the automated backup policy. + KeepDays *float64 `json:"keepDays,omitempty" tf:"keep_days,omitempty"` + + // Specifies the backup time window. Automated backups will be + // triggered during the backup time window. It must be a valid value in the "hh:mm-HH:MM" + // format. The current time is in the UTC format. The HH value must + // be 1 greater than the hh value. The values of mm and MM must be + // the same and must be set to any of the following: 00, 15, 30, or + // 45. Example value: 08:15-09:15 23:00-00:00. + StartTime *string `json:"startTime,omitempty" tf:"start_time,omitempty"` +} + +type BackupStrategyParameters struct { + + // Specifies the retention days for specific backup files. The value + // range is from 0 to 732. If this parameter is not specified or set + // to 0, the automated backup policy is disabled. NOTICE: + // Primary/standby DB instances of Microsoft SQL Server do not + // support disabling the automated backup policy. + // +kubebuilder:validation:Optional + KeepDays *float64 `json:"keepDays,omitempty" tf:"keep_days,omitempty"` + + // Specifies the backup time window. Automated backups will be + // triggered during the backup time window. It must be a valid value in the "hh:mm-HH:MM" + // format. The current time is in the UTC format. The HH value must + // be 1 greater than the hh value. The values of mm and MM must be + // the same and must be set to any of the following: 00, 15, 30, or + // 45. Example value: 08:15-09:15 23:00-00:00. + // +kubebuilder:validation:Optional + StartTime *string `json:"startTime" tf:"start_time,omitempty"` +} + +type DBInitParameters struct { + + // Specifies the database port information. The MySQL database port + // ranges from 1024 to 65535 (excluding 12017 and 33071, which are + // occupied by the RDS system and cannot be used). The PostgreSQL + // database port ranges from 2100 to 9500. The Microsoft SQL Server + // database port can be 1433 or ranges from 2100 to 9500, excluding + // 5355 and 5985. If this parameter is not set, the default value is + // as follows: For MySQL, the default value is 3306. For PostgreSQL, + // the default value is 5432. For Microsoft SQL Server, the default + // value is 1433. Changing this parameter will create a new resource. + Port *float64 `json:"port,omitempty" tf:"port,omitempty"` + + // Specifies the DB engine. Value: MySQL, PostgreSQL, SQLServer. Changing this parameter will create a new resource. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Specifies the database version. MySQL databases support MySQL 5.6 + // and above. PostgreSQL databases support PostgreSQL 9.5 and above. Microsoft SQL Server + // databases support 2014 SE, 2016 SE, and above. + // Changing this parameter will create a new resource. + Version *string `json:"version,omitempty" tf:"version,omitempty"` +} + +type DBObservation struct { + + // Specifies the database port information. The MySQL database port + // ranges from 1024 to 65535 (excluding 12017 and 33071, which are + // occupied by the RDS system and cannot be used). The PostgreSQL + // database port ranges from 2100 to 9500. The Microsoft SQL Server + // database port can be 1433 or ranges from 2100 to 9500, excluding + // 5355 and 5985. If this parameter is not set, the default value is + // as follows: For MySQL, the default value is 3306. For PostgreSQL, + // the default value is 5432. For Microsoft SQL Server, the default + // value is 1433. Changing this parameter will create a new resource. + Port *float64 `json:"port,omitempty" tf:"port,omitempty"` + + // Specifies the DB engine. Value: MySQL, PostgreSQL, SQLServer. Changing this parameter will create a new resource. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Indicates the default user name of database. + UserName *string `json:"userName,omitempty" tf:"user_name,omitempty"` + + // Specifies the database version. MySQL databases support MySQL 5.6 + // and above. PostgreSQL databases support PostgreSQL 9.5 and above. Microsoft SQL Server + // databases support 2014 SE, 2016 SE, and above. + // Changing this parameter will create a new resource. + Version *string `json:"version,omitempty" tf:"version,omitempty"` +} + +type DBParameters struct { + + // Specifies the database password. The value cannot be + // empty and should contain 8 to 32 characters, including uppercase + // and lowercase letters, digits, and the following special + // characters: ~!@#%^*-_=+? You are advised to enter a strong + // password to improve security, preventing security risks such as + // brute force cracking. Changing this parameter will create a new resource. + // +kubebuilder:validation:Required + PasswordSecretRef v1.SecretKeySelector `json:"passwordSecretRef" tf:"-"` + + // Specifies the database port information. The MySQL database port + // ranges from 1024 to 65535 (excluding 12017 and 33071, which are + // occupied by the RDS system and cannot be used). The PostgreSQL + // database port ranges from 2100 to 9500. The Microsoft SQL Server + // database port can be 1433 or ranges from 2100 to 9500, excluding + // 5355 and 5985. If this parameter is not set, the default value is + // as follows: For MySQL, the default value is 3306. For PostgreSQL, + // the default value is 5432. For Microsoft SQL Server, the default + // value is 1433. Changing this parameter will create a new resource. + // +kubebuilder:validation:Optional + Port *float64 `json:"port,omitempty" tf:"port,omitempty"` + + // Specifies the DB engine. Value: MySQL, PostgreSQL, SQLServer. Changing this parameter will create a new resource. + // +kubebuilder:validation:Optional + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Specifies the database version. MySQL databases support MySQL 5.6 + // and above. PostgreSQL databases support PostgreSQL 9.5 and above. Microsoft SQL Server + // databases support 2014 SE, 2016 SE, and above. + // Changing this parameter will create a new resource. + // +kubebuilder:validation:Optional + Version *string `json:"version,omitempty" tf:"version,omitempty"` +} + +type InstanceV3InitParameters struct { + + // Specifies the AZ name. Changing this parameter will create a new resource. + AvailabilityZone []*string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // Specifies the advanced backup policy. Structure is documented below. + BackupStrategy []BackupStrategyInitParameters `json:"backupStrategy,omitempty" tf:"backup_strategy,omitempty"` + + // Specifies the database information. Structure is documented below. Changing this parameter will create a new resource. + DB []DBInitParameters `json:"db,omitempty" tf:"db,omitempty"` + + // Specifies the specification code. + // Use data source opentelekomcloud_rds_flavors_v3 to get a list of available flavor names. + // Examples could be rds.pg.c2.medium or rds.pg.c2.medium.ha for HA clusters. + Flavor *string `json:"flavor,omitempty" tf:"flavor,omitempty"` + + // Specifies the replication mode for the standby DB instance. For MySQL, the value + // is async or semisync. For PostgreSQL, the value is async or sync. For Microsoft SQL Server, the value is sync. + // Parameter is required for HA clusters. + HaReplicationMode *string `json:"haReplicationMode,omitempty" tf:"ha_replication_mode,omitempty"` + + // Specifies the case-sensitive state of the database table name, + // the default value is "1". Changing this parameter will create a new resource. + LowerCaseTableNames *string `json:"lowerCaseTableNames,omitempty" tf:"lower_case_table_names,omitempty"` + + // Specifies the DB instance name. The DB instance name of the same type + // must be unique for the same tenant. The value must be 4 to 64 + // characters in length and start with a letter. It is case-sensitive + // and can contain only letters, digits, hyphens (-), and underscores + // (_). Changing this parameter will create a new resource. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the parameter group ID. + ParamGroupID *string `json:"paramGroupId,omitempty" tf:"param_group_id,omitempty"` + + // Map of additional configuration parameters. Values should be strings. Parameters set here + // overrides values from configuration template (parameter group). + Parameters map[string]*string `json:"parameters,omitempty" tf:"parameters,omitempty"` + + // Specifies floating IP to be assigned to the instance. + // This should be a list with single element only. + PublicIps []*string `json:"publicIps,omitempty" tf:"public_ips,omitempty"` + + // Specifies whether to restore database to an instance described in current resource. + // Structure is documented below. + RestoreFromBackup []RestoreFromBackupInitParameters `json:"restoreFromBackup,omitempty" tf:"restore_from_backup,omitempty"` + + // Specifies the restoration information. By selecting this option a new RDS + // instance will be created from separate instance backup. Structure is documented below. + RestorePoint []RestorePointInitParameters `json:"restorePoint,omitempty" tf:"restore_point,omitempty"` + + // Specifies whether SSL should be enabled for MySql instances. + SSLEnable *bool `json:"sslEnable,omitempty" tf:"ssl_enable,omitempty"` + + // Specifies the security group which the RDS DB instance belongs to. + // Changing this parameter will create a new resource. + SecurityGroupID *string `json:"securityGroupId,omitempty" tf:"security_group_id,omitempty"` + + // Specifies the subnet id. Changing this parameter will create a new resource. + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // Tags key/value pairs to associate with the instance. Deprecated, please use + // the tags instead. + Tag map[string]*string `json:"tag,omitempty" tf:"tag,omitempty"` + + // Tags key/value pairs to associate with the instance. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Specifies the VPC ID. Changing this parameter will create a new resource. + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` + + // Specifies the volume information. Structure is documented below. + Volume []InstanceV3VolumeInitParameters `json:"volume,omitempty" tf:"volume,omitempty"` +} + +type InstanceV3Observation struct { + + // Specifies the AZ name. Changing this parameter will create a new resource. + AvailabilityZone []*string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // Indicates the instance AZs. + AvailabilityZones []*string `json:"availabilityZones,omitempty" tf:"availability_zones,omitempty"` + + // Specifies the advanced backup policy. Structure is documented below. + BackupStrategy []BackupStrategyObservation `json:"backupStrategy,omitempty" tf:"backup_strategy,omitempty"` + + // Indicates the creation time. + Created *string `json:"created,omitempty" tf:"created,omitempty"` + + // Specifies the database information. Structure is documented below. Changing this parameter will create a new resource. + DB []DBObservation `json:"db,omitempty" tf:"db,omitempty"` + + // Specifies the specification code. + // Use data source opentelekomcloud_rds_flavors_v3 to get a list of available flavor names. + // Examples could be rds.pg.c2.medium or rds.pg.c2.medium.ha for HA clusters. + Flavor *string `json:"flavor,omitempty" tf:"flavor,omitempty"` + + // Specifies the replication mode for the standby DB instance. For MySQL, the value + // is async or semisync. For PostgreSQL, the value is async or sync. For Microsoft SQL Server, the value is sync. + // Parameter is required for HA clusters. + HaReplicationMode *string `json:"haReplicationMode,omitempty" tf:"ha_replication_mode,omitempty"` + + // Indicates the node ID. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Specifies the case-sensitive state of the database table name, + // the default value is "1". Changing this parameter will create a new resource. + LowerCaseTableNames *string `json:"lowerCaseTableNames,omitempty" tf:"lower_case_table_names,omitempty"` + + // Specifies the DB instance name. The DB instance name of the same type + // must be unique for the same tenant. The value must be 4 to 64 + // characters in length and start with a letter. It is case-sensitive + // and can contain only letters, digits, hyphens (-), and underscores + // (_). Changing this parameter will create a new resource. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Indicates the instance nodes information. Structure is documented below. + Nodes []NodesObservation `json:"nodes,omitempty" tf:"nodes,omitempty"` + + // Specifies the parameter group ID. + ParamGroupID *string `json:"paramGroupId,omitempty" tf:"param_group_id,omitempty"` + + // Map of additional configuration parameters. Values should be strings. Parameters set here + // overrides values from configuration template (parameter group). + Parameters map[string]*string `json:"parameters,omitempty" tf:"parameters,omitempty"` + + // Indicates the private IP address list. It is a blank string until an + // ECS is created. + PrivateIps []*string `json:"privateIps,omitempty" tf:"private_ips,omitempty"` + + // Specifies floating IP to be assigned to the instance. + // This should be a list with single element only. + PublicIps []*string `json:"publicIps,omitempty" tf:"public_ips,omitempty"` + + // Specifies whether to restore database to an instance described in current resource. + // Structure is documented below. + RestoreFromBackup []RestoreFromBackupObservation `json:"restoreFromBackup,omitempty" tf:"restore_from_backup,omitempty"` + + // Specifies the restoration information. By selecting this option a new RDS + // instance will be created from separate instance backup. Structure is documented below. + RestorePoint []RestorePointObservation `json:"restorePoint,omitempty" tf:"restore_point,omitempty"` + + // Indicates the backup ID in cases when instance was restored by using + // restore_from_backup block. + RestoredBackupID *string `json:"restoredBackupId,omitempty" tf:"restored_backup_id,omitempty"` + + // Specifies whether SSL should be enabled for MySql instances. + SSLEnable *bool `json:"sslEnable,omitempty" tf:"ssl_enable,omitempty"` + + // Specifies the security group which the RDS DB instance belongs to. + // Changing this parameter will create a new resource. + SecurityGroupID *string `json:"securityGroupId,omitempty" tf:"security_group_id,omitempty"` + + // Specifies the subnet id. Changing this parameter will create a new resource. + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // Tags key/value pairs to associate with the instance. Deprecated, please use + // the tags instead. + Tag map[string]*string `json:"tag,omitempty" tf:"tag,omitempty"` + + // Tags key/value pairs to associate with the instance. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Specifies the VPC ID. Changing this parameter will create a new resource. + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` + + // Specifies the volume information. Structure is documented below. + Volume []InstanceV3VolumeObservation `json:"volume,omitempty" tf:"volume,omitempty"` +} + +type InstanceV3Parameters struct { + + // Specifies the AZ name. Changing this parameter will create a new resource. + // +kubebuilder:validation:Optional + AvailabilityZone []*string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // Specifies the advanced backup policy. Structure is documented below. + // +kubebuilder:validation:Optional + BackupStrategy []BackupStrategyParameters `json:"backupStrategy,omitempty" tf:"backup_strategy,omitempty"` + + // Specifies the database information. Structure is documented below. Changing this parameter will create a new resource. + // +kubebuilder:validation:Optional + DB []DBParameters `json:"db,omitempty" tf:"db,omitempty"` + + // Specifies the specification code. + // Use data source opentelekomcloud_rds_flavors_v3 to get a list of available flavor names. + // Examples could be rds.pg.c2.medium or rds.pg.c2.medium.ha for HA clusters. + // +kubebuilder:validation:Optional + Flavor *string `json:"flavor,omitempty" tf:"flavor,omitempty"` + + // Specifies the replication mode for the standby DB instance. For MySQL, the value + // is async or semisync. For PostgreSQL, the value is async or sync. For Microsoft SQL Server, the value is sync. + // Parameter is required for HA clusters. + // +kubebuilder:validation:Optional + HaReplicationMode *string `json:"haReplicationMode,omitempty" tf:"ha_replication_mode,omitempty"` + + // Specifies the case-sensitive state of the database table name, + // the default value is "1". Changing this parameter will create a new resource. + // +kubebuilder:validation:Optional + LowerCaseTableNames *string `json:"lowerCaseTableNames,omitempty" tf:"lower_case_table_names,omitempty"` + + // Specifies the DB instance name. The DB instance name of the same type + // must be unique for the same tenant. The value must be 4 to 64 + // characters in length and start with a letter. It is case-sensitive + // and can contain only letters, digits, hyphens (-), and underscores + // (_). Changing this parameter will create a new resource. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the parameter group ID. + // +kubebuilder:validation:Optional + ParamGroupID *string `json:"paramGroupId,omitempty" tf:"param_group_id,omitempty"` + + // Map of additional configuration parameters. Values should be strings. Parameters set here + // overrides values from configuration template (parameter group). + // +kubebuilder:validation:Optional + Parameters map[string]*string `json:"parameters,omitempty" tf:"parameters,omitempty"` + + // Specifies floating IP to be assigned to the instance. + // This should be a list with single element only. + // +kubebuilder:validation:Optional + PublicIps []*string `json:"publicIps,omitempty" tf:"public_ips,omitempty"` + + // Specifies whether to restore database to an instance described in current resource. + // Structure is documented below. + // +kubebuilder:validation:Optional + RestoreFromBackup []RestoreFromBackupParameters `json:"restoreFromBackup,omitempty" tf:"restore_from_backup,omitempty"` + + // Specifies the restoration information. By selecting this option a new RDS + // instance will be created from separate instance backup. Structure is documented below. + // +kubebuilder:validation:Optional + RestorePoint []RestorePointParameters `json:"restorePoint,omitempty" tf:"restore_point,omitempty"` + + // Specifies whether SSL should be enabled for MySql instances. + // +kubebuilder:validation:Optional + SSLEnable *bool `json:"sslEnable,omitempty" tf:"ssl_enable,omitempty"` + + // Specifies the security group which the RDS DB instance belongs to. + // Changing this parameter will create a new resource. + // +kubebuilder:validation:Optional + SecurityGroupID *string `json:"securityGroupId,omitempty" tf:"security_group_id,omitempty"` + + // Specifies the subnet id. Changing this parameter will create a new resource. + // +kubebuilder:validation:Optional + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // Tags key/value pairs to associate with the instance. Deprecated, please use + // the tags instead. + // +kubebuilder:validation:Optional + Tag map[string]*string `json:"tag,omitempty" tf:"tag,omitempty"` + + // Tags key/value pairs to associate with the instance. + // +kubebuilder:validation:Optional + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Specifies the VPC ID. Changing this parameter will create a new resource. + // +kubebuilder:validation:Optional + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` + + // Specifies the volume information. Structure is documented below. + // +kubebuilder:validation:Optional + Volume []InstanceV3VolumeParameters `json:"volume,omitempty" tf:"volume,omitempty"` +} + +type InstanceV3VolumeInitParameters struct { + + // Specifies the key ID for disk encryption. Changing this parameter will create a new resource. + DiskEncryptionID *string `json:"diskEncryptionId,omitempty" tf:"disk_encryption_id,omitempty"` + + // Specifies the upper limit of automatic expansion of storage, in GB. + LimitSize *float64 `json:"limitSize,omitempty" tf:"limit_size,omitempty"` + + // Specifies the volume size. Its value range is from 40 GB to 4000 + // GB. The value must be a multiple of 10. Changing this resize the volume. + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // Specifies the threshold to trigger automatic expansion. + // If the available storage drops to this threshold or 10 GB, the automatic expansion is triggered. + // The valid values are as follows: + TriggerThreshold *float64 `json:"triggerThreshold,omitempty" tf:"trigger_threshold,omitempty"` + + // Specifies the volume type. Its value can be any of the following + // and is case-sensitive: COMMON: indicates the SATA type. + // ULTRAHIGH: indicates the SSD type. Changing this parameter will create a new resource. + Type *string `json:"type,omitempty" tf:"type,omitempty"` +} + +type InstanceV3VolumeObservation struct { + + // Specifies the key ID for disk encryption. Changing this parameter will create a new resource. + DiskEncryptionID *string `json:"diskEncryptionId,omitempty" tf:"disk_encryption_id,omitempty"` + + // Specifies the upper limit of automatic expansion of storage, in GB. + LimitSize *float64 `json:"limitSize,omitempty" tf:"limit_size,omitempty"` + + // Specifies the volume size. Its value range is from 40 GB to 4000 + // GB. The value must be a multiple of 10. Changing this resize the volume. + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // Specifies the threshold to trigger automatic expansion. + // If the available storage drops to this threshold or 10 GB, the automatic expansion is triggered. + // The valid values are as follows: + TriggerThreshold *float64 `json:"triggerThreshold,omitempty" tf:"trigger_threshold,omitempty"` + + // Specifies the volume type. Its value can be any of the following + // and is case-sensitive: COMMON: indicates the SATA type. + // ULTRAHIGH: indicates the SSD type. Changing this parameter will create a new resource. + Type *string `json:"type,omitempty" tf:"type,omitempty"` +} + +type InstanceV3VolumeParameters struct { + + // Specifies the key ID for disk encryption. Changing this parameter will create a new resource. + // +kubebuilder:validation:Optional + DiskEncryptionID *string `json:"diskEncryptionId,omitempty" tf:"disk_encryption_id,omitempty"` + + // Specifies the upper limit of automatic expansion of storage, in GB. + // +kubebuilder:validation:Optional + LimitSize *float64 `json:"limitSize,omitempty" tf:"limit_size,omitempty"` + + // Specifies the volume size. Its value range is from 40 GB to 4000 + // GB. The value must be a multiple of 10. Changing this resize the volume. + // +kubebuilder:validation:Optional + Size *float64 `json:"size" tf:"size,omitempty"` + + // Specifies the threshold to trigger automatic expansion. + // If the available storage drops to this threshold or 10 GB, the automatic expansion is triggered. + // The valid values are as follows: + // +kubebuilder:validation:Optional + TriggerThreshold *float64 `json:"triggerThreshold,omitempty" tf:"trigger_threshold,omitempty"` + + // Specifies the volume type. Its value can be any of the following + // and is case-sensitive: COMMON: indicates the SATA type. + // ULTRAHIGH: indicates the SSD type. Changing this parameter will create a new resource. + // +kubebuilder:validation:Optional + Type *string `json:"type" tf:"type,omitempty"` +} + +type NodesInitParameters struct { +} + +type NodesObservation struct { + + // Indicates the AZ. + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // Indicates the node ID. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Indicates the node name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Indicates the node type. The value can be master or slave, indicating the primary node or standby node respectively. + Role *string `json:"role,omitempty" tf:"role,omitempty"` + + // Indicates the node status. + Status *string `json:"status,omitempty" tf:"status,omitempty"` +} + +type NodesParameters struct { +} + +type RestoreFromBackupInitParameters struct { + + // Specifies the ID of the backup used to restore data. + // This parameter must be specified when the backup file is used for restoration. + BackupID *string `json:"backupId,omitempty" tf:"backup_id,omitempty"` + + // Specifies the time point of data restoration in the UNIX timestamp. + // The unit is millisecond and the time zone is UTC. + RestoreTime *float64 `json:"restoreTime,omitempty" tf:"restore_time,omitempty"` + + // Specifies the source instance ID. + SourceInstanceID *string `json:"sourceInstanceId,omitempty" tf:"source_instance_id,omitempty"` + + // Specifies the restoration mode. The values can be: + Type *string `json:"type,omitempty" tf:"type,omitempty"` +} + +type RestoreFromBackupObservation struct { + + // Specifies the ID of the backup used to restore data. + // This parameter must be specified when the backup file is used for restoration. + BackupID *string `json:"backupId,omitempty" tf:"backup_id,omitempty"` + + // Specifies the time point of data restoration in the UNIX timestamp. + // The unit is millisecond and the time zone is UTC. + RestoreTime *float64 `json:"restoreTime,omitempty" tf:"restore_time,omitempty"` + + // Specifies the source instance ID. + SourceInstanceID *string `json:"sourceInstanceId,omitempty" tf:"source_instance_id,omitempty"` + + // Specifies the restoration mode. The values can be: + Type *string `json:"type,omitempty" tf:"type,omitempty"` +} + +type RestoreFromBackupParameters struct { + + // Specifies the ID of the backup used to restore data. + // This parameter must be specified when the backup file is used for restoration. + // +kubebuilder:validation:Optional + BackupID *string `json:"backupId,omitempty" tf:"backup_id,omitempty"` + + // Specifies the time point of data restoration in the UNIX timestamp. + // The unit is millisecond and the time zone is UTC. + // +kubebuilder:validation:Optional + RestoreTime *float64 `json:"restoreTime,omitempty" tf:"restore_time,omitempty"` + + // Specifies the source instance ID. + // +kubebuilder:validation:Optional + SourceInstanceID *string `json:"sourceInstanceId" tf:"source_instance_id,omitempty"` + + // Specifies the restoration mode. The values can be: + // +kubebuilder:validation:Optional + Type *string `json:"type" tf:"type,omitempty"` +} + +type RestorePointInitParameters struct { + + // Specifies the ID of the backup used to restore data. + BackupID *string `json:"backupId,omitempty" tf:"backup_id,omitempty"` + + // Specifies the original DB instance ID. + InstanceID *string `json:"instanceId,omitempty" tf:"instance_id,omitempty"` + + // Specifies the time point of data restoration in the UNIX timestamp. + // The unit is millisecond and the time zone is UTC. + RestoreTime *float64 `json:"restoreTime,omitempty" tf:"restore_time,omitempty"` +} + +type RestorePointObservation struct { + + // Specifies the ID of the backup used to restore data. + BackupID *string `json:"backupId,omitempty" tf:"backup_id,omitempty"` + + // Specifies the original DB instance ID. + InstanceID *string `json:"instanceId,omitempty" tf:"instance_id,omitempty"` + + // Specifies the time point of data restoration in the UNIX timestamp. + // The unit is millisecond and the time zone is UTC. + RestoreTime *float64 `json:"restoreTime,omitempty" tf:"restore_time,omitempty"` +} + +type RestorePointParameters struct { + + // Specifies the ID of the backup used to restore data. + // +kubebuilder:validation:Optional + BackupID *string `json:"backupId,omitempty" tf:"backup_id,omitempty"` + + // Specifies the original DB instance ID. + // +kubebuilder:validation:Optional + InstanceID *string `json:"instanceId" tf:"instance_id,omitempty"` + + // Specifies the time point of data restoration in the UNIX timestamp. + // The unit is millisecond and the time zone is UTC. + // +kubebuilder:validation:Optional + RestoreTime *float64 `json:"restoreTime,omitempty" tf:"restore_time,omitempty"` +} + +// InstanceV3Spec defines the desired state of InstanceV3 +type InstanceV3Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider InstanceV3Parameters `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 InstanceV3InitParameters `json:"initProvider,omitempty"` +} + +// InstanceV3Status defines the observed state of InstanceV3. +type InstanceV3Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider InstanceV3Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// InstanceV3 is the Schema for the InstanceV3s API. Manages an RDS Instance v3 resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type InstanceV3 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.availabilityZone) || (has(self.initProvider) && has(self.initProvider.availabilityZone))",message="spec.forProvider.availabilityZone is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.db) || (has(self.initProvider) && has(self.initProvider.db))",message="spec.forProvider.db is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.flavor) || (has(self.initProvider) && has(self.initProvider.flavor))",message="spec.forProvider.flavor is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.securityGroupId) || (has(self.initProvider) && has(self.initProvider.securityGroupId))",message="spec.forProvider.securityGroupId 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" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.volume) || (has(self.initProvider) && has(self.initProvider.volume))",message="spec.forProvider.volume is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.vpcId) || (has(self.initProvider) && has(self.initProvider.vpcId))",message="spec.forProvider.vpcId is a required parameter" + Spec InstanceV3Spec `json:"spec"` + Status InstanceV3Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// InstanceV3List contains a list of InstanceV3s +type InstanceV3List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []InstanceV3 `json:"items"` +} + +// Repository type metadata. +var ( + InstanceV3_Kind = "InstanceV3" + InstanceV3_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: InstanceV3_Kind}.String() + InstanceV3_KindAPIVersion = InstanceV3_Kind + "." + CRDGroupVersion.String() + InstanceV3_GroupVersionKind = CRDGroupVersion.WithKind(InstanceV3_Kind) +) + +func init() { + SchemeBuilder.Register(&InstanceV3{}, &InstanceV3List{}) +} diff --git a/apis/rds/v1alpha1/zz_parametergroupv3_types.go b/apis/rds/v1alpha1/zz_parametergroupv3_types.go new file mode 100755 index 0000000..c427384 --- /dev/null +++ b/apis/rds/v1alpha1/zz_parametergroupv3_types.go @@ -0,0 +1,207 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 ConfigurationParametersInitParameters struct { +} + +type ConfigurationParametersObservation struct { + + // The parameter group description. It contains a maximum of 256 characters + // and cannot contain the following special characters: >!<"&'= the value is left blank by default. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The parameter group name. It contains a maximum of 64 characters. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Indicates whether the parameter is read-only. + Readonly *bool `json:"readonly,omitempty" tf:"readonly,omitempty"` + + // Indicates whether a restart is required. + RestartRequired *bool `json:"restartRequired,omitempty" tf:"restart_required,omitempty"` + + // Indicates the parameter type. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Indicates the parameter value. + Value *string `json:"value,omitempty" tf:"value,omitempty"` + + // Indicates the parameter value range. + ValueRange *string `json:"valueRange,omitempty" tf:"value_range,omitempty"` +} + +type ConfigurationParametersParameters struct { +} + +type ParametergroupV3DatastoreInitParameters struct { + + // Specifies the DB engine. Currently, MySQL, PostgreSQL and MS SQLServer are supported. + // The value is case-insensitive and can be mysql, postgresql or sqlserver. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Specifies the database version. + Version *string `json:"version,omitempty" tf:"version,omitempty"` +} + +type ParametergroupV3DatastoreObservation struct { + + // Specifies the DB engine. Currently, MySQL, PostgreSQL and MS SQLServer are supported. + // The value is case-insensitive and can be mysql, postgresql or sqlserver. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Specifies the database version. + Version *string `json:"version,omitempty" tf:"version,omitempty"` +} + +type ParametergroupV3DatastoreParameters struct { + + // Specifies the DB engine. Currently, MySQL, PostgreSQL and MS SQLServer are supported. + // The value is case-insensitive and can be mysql, postgresql or sqlserver. + // +kubebuilder:validation:Optional + Type *string `json:"type" tf:"type,omitempty"` + + // Specifies the database version. + // +kubebuilder:validation:Optional + Version *string `json:"version" tf:"version,omitempty"` +} + +type ParametergroupV3InitParameters struct { + + // Database object. The database object structure is documented below. Changing this creates a new parameter group. + Datastore []ParametergroupV3DatastoreInitParameters `json:"datastore,omitempty" tf:"datastore,omitempty"` + + // The parameter group description. It contains a maximum of 256 characters + // and cannot contain the following special characters: >!<"&'= the value is left blank by default. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The parameter group name. It contains a maximum of 64 characters. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Parameter group values key/value pairs defined by users based on the default parameter groups. + Values map[string]*string `json:"values,omitempty" tf:"values,omitempty"` +} + +type ParametergroupV3Observation struct { + + // Indicates the parameter configuration defined by users based on the default parameters groups. + ConfigurationParameters []ConfigurationParametersObservation `json:"configurationParameters,omitempty" tf:"configuration_parameters,omitempty"` + + // Indicates the creation time in the following format: yyyy-MM-ddTHH:mm:ssZ. + Created *string `json:"created,omitempty" tf:"created,omitempty"` + + // Database object. The database object structure is documented below. Changing this creates a new parameter group. + Datastore []ParametergroupV3DatastoreObservation `json:"datastore,omitempty" tf:"datastore,omitempty"` + + // The parameter group description. It contains a maximum of 256 characters + // and cannot contain the following special characters: >!<"&'= the value is left blank by default. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // ID of the parameter group. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The parameter group name. It contains a maximum of 64 characters. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Indicates the update time in the following format: yyyy-MM-ddTHH:mm:ssZ. + Updated *string `json:"updated,omitempty" tf:"updated,omitempty"` + + // Parameter group values key/value pairs defined by users based on the default parameter groups. + Values map[string]*string `json:"values,omitempty" tf:"values,omitempty"` +} + +type ParametergroupV3Parameters struct { + + // Database object. The database object structure is documented below. Changing this creates a new parameter group. + // +kubebuilder:validation:Optional + Datastore []ParametergroupV3DatastoreParameters `json:"datastore,omitempty" tf:"datastore,omitempty"` + + // The parameter group description. It contains a maximum of 256 characters + // and cannot contain the following special characters: >!<"&'= the value is left blank by default. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The parameter group name. It contains a maximum of 64 characters. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Parameter group values key/value pairs defined by users based on the default parameter groups. + // +kubebuilder:validation:Optional + Values map[string]*string `json:"values,omitempty" tf:"values,omitempty"` +} + +// ParametergroupV3Spec defines the desired state of ParametergroupV3 +type ParametergroupV3Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider ParametergroupV3Parameters `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 ParametergroupV3InitParameters `json:"initProvider,omitempty"` +} + +// ParametergroupV3Status defines the observed state of ParametergroupV3. +type ParametergroupV3Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider ParametergroupV3Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// ParametergroupV3 is the Schema for the ParametergroupV3s API. Manages an RDS Parameter Group resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type ParametergroupV3 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.datastore) || (has(self.initProvider) && has(self.initProvider.datastore))",message="spec.forProvider.datastore is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + Spec ParametergroupV3Spec `json:"spec"` + Status ParametergroupV3Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// ParametergroupV3List contains a list of ParametergroupV3s +type ParametergroupV3List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []ParametergroupV3 `json:"items"` +} + +// Repository type metadata. +var ( + ParametergroupV3_Kind = "ParametergroupV3" + ParametergroupV3_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: ParametergroupV3_Kind}.String() + ParametergroupV3_KindAPIVersion = ParametergroupV3_Kind + "." + CRDGroupVersion.String() + ParametergroupV3_GroupVersionKind = CRDGroupVersion.WithKind(ParametergroupV3_Kind) +) + +func init() { + SchemeBuilder.Register(&ParametergroupV3{}, &ParametergroupV3List{}) +} diff --git a/apis/rds/v1alpha1/zz_readreplicav3_types.go b/apis/rds/v1alpha1/zz_readreplicav3_types.go new file mode 100755 index 0000000..05ab1c2 --- /dev/null +++ b/apis/rds/v1alpha1/zz_readreplicav3_types.go @@ -0,0 +1,245 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 ReadReplicaV3DBInitParameters struct { +} + +type ReadReplicaV3DBObservation struct { + + // Indicates the database port information. + Port *float64 `json:"port,omitempty" tf:"port,omitempty"` + + // Indicates the DB engine. Value: MySQL, PostgreSQL, SQLServer + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Indicates the default user name of database. + UserName *string `json:"userName,omitempty" tf:"user_name,omitempty"` + + // Indicates the database version. + Version *string `json:"version,omitempty" tf:"version,omitempty"` +} + +type ReadReplicaV3DBParameters struct { +} + +type ReadReplicaV3InitParameters struct { + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + FlavorRef *string `json:"flavorRef,omitempty" tf:"flavor_ref,omitempty"` + + // Specifies the DB replica instance name. The DB instance name of the same type must be unique for the same + // tenant. The value must be 4 to 64 characters in length and start with a letter. It is case-sensitive and can + // contain only letters, digits, hyphens (-), and underscores (_). Changing this parameter will create a new + // resource. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies floating IP to be assigned to the instance. + // This should be a list with single element only. + PublicIps []*string `json:"publicIps,omitempty" tf:"public_ips,omitempty"` + + // Specifies the region of the replica instance. Changing this parameter will create a new + // resource. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Specifies ID of the replicated instance. Changing this parameter will create a new resource. + ReplicaOfID *string `json:"replicaOfId,omitempty" tf:"replica_of_id,omitempty"` + + // Specifies the volume information. Structure is documented below. + Volume []ReadReplicaV3VolumeInitParameters `json:"volume,omitempty" tf:"volume,omitempty"` +} + +type ReadReplicaV3Observation struct { + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // Indicates the database information. Structure is documented below. + DB []ReadReplicaV3DBObservation `json:"db,omitempty" tf:"db,omitempty"` + + FlavorRef *string `json:"flavorRef,omitempty" tf:"flavor_ref,omitempty"` + + // ID of the read replica instance. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Specifies the DB replica instance name. The DB instance name of the same type must be unique for the same + // tenant. The value must be 4 to 64 characters in length and start with a letter. It is case-sensitive and can + // contain only letters, digits, hyphens (-), and underscores (_). Changing this parameter will create a new + // resource. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Indicates the private IP address list. + PrivateIps []*string `json:"privateIps,omitempty" tf:"private_ips,omitempty"` + + // Specifies floating IP to be assigned to the instance. + // This should be a list with single element only. + PublicIps []*string `json:"publicIps,omitempty" tf:"public_ips,omitempty"` + + // Specifies the region of the replica instance. Changing this parameter will create a new + // resource. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Specifies ID of the replicated instance. Changing this parameter will create a new resource. + ReplicaOfID *string `json:"replicaOfId,omitempty" tf:"replica_of_id,omitempty"` + + // Indicates the security group which the replica instance belongs to. + SecurityGroupID *string `json:"securityGroupId,omitempty" tf:"security_group_id,omitempty"` + + // Indicates the subnet id (OpenStack network ID). + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // Indicates the VPC ID (OpenStack router ID). + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` + + // Specifies the volume information. Structure is documented below. + Volume []ReadReplicaV3VolumeObservation `json:"volume,omitempty" tf:"volume,omitempty"` +} + +type ReadReplicaV3Parameters struct { + + // +kubebuilder:validation:Optional + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // +kubebuilder:validation:Optional + FlavorRef *string `json:"flavorRef,omitempty" tf:"flavor_ref,omitempty"` + + // Specifies the DB replica instance name. The DB instance name of the same type must be unique for the same + // tenant. The value must be 4 to 64 characters in length and start with a letter. It is case-sensitive and can + // contain only letters, digits, hyphens (-), and underscores (_). Changing this parameter will create a new + // resource. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies floating IP to be assigned to the instance. + // This should be a list with single element only. + // +kubebuilder:validation:Optional + PublicIps []*string `json:"publicIps,omitempty" tf:"public_ips,omitempty"` + + // Specifies the region of the replica instance. Changing this parameter will create a new + // resource. + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Specifies ID of the replicated instance. Changing this parameter will create a new resource. + // +kubebuilder:validation:Optional + ReplicaOfID *string `json:"replicaOfId,omitempty" tf:"replica_of_id,omitempty"` + + // Specifies the volume information. Structure is documented below. + // +kubebuilder:validation:Optional + Volume []ReadReplicaV3VolumeParameters `json:"volume,omitempty" tf:"volume,omitempty"` +} + +type ReadReplicaV3VolumeInitParameters struct { + + // Specifies the key ID for disk encryption. Changing this parameter will create a new + // resource. + DiskEncryptionID *string `json:"diskEncryptionId,omitempty" tf:"disk_encryption_id,omitempty"` + + // Specifies the volume type. Changing this parameter will create a new resource. Its value can be any of the + // following and is case-sensitive. + Type *string `json:"type,omitempty" tf:"type,omitempty"` +} + +type ReadReplicaV3VolumeObservation struct { + + // Specifies the key ID for disk encryption. Changing this parameter will create a new + // resource. + DiskEncryptionID *string `json:"diskEncryptionId,omitempty" tf:"disk_encryption_id,omitempty"` + + // Indicates the volume size. Same as replicated instance disk size. + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // Specifies the volume type. Changing this parameter will create a new resource. Its value can be any of the + // following and is case-sensitive. + Type *string `json:"type,omitempty" tf:"type,omitempty"` +} + +type ReadReplicaV3VolumeParameters struct { + + // Specifies the key ID for disk encryption. Changing this parameter will create a new + // resource. + // +kubebuilder:validation:Optional + DiskEncryptionID *string `json:"diskEncryptionId,omitempty" tf:"disk_encryption_id,omitempty"` + + // Specifies the volume type. Changing this parameter will create a new resource. Its value can be any of the + // following and is case-sensitive. + // +kubebuilder:validation:Optional + Type *string `json:"type" tf:"type,omitempty"` +} + +// ReadReplicaV3Spec defines the desired state of ReadReplicaV3 +type ReadReplicaV3Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider ReadReplicaV3Parameters `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 ReadReplicaV3InitParameters `json:"initProvider,omitempty"` +} + +// ReadReplicaV3Status defines the observed state of ReadReplicaV3. +type ReadReplicaV3Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider ReadReplicaV3Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// ReadReplicaV3 is the Schema for the ReadReplicaV3s API. Manages an RDS Read Replica resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type ReadReplicaV3 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.flavorRef) || (has(self.initProvider) && has(self.initProvider.flavorRef))",message="spec.forProvider.flavorRef is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.replicaOfId) || (has(self.initProvider) && has(self.initProvider.replicaOfId))",message="spec.forProvider.replicaOfId is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.volume) || (has(self.initProvider) && has(self.initProvider.volume))",message="spec.forProvider.volume is a required parameter" + Spec ReadReplicaV3Spec `json:"spec"` + Status ReadReplicaV3Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// ReadReplicaV3List contains a list of ReadReplicaV3s +type ReadReplicaV3List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []ReadReplicaV3 `json:"items"` +} + +// Repository type metadata. +var ( + ReadReplicaV3_Kind = "ReadReplicaV3" + ReadReplicaV3_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: ReadReplicaV3_Kind}.String() + ReadReplicaV3_KindAPIVersion = ReadReplicaV3_Kind + "." + CRDGroupVersion.String() + ReadReplicaV3_GroupVersionKind = CRDGroupVersion.WithKind(ReadReplicaV3_Kind) +) + +func init() { + SchemeBuilder.Register(&ReadReplicaV3{}, &ReadReplicaV3List{}) +} diff --git a/apis/s3/v1alpha1/zz_bucket_types.go b/apis/s3/v1alpha1/zz_bucket_types.go new file mode 100755 index 0000000..1801a7a --- /dev/null +++ b/apis/s3/v1alpha1/zz_bucket_types.go @@ -0,0 +1,591 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 BucketInitParameters struct { + + // The canned ACL + // to apply. Defaults to private. + ACL *string `json:"acl,omitempty" tf:"acl,omitempty"` + + // The ARN of the bucket. Will be of format arn:aws:s3:::bucketname. + Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` + + // The name of the bucket. + Bucket *string `json:"bucket,omitempty" tf:"bucket,omitempty"` + + // Creates a unique bucket name beginning with the specified prefix. + // Conflicts with bucket. + BucketPrefix *string `json:"bucketPrefix,omitempty" tf:"bucket_prefix,omitempty"` + + // A rule of Cross-Origin Resource Sharing (documented below). + CorsRule []CorsRuleInitParameters `json:"corsRule,omitempty" tf:"cors_rule,omitempty"` + + // A boolean that indicates all objects should be deleted from the bucket + // so that the bucket can be destroyed without error. These objects are not recoverable. + ForceDestroy *bool `json:"forceDestroy,omitempty" tf:"force_destroy,omitempty"` + + // The Route 53 Hosted Zone ID + // for this bucket's region. + HostedZoneID *string `json:"hostedZoneId,omitempty" tf:"hosted_zone_id,omitempty"` + + // A configuration of object lifecycle management + // (documented below). The website object supports the following: + LifecycleRule []LifecycleRuleInitParameters `json:"lifecycleRule,omitempty" tf:"lifecycle_rule,omitempty"` + + // A settings of bucket logging (documented below). + Logging []LoggingInitParameters `json:"logging,omitempty" tf:"logging,omitempty"` + + // A valid bucket policy + // JSON document. + Policy *string `json:"policy,omitempty" tf:"policy,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // A mapping of tags to assign to the bucket. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // A state of versioning (documented below) + Versioning []VersioningInitParameters `json:"versioning,omitempty" tf:"versioning,omitempty"` + + // A website object (documented below). + Website []WebsiteInitParameters `json:"website,omitempty" tf:"website,omitempty"` + + // The domain of the website endpoint, if the bucket is configured with a website. If not, + // this will be an empty string. This is used to create Route 53 alias records. + WebsiteDomain *string `json:"websiteDomain,omitempty" tf:"website_domain,omitempty"` + + // The website endpoint, if the bucket is configured with a website. If not, this will be an empty string. + WebsiteEndpoint *string `json:"websiteEndpoint,omitempty" tf:"website_endpoint,omitempty"` +} + +type BucketObservation struct { + + // The canned ACL + // to apply. Defaults to private. + ACL *string `json:"acl,omitempty" tf:"acl,omitempty"` + + // The ARN of the bucket. Will be of format arn:aws:s3:::bucketname. + Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` + + // The name of the bucket. + Bucket *string `json:"bucket,omitempty" tf:"bucket,omitempty"` + + // The bucket domain name. Will be of format bucketname.s3.amazonaws.com. + BucketDomainName *string `json:"bucketDomainName,omitempty" tf:"bucket_domain_name,omitempty"` + + // Creates a unique bucket name beginning with the specified prefix. + // Conflicts with bucket. + BucketPrefix *string `json:"bucketPrefix,omitempty" tf:"bucket_prefix,omitempty"` + + // A rule of Cross-Origin Resource Sharing (documented below). + CorsRule []CorsRuleObservation `json:"corsRule,omitempty" tf:"cors_rule,omitempty"` + + // A boolean that indicates all objects should be deleted from the bucket + // so that the bucket can be destroyed without error. These objects are not recoverable. + ForceDestroy *bool `json:"forceDestroy,omitempty" tf:"force_destroy,omitempty"` + + // The Route 53 Hosted Zone ID + // for this bucket's region. + HostedZoneID *string `json:"hostedZoneId,omitempty" tf:"hosted_zone_id,omitempty"` + + // Unique identifier for the rule. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // A configuration of object lifecycle management + // (documented below). The website object supports the following: + LifecycleRule []LifecycleRuleObservation `json:"lifecycleRule,omitempty" tf:"lifecycle_rule,omitempty"` + + // A settings of bucket logging (documented below). + Logging []LoggingObservation `json:"logging,omitempty" tf:"logging,omitempty"` + + // A valid bucket policy + // JSON document. + Policy *string `json:"policy,omitempty" tf:"policy,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // A mapping of tags to assign to the bucket. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // A state of versioning (documented below) + Versioning []VersioningObservation `json:"versioning,omitempty" tf:"versioning,omitempty"` + + // A website object (documented below). + Website []WebsiteObservation `json:"website,omitempty" tf:"website,omitempty"` + + // The domain of the website endpoint, if the bucket is configured with a website. If not, + // this will be an empty string. This is used to create Route 53 alias records. + WebsiteDomain *string `json:"websiteDomain,omitempty" tf:"website_domain,omitempty"` + + // The website endpoint, if the bucket is configured with a website. If not, this will be an empty string. + WebsiteEndpoint *string `json:"websiteEndpoint,omitempty" tf:"website_endpoint,omitempty"` +} + +type BucketParameters struct { + + // The canned ACL + // to apply. Defaults to private. + // +kubebuilder:validation:Optional + ACL *string `json:"acl,omitempty" tf:"acl,omitempty"` + + // The ARN of the bucket. Will be of format arn:aws:s3:::bucketname. + // +kubebuilder:validation:Optional + Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` + + // The name of the bucket. + // +kubebuilder:validation:Optional + Bucket *string `json:"bucket,omitempty" tf:"bucket,omitempty"` + + // Creates a unique bucket name beginning with the specified prefix. + // Conflicts with bucket. + // +kubebuilder:validation:Optional + BucketPrefix *string `json:"bucketPrefix,omitempty" tf:"bucket_prefix,omitempty"` + + // A rule of Cross-Origin Resource Sharing (documented below). + // +kubebuilder:validation:Optional + CorsRule []CorsRuleParameters `json:"corsRule,omitempty" tf:"cors_rule,omitempty"` + + // A boolean that indicates all objects should be deleted from the bucket + // so that the bucket can be destroyed without error. These objects are not recoverable. + // +kubebuilder:validation:Optional + ForceDestroy *bool `json:"forceDestroy,omitempty" tf:"force_destroy,omitempty"` + + // The Route 53 Hosted Zone ID + // for this bucket's region. + // +kubebuilder:validation:Optional + HostedZoneID *string `json:"hostedZoneId,omitempty" tf:"hosted_zone_id,omitempty"` + + // A configuration of object lifecycle management + // (documented below). The website object supports the following: + // +kubebuilder:validation:Optional + LifecycleRule []LifecycleRuleParameters `json:"lifecycleRule,omitempty" tf:"lifecycle_rule,omitempty"` + + // A settings of bucket logging (documented below). + // +kubebuilder:validation:Optional + Logging []LoggingParameters `json:"logging,omitempty" tf:"logging,omitempty"` + + // A valid bucket policy + // JSON document. + // +kubebuilder:validation:Optional + Policy *string `json:"policy,omitempty" tf:"policy,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // A mapping of tags to assign to the bucket. + // +kubebuilder:validation:Optional + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // A state of versioning (documented below) + // +kubebuilder:validation:Optional + Versioning []VersioningParameters `json:"versioning,omitempty" tf:"versioning,omitempty"` + + // A website object (documented below). + // +kubebuilder:validation:Optional + Website []WebsiteParameters `json:"website,omitempty" tf:"website,omitempty"` + + // The domain of the website endpoint, if the bucket is configured with a website. If not, + // this will be an empty string. This is used to create Route 53 alias records. + // +kubebuilder:validation:Optional + WebsiteDomain *string `json:"websiteDomain,omitempty" tf:"website_domain,omitempty"` + + // The website endpoint, if the bucket is configured with a website. If not, this will be an empty string. + // +kubebuilder:validation:Optional + WebsiteEndpoint *string `json:"websiteEndpoint,omitempty" tf:"website_endpoint,omitempty"` +} + +type CorsRuleInitParameters struct { + + // Specifies which headers are allowed. + AllowedHeaders []*string `json:"allowedHeaders,omitempty" tf:"allowed_headers,omitempty"` + + // Specifies which methods are allowed. Can be GET, PUT, POST, DELETE or HEAD. + AllowedMethods []*string `json:"allowedMethods,omitempty" tf:"allowed_methods,omitempty"` + + // Specifies which origins are allowed. + AllowedOrigins []*string `json:"allowedOrigins,omitempty" tf:"allowed_origins,omitempty"` + + // Specifies expose header in the response. + ExposeHeaders []*string `json:"exposeHeaders,omitempty" tf:"expose_headers,omitempty"` + + // Specifies time in seconds that browser can cache the response for a preflight request. + MaxAgeSeconds *float64 `json:"maxAgeSeconds,omitempty" tf:"max_age_seconds,omitempty"` +} + +type CorsRuleObservation struct { + + // Specifies which headers are allowed. + AllowedHeaders []*string `json:"allowedHeaders,omitempty" tf:"allowed_headers,omitempty"` + + // Specifies which methods are allowed. Can be GET, PUT, POST, DELETE or HEAD. + AllowedMethods []*string `json:"allowedMethods,omitempty" tf:"allowed_methods,omitempty"` + + // Specifies which origins are allowed. + AllowedOrigins []*string `json:"allowedOrigins,omitempty" tf:"allowed_origins,omitempty"` + + // Specifies expose header in the response. + ExposeHeaders []*string `json:"exposeHeaders,omitempty" tf:"expose_headers,omitempty"` + + // Specifies time in seconds that browser can cache the response for a preflight request. + MaxAgeSeconds *float64 `json:"maxAgeSeconds,omitempty" tf:"max_age_seconds,omitempty"` +} + +type CorsRuleParameters struct { + + // Specifies which headers are allowed. + // +kubebuilder:validation:Optional + AllowedHeaders []*string `json:"allowedHeaders,omitempty" tf:"allowed_headers,omitempty"` + + // Specifies which methods are allowed. Can be GET, PUT, POST, DELETE or HEAD. + // +kubebuilder:validation:Optional + AllowedMethods []*string `json:"allowedMethods" tf:"allowed_methods,omitempty"` + + // Specifies which origins are allowed. + // +kubebuilder:validation:Optional + AllowedOrigins []*string `json:"allowedOrigins" tf:"allowed_origins,omitempty"` + + // Specifies expose header in the response. + // +kubebuilder:validation:Optional + ExposeHeaders []*string `json:"exposeHeaders,omitempty" tf:"expose_headers,omitempty"` + + // Specifies time in seconds that browser can cache the response for a preflight request. + // +kubebuilder:validation:Optional + MaxAgeSeconds *float64 `json:"maxAgeSeconds,omitempty" tf:"max_age_seconds,omitempty"` +} + +type ExpirationInitParameters struct { + + // Specifies the date after which you want the corresponding action to take effect. + Date *string `json:"date,omitempty" tf:"date,omitempty"` + + // Specifies the number of days after object creation when the specific rule action takes effect. + Days *float64 `json:"days,omitempty" tf:"days,omitempty"` + + // On a versioned bucket (versioning-enabled or versioning-suspended bucket), + // you can add this element in the lifecycle configuration to direct Amazon S3 to delete expired object delete markers. + ExpiredObjectDeleteMarker *bool `json:"expiredObjectDeleteMarker,omitempty" tf:"expired_object_delete_marker,omitempty"` +} + +type ExpirationObservation struct { + + // Specifies the date after which you want the corresponding action to take effect. + Date *string `json:"date,omitempty" tf:"date,omitempty"` + + // Specifies the number of days after object creation when the specific rule action takes effect. + Days *float64 `json:"days,omitempty" tf:"days,omitempty"` + + // On a versioned bucket (versioning-enabled or versioning-suspended bucket), + // you can add this element in the lifecycle configuration to direct Amazon S3 to delete expired object delete markers. + ExpiredObjectDeleteMarker *bool `json:"expiredObjectDeleteMarker,omitempty" tf:"expired_object_delete_marker,omitempty"` +} + +type ExpirationParameters struct { + + // Specifies the date after which you want the corresponding action to take effect. + // +kubebuilder:validation:Optional + Date *string `json:"date,omitempty" tf:"date,omitempty"` + + // Specifies the number of days after object creation when the specific rule action takes effect. + // +kubebuilder:validation:Optional + Days *float64 `json:"days,omitempty" tf:"days,omitempty"` + + // On a versioned bucket (versioning-enabled or versioning-suspended bucket), + // you can add this element in the lifecycle configuration to direct Amazon S3 to delete expired object delete markers. + // +kubebuilder:validation:Optional + ExpiredObjectDeleteMarker *bool `json:"expiredObjectDeleteMarker,omitempty" tf:"expired_object_delete_marker,omitempty"` +} + +type LifecycleRuleInitParameters struct { + + // Specifies the number of days after initiating + // a multipart upload when the multipart upload must be completed. + AbortIncompleteMultipartUploadDays *float64 `json:"abortIncompleteMultipartUploadDays,omitempty" tf:"abort_incomplete_multipart_upload_days,omitempty"` + + // Enable versioning. Once you version-enable a bucket, it can never return to an unversioned state. + // You can, however, suspend versioning on that bucket. If omitted, during bucket creation it will be in Disabled state. + Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + + // Specifies a period in the object's expire (documented below). + Expiration []ExpirationInitParameters `json:"expiration,omitempty" tf:"expiration,omitempty"` + + // Unique identifier for the rule. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Specifies when noncurrent object versions expire (documented below). + NoncurrentVersionExpiration []NoncurrentVersionExpirationInitParameters `json:"noncurrentVersionExpiration,omitempty" tf:"noncurrent_version_expiration,omitempty"` + + // Object key prefix identifying one or more objects to which the rule applies. + Prefix *string `json:"prefix,omitempty" tf:"prefix,omitempty"` +} + +type LifecycleRuleObservation struct { + + // Specifies the number of days after initiating + // a multipart upload when the multipart upload must be completed. + AbortIncompleteMultipartUploadDays *float64 `json:"abortIncompleteMultipartUploadDays,omitempty" tf:"abort_incomplete_multipart_upload_days,omitempty"` + + // Enable versioning. Once you version-enable a bucket, it can never return to an unversioned state. + // You can, however, suspend versioning on that bucket. If omitted, during bucket creation it will be in Disabled state. + Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + + // Specifies a period in the object's expire (documented below). + Expiration []ExpirationObservation `json:"expiration,omitempty" tf:"expiration,omitempty"` + + // Unique identifier for the rule. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Specifies when noncurrent object versions expire (documented below). + NoncurrentVersionExpiration []NoncurrentVersionExpirationObservation `json:"noncurrentVersionExpiration,omitempty" tf:"noncurrent_version_expiration,omitempty"` + + // Object key prefix identifying one or more objects to which the rule applies. + Prefix *string `json:"prefix,omitempty" tf:"prefix,omitempty"` +} + +type LifecycleRuleParameters struct { + + // Specifies the number of days after initiating + // a multipart upload when the multipart upload must be completed. + // +kubebuilder:validation:Optional + AbortIncompleteMultipartUploadDays *float64 `json:"abortIncompleteMultipartUploadDays,omitempty" tf:"abort_incomplete_multipart_upload_days,omitempty"` + + // Enable versioning. Once you version-enable a bucket, it can never return to an unversioned state. + // You can, however, suspend versioning on that bucket. If omitted, during bucket creation it will be in Disabled state. + // +kubebuilder:validation:Optional + Enabled *bool `json:"enabled" tf:"enabled,omitempty"` + + // Specifies a period in the object's expire (documented below). + // +kubebuilder:validation:Optional + Expiration []ExpirationParameters `json:"expiration,omitempty" tf:"expiration,omitempty"` + + // Unique identifier for the rule. + // +kubebuilder:validation:Optional + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Specifies when noncurrent object versions expire (documented below). + // +kubebuilder:validation:Optional + NoncurrentVersionExpiration []NoncurrentVersionExpirationParameters `json:"noncurrentVersionExpiration,omitempty" tf:"noncurrent_version_expiration,omitempty"` + + // Object key prefix identifying one or more objects to which the rule applies. + // +kubebuilder:validation:Optional + Prefix *string `json:"prefix,omitempty" tf:"prefix,omitempty"` +} + +type LoggingInitParameters struct { + + // The name of the bucket that will receive the log objects. + TargetBucket *string `json:"targetBucket,omitempty" tf:"target_bucket,omitempty"` + + // To specify a key prefix for log objects. + TargetPrefix *string `json:"targetPrefix,omitempty" tf:"target_prefix,omitempty"` +} + +type LoggingObservation struct { + + // The name of the bucket that will receive the log objects. + TargetBucket *string `json:"targetBucket,omitempty" tf:"target_bucket,omitempty"` + + // To specify a key prefix for log objects. + TargetPrefix *string `json:"targetPrefix,omitempty" tf:"target_prefix,omitempty"` +} + +type LoggingParameters struct { + + // The name of the bucket that will receive the log objects. + // +kubebuilder:validation:Optional + TargetBucket *string `json:"targetBucket" tf:"target_bucket,omitempty"` + + // To specify a key prefix for log objects. + // +kubebuilder:validation:Optional + TargetPrefix *string `json:"targetPrefix,omitempty" tf:"target_prefix,omitempty"` +} + +type NoncurrentVersionExpirationInitParameters struct { + + // Specifies the number of days after object creation when the specific rule action takes effect. + Days *float64 `json:"days,omitempty" tf:"days,omitempty"` +} + +type NoncurrentVersionExpirationObservation struct { + + // Specifies the number of days after object creation when the specific rule action takes effect. + Days *float64 `json:"days,omitempty" tf:"days,omitempty"` +} + +type NoncurrentVersionExpirationParameters struct { + + // Specifies the number of days after object creation when the specific rule action takes effect. + // +kubebuilder:validation:Optional + Days *float64 `json:"days,omitempty" tf:"days,omitempty"` +} + +type VersioningInitParameters struct { + + // Enable versioning. Once you version-enable a bucket, it can never return to an unversioned state. + // You can, however, suspend versioning on that bucket. If omitted, during bucket creation it will be in Disabled state. + Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + + // Enable MFA delete for either Change the versioning state of your bucket or + // Permanently delete an object version. Default is false. + MfaDelete *bool `json:"mfaDelete,omitempty" tf:"mfa_delete,omitempty"` +} + +type VersioningObservation struct { + + // Enable versioning. Once you version-enable a bucket, it can never return to an unversioned state. + // You can, however, suspend versioning on that bucket. If omitted, during bucket creation it will be in Disabled state. + Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + + // Enable MFA delete for either Change the versioning state of your bucket or + // Permanently delete an object version. Default is false. + MfaDelete *bool `json:"mfaDelete,omitempty" tf:"mfa_delete,omitempty"` +} + +type VersioningParameters struct { + + // Enable versioning. Once you version-enable a bucket, it can never return to an unversioned state. + // You can, however, suspend versioning on that bucket. If omitted, during bucket creation it will be in Disabled state. + // +kubebuilder:validation:Optional + Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + + // Enable MFA delete for either Change the versioning state of your bucket or + // Permanently delete an object version. Default is false. + // +kubebuilder:validation:Optional + MfaDelete *bool `json:"mfaDelete,omitempty" tf:"mfa_delete,omitempty"` +} + +type WebsiteInitParameters struct { + + // An absolute path to the document to return in case of a 4XX error. + ErrorDocument *string `json:"errorDocument,omitempty" tf:"error_document,omitempty"` + + // Amazon S3 returns this index document when + // requests are made to the root domain or any of the subfolders. + IndexDocument *string `json:"indexDocument,omitempty" tf:"index_document,omitempty"` + + // A hostname to redirect all website requests for this bucket to. + // Hostname can optionally be prefixed with a protocol (http:// or https://) to use when redirecting + // requests. The default is the protocol that is used in the original request. + RedirectAllRequestsTo *string `json:"redirectAllRequestsTo,omitempty" tf:"redirect_all_requests_to,omitempty"` + + // A json array containing routing rules + // describing redirect behavior and when redirects are applied. + RoutingRules *string `json:"routingRules,omitempty" tf:"routing_rules,omitempty"` +} + +type WebsiteObservation struct { + + // An absolute path to the document to return in case of a 4XX error. + ErrorDocument *string `json:"errorDocument,omitempty" tf:"error_document,omitempty"` + + // Amazon S3 returns this index document when + // requests are made to the root domain or any of the subfolders. + IndexDocument *string `json:"indexDocument,omitempty" tf:"index_document,omitempty"` + + // A hostname to redirect all website requests for this bucket to. + // Hostname can optionally be prefixed with a protocol (http:// or https://) to use when redirecting + // requests. The default is the protocol that is used in the original request. + RedirectAllRequestsTo *string `json:"redirectAllRequestsTo,omitempty" tf:"redirect_all_requests_to,omitempty"` + + // A json array containing routing rules + // describing redirect behavior and when redirects are applied. + RoutingRules *string `json:"routingRules,omitempty" tf:"routing_rules,omitempty"` +} + +type WebsiteParameters struct { + + // An absolute path to the document to return in case of a 4XX error. + // +kubebuilder:validation:Optional + ErrorDocument *string `json:"errorDocument,omitempty" tf:"error_document,omitempty"` + + // Amazon S3 returns this index document when + // requests are made to the root domain or any of the subfolders. + // +kubebuilder:validation:Optional + IndexDocument *string `json:"indexDocument,omitempty" tf:"index_document,omitempty"` + + // A hostname to redirect all website requests for this bucket to. + // Hostname can optionally be prefixed with a protocol (http:// or https://) to use when redirecting + // requests. The default is the protocol that is used in the original request. + // +kubebuilder:validation:Optional + RedirectAllRequestsTo *string `json:"redirectAllRequestsTo,omitempty" tf:"redirect_all_requests_to,omitempty"` + + // A json array containing routing rules + // describing redirect behavior and when redirects are applied. + // +kubebuilder:validation:Optional + RoutingRules *string `json:"routingRules,omitempty" tf:"routing_rules,omitempty"` +} + +// BucketSpec defines the desired state of Bucket +type BucketSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider BucketParameters `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 BucketInitParameters `json:"initProvider,omitempty"` +} + +// BucketStatus defines the observed state of Bucket. +type BucketStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider BucketObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// Bucket is the Schema for the Buckets API. Manages an S3 Bucket resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type Bucket struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec BucketSpec `json:"spec"` + Status BucketStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// BucketList contains a list of Buckets +type BucketList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []Bucket `json:"items"` +} + +// Repository type metadata. +var ( + Bucket_Kind = "Bucket" + Bucket_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: Bucket_Kind}.String() + Bucket_KindAPIVersion = Bucket_Kind + "." + CRDGroupVersion.String() + Bucket_GroupVersionKind = CRDGroupVersion.WithKind(Bucket_Kind) +) + +func init() { + SchemeBuilder.Register(&Bucket{}, &BucketList{}) +} diff --git a/apis/s3/v1alpha1/zz_bucketobject_types.go b/apis/s3/v1alpha1/zz_bucketobject_types.go new file mode 100755 index 0000000..2d99335 --- /dev/null +++ b/apis/s3/v1alpha1/zz_bucketobject_types.go @@ -0,0 +1,244 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 BucketObjectInitParameters struct { + + // The canned ACL to apply. Defaults to "private". + ACL *string `json:"acl,omitempty" tf:"acl,omitempty"` + + // The name of the bucket to put the file in. + Bucket *string `json:"bucket,omitempty" tf:"bucket,omitempty"` + + // Specifies caching behavior along the request/reply chain. + // Read w3c cache_control for further details. + CacheControl *string `json:"cacheControl,omitempty" tf:"cache_control,omitempty"` + + // The literal content being uploaded to the bucket. + Content *string `json:"content,omitempty" tf:"content,omitempty"` + + // Specifies presentational information for the object. + // Read wc3 content_disposition for further information. + ContentDisposition *string `json:"contentDisposition,omitempty" tf:"content_disposition,omitempty"` + + // Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. Read w3c content encoding for further information. + ContentEncoding *string `json:"contentEncoding,omitempty" tf:"content_encoding,omitempty"` + + // The language the content is in e.g. en-US or en-GB. + ContentLanguage *string `json:"contentLanguage,omitempty" tf:"content_language,omitempty"` + + // A standard MIME type describing the format of the object data, e.g. application/octet-stream. All Valid MIME Types are valid for this input. + ContentType *string `json:"contentType,omitempty" tf:"content_type,omitempty"` + + // Used to trigger updates. The only meaningful value is ${md5(file("path/to/file"))}. + // This attribute is not compatible with kms_key_id. + Etag *string `json:"etag,omitempty" tf:"etag,omitempty"` + + // The name of the object once it is in the bucket. + Key *string `json:"key,omitempty" tf:"key,omitempty"` + + // Specifies server-side encryption of the object in S3. Valid values are "AES256" and "aws:kms". + ServerSideEncryption *string `json:"serverSideEncryption,omitempty" tf:"server_side_encryption,omitempty"` + + // The path to the source file being uploaded to the bucket. + Source *string `json:"source,omitempty" tf:"source,omitempty"` + + // the key of the resource supplied above + SseKMSKeyID *string `json:"sseKmsKeyId,omitempty" tf:"sse_kms_key_id,omitempty"` + + // Specifies a target URL for website redirect. + WebsiteRedirect *string `json:"websiteRedirect,omitempty" tf:"website_redirect,omitempty"` +} + +type BucketObjectObservation struct { + + // The canned ACL to apply. Defaults to "private". + ACL *string `json:"acl,omitempty" tf:"acl,omitempty"` + + // The name of the bucket to put the file in. + Bucket *string `json:"bucket,omitempty" tf:"bucket,omitempty"` + + // Specifies caching behavior along the request/reply chain. + // Read w3c cache_control for further details. + CacheControl *string `json:"cacheControl,omitempty" tf:"cache_control,omitempty"` + + // The literal content being uploaded to the bucket. + Content *string `json:"content,omitempty" tf:"content,omitempty"` + + // Specifies presentational information for the object. + // Read wc3 content_disposition for further information. + ContentDisposition *string `json:"contentDisposition,omitempty" tf:"content_disposition,omitempty"` + + // Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. Read w3c content encoding for further information. + ContentEncoding *string `json:"contentEncoding,omitempty" tf:"content_encoding,omitempty"` + + // The language the content is in e.g. en-US or en-GB. + ContentLanguage *string `json:"contentLanguage,omitempty" tf:"content_language,omitempty"` + + // A standard MIME type describing the format of the object data, e.g. application/octet-stream. All Valid MIME Types are valid for this input. + ContentType *string `json:"contentType,omitempty" tf:"content_type,omitempty"` + + // Used to trigger updates. The only meaningful value is ${md5(file("path/to/file"))}. + // This attribute is not compatible with kms_key_id. + Etag *string `json:"etag,omitempty" tf:"etag,omitempty"` + + // the key of the resource supplied above + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The name of the object once it is in the bucket. + Key *string `json:"key,omitempty" tf:"key,omitempty"` + + // Specifies server-side encryption of the object in S3. Valid values are "AES256" and "aws:kms". + ServerSideEncryption *string `json:"serverSideEncryption,omitempty" tf:"server_side_encryption,omitempty"` + + // The path to the source file being uploaded to the bucket. + Source *string `json:"source,omitempty" tf:"source,omitempty"` + + // the key of the resource supplied above + SseKMSKeyID *string `json:"sseKmsKeyId,omitempty" tf:"sse_kms_key_id,omitempty"` + + // A unique version ID value for the object, if bucket versioning is enabled. + VersionID *string `json:"versionId,omitempty" tf:"version_id,omitempty"` + + // Specifies a target URL for website redirect. + WebsiteRedirect *string `json:"websiteRedirect,omitempty" tf:"website_redirect,omitempty"` +} + +type BucketObjectParameters struct { + + // The canned ACL to apply. Defaults to "private". + // +kubebuilder:validation:Optional + ACL *string `json:"acl,omitempty" tf:"acl,omitempty"` + + // The name of the bucket to put the file in. + // +kubebuilder:validation:Optional + Bucket *string `json:"bucket,omitempty" tf:"bucket,omitempty"` + + // Specifies caching behavior along the request/reply chain. + // Read w3c cache_control for further details. + // +kubebuilder:validation:Optional + CacheControl *string `json:"cacheControl,omitempty" tf:"cache_control,omitempty"` + + // The literal content being uploaded to the bucket. + // +kubebuilder:validation:Optional + Content *string `json:"content,omitempty" tf:"content,omitempty"` + + // Specifies presentational information for the object. + // Read wc3 content_disposition for further information. + // +kubebuilder:validation:Optional + ContentDisposition *string `json:"contentDisposition,omitempty" tf:"content_disposition,omitempty"` + + // Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. Read w3c content encoding for further information. + // +kubebuilder:validation:Optional + ContentEncoding *string `json:"contentEncoding,omitempty" tf:"content_encoding,omitempty"` + + // The language the content is in e.g. en-US or en-GB. + // +kubebuilder:validation:Optional + ContentLanguage *string `json:"contentLanguage,omitempty" tf:"content_language,omitempty"` + + // A standard MIME type describing the format of the object data, e.g. application/octet-stream. All Valid MIME Types are valid for this input. + // +kubebuilder:validation:Optional + ContentType *string `json:"contentType,omitempty" tf:"content_type,omitempty"` + + // Used to trigger updates. The only meaningful value is ${md5(file("path/to/file"))}. + // This attribute is not compatible with kms_key_id. + // +kubebuilder:validation:Optional + Etag *string `json:"etag,omitempty" tf:"etag,omitempty"` + + // The name of the object once it is in the bucket. + // +kubebuilder:validation:Optional + Key *string `json:"key,omitempty" tf:"key,omitempty"` + + // Specifies server-side encryption of the object in S3. Valid values are "AES256" and "aws:kms". + // +kubebuilder:validation:Optional + ServerSideEncryption *string `json:"serverSideEncryption,omitempty" tf:"server_side_encryption,omitempty"` + + // The path to the source file being uploaded to the bucket. + // +kubebuilder:validation:Optional + Source *string `json:"source,omitempty" tf:"source,omitempty"` + + // the key of the resource supplied above + // +kubebuilder:validation:Optional + SseKMSKeyID *string `json:"sseKmsKeyId,omitempty" tf:"sse_kms_key_id,omitempty"` + + // Specifies a target URL for website redirect. + // +kubebuilder:validation:Optional + WebsiteRedirect *string `json:"websiteRedirect,omitempty" tf:"website_redirect,omitempty"` +} + +// BucketObjectSpec defines the desired state of BucketObject +type BucketObjectSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider BucketObjectParameters `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 BucketObjectInitParameters `json:"initProvider,omitempty"` +} + +// BucketObjectStatus defines the observed state of BucketObject. +type BucketObjectStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider BucketObjectObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// BucketObject is the Schema for the BucketObjects API. Manages an S3 Bucket Object resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type BucketObject 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.bucket) || (has(self.initProvider) && has(self.initProvider.bucket))",message="spec.forProvider.bucket is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.key) || (has(self.initProvider) && has(self.initProvider.key))",message="spec.forProvider.key is a required parameter" + Spec BucketObjectSpec `json:"spec"` + Status BucketObjectStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// BucketObjectList contains a list of BucketObjects +type BucketObjectList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []BucketObject `json:"items"` +} + +// Repository type metadata. +var ( + BucketObject_Kind = "BucketObject" + BucketObject_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: BucketObject_Kind}.String() + BucketObject_KindAPIVersion = BucketObject_Kind + "." + CRDGroupVersion.String() + BucketObject_GroupVersionKind = CRDGroupVersion.WithKind(BucketObject_Kind) +) + +func init() { + SchemeBuilder.Register(&BucketObject{}, &BucketObjectList{}) +} diff --git a/apis/s3/v1alpha1/zz_bucketpolicy_types.go b/apis/s3/v1alpha1/zz_bucketpolicy_types.go new file mode 100755 index 0000000..68a9fa9 --- /dev/null +++ b/apis/s3/v1alpha1/zz_bucketpolicy_types.go @@ -0,0 +1,111 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 BucketPolicyInitParameters struct { + + // The name of the bucket to which to apply the policy. + Bucket *string `json:"bucket,omitempty" tf:"bucket,omitempty"` + + // The text of the policy. + Policy *string `json:"policy,omitempty" tf:"policy,omitempty"` +} + +type BucketPolicyObservation struct { + + // The name of the bucket to which to apply the policy. + Bucket *string `json:"bucket,omitempty" tf:"bucket,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The text of the policy. + Policy *string `json:"policy,omitempty" tf:"policy,omitempty"` +} + +type BucketPolicyParameters struct { + + // The name of the bucket to which to apply the policy. + // +kubebuilder:validation:Optional + Bucket *string `json:"bucket,omitempty" tf:"bucket,omitempty"` + + // The text of the policy. + // +kubebuilder:validation:Optional + Policy *string `json:"policy,omitempty" tf:"policy,omitempty"` +} + +// BucketPolicySpec defines the desired state of BucketPolicy +type BucketPolicySpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider BucketPolicyParameters `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 BucketPolicyInitParameters `json:"initProvider,omitempty"` +} + +// BucketPolicyStatus defines the observed state of BucketPolicy. +type BucketPolicyStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider BucketPolicyObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// BucketPolicy is the Schema for the BucketPolicys API. Manages an S3 Bucket Policy resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type BucketPolicy 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.bucket) || (has(self.initProvider) && has(self.initProvider.bucket))",message="spec.forProvider.bucket is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.policy) || (has(self.initProvider) && has(self.initProvider.policy))",message="spec.forProvider.policy is a required parameter" + Spec BucketPolicySpec `json:"spec"` + Status BucketPolicyStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// BucketPolicyList contains a list of BucketPolicys +type BucketPolicyList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []BucketPolicy `json:"items"` +} + +// Repository type metadata. +var ( + BucketPolicy_Kind = "BucketPolicy" + BucketPolicy_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: BucketPolicy_Kind}.String() + BucketPolicy_KindAPIVersion = BucketPolicy_Kind + "." + CRDGroupVersion.String() + BucketPolicy_GroupVersionKind = CRDGroupVersion.WithKind(BucketPolicy_Kind) +) + +func init() { + SchemeBuilder.Register(&BucketPolicy{}, &BucketPolicyList{}) +} diff --git a/apis/s3/v1alpha1/zz_generated.deepcopy.go b/apis/s3/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..7f7f983 --- /dev/null +++ b/apis/s3/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,1742 @@ +//go:build !ignore_autogenerated + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by controller-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + 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 *Bucket) DeepCopyInto(out *Bucket) { + *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 Bucket. +func (in *Bucket) DeepCopy() *Bucket { + if in == nil { + return nil + } + out := new(Bucket) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Bucket) 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 *BucketInitParameters) DeepCopyInto(out *BucketInitParameters) { + *out = *in + if in.ACL != nil { + in, out := &in.ACL, &out.ACL + *out = new(string) + **out = **in + } + if in.Arn != nil { + in, out := &in.Arn, &out.Arn + *out = new(string) + **out = **in + } + if in.Bucket != nil { + in, out := &in.Bucket, &out.Bucket + *out = new(string) + **out = **in + } + if in.BucketPrefix != nil { + in, out := &in.BucketPrefix, &out.BucketPrefix + *out = new(string) + **out = **in + } + if in.CorsRule != nil { + in, out := &in.CorsRule, &out.CorsRule + *out = make([]CorsRuleInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ForceDestroy != nil { + in, out := &in.ForceDestroy, &out.ForceDestroy + *out = new(bool) + **out = **in + } + if in.HostedZoneID != nil { + in, out := &in.HostedZoneID, &out.HostedZoneID + *out = new(string) + **out = **in + } + if in.LifecycleRule != nil { + in, out := &in.LifecycleRule, &out.LifecycleRule + *out = make([]LifecycleRuleInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Logging != nil { + in, out := &in.Logging, &out.Logging + *out = make([]LoggingInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Policy != nil { + in, out := &in.Policy, &out.Policy + *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.Versioning != nil { + in, out := &in.Versioning, &out.Versioning + *out = make([]VersioningInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Website != nil { + in, out := &in.Website, &out.Website + *out = make([]WebsiteInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.WebsiteDomain != nil { + in, out := &in.WebsiteDomain, &out.WebsiteDomain + *out = new(string) + **out = **in + } + if in.WebsiteEndpoint != nil { + in, out := &in.WebsiteEndpoint, &out.WebsiteEndpoint + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketInitParameters. +func (in *BucketInitParameters) DeepCopy() *BucketInitParameters { + if in == nil { + return nil + } + out := new(BucketInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BucketList) DeepCopyInto(out *BucketList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Bucket, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketList. +func (in *BucketList) DeepCopy() *BucketList { + if in == nil { + return nil + } + out := new(BucketList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *BucketList) 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 *BucketObject) DeepCopyInto(out *BucketObject) { + *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 BucketObject. +func (in *BucketObject) DeepCopy() *BucketObject { + if in == nil { + return nil + } + out := new(BucketObject) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *BucketObject) 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 *BucketObjectInitParameters) DeepCopyInto(out *BucketObjectInitParameters) { + *out = *in + if in.ACL != nil { + in, out := &in.ACL, &out.ACL + *out = new(string) + **out = **in + } + if in.Bucket != nil { + in, out := &in.Bucket, &out.Bucket + *out = new(string) + **out = **in + } + if in.CacheControl != nil { + in, out := &in.CacheControl, &out.CacheControl + *out = new(string) + **out = **in + } + if in.Content != nil { + in, out := &in.Content, &out.Content + *out = new(string) + **out = **in + } + if in.ContentDisposition != nil { + in, out := &in.ContentDisposition, &out.ContentDisposition + *out = new(string) + **out = **in + } + if in.ContentEncoding != nil { + in, out := &in.ContentEncoding, &out.ContentEncoding + *out = new(string) + **out = **in + } + if in.ContentLanguage != nil { + in, out := &in.ContentLanguage, &out.ContentLanguage + *out = new(string) + **out = **in + } + if in.ContentType != nil { + in, out := &in.ContentType, &out.ContentType + *out = new(string) + **out = **in + } + if in.Etag != nil { + in, out := &in.Etag, &out.Etag + *out = new(string) + **out = **in + } + if in.Key != nil { + in, out := &in.Key, &out.Key + *out = new(string) + **out = **in + } + if in.ServerSideEncryption != nil { + in, out := &in.ServerSideEncryption, &out.ServerSideEncryption + *out = new(string) + **out = **in + } + if in.Source != nil { + in, out := &in.Source, &out.Source + *out = new(string) + **out = **in + } + if in.SseKMSKeyID != nil { + in, out := &in.SseKMSKeyID, &out.SseKMSKeyID + *out = new(string) + **out = **in + } + if in.WebsiteRedirect != nil { + in, out := &in.WebsiteRedirect, &out.WebsiteRedirect + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketObjectInitParameters. +func (in *BucketObjectInitParameters) DeepCopy() *BucketObjectInitParameters { + if in == nil { + return nil + } + out := new(BucketObjectInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BucketObjectList) DeepCopyInto(out *BucketObjectList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]BucketObject, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketObjectList. +func (in *BucketObjectList) DeepCopy() *BucketObjectList { + if in == nil { + return nil + } + out := new(BucketObjectList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *BucketObjectList) 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 *BucketObjectObservation) DeepCopyInto(out *BucketObjectObservation) { + *out = *in + if in.ACL != nil { + in, out := &in.ACL, &out.ACL + *out = new(string) + **out = **in + } + if in.Bucket != nil { + in, out := &in.Bucket, &out.Bucket + *out = new(string) + **out = **in + } + if in.CacheControl != nil { + in, out := &in.CacheControl, &out.CacheControl + *out = new(string) + **out = **in + } + if in.Content != nil { + in, out := &in.Content, &out.Content + *out = new(string) + **out = **in + } + if in.ContentDisposition != nil { + in, out := &in.ContentDisposition, &out.ContentDisposition + *out = new(string) + **out = **in + } + if in.ContentEncoding != nil { + in, out := &in.ContentEncoding, &out.ContentEncoding + *out = new(string) + **out = **in + } + if in.ContentLanguage != nil { + in, out := &in.ContentLanguage, &out.ContentLanguage + *out = new(string) + **out = **in + } + if in.ContentType != nil { + in, out := &in.ContentType, &out.ContentType + *out = new(string) + **out = **in + } + if in.Etag != nil { + in, out := &in.Etag, &out.Etag + *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.ServerSideEncryption != nil { + in, out := &in.ServerSideEncryption, &out.ServerSideEncryption + *out = new(string) + **out = **in + } + if in.Source != nil { + in, out := &in.Source, &out.Source + *out = new(string) + **out = **in + } + if in.SseKMSKeyID != nil { + in, out := &in.SseKMSKeyID, &out.SseKMSKeyID + *out = new(string) + **out = **in + } + if in.VersionID != nil { + in, out := &in.VersionID, &out.VersionID + *out = new(string) + **out = **in + } + if in.WebsiteRedirect != nil { + in, out := &in.WebsiteRedirect, &out.WebsiteRedirect + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketObjectObservation. +func (in *BucketObjectObservation) DeepCopy() *BucketObjectObservation { + if in == nil { + return nil + } + out := new(BucketObjectObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BucketObjectParameters) DeepCopyInto(out *BucketObjectParameters) { + *out = *in + if in.ACL != nil { + in, out := &in.ACL, &out.ACL + *out = new(string) + **out = **in + } + if in.Bucket != nil { + in, out := &in.Bucket, &out.Bucket + *out = new(string) + **out = **in + } + if in.CacheControl != nil { + in, out := &in.CacheControl, &out.CacheControl + *out = new(string) + **out = **in + } + if in.Content != nil { + in, out := &in.Content, &out.Content + *out = new(string) + **out = **in + } + if in.ContentDisposition != nil { + in, out := &in.ContentDisposition, &out.ContentDisposition + *out = new(string) + **out = **in + } + if in.ContentEncoding != nil { + in, out := &in.ContentEncoding, &out.ContentEncoding + *out = new(string) + **out = **in + } + if in.ContentLanguage != nil { + in, out := &in.ContentLanguage, &out.ContentLanguage + *out = new(string) + **out = **in + } + if in.ContentType != nil { + in, out := &in.ContentType, &out.ContentType + *out = new(string) + **out = **in + } + if in.Etag != nil { + in, out := &in.Etag, &out.Etag + *out = new(string) + **out = **in + } + if in.Key != nil { + in, out := &in.Key, &out.Key + *out = new(string) + **out = **in + } + if in.ServerSideEncryption != nil { + in, out := &in.ServerSideEncryption, &out.ServerSideEncryption + *out = new(string) + **out = **in + } + if in.Source != nil { + in, out := &in.Source, &out.Source + *out = new(string) + **out = **in + } + if in.SseKMSKeyID != nil { + in, out := &in.SseKMSKeyID, &out.SseKMSKeyID + *out = new(string) + **out = **in + } + if in.WebsiteRedirect != nil { + in, out := &in.WebsiteRedirect, &out.WebsiteRedirect + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketObjectParameters. +func (in *BucketObjectParameters) DeepCopy() *BucketObjectParameters { + if in == nil { + return nil + } + out := new(BucketObjectParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BucketObjectSpec) DeepCopyInto(out *BucketObjectSpec) { + *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 BucketObjectSpec. +func (in *BucketObjectSpec) DeepCopy() *BucketObjectSpec { + if in == nil { + return nil + } + out := new(BucketObjectSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BucketObjectStatus) DeepCopyInto(out *BucketObjectStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketObjectStatus. +func (in *BucketObjectStatus) DeepCopy() *BucketObjectStatus { + if in == nil { + return nil + } + out := new(BucketObjectStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BucketObservation) DeepCopyInto(out *BucketObservation) { + *out = *in + if in.ACL != nil { + in, out := &in.ACL, &out.ACL + *out = new(string) + **out = **in + } + if in.Arn != nil { + in, out := &in.Arn, &out.Arn + *out = new(string) + **out = **in + } + if in.Bucket != nil { + in, out := &in.Bucket, &out.Bucket + *out = new(string) + **out = **in + } + if in.BucketDomainName != nil { + in, out := &in.BucketDomainName, &out.BucketDomainName + *out = new(string) + **out = **in + } + if in.BucketPrefix != nil { + in, out := &in.BucketPrefix, &out.BucketPrefix + *out = new(string) + **out = **in + } + if in.CorsRule != nil { + in, out := &in.CorsRule, &out.CorsRule + *out = make([]CorsRuleObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ForceDestroy != nil { + in, out := &in.ForceDestroy, &out.ForceDestroy + *out = new(bool) + **out = **in + } + if in.HostedZoneID != nil { + in, out := &in.HostedZoneID, &out.HostedZoneID + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.LifecycleRule != nil { + in, out := &in.LifecycleRule, &out.LifecycleRule + *out = make([]LifecycleRuleObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Logging != nil { + in, out := &in.Logging, &out.Logging + *out = make([]LoggingObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Policy != nil { + in, out := &in.Policy, &out.Policy + *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.Versioning != nil { + in, out := &in.Versioning, &out.Versioning + *out = make([]VersioningObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Website != nil { + in, out := &in.Website, &out.Website + *out = make([]WebsiteObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.WebsiteDomain != nil { + in, out := &in.WebsiteDomain, &out.WebsiteDomain + *out = new(string) + **out = **in + } + if in.WebsiteEndpoint != nil { + in, out := &in.WebsiteEndpoint, &out.WebsiteEndpoint + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketObservation. +func (in *BucketObservation) DeepCopy() *BucketObservation { + if in == nil { + return nil + } + out := new(BucketObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BucketParameters) DeepCopyInto(out *BucketParameters) { + *out = *in + if in.ACL != nil { + in, out := &in.ACL, &out.ACL + *out = new(string) + **out = **in + } + if in.Arn != nil { + in, out := &in.Arn, &out.Arn + *out = new(string) + **out = **in + } + if in.Bucket != nil { + in, out := &in.Bucket, &out.Bucket + *out = new(string) + **out = **in + } + if in.BucketPrefix != nil { + in, out := &in.BucketPrefix, &out.BucketPrefix + *out = new(string) + **out = **in + } + if in.CorsRule != nil { + in, out := &in.CorsRule, &out.CorsRule + *out = make([]CorsRuleParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ForceDestroy != nil { + in, out := &in.ForceDestroy, &out.ForceDestroy + *out = new(bool) + **out = **in + } + if in.HostedZoneID != nil { + in, out := &in.HostedZoneID, &out.HostedZoneID + *out = new(string) + **out = **in + } + if in.LifecycleRule != nil { + in, out := &in.LifecycleRule, &out.LifecycleRule + *out = make([]LifecycleRuleParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Logging != nil { + in, out := &in.Logging, &out.Logging + *out = make([]LoggingParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Policy != nil { + in, out := &in.Policy, &out.Policy + *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.Versioning != nil { + in, out := &in.Versioning, &out.Versioning + *out = make([]VersioningParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Website != nil { + in, out := &in.Website, &out.Website + *out = make([]WebsiteParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.WebsiteDomain != nil { + in, out := &in.WebsiteDomain, &out.WebsiteDomain + *out = new(string) + **out = **in + } + if in.WebsiteEndpoint != nil { + in, out := &in.WebsiteEndpoint, &out.WebsiteEndpoint + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketParameters. +func (in *BucketParameters) DeepCopy() *BucketParameters { + if in == nil { + return nil + } + out := new(BucketParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BucketPolicy) DeepCopyInto(out *BucketPolicy) { + *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 BucketPolicy. +func (in *BucketPolicy) DeepCopy() *BucketPolicy { + if in == nil { + return nil + } + out := new(BucketPolicy) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *BucketPolicy) 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 *BucketPolicyInitParameters) DeepCopyInto(out *BucketPolicyInitParameters) { + *out = *in + if in.Bucket != nil { + in, out := &in.Bucket, &out.Bucket + *out = new(string) + **out = **in + } + if in.Policy != nil { + in, out := &in.Policy, &out.Policy + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketPolicyInitParameters. +func (in *BucketPolicyInitParameters) DeepCopy() *BucketPolicyInitParameters { + if in == nil { + return nil + } + out := new(BucketPolicyInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BucketPolicyList) DeepCopyInto(out *BucketPolicyList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]BucketPolicy, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketPolicyList. +func (in *BucketPolicyList) DeepCopy() *BucketPolicyList { + if in == nil { + return nil + } + out := new(BucketPolicyList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *BucketPolicyList) 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 *BucketPolicyObservation) DeepCopyInto(out *BucketPolicyObservation) { + *out = *in + if in.Bucket != nil { + in, out := &in.Bucket, &out.Bucket + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Policy != nil { + in, out := &in.Policy, &out.Policy + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketPolicyObservation. +func (in *BucketPolicyObservation) DeepCopy() *BucketPolicyObservation { + if in == nil { + return nil + } + out := new(BucketPolicyObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BucketPolicyParameters) DeepCopyInto(out *BucketPolicyParameters) { + *out = *in + if in.Bucket != nil { + in, out := &in.Bucket, &out.Bucket + *out = new(string) + **out = **in + } + if in.Policy != nil { + in, out := &in.Policy, &out.Policy + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketPolicyParameters. +func (in *BucketPolicyParameters) DeepCopy() *BucketPolicyParameters { + if in == nil { + return nil + } + out := new(BucketPolicyParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BucketPolicySpec) DeepCopyInto(out *BucketPolicySpec) { + *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 BucketPolicySpec. +func (in *BucketPolicySpec) DeepCopy() *BucketPolicySpec { + if in == nil { + return nil + } + out := new(BucketPolicySpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BucketPolicyStatus) DeepCopyInto(out *BucketPolicyStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketPolicyStatus. +func (in *BucketPolicyStatus) DeepCopy() *BucketPolicyStatus { + if in == nil { + return nil + } + out := new(BucketPolicyStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BucketSpec) DeepCopyInto(out *BucketSpec) { + *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 BucketSpec. +func (in *BucketSpec) DeepCopy() *BucketSpec { + if in == nil { + return nil + } + out := new(BucketSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BucketStatus) DeepCopyInto(out *BucketStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BucketStatus. +func (in *BucketStatus) DeepCopy() *BucketStatus { + if in == nil { + return nil + } + out := new(BucketStatus) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CorsRuleInitParameters) DeepCopyInto(out *CorsRuleInitParameters) { + *out = *in + if in.AllowedHeaders != nil { + in, out := &in.AllowedHeaders, &out.AllowedHeaders + *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.AllowedMethods != nil { + in, out := &in.AllowedMethods, &out.AllowedMethods + *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.AllowedOrigins != nil { + in, out := &in.AllowedOrigins, &out.AllowedOrigins + *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.ExposeHeaders != nil { + in, out := &in.ExposeHeaders, &out.ExposeHeaders + *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.MaxAgeSeconds != nil { + in, out := &in.MaxAgeSeconds, &out.MaxAgeSeconds + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CorsRuleInitParameters. +func (in *CorsRuleInitParameters) DeepCopy() *CorsRuleInitParameters { + if in == nil { + return nil + } + out := new(CorsRuleInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CorsRuleObservation) DeepCopyInto(out *CorsRuleObservation) { + *out = *in + if in.AllowedHeaders != nil { + in, out := &in.AllowedHeaders, &out.AllowedHeaders + *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.AllowedMethods != nil { + in, out := &in.AllowedMethods, &out.AllowedMethods + *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.AllowedOrigins != nil { + in, out := &in.AllowedOrigins, &out.AllowedOrigins + *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.ExposeHeaders != nil { + in, out := &in.ExposeHeaders, &out.ExposeHeaders + *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.MaxAgeSeconds != nil { + in, out := &in.MaxAgeSeconds, &out.MaxAgeSeconds + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CorsRuleObservation. +func (in *CorsRuleObservation) DeepCopy() *CorsRuleObservation { + if in == nil { + return nil + } + out := new(CorsRuleObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CorsRuleParameters) DeepCopyInto(out *CorsRuleParameters) { + *out = *in + if in.AllowedHeaders != nil { + in, out := &in.AllowedHeaders, &out.AllowedHeaders + *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.AllowedMethods != nil { + in, out := &in.AllowedMethods, &out.AllowedMethods + *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.AllowedOrigins != nil { + in, out := &in.AllowedOrigins, &out.AllowedOrigins + *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.ExposeHeaders != nil { + in, out := &in.ExposeHeaders, &out.ExposeHeaders + *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.MaxAgeSeconds != nil { + in, out := &in.MaxAgeSeconds, &out.MaxAgeSeconds + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CorsRuleParameters. +func (in *CorsRuleParameters) DeepCopy() *CorsRuleParameters { + if in == nil { + return nil + } + out := new(CorsRuleParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExpirationInitParameters) DeepCopyInto(out *ExpirationInitParameters) { + *out = *in + if in.Date != nil { + in, out := &in.Date, &out.Date + *out = new(string) + **out = **in + } + if in.Days != nil { + in, out := &in.Days, &out.Days + *out = new(float64) + **out = **in + } + if in.ExpiredObjectDeleteMarker != nil { + in, out := &in.ExpiredObjectDeleteMarker, &out.ExpiredObjectDeleteMarker + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExpirationInitParameters. +func (in *ExpirationInitParameters) DeepCopy() *ExpirationInitParameters { + if in == nil { + return nil + } + out := new(ExpirationInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExpirationObservation) DeepCopyInto(out *ExpirationObservation) { + *out = *in + if in.Date != nil { + in, out := &in.Date, &out.Date + *out = new(string) + **out = **in + } + if in.Days != nil { + in, out := &in.Days, &out.Days + *out = new(float64) + **out = **in + } + if in.ExpiredObjectDeleteMarker != nil { + in, out := &in.ExpiredObjectDeleteMarker, &out.ExpiredObjectDeleteMarker + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExpirationObservation. +func (in *ExpirationObservation) DeepCopy() *ExpirationObservation { + if in == nil { + return nil + } + out := new(ExpirationObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ExpirationParameters) DeepCopyInto(out *ExpirationParameters) { + *out = *in + if in.Date != nil { + in, out := &in.Date, &out.Date + *out = new(string) + **out = **in + } + if in.Days != nil { + in, out := &in.Days, &out.Days + *out = new(float64) + **out = **in + } + if in.ExpiredObjectDeleteMarker != nil { + in, out := &in.ExpiredObjectDeleteMarker, &out.ExpiredObjectDeleteMarker + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ExpirationParameters. +func (in *ExpirationParameters) DeepCopy() *ExpirationParameters { + if in == nil { + return nil + } + out := new(ExpirationParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LifecycleRuleInitParameters) DeepCopyInto(out *LifecycleRuleInitParameters) { + *out = *in + if in.AbortIncompleteMultipartUploadDays != nil { + in, out := &in.AbortIncompleteMultipartUploadDays, &out.AbortIncompleteMultipartUploadDays + *out = new(float64) + **out = **in + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.Expiration != nil { + in, out := &in.Expiration, &out.Expiration + *out = make([]ExpirationInitParameters, 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.NoncurrentVersionExpiration != nil { + in, out := &in.NoncurrentVersionExpiration, &out.NoncurrentVersionExpiration + *out = make([]NoncurrentVersionExpirationInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Prefix != nil { + in, out := &in.Prefix, &out.Prefix + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LifecycleRuleInitParameters. +func (in *LifecycleRuleInitParameters) DeepCopy() *LifecycleRuleInitParameters { + if in == nil { + return nil + } + out := new(LifecycleRuleInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LifecycleRuleObservation) DeepCopyInto(out *LifecycleRuleObservation) { + *out = *in + if in.AbortIncompleteMultipartUploadDays != nil { + in, out := &in.AbortIncompleteMultipartUploadDays, &out.AbortIncompleteMultipartUploadDays + *out = new(float64) + **out = **in + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.Expiration != nil { + in, out := &in.Expiration, &out.Expiration + *out = make([]ExpirationObservation, 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.NoncurrentVersionExpiration != nil { + in, out := &in.NoncurrentVersionExpiration, &out.NoncurrentVersionExpiration + *out = make([]NoncurrentVersionExpirationObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Prefix != nil { + in, out := &in.Prefix, &out.Prefix + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LifecycleRuleObservation. +func (in *LifecycleRuleObservation) DeepCopy() *LifecycleRuleObservation { + if in == nil { + return nil + } + out := new(LifecycleRuleObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LifecycleRuleParameters) DeepCopyInto(out *LifecycleRuleParameters) { + *out = *in + if in.AbortIncompleteMultipartUploadDays != nil { + in, out := &in.AbortIncompleteMultipartUploadDays, &out.AbortIncompleteMultipartUploadDays + *out = new(float64) + **out = **in + } + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.Expiration != nil { + in, out := &in.Expiration, &out.Expiration + *out = make([]ExpirationParameters, 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.NoncurrentVersionExpiration != nil { + in, out := &in.NoncurrentVersionExpiration, &out.NoncurrentVersionExpiration + *out = make([]NoncurrentVersionExpirationParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Prefix != nil { + in, out := &in.Prefix, &out.Prefix + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LifecycleRuleParameters. +func (in *LifecycleRuleParameters) DeepCopy() *LifecycleRuleParameters { + if in == nil { + return nil + } + out := new(LifecycleRuleParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LoggingInitParameters) DeepCopyInto(out *LoggingInitParameters) { + *out = *in + if in.TargetBucket != nil { + in, out := &in.TargetBucket, &out.TargetBucket + *out = new(string) + **out = **in + } + if in.TargetPrefix != nil { + in, out := &in.TargetPrefix, &out.TargetPrefix + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoggingInitParameters. +func (in *LoggingInitParameters) DeepCopy() *LoggingInitParameters { + if in == nil { + return nil + } + out := new(LoggingInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LoggingObservation) DeepCopyInto(out *LoggingObservation) { + *out = *in + if in.TargetBucket != nil { + in, out := &in.TargetBucket, &out.TargetBucket + *out = new(string) + **out = **in + } + if in.TargetPrefix != nil { + in, out := &in.TargetPrefix, &out.TargetPrefix + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoggingObservation. +func (in *LoggingObservation) DeepCopy() *LoggingObservation { + if in == nil { + return nil + } + out := new(LoggingObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LoggingParameters) DeepCopyInto(out *LoggingParameters) { + *out = *in + if in.TargetBucket != nil { + in, out := &in.TargetBucket, &out.TargetBucket + *out = new(string) + **out = **in + } + if in.TargetPrefix != nil { + in, out := &in.TargetPrefix, &out.TargetPrefix + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LoggingParameters. +func (in *LoggingParameters) DeepCopy() *LoggingParameters { + if in == nil { + return nil + } + out := new(LoggingParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NoncurrentVersionExpirationInitParameters) DeepCopyInto(out *NoncurrentVersionExpirationInitParameters) { + *out = *in + if in.Days != nil { + in, out := &in.Days, &out.Days + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NoncurrentVersionExpirationInitParameters. +func (in *NoncurrentVersionExpirationInitParameters) DeepCopy() *NoncurrentVersionExpirationInitParameters { + if in == nil { + return nil + } + out := new(NoncurrentVersionExpirationInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NoncurrentVersionExpirationObservation) DeepCopyInto(out *NoncurrentVersionExpirationObservation) { + *out = *in + if in.Days != nil { + in, out := &in.Days, &out.Days + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NoncurrentVersionExpirationObservation. +func (in *NoncurrentVersionExpirationObservation) DeepCopy() *NoncurrentVersionExpirationObservation { + if in == nil { + return nil + } + out := new(NoncurrentVersionExpirationObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NoncurrentVersionExpirationParameters) DeepCopyInto(out *NoncurrentVersionExpirationParameters) { + *out = *in + if in.Days != nil { + in, out := &in.Days, &out.Days + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NoncurrentVersionExpirationParameters. +func (in *NoncurrentVersionExpirationParameters) DeepCopy() *NoncurrentVersionExpirationParameters { + if in == nil { + return nil + } + out := new(NoncurrentVersionExpirationParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VersioningInitParameters) DeepCopyInto(out *VersioningInitParameters) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.MfaDelete != nil { + in, out := &in.MfaDelete, &out.MfaDelete + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VersioningInitParameters. +func (in *VersioningInitParameters) DeepCopy() *VersioningInitParameters { + if in == nil { + return nil + } + out := new(VersioningInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VersioningObservation) DeepCopyInto(out *VersioningObservation) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.MfaDelete != nil { + in, out := &in.MfaDelete, &out.MfaDelete + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VersioningObservation. +func (in *VersioningObservation) DeepCopy() *VersioningObservation { + if in == nil { + return nil + } + out := new(VersioningObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *VersioningParameters) DeepCopyInto(out *VersioningParameters) { + *out = *in + if in.Enabled != nil { + in, out := &in.Enabled, &out.Enabled + *out = new(bool) + **out = **in + } + if in.MfaDelete != nil { + in, out := &in.MfaDelete, &out.MfaDelete + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new VersioningParameters. +func (in *VersioningParameters) DeepCopy() *VersioningParameters { + if in == nil { + return nil + } + out := new(VersioningParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *WebsiteInitParameters) DeepCopyInto(out *WebsiteInitParameters) { + *out = *in + if in.ErrorDocument != nil { + in, out := &in.ErrorDocument, &out.ErrorDocument + *out = new(string) + **out = **in + } + if in.IndexDocument != nil { + in, out := &in.IndexDocument, &out.IndexDocument + *out = new(string) + **out = **in + } + if in.RedirectAllRequestsTo != nil { + in, out := &in.RedirectAllRequestsTo, &out.RedirectAllRequestsTo + *out = new(string) + **out = **in + } + if in.RoutingRules != nil { + in, out := &in.RoutingRules, &out.RoutingRules + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebsiteInitParameters. +func (in *WebsiteInitParameters) DeepCopy() *WebsiteInitParameters { + if in == nil { + return nil + } + out := new(WebsiteInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *WebsiteObservation) DeepCopyInto(out *WebsiteObservation) { + *out = *in + if in.ErrorDocument != nil { + in, out := &in.ErrorDocument, &out.ErrorDocument + *out = new(string) + **out = **in + } + if in.IndexDocument != nil { + in, out := &in.IndexDocument, &out.IndexDocument + *out = new(string) + **out = **in + } + if in.RedirectAllRequestsTo != nil { + in, out := &in.RedirectAllRequestsTo, &out.RedirectAllRequestsTo + *out = new(string) + **out = **in + } + if in.RoutingRules != nil { + in, out := &in.RoutingRules, &out.RoutingRules + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebsiteObservation. +func (in *WebsiteObservation) DeepCopy() *WebsiteObservation { + if in == nil { + return nil + } + out := new(WebsiteObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *WebsiteParameters) DeepCopyInto(out *WebsiteParameters) { + *out = *in + if in.ErrorDocument != nil { + in, out := &in.ErrorDocument, &out.ErrorDocument + *out = new(string) + **out = **in + } + if in.IndexDocument != nil { + in, out := &in.IndexDocument, &out.IndexDocument + *out = new(string) + **out = **in + } + if in.RedirectAllRequestsTo != nil { + in, out := &in.RedirectAllRequestsTo, &out.RedirectAllRequestsTo + *out = new(string) + **out = **in + } + if in.RoutingRules != nil { + in, out := &in.RoutingRules, &out.RoutingRules + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new WebsiteParameters. +func (in *WebsiteParameters) DeepCopy() *WebsiteParameters { + if in == nil { + return nil + } + out := new(WebsiteParameters) + in.DeepCopyInto(out) + return out +} diff --git a/apis/s3/v1alpha1/zz_generated.managed.go b/apis/s3/v1alpha1/zz_generated.managed.go new file mode 100644 index 0000000..9eb92f9 --- /dev/null +++ b/apis/s3/v1alpha1/zz_generated.managed.go @@ -0,0 +1,188 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import xpv1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + +// GetCondition of this Bucket. +func (mg *Bucket) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this Bucket. +func (mg *Bucket) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this Bucket. +func (mg *Bucket) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this Bucket. +func (mg *Bucket) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this Bucket. +func (mg *Bucket) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this Bucket. +func (mg *Bucket) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this Bucket. +func (mg *Bucket) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this Bucket. +func (mg *Bucket) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this Bucket. +func (mg *Bucket) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this Bucket. +func (mg *Bucket) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this Bucket. +func (mg *Bucket) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this Bucket. +func (mg *Bucket) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this BucketObject. +func (mg *BucketObject) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this BucketObject. +func (mg *BucketObject) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this BucketObject. +func (mg *BucketObject) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this BucketObject. +func (mg *BucketObject) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this BucketObject. +func (mg *BucketObject) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this BucketObject. +func (mg *BucketObject) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this BucketObject. +func (mg *BucketObject) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this BucketObject. +func (mg *BucketObject) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this BucketObject. +func (mg *BucketObject) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this BucketObject. +func (mg *BucketObject) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this BucketObject. +func (mg *BucketObject) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this BucketObject. +func (mg *BucketObject) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this BucketPolicy. +func (mg *BucketPolicy) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this BucketPolicy. +func (mg *BucketPolicy) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this BucketPolicy. +func (mg *BucketPolicy) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this BucketPolicy. +func (mg *BucketPolicy) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this BucketPolicy. +func (mg *BucketPolicy) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this BucketPolicy. +func (mg *BucketPolicy) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this BucketPolicy. +func (mg *BucketPolicy) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this BucketPolicy. +func (mg *BucketPolicy) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this BucketPolicy. +func (mg *BucketPolicy) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this BucketPolicy. +func (mg *BucketPolicy) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this BucketPolicy. +func (mg *BucketPolicy) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this BucketPolicy. +func (mg *BucketPolicy) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} diff --git a/apis/s3/v1alpha1/zz_generated.managedlist.go b/apis/s3/v1alpha1/zz_generated.managedlist.go new file mode 100644 index 0000000..ec43b89 --- /dev/null +++ b/apis/s3/v1alpha1/zz_generated.managedlist.go @@ -0,0 +1,35 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import resource "github.com/crossplane/crossplane-runtime/pkg/resource" + +// GetItems of this BucketList. +func (l *BucketList) 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 BucketObjectList. +func (l *BucketObjectList) 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 BucketPolicyList. +func (l *BucketPolicyList) 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/s3/v1alpha1/zz_generated_terraformed.go b/apis/s3/v1alpha1/zz_generated_terraformed.go new file mode 100755 index 0000000..192ea81 --- /dev/null +++ b/apis/s3/v1alpha1/zz_generated_terraformed.go @@ -0,0 +1,270 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "github.com/pkg/errors" + + "github.com/crossplane/upjet/pkg/resource" + "github.com/crossplane/upjet/pkg/resource/json" +) + +// GetTerraformResourceType returns Terraform resource type for this Bucket +func (mg *Bucket) GetTerraformResourceType() string { + return "opentelekomcloud_s3_bucket" +} + +// GetConnectionDetailsMapping for this Bucket +func (tr *Bucket) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this Bucket +func (tr *Bucket) 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 Bucket +func (tr *Bucket) 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 Bucket +func (tr *Bucket) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this Bucket +func (tr *Bucket) 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 Bucket +func (tr *Bucket) 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 Bucket +func (tr *Bucket) 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) +} + +// LateInitialize this Bucket using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *Bucket) LateInitialize(attrs []byte) (bool, error) { + params := &BucketParameters{} + 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 *Bucket) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this BucketObject +func (mg *BucketObject) GetTerraformResourceType() string { + return "opentelekomcloud_s3_bucket_object" +} + +// GetConnectionDetailsMapping for this BucketObject +func (tr *BucketObject) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this BucketObject +func (tr *BucketObject) 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 BucketObject +func (tr *BucketObject) 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 BucketObject +func (tr *BucketObject) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this BucketObject +func (tr *BucketObject) 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 BucketObject +func (tr *BucketObject) 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 BucketObject +func (tr *BucketObject) 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) +} + +// LateInitialize this BucketObject using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *BucketObject) LateInitialize(attrs []byte) (bool, error) { + params := &BucketObjectParameters{} + 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 *BucketObject) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this BucketPolicy +func (mg *BucketPolicy) GetTerraformResourceType() string { + return "opentelekomcloud_s3_bucket_policy" +} + +// GetConnectionDetailsMapping for this BucketPolicy +func (tr *BucketPolicy) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this BucketPolicy +func (tr *BucketPolicy) 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 BucketPolicy +func (tr *BucketPolicy) 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 BucketPolicy +func (tr *BucketPolicy) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this BucketPolicy +func (tr *BucketPolicy) 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 BucketPolicy +func (tr *BucketPolicy) 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 BucketPolicy +func (tr *BucketPolicy) 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) +} + +// LateInitialize this BucketPolicy using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *BucketPolicy) LateInitialize(attrs []byte) (bool, error) { + params := &BucketPolicyParameters{} + 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 *BucketPolicy) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/s3/v1alpha1/zz_groupversion_info.go b/apis/s3/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..31843e4 --- /dev/null +++ b/apis/s3/v1alpha1/zz_groupversion_info.go @@ -0,0 +1,36 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +// +kubebuilder:object:generate=true +// +groupName=s3.crossplane.io +// +versionName=v1alpha1 +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +// Package type metadata. +const ( + CRDGroup = "s3.crossplane.io" + CRDVersion = "v1alpha1" +) + +var ( + // CRDGroupVersion is the API Group Version used to register the objects + CRDGroupVersion = schema.GroupVersion{Group: CRDGroup, Version: CRDVersion} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme + SchemeBuilder = &scheme.Builder{GroupVersion: CRDGroupVersion} + + // AddToScheme adds the types in this group-version to the given scheme. + AddToScheme = SchemeBuilder.AddToScheme +) diff --git a/apis/sfs/v1alpha1/zz_filesystemv2_types.go b/apis/sfs/v1alpha1/zz_filesystemv2_types.go new file mode 100755 index 0000000..488eeff --- /dev/null +++ b/apis/sfs/v1alpha1/zz_filesystemv2_types.go @@ -0,0 +1,257 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 FileSystemV2InitParameters struct { + + // The access level of the shared file system. Changing this will create + // a new access rule. Deprecated, please use the opentelekomcloud_sfs_share_access_rule_v2 + // resource instead. + AccessLevel *string `json:"accessLevel,omitempty" tf:"access_level,omitempty"` + + // The access that the back end grants or denies. Changing this will + // create new access rule. Deprecated, please use the opentelekomcloud_sfs_share_access_rule_v2 + // resource instead. + AccessTo *string `json:"accessTo,omitempty" tf:"access_to,omitempty"` + + // The type of the share access rule. Changing this will create a new + // access rule. Deprecated, please use the opentelekomcloud_sfs_share_access_rule_v2 resource instead. + AccessType *string `json:"accessType,omitempty" tf:"access_type,omitempty"` + + // The availability zone name. Changing this parameter will create + // a new resource. + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // Describes the shared file system. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The level of visibility for the shared file system. + IsPublic *bool `json:"isPublic,omitempty" tf:"is_public,omitempty"` + + // Metadata key/value pairs as a dictionary of strings. Changing this will + // create a new resource. + Metadata map[string]*string `json:"metadata,omitempty" tf:"metadata,omitempty"` + + // The name of the shared file system. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The region in which to obtain the V2 SFS client. If omitted, the + // region argument of the provider is used. Changing this creates a new share. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The protocol for sharing file systems. The default value is NFS. + ShareProto *string `json:"shareProto,omitempty" tf:"share_proto,omitempty"` + + // The size (GB) of the shared file system. + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // Tags key/value pairs to associate with the SFS File System. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +} + +type FileSystemV2Observation struct { + + // The access level of the shared file system. Changing this will create + // a new access rule. Deprecated, please use the opentelekomcloud_sfs_share_access_rule_v2 + // resource instead. + AccessLevel *string `json:"accessLevel,omitempty" tf:"access_level,omitempty"` + + // The status of the share access rule. + AccessRuleStatus *string `json:"accessRuleStatus,omitempty" tf:"access_rule_status,omitempty"` + + // The access that the back end grants or denies. Changing this will + // create new access rule. Deprecated, please use the opentelekomcloud_sfs_share_access_rule_v2 + // resource instead. + AccessTo *string `json:"accessTo,omitempty" tf:"access_to,omitempty"` + + // The type of the share access rule. Changing this will create a new + // access rule. Deprecated, please use the opentelekomcloud_sfs_share_access_rule_v2 resource instead. + AccessType *string `json:"accessType,omitempty" tf:"access_type,omitempty"` + + // The availability zone name. Changing this parameter will create + // a new resource. + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // Describes the shared file system. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The address for accessing the shared file system. + ExportLocation *string `json:"exportLocation,omitempty" tf:"export_location,omitempty"` + + // The host name of the shared file system. + Host *string `json:"host,omitempty" tf:"host,omitempty"` + + // The UUID of the shared file system. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The level of visibility for the shared file system. + IsPublic *bool `json:"isPublic,omitempty" tf:"is_public,omitempty"` + + // Metadata key/value pairs as a dictionary of strings. Changing this will + // create a new resource. + Metadata map[string]*string `json:"metadata,omitempty" tf:"metadata,omitempty"` + + // The name of the shared file system. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The region in which to obtain the V2 SFS client. If omitted, the + // region argument of the provider is used. Changing this creates a new share. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The UUID of the share access rule. + ShareAccessID *string `json:"shareAccessId,omitempty" tf:"share_access_id,omitempty"` + + // The protocol for sharing file systems. The default value is NFS. + ShareProto *string `json:"shareProto,omitempty" tf:"share_proto,omitempty"` + + // The storage service type assigned for the shared file system, such as + // high-performance storage (composed of SSDs) and large-capacity storage (composed of SATA disks). + ShareType *string `json:"shareType,omitempty" tf:"share_type,omitempty"` + + // The size (GB) of the shared file system. + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // The status of the shared file system. + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + // Tags key/value pairs to associate with the SFS File System. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The volume type. + VolumeType *string `json:"volumeType,omitempty" tf:"volume_type,omitempty"` +} + +type FileSystemV2Parameters struct { + + // The access level of the shared file system. Changing this will create + // a new access rule. Deprecated, please use the opentelekomcloud_sfs_share_access_rule_v2 + // resource instead. + // +kubebuilder:validation:Optional + AccessLevel *string `json:"accessLevel,omitempty" tf:"access_level,omitempty"` + + // The access that the back end grants or denies. Changing this will + // create new access rule. Deprecated, please use the opentelekomcloud_sfs_share_access_rule_v2 + // resource instead. + // +kubebuilder:validation:Optional + AccessTo *string `json:"accessTo,omitempty" tf:"access_to,omitempty"` + + // The type of the share access rule. Changing this will create a new + // access rule. Deprecated, please use the opentelekomcloud_sfs_share_access_rule_v2 resource instead. + // +kubebuilder:validation:Optional + AccessType *string `json:"accessType,omitempty" tf:"access_type,omitempty"` + + // The availability zone name. Changing this parameter will create + // a new resource. + // +kubebuilder:validation:Optional + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // Describes the shared file system. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The level of visibility for the shared file system. + // +kubebuilder:validation:Optional + IsPublic *bool `json:"isPublic,omitempty" tf:"is_public,omitempty"` + + // Metadata key/value pairs as a dictionary of strings. Changing this will + // create a new resource. + // +kubebuilder:validation:Optional + Metadata map[string]*string `json:"metadata,omitempty" tf:"metadata,omitempty"` + + // The name of the shared file system. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The region in which to obtain the V2 SFS client. If omitted, the + // region argument of the provider is used. Changing this creates a new share. + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The protocol for sharing file systems. The default value is NFS. + // +kubebuilder:validation:Optional + ShareProto *string `json:"shareProto,omitempty" tf:"share_proto,omitempty"` + + // The size (GB) of the shared file system. + // +kubebuilder:validation:Optional + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // Tags key/value pairs to associate with the SFS File System. + // +kubebuilder:validation:Optional + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +} + +// FileSystemV2Spec defines the desired state of FileSystemV2 +type FileSystemV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider FileSystemV2Parameters `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 FileSystemV2InitParameters `json:"initProvider,omitempty"` +} + +// FileSystemV2Status defines the observed state of FileSystemV2. +type FileSystemV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider FileSystemV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// FileSystemV2 is the Schema for the FileSystemV2s API. Manages an SFS File System resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type FileSystemV2 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.size) || (has(self.initProvider) && has(self.initProvider.size))",message="spec.forProvider.size is a required parameter" + Spec FileSystemV2Spec `json:"spec"` + Status FileSystemV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// FileSystemV2List contains a list of FileSystemV2s +type FileSystemV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []FileSystemV2 `json:"items"` +} + +// Repository type metadata. +var ( + FileSystemV2_Kind = "FileSystemV2" + FileSystemV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: FileSystemV2_Kind}.String() + FileSystemV2_KindAPIVersion = FileSystemV2_Kind + "." + CRDGroupVersion.String() + FileSystemV2_GroupVersionKind = CRDGroupVersion.WithKind(FileSystemV2_Kind) +) + +func init() { + SchemeBuilder.Register(&FileSystemV2{}, &FileSystemV2List{}) +} diff --git a/apis/sfs/v1alpha1/zz_generated.deepcopy.go b/apis/sfs/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..4d456a4 --- /dev/null +++ b/apis/sfs/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,1047 @@ +//go:build !ignore_autogenerated + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by controller-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + 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 *AccessRuleInitParameters) DeepCopyInto(out *AccessRuleInitParameters) { + *out = *in + if in.AccessLevel != nil { + in, out := &in.AccessLevel, &out.AccessLevel + *out = new(string) + **out = **in + } + if in.AccessTo != nil { + in, out := &in.AccessTo, &out.AccessTo + *out = new(string) + **out = **in + } + if in.AccessType != nil { + in, out := &in.AccessType, &out.AccessType + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AccessRuleInitParameters. +func (in *AccessRuleInitParameters) DeepCopy() *AccessRuleInitParameters { + if in == nil { + return nil + } + out := new(AccessRuleInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AccessRuleObservation) DeepCopyInto(out *AccessRuleObservation) { + *out = *in + if in.AccessLevel != nil { + in, out := &in.AccessLevel, &out.AccessLevel + *out = new(string) + **out = **in + } + if in.AccessRuleStatus != nil { + in, out := &in.AccessRuleStatus, &out.AccessRuleStatus + *out = new(string) + **out = **in + } + if in.AccessTo != nil { + in, out := &in.AccessTo, &out.AccessTo + *out = new(string) + **out = **in + } + if in.AccessType != nil { + in, out := &in.AccessType, &out.AccessType + *out = new(string) + **out = **in + } + if in.ShareAccessID != nil { + in, out := &in.ShareAccessID, &out.ShareAccessID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AccessRuleObservation. +func (in *AccessRuleObservation) DeepCopy() *AccessRuleObservation { + if in == nil { + return nil + } + out := new(AccessRuleObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AccessRuleParameters) DeepCopyInto(out *AccessRuleParameters) { + *out = *in + if in.AccessLevel != nil { + in, out := &in.AccessLevel, &out.AccessLevel + *out = new(string) + **out = **in + } + if in.AccessTo != nil { + in, out := &in.AccessTo, &out.AccessTo + *out = new(string) + **out = **in + } + if in.AccessType != nil { + in, out := &in.AccessType, &out.AccessType + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AccessRuleParameters. +func (in *AccessRuleParameters) DeepCopy() *AccessRuleParameters { + if in == nil { + return nil + } + out := new(AccessRuleParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FileSystemV2) DeepCopyInto(out *FileSystemV2) { + *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 FileSystemV2. +func (in *FileSystemV2) DeepCopy() *FileSystemV2 { + if in == nil { + return nil + } + out := new(FileSystemV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *FileSystemV2) 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 *FileSystemV2InitParameters) DeepCopyInto(out *FileSystemV2InitParameters) { + *out = *in + if in.AccessLevel != nil { + in, out := &in.AccessLevel, &out.AccessLevel + *out = new(string) + **out = **in + } + if in.AccessTo != nil { + in, out := &in.AccessTo, &out.AccessTo + *out = new(string) + **out = **in + } + if in.AccessType != nil { + in, out := &in.AccessType, &out.AccessType + *out = new(string) + **out = **in + } + if in.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.IsPublic != nil { + in, out := &in.IsPublic, &out.IsPublic + *out = new(bool) + **out = **in + } + if in.Metadata != nil { + in, out := &in.Metadata, &out.Metadata + *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.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.ShareProto != nil { + in, out := &in.ShareProto, &out.ShareProto + *out = new(string) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **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 FileSystemV2InitParameters. +func (in *FileSystemV2InitParameters) DeepCopy() *FileSystemV2InitParameters { + if in == nil { + return nil + } + out := new(FileSystemV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FileSystemV2List) DeepCopyInto(out *FileSystemV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]FileSystemV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FileSystemV2List. +func (in *FileSystemV2List) DeepCopy() *FileSystemV2List { + if in == nil { + return nil + } + out := new(FileSystemV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *FileSystemV2List) 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 *FileSystemV2Observation) DeepCopyInto(out *FileSystemV2Observation) { + *out = *in + if in.AccessLevel != nil { + in, out := &in.AccessLevel, &out.AccessLevel + *out = new(string) + **out = **in + } + if in.AccessRuleStatus != nil { + in, out := &in.AccessRuleStatus, &out.AccessRuleStatus + *out = new(string) + **out = **in + } + if in.AccessTo != nil { + in, out := &in.AccessTo, &out.AccessTo + *out = new(string) + **out = **in + } + if in.AccessType != nil { + in, out := &in.AccessType, &out.AccessType + *out = new(string) + **out = **in + } + if in.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.ExportLocation != nil { + in, out := &in.ExportLocation, &out.ExportLocation + *out = new(string) + **out = **in + } + if in.Host != nil { + in, out := &in.Host, &out.Host + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.IsPublic != nil { + in, out := &in.IsPublic, &out.IsPublic + *out = new(bool) + **out = **in + } + if in.Metadata != nil { + in, out := &in.Metadata, &out.Metadata + *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.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.ShareAccessID != nil { + in, out := &in.ShareAccessID, &out.ShareAccessID + *out = new(string) + **out = **in + } + if in.ShareProto != nil { + in, out := &in.ShareProto, &out.ShareProto + *out = new(string) + **out = **in + } + if in.ShareType != nil { + in, out := &in.ShareType, &out.ShareType + *out = new(string) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *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.VolumeType != nil { + in, out := &in.VolumeType, &out.VolumeType + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FileSystemV2Observation. +func (in *FileSystemV2Observation) DeepCopy() *FileSystemV2Observation { + if in == nil { + return nil + } + out := new(FileSystemV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FileSystemV2Parameters) DeepCopyInto(out *FileSystemV2Parameters) { + *out = *in + if in.AccessLevel != nil { + in, out := &in.AccessLevel, &out.AccessLevel + *out = new(string) + **out = **in + } + if in.AccessTo != nil { + in, out := &in.AccessTo, &out.AccessTo + *out = new(string) + **out = **in + } + if in.AccessType != nil { + in, out := &in.AccessType, &out.AccessType + *out = new(string) + **out = **in + } + if in.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.IsPublic != nil { + in, out := &in.IsPublic, &out.IsPublic + *out = new(bool) + **out = **in + } + if in.Metadata != nil { + in, out := &in.Metadata, &out.Metadata + *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.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.ShareProto != nil { + in, out := &in.ShareProto, &out.ShareProto + *out = new(string) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **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 FileSystemV2Parameters. +func (in *FileSystemV2Parameters) DeepCopy() *FileSystemV2Parameters { + if in == nil { + return nil + } + out := new(FileSystemV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FileSystemV2Spec) DeepCopyInto(out *FileSystemV2Spec) { + *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 FileSystemV2Spec. +func (in *FileSystemV2Spec) DeepCopy() *FileSystemV2Spec { + if in == nil { + return nil + } + out := new(FileSystemV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FileSystemV2Status) DeepCopyInto(out *FileSystemV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FileSystemV2Status. +func (in *FileSystemV2Status) DeepCopy() *FileSystemV2Status { + if in == nil { + return nil + } + out := new(FileSystemV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ShareAccessRulesV2) DeepCopyInto(out *ShareAccessRulesV2) { + *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 ShareAccessRulesV2. +func (in *ShareAccessRulesV2) DeepCopy() *ShareAccessRulesV2 { + if in == nil { + return nil + } + out := new(ShareAccessRulesV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ShareAccessRulesV2) 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 *ShareAccessRulesV2InitParameters) DeepCopyInto(out *ShareAccessRulesV2InitParameters) { + *out = *in + if in.AccessRule != nil { + in, out := &in.AccessRule, &out.AccessRule + *out = make([]AccessRuleInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ShareID != nil { + in, out := &in.ShareID, &out.ShareID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ShareAccessRulesV2InitParameters. +func (in *ShareAccessRulesV2InitParameters) DeepCopy() *ShareAccessRulesV2InitParameters { + if in == nil { + return nil + } + out := new(ShareAccessRulesV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ShareAccessRulesV2List) DeepCopyInto(out *ShareAccessRulesV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ShareAccessRulesV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ShareAccessRulesV2List. +func (in *ShareAccessRulesV2List) DeepCopy() *ShareAccessRulesV2List { + if in == nil { + return nil + } + out := new(ShareAccessRulesV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ShareAccessRulesV2List) 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 *ShareAccessRulesV2Observation) DeepCopyInto(out *ShareAccessRulesV2Observation) { + *out = *in + if in.AccessRule != nil { + in, out := &in.AccessRule, &out.AccessRule + *out = make([]AccessRuleObservation, 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.ShareID != nil { + in, out := &in.ShareID, &out.ShareID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ShareAccessRulesV2Observation. +func (in *ShareAccessRulesV2Observation) DeepCopy() *ShareAccessRulesV2Observation { + if in == nil { + return nil + } + out := new(ShareAccessRulesV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ShareAccessRulesV2Parameters) DeepCopyInto(out *ShareAccessRulesV2Parameters) { + *out = *in + if in.AccessRule != nil { + in, out := &in.AccessRule, &out.AccessRule + *out = make([]AccessRuleParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ShareID != nil { + in, out := &in.ShareID, &out.ShareID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ShareAccessRulesV2Parameters. +func (in *ShareAccessRulesV2Parameters) DeepCopy() *ShareAccessRulesV2Parameters { + if in == nil { + return nil + } + out := new(ShareAccessRulesV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ShareAccessRulesV2Spec) DeepCopyInto(out *ShareAccessRulesV2Spec) { + *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 ShareAccessRulesV2Spec. +func (in *ShareAccessRulesV2Spec) DeepCopy() *ShareAccessRulesV2Spec { + if in == nil { + return nil + } + out := new(ShareAccessRulesV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ShareAccessRulesV2Status) DeepCopyInto(out *ShareAccessRulesV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ShareAccessRulesV2Status. +func (in *ShareAccessRulesV2Status) DeepCopy() *ShareAccessRulesV2Status { + if in == nil { + return nil + } + out := new(ShareAccessRulesV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TurboShareV1) DeepCopyInto(out *TurboShareV1) { + *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 TurboShareV1. +func (in *TurboShareV1) DeepCopy() *TurboShareV1 { + if in == nil { + return nil + } + out := new(TurboShareV1) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *TurboShareV1) 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 *TurboShareV1InitParameters) DeepCopyInto(out *TurboShareV1InitParameters) { + *out = *in + if in.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *out = new(string) + **out = **in + } + if in.CryptKeyID != nil { + in, out := &in.CryptKeyID, &out.CryptKeyID + *out = new(string) + **out = **in + } + if in.Enhanced != nil { + in, out := &in.Enhanced, &out.Enhanced + *out = new(bool) + **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.SecurityGroupID != nil { + in, out := &in.SecurityGroupID, &out.SecurityGroupID + *out = new(string) + **out = **in + } + if in.ShareProto != nil { + in, out := &in.ShareProto, &out.ShareProto + *out = new(string) + **out = **in + } + if in.ShareType != nil { + in, out := &in.ShareType, &out.ShareType + *out = new(string) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } + if in.SubnetID != nil { + in, out := &in.SubnetID, &out.SubnetID + *out = new(string) + **out = **in + } + if in.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TurboShareV1InitParameters. +func (in *TurboShareV1InitParameters) DeepCopy() *TurboShareV1InitParameters { + if in == nil { + return nil + } + out := new(TurboShareV1InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TurboShareV1List) DeepCopyInto(out *TurboShareV1List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]TurboShareV1, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TurboShareV1List. +func (in *TurboShareV1List) DeepCopy() *TurboShareV1List { + if in == nil { + return nil + } + out := new(TurboShareV1List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *TurboShareV1List) 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 *TurboShareV1Observation) DeepCopyInto(out *TurboShareV1Observation) { + *out = *in + if in.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *out = new(string) + **out = **in + } + if in.AvailableCapacity != nil { + in, out := &in.AvailableCapacity, &out.AvailableCapacity + *out = new(string) + **out = **in + } + if in.CryptKeyID != nil { + in, out := &in.CryptKeyID, &out.CryptKeyID + *out = new(string) + **out = **in + } + if in.Enhanced != nil { + in, out := &in.Enhanced, &out.Enhanced + *out = new(bool) + **out = **in + } + if in.ExpandType != nil { + in, out := &in.ExpandType, &out.ExpandType + *out = new(string) + **out = **in + } + if in.ExportLocation != nil { + in, out := &in.ExportLocation, &out.ExportLocation + *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.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.SecurityGroupID != nil { + in, out := &in.SecurityGroupID, &out.SecurityGroupID + *out = new(string) + **out = **in + } + if in.ShareProto != nil { + in, out := &in.ShareProto, &out.ShareProto + *out = new(string) + **out = **in + } + if in.ShareType != nil { + in, out := &in.ShareType, &out.ShareType + *out = new(string) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } + if in.SubnetID != nil { + in, out := &in.SubnetID, &out.SubnetID + *out = new(string) + **out = **in + } + if in.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } + if in.Version != nil { + in, out := &in.Version, &out.Version + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TurboShareV1Observation. +func (in *TurboShareV1Observation) DeepCopy() *TurboShareV1Observation { + if in == nil { + return nil + } + out := new(TurboShareV1Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TurboShareV1Parameters) DeepCopyInto(out *TurboShareV1Parameters) { + *out = *in + if in.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *out = new(string) + **out = **in + } + if in.CryptKeyID != nil { + in, out := &in.CryptKeyID, &out.CryptKeyID + *out = new(string) + **out = **in + } + if in.Enhanced != nil { + in, out := &in.Enhanced, &out.Enhanced + *out = new(bool) + **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.SecurityGroupID != nil { + in, out := &in.SecurityGroupID, &out.SecurityGroupID + *out = new(string) + **out = **in + } + if in.ShareProto != nil { + in, out := &in.ShareProto, &out.ShareProto + *out = new(string) + **out = **in + } + if in.ShareType != nil { + in, out := &in.ShareType, &out.ShareType + *out = new(string) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } + if in.SubnetID != nil { + in, out := &in.SubnetID, &out.SubnetID + *out = new(string) + **out = **in + } + if in.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TurboShareV1Parameters. +func (in *TurboShareV1Parameters) DeepCopy() *TurboShareV1Parameters { + if in == nil { + return nil + } + out := new(TurboShareV1Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TurboShareV1Spec) DeepCopyInto(out *TurboShareV1Spec) { + *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 TurboShareV1Spec. +func (in *TurboShareV1Spec) DeepCopy() *TurboShareV1Spec { + if in == nil { + return nil + } + out := new(TurboShareV1Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TurboShareV1Status) DeepCopyInto(out *TurboShareV1Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TurboShareV1Status. +func (in *TurboShareV1Status) DeepCopy() *TurboShareV1Status { + if in == nil { + return nil + } + out := new(TurboShareV1Status) + in.DeepCopyInto(out) + return out +} diff --git a/apis/sfs/v1alpha1/zz_generated.managed.go b/apis/sfs/v1alpha1/zz_generated.managed.go new file mode 100644 index 0000000..8ccd27a --- /dev/null +++ b/apis/sfs/v1alpha1/zz_generated.managed.go @@ -0,0 +1,188 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import xpv1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + +// GetCondition of this FileSystemV2. +func (mg *FileSystemV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this FileSystemV2. +func (mg *FileSystemV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this FileSystemV2. +func (mg *FileSystemV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this FileSystemV2. +func (mg *FileSystemV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this FileSystemV2. +func (mg *FileSystemV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this FileSystemV2. +func (mg *FileSystemV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this FileSystemV2. +func (mg *FileSystemV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this FileSystemV2. +func (mg *FileSystemV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this FileSystemV2. +func (mg *FileSystemV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this FileSystemV2. +func (mg *FileSystemV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this FileSystemV2. +func (mg *FileSystemV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this FileSystemV2. +func (mg *FileSystemV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this ShareAccessRulesV2. +func (mg *ShareAccessRulesV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this ShareAccessRulesV2. +func (mg *ShareAccessRulesV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this ShareAccessRulesV2. +func (mg *ShareAccessRulesV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this ShareAccessRulesV2. +func (mg *ShareAccessRulesV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this ShareAccessRulesV2. +func (mg *ShareAccessRulesV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this ShareAccessRulesV2. +func (mg *ShareAccessRulesV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this ShareAccessRulesV2. +func (mg *ShareAccessRulesV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this ShareAccessRulesV2. +func (mg *ShareAccessRulesV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this ShareAccessRulesV2. +func (mg *ShareAccessRulesV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this ShareAccessRulesV2. +func (mg *ShareAccessRulesV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this ShareAccessRulesV2. +func (mg *ShareAccessRulesV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this ShareAccessRulesV2. +func (mg *ShareAccessRulesV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this TurboShareV1. +func (mg *TurboShareV1) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this TurboShareV1. +func (mg *TurboShareV1) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this TurboShareV1. +func (mg *TurboShareV1) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this TurboShareV1. +func (mg *TurboShareV1) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this TurboShareV1. +func (mg *TurboShareV1) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this TurboShareV1. +func (mg *TurboShareV1) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this TurboShareV1. +func (mg *TurboShareV1) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this TurboShareV1. +func (mg *TurboShareV1) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this TurboShareV1. +func (mg *TurboShareV1) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this TurboShareV1. +func (mg *TurboShareV1) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this TurboShareV1. +func (mg *TurboShareV1) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this TurboShareV1. +func (mg *TurboShareV1) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} diff --git a/apis/sfs/v1alpha1/zz_generated.managedlist.go b/apis/sfs/v1alpha1/zz_generated.managedlist.go new file mode 100644 index 0000000..bb88ecf --- /dev/null +++ b/apis/sfs/v1alpha1/zz_generated.managedlist.go @@ -0,0 +1,35 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import resource "github.com/crossplane/crossplane-runtime/pkg/resource" + +// GetItems of this FileSystemV2List. +func (l *FileSystemV2List) 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 ShareAccessRulesV2List. +func (l *ShareAccessRulesV2List) 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 TurboShareV1List. +func (l *TurboShareV1List) 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/sfs/v1alpha1/zz_generated_terraformed.go b/apis/sfs/v1alpha1/zz_generated_terraformed.go new file mode 100755 index 0000000..86eb9a1 --- /dev/null +++ b/apis/sfs/v1alpha1/zz_generated_terraformed.go @@ -0,0 +1,270 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "github.com/pkg/errors" + + "github.com/crossplane/upjet/pkg/resource" + "github.com/crossplane/upjet/pkg/resource/json" +) + +// GetTerraformResourceType returns Terraform resource type for this FileSystemV2 +func (mg *FileSystemV2) GetTerraformResourceType() string { + return "opentelekomcloud_sfs_file_system_v2" +} + +// GetConnectionDetailsMapping for this FileSystemV2 +func (tr *FileSystemV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this FileSystemV2 +func (tr *FileSystemV2) 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 FileSystemV2 +func (tr *FileSystemV2) 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 FileSystemV2 +func (tr *FileSystemV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this FileSystemV2 +func (tr *FileSystemV2) 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 FileSystemV2 +func (tr *FileSystemV2) 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 FileSystemV2 +func (tr *FileSystemV2) 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) +} + +// LateInitialize this FileSystemV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *FileSystemV2) LateInitialize(attrs []byte) (bool, error) { + params := &FileSystemV2Parameters{} + 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 *FileSystemV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this ShareAccessRulesV2 +func (mg *ShareAccessRulesV2) GetTerraformResourceType() string { + return "opentelekomcloud_sfs_share_access_rules_v2" +} + +// GetConnectionDetailsMapping for this ShareAccessRulesV2 +func (tr *ShareAccessRulesV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this ShareAccessRulesV2 +func (tr *ShareAccessRulesV2) 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 ShareAccessRulesV2 +func (tr *ShareAccessRulesV2) 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 ShareAccessRulesV2 +func (tr *ShareAccessRulesV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this ShareAccessRulesV2 +func (tr *ShareAccessRulesV2) 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 ShareAccessRulesV2 +func (tr *ShareAccessRulesV2) 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 ShareAccessRulesV2 +func (tr *ShareAccessRulesV2) 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) +} + +// LateInitialize this ShareAccessRulesV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *ShareAccessRulesV2) LateInitialize(attrs []byte) (bool, error) { + params := &ShareAccessRulesV2Parameters{} + 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 *ShareAccessRulesV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this TurboShareV1 +func (mg *TurboShareV1) GetTerraformResourceType() string { + return "opentelekomcloud_sfs_turbo_share_v1" +} + +// GetConnectionDetailsMapping for this TurboShareV1 +func (tr *TurboShareV1) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this TurboShareV1 +func (tr *TurboShareV1) 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 TurboShareV1 +func (tr *TurboShareV1) 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 TurboShareV1 +func (tr *TurboShareV1) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this TurboShareV1 +func (tr *TurboShareV1) 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 TurboShareV1 +func (tr *TurboShareV1) 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 TurboShareV1 +func (tr *TurboShareV1) 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) +} + +// LateInitialize this TurboShareV1 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *TurboShareV1) LateInitialize(attrs []byte) (bool, error) { + params := &TurboShareV1Parameters{} + 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 *TurboShareV1) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/sfs/v1alpha1/zz_groupversion_info.go b/apis/sfs/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..2047ce3 --- /dev/null +++ b/apis/sfs/v1alpha1/zz_groupversion_info.go @@ -0,0 +1,36 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +// +kubebuilder:object:generate=true +// +groupName=sfs.crossplane.io +// +versionName=v1alpha1 +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +// Package type metadata. +const ( + CRDGroup = "sfs.crossplane.io" + CRDVersion = "v1alpha1" +) + +var ( + // CRDGroupVersion is the API Group Version used to register the objects + CRDGroupVersion = schema.GroupVersion{Group: CRDGroup, Version: CRDVersion} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme + SchemeBuilder = &scheme.Builder{GroupVersion: CRDGroupVersion} + + // AddToScheme adds the types in this group-version to the given scheme. + AddToScheme = SchemeBuilder.AddToScheme +) diff --git a/apis/sfs/v1alpha1/zz_shareaccessrulesv2_types.go b/apis/sfs/v1alpha1/zz_shareaccessrulesv2_types.go new file mode 100755 index 0000000..6a4adae --- /dev/null +++ b/apis/sfs/v1alpha1/zz_shareaccessrulesv2_types.go @@ -0,0 +1,162 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 AccessRuleInitParameters struct { + + // The access level of the shared file system. Possible values are ro (read-only) + // and rw (read-write). The default value is rw (read/write). + AccessLevel *string `json:"accessLevel,omitempty" tf:"access_level,omitempty"` + + // The access that the back end grants or denies. + AccessTo *string `json:"accessTo,omitempty" tf:"access_to,omitempty"` + + // The type of the share access rule. The value cert indicates + // that the certificate is used to access the storage. + AccessType *string `json:"accessType,omitempty" tf:"access_type,omitempty"` +} + +type AccessRuleObservation struct { + + // The access level of the shared file system. Possible values are ro (read-only) + // and rw (read-write). The default value is rw (read/write). + AccessLevel *string `json:"accessLevel,omitempty" tf:"access_level,omitempty"` + + // The status of the share access rule. + AccessRuleStatus *string `json:"accessRuleStatus,omitempty" tf:"access_rule_status,omitempty"` + + // The access that the back end grants or denies. + AccessTo *string `json:"accessTo,omitempty" tf:"access_to,omitempty"` + + // The type of the share access rule. The value cert indicates + // that the certificate is used to access the storage. + AccessType *string `json:"accessType,omitempty" tf:"access_type,omitempty"` + + // The UUID of the share access rule. + ShareAccessID *string `json:"shareAccessId,omitempty" tf:"share_access_id,omitempty"` +} + +type AccessRuleParameters struct { + + // The access level of the shared file system. Possible values are ro (read-only) + // and rw (read-write). The default value is rw (read/write). + // +kubebuilder:validation:Optional + AccessLevel *string `json:"accessLevel" tf:"access_level,omitempty"` + + // The access that the back end grants or denies. + // +kubebuilder:validation:Optional + AccessTo *string `json:"accessTo" tf:"access_to,omitempty"` + + // The type of the share access rule. The value cert indicates + // that the certificate is used to access the storage. + // +kubebuilder:validation:Optional + AccessType *string `json:"accessType,omitempty" tf:"access_type,omitempty"` +} + +type ShareAccessRulesV2InitParameters struct { + + // Specifies the access rules of SFS file share. Structure is documented below. + AccessRule []AccessRuleInitParameters `json:"accessRule,omitempty" tf:"access_rule,omitempty"` + + // The UUID of the shared file system. + ShareID *string `json:"shareId,omitempty" tf:"share_id,omitempty"` +} + +type ShareAccessRulesV2Observation struct { + + // Specifies the access rules of SFS file share. Structure is documented below. + AccessRule []AccessRuleObservation `json:"accessRule,omitempty" tf:"access_rule,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The UUID of the shared file system. + ShareID *string `json:"shareId,omitempty" tf:"share_id,omitempty"` +} + +type ShareAccessRulesV2Parameters struct { + + // Specifies the access rules of SFS file share. Structure is documented below. + // +kubebuilder:validation:Optional + AccessRule []AccessRuleParameters `json:"accessRule,omitempty" tf:"access_rule,omitempty"` + + // The UUID of the shared file system. + // +kubebuilder:validation:Optional + ShareID *string `json:"shareId,omitempty" tf:"share_id,omitempty"` +} + +// ShareAccessRulesV2Spec defines the desired state of ShareAccessRulesV2 +type ShareAccessRulesV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider ShareAccessRulesV2Parameters `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 ShareAccessRulesV2InitParameters `json:"initProvider,omitempty"` +} + +// ShareAccessRulesV2Status defines the observed state of ShareAccessRulesV2. +type ShareAccessRulesV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider ShareAccessRulesV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// ShareAccessRulesV2 is the Schema for the ShareAccessRulesV2s API. Manages an SFS Access Rules resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type ShareAccessRulesV2 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.accessRule) || (has(self.initProvider) && has(self.initProvider.accessRule))",message="spec.forProvider.accessRule is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.shareId) || (has(self.initProvider) && has(self.initProvider.shareId))",message="spec.forProvider.shareId is a required parameter" + Spec ShareAccessRulesV2Spec `json:"spec"` + Status ShareAccessRulesV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// ShareAccessRulesV2List contains a list of ShareAccessRulesV2s +type ShareAccessRulesV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []ShareAccessRulesV2 `json:"items"` +} + +// Repository type metadata. +var ( + ShareAccessRulesV2_Kind = "ShareAccessRulesV2" + ShareAccessRulesV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: ShareAccessRulesV2_Kind}.String() + ShareAccessRulesV2_KindAPIVersion = ShareAccessRulesV2_Kind + "." + CRDGroupVersion.String() + ShareAccessRulesV2_GroupVersionKind = CRDGroupVersion.WithKind(ShareAccessRulesV2_Kind) +) + +func init() { + SchemeBuilder.Register(&ShareAccessRulesV2{}, &ShareAccessRulesV2List{}) +} diff --git a/apis/sfs/v1alpha1/zz_turbosharev1_types.go b/apis/sfs/v1alpha1/zz_turbosharev1_types.go new file mode 100755 index 0000000..edffd41 --- /dev/null +++ b/apis/sfs/v1alpha1/zz_turbosharev1_types.go @@ -0,0 +1,242 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 TurboShareV1InitParameters struct { + + // Specifies the availability zone where the file system is located. + // Changing this will create a new resource. + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // Specifies the ID of a KMS key to encrypt the file system. + // Changing this will create a new resource. + CryptKeyID *string `json:"cryptKeyId,omitempty" tf:"crypt_key_id,omitempty"` + + // Specifies whether the file system is enhanced or not. Changing this will + // create a new resource with type StandardEnhanced/PerformanceEnhanced. + Enhanced *bool `json:"enhanced,omitempty" tf:"enhanced,omitempty"` + + // Specifies the name of an SFS Turbo file system. The value contains 4 to 64 + // characters and must start with a letter. Changing this will create a new resource. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The region in which to create the SFS Turbo resource. If omitted, the + // provider-level region will be used. Changing this creates a new SFS Turbo resource. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Specifies the security group ID. + SecurityGroupID *string `json:"securityGroupId,omitempty" tf:"security_group_id,omitempty"` + + // Specifies the protocol for sharing file systems. The valid value is NFS. + // Changing this will create a new resource. + ShareProto *string `json:"shareProto,omitempty" tf:"share_proto,omitempty"` + + // Specifies the file system type. The valid values are STANDARD and PERFORMANCE. + // Changing this will create a new resource. + ShareType *string `json:"shareType,omitempty" tf:"share_type,omitempty"` + + // Specifies the capacity of a common file system, in GB. The value ranges + // from 500 to 32768. + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // Specifies the network ID of the subnet. Changing this will create a new resource. + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // Specifies the VPC ID. Changing this will create a new resource. + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +} + +type TurboShareV1Observation struct { + + // Specifies the availability zone where the file system is located. + // Changing this will create a new resource. + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // The available capacity of the SFS Turbo file system in the unit of GB. + AvailableCapacity *string `json:"availableCapacity,omitempty" tf:"available_capacity,omitempty"` + + // Specifies the ID of a KMS key to encrypt the file system. + // Changing this will create a new resource. + CryptKeyID *string `json:"cryptKeyId,omitempty" tf:"crypt_key_id,omitempty"` + + // Specifies whether the file system is enhanced or not. Changing this will + // create a new resource with type StandardEnhanced/PerformanceEnhanced. + Enhanced *bool `json:"enhanced,omitempty" tf:"enhanced,omitempty"` + + // Specifies the extension type + ExpandType *string `json:"expandType,omitempty" tf:"expand_type,omitempty"` + + // The mount point of the SFS Turbo file system. + ExportLocation *string `json:"exportLocation,omitempty" tf:"export_location,omitempty"` + + // The UUID of the SFS Turbo file system. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Specifies the name of an SFS Turbo file system. The value contains 4 to 64 + // characters and must start with a letter. Changing this will create a new resource. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The region in which to create the SFS Turbo resource. If omitted, the + // provider-level region will be used. Changing this creates a new SFS Turbo resource. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Specifies the security group ID. + SecurityGroupID *string `json:"securityGroupId,omitempty" tf:"security_group_id,omitempty"` + + // Specifies the protocol for sharing file systems. The valid value is NFS. + // Changing this will create a new resource. + ShareProto *string `json:"shareProto,omitempty" tf:"share_proto,omitempty"` + + // Specifies the file system type. The valid values are STANDARD and PERFORMANCE. + // Changing this will create a new resource. + ShareType *string `json:"shareType,omitempty" tf:"share_type,omitempty"` + + // Specifies the capacity of a common file system, in GB. The value ranges + // from 500 to 32768. + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // Specifies the network ID of the subnet. Changing this will create a new resource. + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // Specifies the VPC ID. Changing this will create a new resource. + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` + + // The version ID of the SFS Turbo file system. + Version *string `json:"version,omitempty" tf:"version,omitempty"` +} + +type TurboShareV1Parameters struct { + + // Specifies the availability zone where the file system is located. + // Changing this will create a new resource. + // +kubebuilder:validation:Optional + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // Specifies the ID of a KMS key to encrypt the file system. + // Changing this will create a new resource. + // +kubebuilder:validation:Optional + CryptKeyID *string `json:"cryptKeyId,omitempty" tf:"crypt_key_id,omitempty"` + + // Specifies whether the file system is enhanced or not. Changing this will + // create a new resource with type StandardEnhanced/PerformanceEnhanced. + // +kubebuilder:validation:Optional + Enhanced *bool `json:"enhanced,omitempty" tf:"enhanced,omitempty"` + + // Specifies the name of an SFS Turbo file system. The value contains 4 to 64 + // characters and must start with a letter. Changing this will create a new resource. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The region in which to create the SFS Turbo resource. If omitted, the + // provider-level region will be used. Changing this creates a new SFS Turbo resource. + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Specifies the security group ID. + // +kubebuilder:validation:Optional + SecurityGroupID *string `json:"securityGroupId,omitempty" tf:"security_group_id,omitempty"` + + // Specifies the protocol for sharing file systems. The valid value is NFS. + // Changing this will create a new resource. + // +kubebuilder:validation:Optional + ShareProto *string `json:"shareProto,omitempty" tf:"share_proto,omitempty"` + + // Specifies the file system type. The valid values are STANDARD and PERFORMANCE. + // Changing this will create a new resource. + // +kubebuilder:validation:Optional + ShareType *string `json:"shareType,omitempty" tf:"share_type,omitempty"` + + // Specifies the capacity of a common file system, in GB. The value ranges + // from 500 to 32768. + // +kubebuilder:validation:Optional + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // Specifies the network ID of the subnet. Changing this will create a new resource. + // +kubebuilder:validation:Optional + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // Specifies the VPC ID. Changing this will create a new resource. + // +kubebuilder:validation:Optional + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +} + +// TurboShareV1Spec defines the desired state of TurboShareV1 +type TurboShareV1Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider TurboShareV1Parameters `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 TurboShareV1InitParameters `json:"initProvider,omitempty"` +} + +// TurboShareV1Status defines the observed state of TurboShareV1. +type TurboShareV1Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider TurboShareV1Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// TurboShareV1 is the Schema for the TurboShareV1s API. Manages an SFS Turbo Share resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type TurboShareV1 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.availabilityZone) || (has(self.initProvider) && has(self.initProvider.availabilityZone))",message="spec.forProvider.availabilityZone is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.securityGroupId) || (has(self.initProvider) && has(self.initProvider.securityGroupId))",message="spec.forProvider.securityGroupId is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.size) || (has(self.initProvider) && has(self.initProvider.size))",message="spec.forProvider.size 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" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.vpcId) || (has(self.initProvider) && has(self.initProvider.vpcId))",message="spec.forProvider.vpcId is a required parameter" + Spec TurboShareV1Spec `json:"spec"` + Status TurboShareV1Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// TurboShareV1List contains a list of TurboShareV1s +type TurboShareV1List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []TurboShareV1 `json:"items"` +} + +// Repository type metadata. +var ( + TurboShareV1_Kind = "TurboShareV1" + TurboShareV1_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: TurboShareV1_Kind}.String() + TurboShareV1_KindAPIVersion = TurboShareV1_Kind + "." + CRDGroupVersion.String() + TurboShareV1_GroupVersionKind = CRDGroupVersion.WithKind(TurboShareV1_Kind) +) + +func init() { + SchemeBuilder.Register(&TurboShareV1{}, &TurboShareV1List{}) +} diff --git a/apis/smn/v1alpha1/zz_generated.deepcopy.go b/apis/smn/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..9c69992 --- /dev/null +++ b/apis/smn/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,693 @@ +//go:build !ignore_autogenerated + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by controller-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + 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 *SubscriptionV2) DeepCopyInto(out *SubscriptionV2) { + *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 SubscriptionV2. +func (in *SubscriptionV2) DeepCopy() *SubscriptionV2 { + if in == nil { + return nil + } + out := new(SubscriptionV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *SubscriptionV2) 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 *SubscriptionV2InitParameters) DeepCopyInto(out *SubscriptionV2InitParameters) { + *out = *in + if in.Endpoint != nil { + in, out := &in.Endpoint, &out.Endpoint + *out = new(string) + **out = **in + } + if in.ProjectName != nil { + in, out := &in.ProjectName, &out.ProjectName + *out = new(string) + **out = **in + } + if in.Protocol != nil { + in, out := &in.Protocol, &out.Protocol + *out = new(string) + **out = **in + } + if in.Remark != nil { + in, out := &in.Remark, &out.Remark + *out = new(string) + **out = **in + } + if in.TopicUrn != nil { + in, out := &in.TopicUrn, &out.TopicUrn + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubscriptionV2InitParameters. +func (in *SubscriptionV2InitParameters) DeepCopy() *SubscriptionV2InitParameters { + if in == nil { + return nil + } + out := new(SubscriptionV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SubscriptionV2List) DeepCopyInto(out *SubscriptionV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]SubscriptionV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubscriptionV2List. +func (in *SubscriptionV2List) DeepCopy() *SubscriptionV2List { + if in == nil { + return nil + } + out := new(SubscriptionV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *SubscriptionV2List) 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 *SubscriptionV2Observation) DeepCopyInto(out *SubscriptionV2Observation) { + *out = *in + if in.Endpoint != nil { + in, out := &in.Endpoint, &out.Endpoint + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Owner != nil { + in, out := &in.Owner, &out.Owner + *out = new(string) + **out = **in + } + if in.ProjectName != nil { + in, out := &in.ProjectName, &out.ProjectName + *out = new(string) + **out = **in + } + if in.Protocol != nil { + in, out := &in.Protocol, &out.Protocol + *out = new(string) + **out = **in + } + if in.Remark != nil { + in, out := &in.Remark, &out.Remark + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(float64) + **out = **in + } + if in.SubscriptionUrn != nil { + in, out := &in.SubscriptionUrn, &out.SubscriptionUrn + *out = new(string) + **out = **in + } + if in.TopicUrn != nil { + in, out := &in.TopicUrn, &out.TopicUrn + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubscriptionV2Observation. +func (in *SubscriptionV2Observation) DeepCopy() *SubscriptionV2Observation { + if in == nil { + return nil + } + out := new(SubscriptionV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SubscriptionV2Parameters) DeepCopyInto(out *SubscriptionV2Parameters) { + *out = *in + if in.Endpoint != nil { + in, out := &in.Endpoint, &out.Endpoint + *out = new(string) + **out = **in + } + if in.ProjectName != nil { + in, out := &in.ProjectName, &out.ProjectName + *out = new(string) + **out = **in + } + if in.Protocol != nil { + in, out := &in.Protocol, &out.Protocol + *out = new(string) + **out = **in + } + if in.Remark != nil { + in, out := &in.Remark, &out.Remark + *out = new(string) + **out = **in + } + if in.TopicUrn != nil { + in, out := &in.TopicUrn, &out.TopicUrn + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubscriptionV2Parameters. +func (in *SubscriptionV2Parameters) DeepCopy() *SubscriptionV2Parameters { + if in == nil { + return nil + } + out := new(SubscriptionV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SubscriptionV2Spec) DeepCopyInto(out *SubscriptionV2Spec) { + *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 SubscriptionV2Spec. +func (in *SubscriptionV2Spec) DeepCopy() *SubscriptionV2Spec { + if in == nil { + return nil + } + out := new(SubscriptionV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SubscriptionV2Status) DeepCopyInto(out *SubscriptionV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubscriptionV2Status. +func (in *SubscriptionV2Status) DeepCopy() *SubscriptionV2Status { + if in == nil { + return nil + } + out := new(SubscriptionV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TopicAttributeV2) DeepCopyInto(out *TopicAttributeV2) { + *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 TopicAttributeV2. +func (in *TopicAttributeV2) DeepCopy() *TopicAttributeV2 { + if in == nil { + return nil + } + out := new(TopicAttributeV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *TopicAttributeV2) 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 *TopicAttributeV2InitParameters) DeepCopyInto(out *TopicAttributeV2InitParameters) { + *out = *in + if in.AttributeName != nil { + in, out := &in.AttributeName, &out.AttributeName + *out = new(string) + **out = **in + } + if in.TopicAttribute != nil { + in, out := &in.TopicAttribute, &out.TopicAttribute + *out = new(string) + **out = **in + } + if in.TopicUrn != nil { + in, out := &in.TopicUrn, &out.TopicUrn + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TopicAttributeV2InitParameters. +func (in *TopicAttributeV2InitParameters) DeepCopy() *TopicAttributeV2InitParameters { + if in == nil { + return nil + } + out := new(TopicAttributeV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TopicAttributeV2List) DeepCopyInto(out *TopicAttributeV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]TopicAttributeV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TopicAttributeV2List. +func (in *TopicAttributeV2List) DeepCopy() *TopicAttributeV2List { + if in == nil { + return nil + } + out := new(TopicAttributeV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *TopicAttributeV2List) 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 *TopicAttributeV2Observation) DeepCopyInto(out *TopicAttributeV2Observation) { + *out = *in + if in.AttributeName != nil { + in, out := &in.AttributeName, &out.AttributeName + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.TopicAttribute != nil { + in, out := &in.TopicAttribute, &out.TopicAttribute + *out = new(string) + **out = **in + } + if in.TopicUrn != nil { + in, out := &in.TopicUrn, &out.TopicUrn + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TopicAttributeV2Observation. +func (in *TopicAttributeV2Observation) DeepCopy() *TopicAttributeV2Observation { + if in == nil { + return nil + } + out := new(TopicAttributeV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TopicAttributeV2Parameters) DeepCopyInto(out *TopicAttributeV2Parameters) { + *out = *in + if in.AttributeName != nil { + in, out := &in.AttributeName, &out.AttributeName + *out = new(string) + **out = **in + } + if in.TopicAttribute != nil { + in, out := &in.TopicAttribute, &out.TopicAttribute + *out = new(string) + **out = **in + } + if in.TopicUrn != nil { + in, out := &in.TopicUrn, &out.TopicUrn + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TopicAttributeV2Parameters. +func (in *TopicAttributeV2Parameters) DeepCopy() *TopicAttributeV2Parameters { + if in == nil { + return nil + } + out := new(TopicAttributeV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TopicAttributeV2Spec) DeepCopyInto(out *TopicAttributeV2Spec) { + *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 TopicAttributeV2Spec. +func (in *TopicAttributeV2Spec) DeepCopy() *TopicAttributeV2Spec { + if in == nil { + return nil + } + out := new(TopicAttributeV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TopicAttributeV2Status) DeepCopyInto(out *TopicAttributeV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TopicAttributeV2Status. +func (in *TopicAttributeV2Status) DeepCopy() *TopicAttributeV2Status { + if in == nil { + return nil + } + out := new(TopicAttributeV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TopicV2) DeepCopyInto(out *TopicV2) { + *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 TopicV2. +func (in *TopicV2) DeepCopy() *TopicV2 { + if in == nil { + return nil + } + out := new(TopicV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *TopicV2) 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 *TopicV2InitParameters) DeepCopyInto(out *TopicV2InitParameters) { + *out = *in + if in.DisplayName != nil { + in, out := &in.DisplayName, &out.DisplayName + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.ProjectName != nil { + in, out := &in.ProjectName, &out.ProjectName + *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 TopicV2InitParameters. +func (in *TopicV2InitParameters) DeepCopy() *TopicV2InitParameters { + if in == nil { + return nil + } + out := new(TopicV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TopicV2List) DeepCopyInto(out *TopicV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]TopicV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TopicV2List. +func (in *TopicV2List) DeepCopy() *TopicV2List { + if in == nil { + return nil + } + out := new(TopicV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *TopicV2List) 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 *TopicV2Observation) DeepCopyInto(out *TopicV2Observation) { + *out = *in + if in.CreateTime != nil { + in, out := &in.CreateTime, &out.CreateTime + *out = new(string) + **out = **in + } + if in.DisplayName != nil { + in, out := &in.DisplayName, &out.DisplayName + *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.ProjectName != nil { + in, out := &in.ProjectName, &out.ProjectName + *out = new(string) + **out = **in + } + if in.PushPolicy != nil { + in, out := &in.PushPolicy, &out.PushPolicy + *out = new(float64) + **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.TopicUrn != nil { + in, out := &in.TopicUrn, &out.TopicUrn + *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 TopicV2Observation. +func (in *TopicV2Observation) DeepCopy() *TopicV2Observation { + if in == nil { + return nil + } + out := new(TopicV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TopicV2Parameters) DeepCopyInto(out *TopicV2Parameters) { + *out = *in + if in.DisplayName != nil { + in, out := &in.DisplayName, &out.DisplayName + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.ProjectName != nil { + in, out := &in.ProjectName, &out.ProjectName + *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 TopicV2Parameters. +func (in *TopicV2Parameters) DeepCopy() *TopicV2Parameters { + if in == nil { + return nil + } + out := new(TopicV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TopicV2Spec) DeepCopyInto(out *TopicV2Spec) { + *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 TopicV2Spec. +func (in *TopicV2Spec) DeepCopy() *TopicV2Spec { + if in == nil { + return nil + } + out := new(TopicV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TopicV2Status) DeepCopyInto(out *TopicV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TopicV2Status. +func (in *TopicV2Status) DeepCopy() *TopicV2Status { + if in == nil { + return nil + } + out := new(TopicV2Status) + in.DeepCopyInto(out) + return out +} diff --git a/apis/smn/v1alpha1/zz_generated.managed.go b/apis/smn/v1alpha1/zz_generated.managed.go new file mode 100644 index 0000000..d6f55a4 --- /dev/null +++ b/apis/smn/v1alpha1/zz_generated.managed.go @@ -0,0 +1,188 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import xpv1 "github.com/crossplane/crossplane-runtime/apis/common/v1" + +// GetCondition of this SubscriptionV2. +func (mg *SubscriptionV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this SubscriptionV2. +func (mg *SubscriptionV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this SubscriptionV2. +func (mg *SubscriptionV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this SubscriptionV2. +func (mg *SubscriptionV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this SubscriptionV2. +func (mg *SubscriptionV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this SubscriptionV2. +func (mg *SubscriptionV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this SubscriptionV2. +func (mg *SubscriptionV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this SubscriptionV2. +func (mg *SubscriptionV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this SubscriptionV2. +func (mg *SubscriptionV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this SubscriptionV2. +func (mg *SubscriptionV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this SubscriptionV2. +func (mg *SubscriptionV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this SubscriptionV2. +func (mg *SubscriptionV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this TopicAttributeV2. +func (mg *TopicAttributeV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this TopicAttributeV2. +func (mg *TopicAttributeV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this TopicAttributeV2. +func (mg *TopicAttributeV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this TopicAttributeV2. +func (mg *TopicAttributeV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this TopicAttributeV2. +func (mg *TopicAttributeV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this TopicAttributeV2. +func (mg *TopicAttributeV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this TopicAttributeV2. +func (mg *TopicAttributeV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this TopicAttributeV2. +func (mg *TopicAttributeV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this TopicAttributeV2. +func (mg *TopicAttributeV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this TopicAttributeV2. +func (mg *TopicAttributeV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this TopicAttributeV2. +func (mg *TopicAttributeV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this TopicAttributeV2. +func (mg *TopicAttributeV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + +// GetCondition of this TopicV2. +func (mg *TopicV2) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this TopicV2. +func (mg *TopicV2) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this TopicV2. +func (mg *TopicV2) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this TopicV2. +func (mg *TopicV2) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this TopicV2. +func (mg *TopicV2) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this TopicV2. +func (mg *TopicV2) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this TopicV2. +func (mg *TopicV2) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this TopicV2. +func (mg *TopicV2) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this TopicV2. +func (mg *TopicV2) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this TopicV2. +func (mg *TopicV2) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this TopicV2. +func (mg *TopicV2) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this TopicV2. +func (mg *TopicV2) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} diff --git a/apis/smn/v1alpha1/zz_generated.managedlist.go b/apis/smn/v1alpha1/zz_generated.managedlist.go new file mode 100644 index 0000000..3430cef --- /dev/null +++ b/apis/smn/v1alpha1/zz_generated.managedlist.go @@ -0,0 +1,35 @@ +/* +Copyright 2022 Upbound Inc. +*/ +// Code generated by angryjet. DO NOT EDIT. + +package v1alpha1 + +import resource "github.com/crossplane/crossplane-runtime/pkg/resource" + +// GetItems of this SubscriptionV2List. +func (l *SubscriptionV2List) 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 TopicAttributeV2List. +func (l *TopicAttributeV2List) 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 TopicV2List. +func (l *TopicV2List) 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/smn/v1alpha1/zz_generated_terraformed.go b/apis/smn/v1alpha1/zz_generated_terraformed.go new file mode 100755 index 0000000..d29043b --- /dev/null +++ b/apis/smn/v1alpha1/zz_generated_terraformed.go @@ -0,0 +1,270 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "github.com/pkg/errors" + + "github.com/crossplane/upjet/pkg/resource" + "github.com/crossplane/upjet/pkg/resource/json" +) + +// GetTerraformResourceType returns Terraform resource type for this SubscriptionV2 +func (mg *SubscriptionV2) GetTerraformResourceType() string { + return "opentelekomcloud_smn_subscription_v2" +} + +// GetConnectionDetailsMapping for this SubscriptionV2 +func (tr *SubscriptionV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this SubscriptionV2 +func (tr *SubscriptionV2) 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 SubscriptionV2 +func (tr *SubscriptionV2) 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 SubscriptionV2 +func (tr *SubscriptionV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this SubscriptionV2 +func (tr *SubscriptionV2) 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 SubscriptionV2 +func (tr *SubscriptionV2) 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 SubscriptionV2 +func (tr *SubscriptionV2) 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) +} + +// LateInitialize this SubscriptionV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *SubscriptionV2) LateInitialize(attrs []byte) (bool, error) { + params := &SubscriptionV2Parameters{} + 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 *SubscriptionV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this TopicAttributeV2 +func (mg *TopicAttributeV2) GetTerraformResourceType() string { + return "opentelekomcloud_smn_topic_attribute_v2" +} + +// GetConnectionDetailsMapping for this TopicAttributeV2 +func (tr *TopicAttributeV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this TopicAttributeV2 +func (tr *TopicAttributeV2) 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 TopicAttributeV2 +func (tr *TopicAttributeV2) 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 TopicAttributeV2 +func (tr *TopicAttributeV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this TopicAttributeV2 +func (tr *TopicAttributeV2) 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 TopicAttributeV2 +func (tr *TopicAttributeV2) 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 TopicAttributeV2 +func (tr *TopicAttributeV2) 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) +} + +// LateInitialize this TopicAttributeV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *TopicAttributeV2) LateInitialize(attrs []byte) (bool, error) { + params := &TopicAttributeV2Parameters{} + 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 *TopicAttributeV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this TopicV2 +func (mg *TopicV2) GetTerraformResourceType() string { + return "opentelekomcloud_smn_topic_v2" +} + +// GetConnectionDetailsMapping for this TopicV2 +func (tr *TopicV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this TopicV2 +func (tr *TopicV2) 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 TopicV2 +func (tr *TopicV2) 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 TopicV2 +func (tr *TopicV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this TopicV2 +func (tr *TopicV2) 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 TopicV2 +func (tr *TopicV2) 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 TopicV2 +func (tr *TopicV2) 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) +} + +// LateInitialize this TopicV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *TopicV2) LateInitialize(attrs []byte) (bool, error) { + params := &TopicV2Parameters{} + 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 *TopicV2) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/smn/v1alpha1/zz_groupversion_info.go b/apis/smn/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..7df3f54 --- /dev/null +++ b/apis/smn/v1alpha1/zz_groupversion_info.go @@ -0,0 +1,36 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +// +kubebuilder:object:generate=true +// +groupName=smn.crossplane.io +// +versionName=v1alpha1 +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +// Package type metadata. +const ( + CRDGroup = "smn.crossplane.io" + CRDVersion = "v1alpha1" +) + +var ( + // CRDGroupVersion is the API Group Version used to register the objects + CRDGroupVersion = schema.GroupVersion{Group: CRDGroup, Version: CRDVersion} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme + SchemeBuilder = &scheme.Builder{GroupVersion: CRDGroupVersion} + + // AddToScheme adds the types in this group-version to the given scheme. + AddToScheme = SchemeBuilder.AddToScheme +) diff --git a/apis/smn/v1alpha1/zz_subscriptionv2_types.go b/apis/smn/v1alpha1/zz_subscriptionv2_types.go new file mode 100755 index 0000000..169ab90 --- /dev/null +++ b/apis/smn/v1alpha1/zz_subscriptionv2_types.go @@ -0,0 +1,157 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 SubscriptionV2InitParameters struct { + + // Specifies the message endpoint. + Endpoint *string `json:"endpoint,omitempty" tf:"endpoint,omitempty"` + + // The project name for the subscription. + ProjectName *string `json:"projectName,omitempty" tf:"project_name,omitempty"` + + // Specifies protocol of the message endpoint. Currently, email, + // sms, http, and https are supported. + Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` + + // Specifies the remark information. The remarks must be a UTF-8-coded + // character string containing 128 bytes. + Remark *string `json:"remark,omitempty" tf:"remark,omitempty"` + + // Specifies the resource identifier of a topic, which is unique. + TopicUrn *string `json:"topicUrn,omitempty" tf:"topic_urn,omitempty"` +} + +type SubscriptionV2Observation struct { + + // Specifies the message endpoint. + Endpoint *string `json:"endpoint,omitempty" tf:"endpoint,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The project ID of the topic creator. + Owner *string `json:"owner,omitempty" tf:"owner,omitempty"` + + // The project name for the subscription. + ProjectName *string `json:"projectName,omitempty" tf:"project_name,omitempty"` + + // Specifies protocol of the message endpoint. Currently, email, + // sms, http, and https are supported. + Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` + + // Specifies the remark information. The remarks must be a UTF-8-coded + // character string containing 128 bytes. + Remark *string `json:"remark,omitempty" tf:"remark,omitempty"` + + // The subscription status. + Status *float64 `json:"status,omitempty" tf:"status,omitempty"` + + // The resource identifier of a subscription. + SubscriptionUrn *string `json:"subscriptionUrn,omitempty" tf:"subscription_urn,omitempty"` + + // Specifies the resource identifier of a topic, which is unique. + TopicUrn *string `json:"topicUrn,omitempty" tf:"topic_urn,omitempty"` +} + +type SubscriptionV2Parameters struct { + + // Specifies the message endpoint. + // +kubebuilder:validation:Optional + Endpoint *string `json:"endpoint,omitempty" tf:"endpoint,omitempty"` + + // The project name for the subscription. + // +kubebuilder:validation:Optional + ProjectName *string `json:"projectName,omitempty" tf:"project_name,omitempty"` + + // Specifies protocol of the message endpoint. Currently, email, + // sms, http, and https are supported. + // +kubebuilder:validation:Optional + Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` + + // Specifies the remark information. The remarks must be a UTF-8-coded + // character string containing 128 bytes. + // +kubebuilder:validation:Optional + Remark *string `json:"remark,omitempty" tf:"remark,omitempty"` + + // Specifies the resource identifier of a topic, which is unique. + // +kubebuilder:validation:Optional + TopicUrn *string `json:"topicUrn,omitempty" tf:"topic_urn,omitempty"` +} + +// SubscriptionV2Spec defines the desired state of SubscriptionV2 +type SubscriptionV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider SubscriptionV2Parameters `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 SubscriptionV2InitParameters `json:"initProvider,omitempty"` +} + +// SubscriptionV2Status defines the observed state of SubscriptionV2. +type SubscriptionV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider SubscriptionV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// SubscriptionV2 is the Schema for the SubscriptionV2s API. Manages an SMN Subscription resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type SubscriptionV2 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.endpoint) || (has(self.initProvider) && has(self.initProvider.endpoint))",message="spec.forProvider.endpoint 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.topicUrn) || (has(self.initProvider) && has(self.initProvider.topicUrn))",message="spec.forProvider.topicUrn is a required parameter" + Spec SubscriptionV2Spec `json:"spec"` + Status SubscriptionV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// SubscriptionV2List contains a list of SubscriptionV2s +type SubscriptionV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []SubscriptionV2 `json:"items"` +} + +// Repository type metadata. +var ( + SubscriptionV2_Kind = "SubscriptionV2" + SubscriptionV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: SubscriptionV2_Kind}.String() + SubscriptionV2_KindAPIVersion = SubscriptionV2_Kind + "." + CRDGroupVersion.String() + SubscriptionV2_GroupVersionKind = CRDGroupVersion.WithKind(SubscriptionV2_Kind) +) + +func init() { + SchemeBuilder.Register(&SubscriptionV2{}, &SubscriptionV2List{}) +} diff --git a/apis/smn/v1alpha1/zz_topicattributev2_types.go b/apis/smn/v1alpha1/zz_topicattributev2_types.go new file mode 100755 index 0000000..b527503 --- /dev/null +++ b/apis/smn/v1alpha1/zz_topicattributev2_types.go @@ -0,0 +1,122 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 TopicAttributeV2InitParameters struct { + + // Attribute name. Valid value is access_policy. + AttributeName *string `json:"attributeName,omitempty" tf:"attribute_name,omitempty"` + + // Topic attribute value. The value cannot exceed 30 KB. + TopicAttribute *string `json:"topicAttribute,omitempty" tf:"topic_attribute,omitempty"` + + // Resource identifier of a topic, which is unique. + TopicUrn *string `json:"topicUrn,omitempty" tf:"topic_urn,omitempty"` +} + +type TopicAttributeV2Observation struct { + + // Attribute name. Valid value is access_policy. + AttributeName *string `json:"attributeName,omitempty" tf:"attribute_name,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Topic attribute value. The value cannot exceed 30 KB. + TopicAttribute *string `json:"topicAttribute,omitempty" tf:"topic_attribute,omitempty"` + + // Resource identifier of a topic, which is unique. + TopicUrn *string `json:"topicUrn,omitempty" tf:"topic_urn,omitempty"` +} + +type TopicAttributeV2Parameters struct { + + // Attribute name. Valid value is access_policy. + // +kubebuilder:validation:Optional + AttributeName *string `json:"attributeName,omitempty" tf:"attribute_name,omitempty"` + + // Topic attribute value. The value cannot exceed 30 KB. + // +kubebuilder:validation:Optional + TopicAttribute *string `json:"topicAttribute,omitempty" tf:"topic_attribute,omitempty"` + + // Resource identifier of a topic, which is unique. + // +kubebuilder:validation:Optional + TopicUrn *string `json:"topicUrn,omitempty" tf:"topic_urn,omitempty"` +} + +// TopicAttributeV2Spec defines the desired state of TopicAttributeV2 +type TopicAttributeV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider TopicAttributeV2Parameters `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 TopicAttributeV2InitParameters `json:"initProvider,omitempty"` +} + +// TopicAttributeV2Status defines the observed state of TopicAttributeV2. +type TopicAttributeV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider TopicAttributeV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// TopicAttributeV2 is the Schema for the TopicAttributeV2s API. Manages an SMN Topic Attribute resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type TopicAttributeV2 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.attributeName) || (has(self.initProvider) && has(self.initProvider.attributeName))",message="spec.forProvider.attributeName is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.topicAttribute) || (has(self.initProvider) && has(self.initProvider.topicAttribute))",message="spec.forProvider.topicAttribute is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.topicUrn) || (has(self.initProvider) && has(self.initProvider.topicUrn))",message="spec.forProvider.topicUrn is a required parameter" + Spec TopicAttributeV2Spec `json:"spec"` + Status TopicAttributeV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// TopicAttributeV2List contains a list of TopicAttributeV2s +type TopicAttributeV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []TopicAttributeV2 `json:"items"` +} + +// Repository type metadata. +var ( + TopicAttributeV2_Kind = "TopicAttributeV2" + TopicAttributeV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: TopicAttributeV2_Kind}.String() + TopicAttributeV2_KindAPIVersion = TopicAttributeV2_Kind + "." + CRDGroupVersion.String() + TopicAttributeV2_GroupVersionKind = CRDGroupVersion.WithKind(TopicAttributeV2_Kind) +) + +func init() { + SchemeBuilder.Register(&TopicAttributeV2{}, &TopicAttributeV2List{}) +} diff --git a/apis/smn/v1alpha1/zz_topicv2_types.go b/apis/smn/v1alpha1/zz_topicv2_types.go new file mode 100755 index 0000000..073a377 --- /dev/null +++ b/apis/smn/v1alpha1/zz_topicv2_types.go @@ -0,0 +1,147 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 TopicV2InitParameters struct { + + // Topic display name, which is presented as the + // name of the email sender in an email message. + DisplayName *string `json:"displayName,omitempty" tf:"display_name,omitempty"` + + // The name of the topic to be created. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The project name for the topic. + ProjectName *string `json:"projectName,omitempty" tf:"project_name,omitempty"` + + // Tags key/value pairs to associate with the instance. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +} + +type TopicV2Observation struct { + + // Time when the topic was created. + CreateTime *string `json:"createTime,omitempty" tf:"create_time,omitempty"` + + // Topic display name, which is presented as the + // name of the email sender in an email message. + DisplayName *string `json:"displayName,omitempty" tf:"display_name,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The name of the topic to be created. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The project name for the topic. + ProjectName *string `json:"projectName,omitempty" tf:"project_name,omitempty"` + + // Message pushing policy. 0 indicates that the message + // sending fails and the message is cached in the queue. 1 indicates that the + // failed message is discarded. + PushPolicy *float64 `json:"pushPolicy,omitempty" tf:"push_policy,omitempty"` + + // Tags key/value pairs to associate with the instance. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Resource identifier of a topic, which is unique. + TopicUrn *string `json:"topicUrn,omitempty" tf:"topic_urn,omitempty"` + + // Time when the topic was updated. + UpdateTime *string `json:"updateTime,omitempty" tf:"update_time,omitempty"` +} + +type TopicV2Parameters struct { + + // Topic display name, which is presented as the + // name of the email sender in an email message. + // +kubebuilder:validation:Optional + DisplayName *string `json:"displayName,omitempty" tf:"display_name,omitempty"` + + // The name of the topic to be created. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The project name for the topic. + // +kubebuilder:validation:Optional + ProjectName *string `json:"projectName,omitempty" tf:"project_name,omitempty"` + + // Tags key/value pairs to associate with the instance. + // +kubebuilder:validation:Optional + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +} + +// TopicV2Spec defines the desired state of TopicV2 +type TopicV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider TopicV2Parameters `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 TopicV2InitParameters `json:"initProvider,omitempty"` +} + +// TopicV2Status defines the observed state of TopicV2. +type TopicV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider TopicV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// TopicV2 is the Schema for the TopicV2s API. Manages an SMN Topic resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type TopicV2 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.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + Spec TopicV2Spec `json:"spec"` + Status TopicV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// TopicV2List contains a list of TopicV2s +type TopicV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []TopicV2 `json:"items"` +} + +// Repository type metadata. +var ( + TopicV2_Kind = "TopicV2" + TopicV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: TopicV2_Kind}.String() + TopicV2_KindAPIVersion = TopicV2_Kind + "." + CRDGroupVersion.String() + TopicV2_GroupVersionKind = CRDGroupVersion.WithKind(TopicV2_Kind) +) + +func init() { + SchemeBuilder.Register(&TopicV2{}, &TopicV2List{}) +} diff --git a/apis/v1alpha1/doc.go b/apis/v1alpha1/doc.go index 468ffa7..eb1e953 100644 --- a/apis/v1alpha1/doc.go +++ b/apis/v1alpha1/doc.go @@ -2,8 +2,8 @@ Copyright 2021 Upbound Inc. */ -// Package v1alpha1 contains the core resources of the template jet provider. +// Package v1alpha1 contains the core resources of the opentelekomcloud jet provider. // +kubebuilder:object:generate=true -// +groupName=template.upbound.io +// +groupName=opentelekomcloud.crossplane.io // +versionName=v1alpha1 package v1alpha1 diff --git a/apis/v1alpha1/register.go b/apis/v1alpha1/register.go index 038d8b3..9bba5f8 100644 --- a/apis/v1alpha1/register.go +++ b/apis/v1alpha1/register.go @@ -13,7 +13,7 @@ import ( // Package type metadata. const ( - Group = "template.upbound.io" + Group = "opentelekomcloud.crossplane.io" Version = "v1alpha1" ) diff --git a/apis/v1alpha1/types.go b/apis/v1alpha1/types.go index 3f8f25a..507f8fa 100644 --- a/apis/v1alpha1/types.go +++ b/apis/v1alpha1/types.go @@ -22,11 +22,11 @@ type StoreConfigStatus struct { // +kubebuilder:object:root=true -// A StoreConfig configures how template controller should store connection details. +// A StoreConfig configures how opentelekomcloud controller should store connection details. // +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" // +kubebuilder:printcolumn:name="TYPE",type="string",JSONPath=".spec.type" // +kubebuilder:printcolumn:name="DEFAULT-SCOPE",type="string",JSONPath=".spec.defaultScope" -// +kubebuilder:resource:scope=Cluster,categories={crossplane,store,template} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,store,opentelekomcloud} // +kubebuilder:subresource:status type StoreConfig struct { metav1.TypeMeta `json:",inline"` diff --git a/apis/v1beta1/doc.go b/apis/v1beta1/doc.go index 71a80b6..d540e89 100644 --- a/apis/v1beta1/doc.go +++ b/apis/v1beta1/doc.go @@ -1,9 +1 @@ -/* -Copyright 2022 Upbound Inc. -*/ - -// Package v1beta1 contains the core resources of the template upjet provider. -// +kubebuilder:object:generate=true -// +groupName=template.upbound.io -// +versionName=v1beta1 package v1beta1 diff --git a/apis/v1beta1/register.go b/apis/v1beta1/register.go index a99c36e..c4a8411 100644 --- a/apis/v1beta1/register.go +++ b/apis/v1beta1/register.go @@ -13,7 +13,7 @@ import ( // Package type metadata. const ( - Group = "template.upbound.io" + Group = "opentelekomcloud.crossplane.io" Version = "v1beta1" ) diff --git a/apis/v1beta1/types.go b/apis/v1beta1/types.go index 110474a..03d8875 100644 --- a/apis/v1beta1/types.go +++ b/apis/v1beta1/types.go @@ -32,12 +32,12 @@ type ProviderConfigStatus struct { // +kubebuilder:object:root=true -// A ProviderConfig configures a Template provider. +// A ProviderConfig configures a opentelekomcloud provider. // +kubebuilder:subresource:status // +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp" // +kubebuilder:printcolumn:name="SECRET-NAME",type="string",JSONPath=".spec.credentials.secretRef.name",priority=1 // +kubebuilder:resource:scope=Cluster -// +kubebuilder:resource:scope=Cluster,categories={crossplane,provider,template} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,provider,opentelekomcloud} type ProviderConfig struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` @@ -62,7 +62,7 @@ type ProviderConfigList struct { // +kubebuilder:printcolumn:name="CONFIG-NAME",type="string",JSONPath=".providerConfigRef.name" // +kubebuilder:printcolumn:name="RESOURCE-KIND",type="string",JSONPath=".resourceRef.kind" // +kubebuilder:printcolumn:name="RESOURCE-NAME",type="string",JSONPath=".resourceRef.name" -// +kubebuilder:resource:scope=Cluster,categories={crossplane,provider,template} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,provider,opentelekomcloud} type ProviderConfigUsage struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/v1beta1/zz_generated.deepcopy.go b/apis/v1beta1/zz_generated.deepcopy.go index 09df2c1..da3411c 100644 --- a/apis/v1beta1/zz_generated.deepcopy.go +++ b/apis/v1beta1/zz_generated.deepcopy.go @@ -71,38 +71,6 @@ func (in *ProviderConfigList) DeepCopyObject() runtime.Object { return nil } -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ProviderConfigSpec) DeepCopyInto(out *ProviderConfigSpec) { - *out = *in - in.Credentials.DeepCopyInto(&out.Credentials) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderConfigSpec. -func (in *ProviderConfigSpec) DeepCopy() *ProviderConfigSpec { - if in == nil { - return nil - } - out := new(ProviderConfigSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ProviderConfigStatus) DeepCopyInto(out *ProviderConfigStatus) { - *out = *in - in.ProviderConfigStatus.DeepCopyInto(&out.ProviderConfigStatus) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderConfigStatus. -func (in *ProviderConfigStatus) DeepCopy() *ProviderConfigStatus { - if in == nil { - return nil - } - out := new(ProviderConfigStatus) - in.DeepCopyInto(out) - return out -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ProviderConfigUsage) DeepCopyInto(out *ProviderConfigUsage) { *out = *in @@ -160,19 +128,3 @@ func (in *ProviderConfigUsageList) DeepCopyObject() runtime.Object { } return nil } - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *ProviderCredentials) DeepCopyInto(out *ProviderCredentials) { - *out = *in - in.CommonCredentialSelectors.DeepCopyInto(&out.CommonCredentialSelectors) -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderCredentials. -func (in *ProviderCredentials) DeepCopy() *ProviderCredentials { - if in == nil { - return nil - } - out := new(ProviderCredentials) - in.DeepCopyInto(out) - return out -} diff --git a/apis/v1beta1/zz_generated.pc.go b/apis/v1beta1/zz_generated.pc.go deleted file mode 100644 index c597006..0000000 --- a/apis/v1beta1/zz_generated.pc.go +++ /dev/null @@ -1,28 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ -// Code generated by angryjet. DO NOT EDIT. - -package v1beta1 - -import xpv1 "github.com/crossplane/crossplane-runtime/apis/common/v1" - -// GetCondition of this ProviderConfig. -func (p *ProviderConfig) GetCondition(ct xpv1.ConditionType) xpv1.Condition { - return p.Status.GetCondition(ct) -} - -// GetUsers of this ProviderConfig. -func (p *ProviderConfig) GetUsers() int64 { - return p.Status.Users -} - -// SetConditions of this ProviderConfig. -func (p *ProviderConfig) SetConditions(c ...xpv1.Condition) { - p.Status.SetConditions(c...) -} - -// SetUsers of this ProviderConfig. -func (p *ProviderConfig) SetUsers(i int64) { - p.Status.Users = i -} diff --git a/apis/v1beta1/zz_generated.pcu.go b/apis/v1beta1/zz_generated.pcu.go deleted file mode 100644 index a4f4986..0000000 --- a/apis/v1beta1/zz_generated.pcu.go +++ /dev/null @@ -1,28 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ -// Code generated by angryjet. DO NOT EDIT. - -package v1beta1 - -import xpv1 "github.com/crossplane/crossplane-runtime/apis/common/v1" - -// GetProviderConfigReference of this ProviderConfigUsage. -func (p *ProviderConfigUsage) GetProviderConfigReference() xpv1.Reference { - return p.ProviderConfigReference -} - -// GetResourceReference of this ProviderConfigUsage. -func (p *ProviderConfigUsage) GetResourceReference() xpv1.TypedReference { - return p.ResourceReference -} - -// SetProviderConfigReference of this ProviderConfigUsage. -func (p *ProviderConfigUsage) SetProviderConfigReference(r xpv1.Reference) { - p.ProviderConfigReference = r -} - -// SetResourceReference of this ProviderConfigUsage. -func (p *ProviderConfigUsage) SetResourceReference(r xpv1.TypedReference) { - p.ResourceReference = r -} diff --git a/apis/v1beta1/zz_generated.pculist.go b/apis/v1beta1/zz_generated.pculist.go deleted file mode 100644 index b3ae1b4..0000000 --- a/apis/v1beta1/zz_generated.pculist.go +++ /dev/null @@ -1,17 +0,0 @@ -/* -Copyright 2022 Upbound Inc. -*/ -// Code generated by angryjet. DO NOT EDIT. - -package v1beta1 - -import resource "github.com/crossplane/crossplane-runtime/pkg/resource" - -// GetItems of this ProviderConfigUsageList. -func (p *ProviderConfigUsageList) GetItems() []resource.ProviderConfigUsage { - items := make([]resource.ProviderConfigUsage, len(p.Items)) - for i := range p.Items { - items[i] = &p.Items[i] - } - return items -} diff --git a/apis/vpc/v1alpha1/zz_bandwidthassociatev2_types.go b/apis/vpc/v1alpha1/zz_bandwidthassociatev2_types.go new file mode 100755 index 0000000..9141f37 --- /dev/null +++ b/apis/vpc/v1alpha1/zz_bandwidthassociatev2_types.go @@ -0,0 +1,137 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 BandwidthAssociateV2InitParameters struct { + + // Specifies whether the dedicated bandwidth used by the EIP that has been removed from + // a shared bandwidth is billed by traffic or by bandwidth. + BackupChargeMode *string `json:"backupChargeMode,omitempty" tf:"backup_charge_mode,omitempty"` + + // Specifies the size (Mbit/s) of the dedicated bandwidth used by the EIP that has been + // removed from a shared bandwidth. + BackupSize *float64 `json:"backupSize,omitempty" tf:"backup_size,omitempty"` + + // Specifies ID of the bandwidth to be assigned. + Bandwidth *string `json:"bandwidth,omitempty" tf:"bandwidth,omitempty"` + + // Specifies IDs of floating IPs to be added to the bandwidth. + FloatingIps []*string `json:"floatingIps,omitempty" tf:"floating_ips,omitempty"` +} + +type BandwidthAssociateV2Observation struct { + + // Specifies whether the dedicated bandwidth used by the EIP that has been removed from + // a shared bandwidth is billed by traffic or by bandwidth. + BackupChargeMode *string `json:"backupChargeMode,omitempty" tf:"backup_charge_mode,omitempty"` + + // Specifies the size (Mbit/s) of the dedicated bandwidth used by the EIP that has been + // removed from a shared bandwidth. + BackupSize *float64 `json:"backupSize,omitempty" tf:"backup_size,omitempty"` + + // Specifies ID of the bandwidth to be assigned. + Bandwidth *string `json:"bandwidth,omitempty" tf:"bandwidth,omitempty"` + + // Specifies IDs of floating IPs to be added to the bandwidth. + FloatingIps []*string `json:"floatingIps,omitempty" tf:"floating_ips,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` +} + +type BandwidthAssociateV2Parameters struct { + + // Specifies whether the dedicated bandwidth used by the EIP that has been removed from + // a shared bandwidth is billed by traffic or by bandwidth. + // +kubebuilder:validation:Optional + BackupChargeMode *string `json:"backupChargeMode,omitempty" tf:"backup_charge_mode,omitempty"` + + // Specifies the size (Mbit/s) of the dedicated bandwidth used by the EIP that has been + // removed from a shared bandwidth. + // +kubebuilder:validation:Optional + BackupSize *float64 `json:"backupSize,omitempty" tf:"backup_size,omitempty"` + + // Specifies ID of the bandwidth to be assigned. + // +kubebuilder:validation:Optional + Bandwidth *string `json:"bandwidth,omitempty" tf:"bandwidth,omitempty"` + + // Specifies IDs of floating IPs to be added to the bandwidth. + // +kubebuilder:validation:Optional + FloatingIps []*string `json:"floatingIps,omitempty" tf:"floating_ips,omitempty"` +} + +// BandwidthAssociateV2Spec defines the desired state of BandwidthAssociateV2 +type BandwidthAssociateV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider BandwidthAssociateV2Parameters `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 BandwidthAssociateV2InitParameters `json:"initProvider,omitempty"` +} + +// BandwidthAssociateV2Status defines the observed state of BandwidthAssociateV2. +type BandwidthAssociateV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider BandwidthAssociateV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// BandwidthAssociateV2 is the Schema for the BandwidthAssociateV2s API. Manages a VPC Bandwidth Association resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type BandwidthAssociateV2 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.bandwidth) || (has(self.initProvider) && has(self.initProvider.bandwidth))",message="spec.forProvider.bandwidth is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.floatingIps) || (has(self.initProvider) && has(self.initProvider.floatingIps))",message="spec.forProvider.floatingIps is a required parameter" + Spec BandwidthAssociateV2Spec `json:"spec"` + Status BandwidthAssociateV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// BandwidthAssociateV2List contains a list of BandwidthAssociateV2s +type BandwidthAssociateV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []BandwidthAssociateV2 `json:"items"` +} + +// Repository type metadata. +var ( + BandwidthAssociateV2_Kind = "BandwidthAssociateV2" + BandwidthAssociateV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: BandwidthAssociateV2_Kind}.String() + BandwidthAssociateV2_KindAPIVersion = BandwidthAssociateV2_Kind + "." + CRDGroupVersion.String() + BandwidthAssociateV2_GroupVersionKind = CRDGroupVersion.WithKind(BandwidthAssociateV2_Kind) +) + +func init() { + SchemeBuilder.Register(&BandwidthAssociateV2{}, &BandwidthAssociateV2List{}) +} diff --git a/apis/vpc/v1alpha1/zz_bandwidthv2_types.go b/apis/vpc/v1alpha1/zz_bandwidthv2_types.go new file mode 100755 index 0000000..c27499d --- /dev/null +++ b/apis/vpc/v1alpha1/zz_bandwidthv2_types.go @@ -0,0 +1,118 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 BandwidthV2InitParameters struct { + + // Specifies the bandwidth name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the bandwidth size. + // The value ranges from 5 Mbit/s to 1000 Mbit/s by default. + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` +} + +type BandwidthV2Observation struct { + + // Specifies the bandwidth ID, which uniquely identifies the bandwidth. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Specifies the bandwidth name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the bandwidth size. + // The value ranges from 5 Mbit/s to 1000 Mbit/s by default. + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` + + // Specifies the bandwidth status. + Status *string `json:"status,omitempty" tf:"status,omitempty"` +} + +type BandwidthV2Parameters struct { + + // Specifies the bandwidth name. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the bandwidth size. + // The value ranges from 5 Mbit/s to 1000 Mbit/s by default. + // +kubebuilder:validation:Optional + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` +} + +// BandwidthV2Spec defines the desired state of BandwidthV2 +type BandwidthV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider BandwidthV2Parameters `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 BandwidthV2InitParameters `json:"initProvider,omitempty"` +} + +// BandwidthV2Status defines the observed state of BandwidthV2. +type BandwidthV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider BandwidthV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// BandwidthV2 is the Schema for the BandwidthV2s API. Manages a VPC Bandwidth resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type BandwidthV2 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.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.size) || (has(self.initProvider) && has(self.initProvider.size))",message="spec.forProvider.size is a required parameter" + Spec BandwidthV2Spec `json:"spec"` + Status BandwidthV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// BandwidthV2List contains a list of BandwidthV2s +type BandwidthV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []BandwidthV2 `json:"items"` +} + +// Repository type metadata. +var ( + BandwidthV2_Kind = "BandwidthV2" + BandwidthV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: BandwidthV2_Kind}.String() + BandwidthV2_KindAPIVersion = BandwidthV2_Kind + "." + CRDGroupVersion.String() + BandwidthV2_GroupVersionKind = CRDGroupVersion.WithKind(BandwidthV2_Kind) +) + +func init() { + SchemeBuilder.Register(&BandwidthV2{}, &BandwidthV2List{}) +} diff --git a/apis/vpc/v1alpha1/zz_eipv1_types.go b/apis/vpc/v1alpha1/zz_eipv1_types.go new file mode 100755 index 0000000..7be915f --- /dev/null +++ b/apis/vpc/v1alpha1/zz_eipv1_types.go @@ -0,0 +1,276 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 BandwidthInitParameters struct { + + // This is a reserved field. If the system supports charging + // by traffic and this field is specified, then you are charged by traffic for elastic + // IP addresses. Changing this creates a new eip. + ChargeMode *string `json:"chargeMode,omitempty" tf:"charge_mode,omitempty"` + + // The bandwidth name, which is a string of 1 to 64 characters + // that contain letters, digits, underscores (_), and hyphens (-). + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Whether the bandwidth is shared or exclusive. Changing + // this creates a new eip. + ShareType *string `json:"shareType,omitempty" tf:"share_type,omitempty"` + + // The bandwidth size. The value ranges from 1 to 300 Mbit/s. + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` +} + +type BandwidthObservation struct { + + // This is a reserved field. If the system supports charging + // by traffic and this field is specified, then you are charged by traffic for elastic + // IP addresses. Changing this creates a new eip. + ChargeMode *string `json:"chargeMode,omitempty" tf:"charge_mode,omitempty"` + + // The bandwidth name, which is a string of 1 to 64 characters + // that contain letters, digits, underscores (_), and hyphens (-). + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Whether the bandwidth is shared or exclusive. Changing + // this creates a new eip. + ShareType *string `json:"shareType,omitempty" tf:"share_type,omitempty"` + + // The bandwidth size. The value ranges from 1 to 300 Mbit/s. + Size *float64 `json:"size,omitempty" tf:"size,omitempty"` +} + +type BandwidthParameters struct { + + // This is a reserved field. If the system supports charging + // by traffic and this field is specified, then you are charged by traffic for elastic + // IP addresses. Changing this creates a new eip. + // +kubebuilder:validation:Optional + ChargeMode *string `json:"chargeMode,omitempty" tf:"charge_mode,omitempty"` + + // The bandwidth name, which is a string of 1 to 64 characters + // that contain letters, digits, underscores (_), and hyphens (-). + // +kubebuilder:validation:Optional + Name *string `json:"name" tf:"name,omitempty"` + + // Whether the bandwidth is shared or exclusive. Changing + // this creates a new eip. + // +kubebuilder:validation:Optional + ShareType *string `json:"shareType" tf:"share_type,omitempty"` + + // The bandwidth size. The value ranges from 1 to 300 Mbit/s. + // +kubebuilder:validation:Optional + Size *float64 `json:"size" tf:"size,omitempty"` +} + +type EIPV1InitParameters struct { + + // The bandwidth object. + Bandwidth []BandwidthInitParameters `json:"bandwidth,omitempty" tf:"bandwidth,omitempty"` + + // The elastic IP address object. + Publicip []PublicipInitParameters `json:"publicip,omitempty" tf:"publicip,omitempty"` + + // The region in which to obtain the V1 Networking client. + // If omitted, the region argument of the provider is used. Changing this + // creates a new service. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // See Argument Reference above. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The value true indicates that port will be unassigned from EIP. + // This parameter work only with already allocated resource. + UnbindPort *bool `json:"unbindPort,omitempty" tf:"unbind_port,omitempty"` + + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +type EIPV1Observation struct { + + // The bandwidth object. + Bandwidth []BandwidthObservation `json:"bandwidth,omitempty" tf:"bandwidth,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The elastic IP address object. + Publicip []PublicipObservation `json:"publicip,omitempty" tf:"publicip,omitempty"` + + // The region in which to obtain the V1 Networking client. + // If omitted, the region argument of the provider is used. Changing this + // creates a new service. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // See Argument Reference above. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The value true indicates that port will be unassigned from EIP. + // This parameter work only with already allocated resource. + UnbindPort *bool `json:"unbindPort,omitempty" tf:"unbind_port,omitempty"` + + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +type EIPV1Parameters struct { + + // The bandwidth object. + // +kubebuilder:validation:Optional + Bandwidth []BandwidthParameters `json:"bandwidth,omitempty" tf:"bandwidth,omitempty"` + + // The elastic IP address object. + // +kubebuilder:validation:Optional + Publicip []PublicipParameters `json:"publicip,omitempty" tf:"publicip,omitempty"` + + // The region in which to obtain the V1 Networking client. + // If omitted, the region argument of the provider is used. Changing this + // creates a new service. + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // See Argument Reference above. + // +kubebuilder:validation:Optional + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The value true indicates that port will be unassigned from EIP. + // This parameter work only with already allocated resource. + // +kubebuilder:validation:Optional + UnbindPort *bool `json:"unbindPort,omitempty" tf:"unbind_port,omitempty"` + + // +kubebuilder:validation:Optional + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +type PublicipInitParameters struct { + + // The value must be a valid IP address in the available + // IP address segment. Changing this creates a new eip. + IPAddress *string `json:"ipAddress,omitempty" tf:"ip_address,omitempty"` + + // The ip name, which is a string of 1 to 64 characters. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The port id which this eip will associate with. If the value + // is "" or this not specified, the eip will be in unbind state. + PortID *string `json:"portId,omitempty" tf:"port_id,omitempty"` + + // The value must be a type supported by the system. + // The value can be 5_bgp, 5_mailbgp and 5_gray. Changing this creates a new eip. + Type *string `json:"type,omitempty" tf:"type,omitempty"` +} + +type PublicipObservation struct { + + // The value must be a valid IP address in the available + // IP address segment. Changing this creates a new eip. + IPAddress *string `json:"ipAddress,omitempty" tf:"ip_address,omitempty"` + + // The ip name, which is a string of 1 to 64 characters. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The port id which this eip will associate with. If the value + // is "" or this not specified, the eip will be in unbind state. + PortID *string `json:"portId,omitempty" tf:"port_id,omitempty"` + + // The value must be a type supported by the system. + // The value can be 5_bgp, 5_mailbgp and 5_gray. Changing this creates a new eip. + Type *string `json:"type,omitempty" tf:"type,omitempty"` +} + +type PublicipParameters struct { + + // The value must be a valid IP address in the available + // IP address segment. Changing this creates a new eip. + // +kubebuilder:validation:Optional + IPAddress *string `json:"ipAddress,omitempty" tf:"ip_address,omitempty"` + + // The ip name, which is a string of 1 to 64 characters. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The port id which this eip will associate with. If the value + // is "" or this not specified, the eip will be in unbind state. + // +kubebuilder:validation:Optional + PortID *string `json:"portId,omitempty" tf:"port_id,omitempty"` + + // The value must be a type supported by the system. + // The value can be 5_bgp, 5_mailbgp and 5_gray. Changing this creates a new eip. + // +kubebuilder:validation:Optional + Type *string `json:"type" tf:"type,omitempty"` +} + +// EIPV1Spec defines the desired state of EIPV1 +type EIPV1Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider EIPV1Parameters `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 EIPV1InitParameters `json:"initProvider,omitempty"` +} + +// EIPV1Status defines the observed state of EIPV1. +type EIPV1Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider EIPV1Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// EIPV1 is the Schema for the EIPV1s API. Manages a VPC EIP resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type EIPV1 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.bandwidth) || (has(self.initProvider) && has(self.initProvider.bandwidth))",message="spec.forProvider.bandwidth is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.publicip) || (has(self.initProvider) && has(self.initProvider.publicip))",message="spec.forProvider.publicip is a required parameter" + Spec EIPV1Spec `json:"spec"` + Status EIPV1Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// EIPV1List contains a list of EIPV1s +type EIPV1List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []EIPV1 `json:"items"` +} + +// Repository type metadata. +var ( + EIPV1_Kind = "EIPV1" + EIPV1_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: EIPV1_Kind}.String() + EIPV1_KindAPIVersion = EIPV1_Kind + "." + CRDGroupVersion.String() + EIPV1_GroupVersionKind = CRDGroupVersion.WithKind(EIPV1_Kind) +) + +func init() { + SchemeBuilder.Register(&EIPV1{}, &EIPV1List{}) +} diff --git a/apis/vpc/v1alpha1/zz_flowlogv1_types.go b/apis/vpc/v1alpha1/zz_flowlogv1_types.go new file mode 100755 index 0000000..05f1d69 --- /dev/null +++ b/apis/vpc/v1alpha1/zz_flowlogv1_types.go @@ -0,0 +1,209 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 FlowLogV1InitParameters struct { + + // Whether to enable the VPC flow log function. + AdminState *bool `json:"adminState,omitempty" tf:"admin_state,omitempty"` + + // (Optinal) Provides supplementary information about the VPC flow log. + // The value is a string of no more than 255 characters and cannot contain angle brackets (< or >). + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Specifies the log group ID. + // Changing this creates a new VPC flow log. + LogGroupID *string `json:"logGroupId,omitempty" tf:"log_group_id,omitempty"` + + // Specifies the log topic ID. + // Changing this creates a new VPC flow log. + LogTopicID *string `json:"logTopicId,omitempty" tf:"log_topic_id,omitempty"` + + // Specifies the flow log name. + // The value is a string of 1 to 64 characters that can contain letters, digits, underscores (_), hyphens (-) and periods (.). + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the ID of resource type. + // Changing this creates a new VPC flow log. + ResourceID *string `json:"resourceId,omitempty" tf:"resource_id,omitempty"` + + // Specifies the type of resource on which to create the VPC flow log. + // The value can be port, vpc and network. + // Changing this creates a new VPC flow log. + ResourceType *string `json:"resourceType,omitempty" tf:"resource_type,omitempty"` + + // The status of the flow log. The value can be ACTIVE, DOWN or ERROR. + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + // Specifies the type of traffic to log. The value can be all, accept and reject. + // Changing this creates a new VPC flow log. + TrafficType *string `json:"trafficType,omitempty" tf:"traffic_type,omitempty"` +} + +type FlowLogV1Observation struct { + + // Whether to enable the VPC flow log function. + AdminState *bool `json:"adminState,omitempty" tf:"admin_state,omitempty"` + + // (Optinal) Provides supplementary information about the VPC flow log. + // The value is a string of no more than 255 characters and cannot contain angle brackets (< or >). + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The VPC flow log ID in UUID format. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Specifies the log group ID. + // Changing this creates a new VPC flow log. + LogGroupID *string `json:"logGroupId,omitempty" tf:"log_group_id,omitempty"` + + // Specifies the log topic ID. + // Changing this creates a new VPC flow log. + LogTopicID *string `json:"logTopicId,omitempty" tf:"log_topic_id,omitempty"` + + // Specifies the flow log name. + // The value is a string of 1 to 64 characters that can contain letters, digits, underscores (_), hyphens (-) and periods (.). + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the ID of resource type. + // Changing this creates a new VPC flow log. + ResourceID *string `json:"resourceId,omitempty" tf:"resource_id,omitempty"` + + // Specifies the type of resource on which to create the VPC flow log. + // The value can be port, vpc and network. + // Changing this creates a new VPC flow log. + ResourceType *string `json:"resourceType,omitempty" tf:"resource_type,omitempty"` + + // The status of the flow log. The value can be ACTIVE, DOWN or ERROR. + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + // Specifies the type of traffic to log. The value can be all, accept and reject. + // Changing this creates a new VPC flow log. + TrafficType *string `json:"trafficType,omitempty" tf:"traffic_type,omitempty"` +} + +type FlowLogV1Parameters struct { + + // Whether to enable the VPC flow log function. + // +kubebuilder:validation:Optional + AdminState *bool `json:"adminState,omitempty" tf:"admin_state,omitempty"` + + // (Optinal) Provides supplementary information about the VPC flow log. + // The value is a string of no more than 255 characters and cannot contain angle brackets (< or >). + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Specifies the log group ID. + // Changing this creates a new VPC flow log. + // +kubebuilder:validation:Optional + LogGroupID *string `json:"logGroupId,omitempty" tf:"log_group_id,omitempty"` + + // Specifies the log topic ID. + // Changing this creates a new VPC flow log. + // +kubebuilder:validation:Optional + LogTopicID *string `json:"logTopicId,omitempty" tf:"log_topic_id,omitempty"` + + // Specifies the flow log name. + // The value is a string of 1 to 64 characters that can contain letters, digits, underscores (_), hyphens (-) and periods (.). + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the ID of resource type. + // Changing this creates a new VPC flow log. + // +kubebuilder:validation:Optional + ResourceID *string `json:"resourceId,omitempty" tf:"resource_id,omitempty"` + + // Specifies the type of resource on which to create the VPC flow log. + // The value can be port, vpc and network. + // Changing this creates a new VPC flow log. + // +kubebuilder:validation:Optional + ResourceType *string `json:"resourceType,omitempty" tf:"resource_type,omitempty"` + + // The status of the flow log. The value can be ACTIVE, DOWN or ERROR. + // +kubebuilder:validation:Optional + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + // Specifies the type of traffic to log. The value can be all, accept and reject. + // Changing this creates a new VPC flow log. + // +kubebuilder:validation:Optional + TrafficType *string `json:"trafficType,omitempty" tf:"traffic_type,omitempty"` +} + +// FlowLogV1Spec defines the desired state of FlowLogV1 +type FlowLogV1Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider FlowLogV1Parameters `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 FlowLogV1InitParameters `json:"initProvider,omitempty"` +} + +// FlowLogV1Status defines the observed state of FlowLogV1. +type FlowLogV1Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider FlowLogV1Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// FlowLogV1 is the Schema for the FlowLogV1s API. Manages a VPC Flow Log resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type FlowLogV1 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.logGroupId) || (has(self.initProvider) && has(self.initProvider.logGroupId))",message="spec.forProvider.logGroupId is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.logTopicId) || (has(self.initProvider) && has(self.initProvider.logTopicId))",message="spec.forProvider.logTopicId is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.resourceId) || (has(self.initProvider) && has(self.initProvider.resourceId))",message="spec.forProvider.resourceId is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.resourceType) || (has(self.initProvider) && has(self.initProvider.resourceType))",message="spec.forProvider.resourceType is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.trafficType) || (has(self.initProvider) && has(self.initProvider.trafficType))",message="spec.forProvider.trafficType is a required parameter" + Spec FlowLogV1Spec `json:"spec"` + Status FlowLogV1Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// FlowLogV1List contains a list of FlowLogV1s +type FlowLogV1List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []FlowLogV1 `json:"items"` +} + +// Repository type metadata. +var ( + FlowLogV1_Kind = "FlowLogV1" + FlowLogV1_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: FlowLogV1_Kind}.String() + FlowLogV1_KindAPIVersion = FlowLogV1_Kind + "." + CRDGroupVersion.String() + FlowLogV1_GroupVersionKind = CRDGroupVersion.WithKind(FlowLogV1_Kind) +) + +func init() { + SchemeBuilder.Register(&FlowLogV1{}, &FlowLogV1List{}) +} diff --git a/apis/vpc/v1alpha1/zz_generated.deepcopy.go b/apis/vpc/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..b683398 --- /dev/null +++ b/apis/vpc/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,2977 @@ +//go:build !ignore_autogenerated + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by controller-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + 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 *BandwidthAssociateV2) DeepCopyInto(out *BandwidthAssociateV2) { + *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 BandwidthAssociateV2. +func (in *BandwidthAssociateV2) DeepCopy() *BandwidthAssociateV2 { + if in == nil { + return nil + } + out := new(BandwidthAssociateV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *BandwidthAssociateV2) 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 *BandwidthAssociateV2InitParameters) DeepCopyInto(out *BandwidthAssociateV2InitParameters) { + *out = *in + if in.BackupChargeMode != nil { + in, out := &in.BackupChargeMode, &out.BackupChargeMode + *out = new(string) + **out = **in + } + if in.BackupSize != nil { + in, out := &in.BackupSize, &out.BackupSize + *out = new(float64) + **out = **in + } + if in.Bandwidth != nil { + in, out := &in.Bandwidth, &out.Bandwidth + *out = new(string) + **out = **in + } + if in.FloatingIps != nil { + in, out := &in.FloatingIps, &out.FloatingIps + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BandwidthAssociateV2InitParameters. +func (in *BandwidthAssociateV2InitParameters) DeepCopy() *BandwidthAssociateV2InitParameters { + if in == nil { + return nil + } + out := new(BandwidthAssociateV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BandwidthAssociateV2List) DeepCopyInto(out *BandwidthAssociateV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]BandwidthAssociateV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BandwidthAssociateV2List. +func (in *BandwidthAssociateV2List) DeepCopy() *BandwidthAssociateV2List { + if in == nil { + return nil + } + out := new(BandwidthAssociateV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *BandwidthAssociateV2List) 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 *BandwidthAssociateV2Observation) DeepCopyInto(out *BandwidthAssociateV2Observation) { + *out = *in + if in.BackupChargeMode != nil { + in, out := &in.BackupChargeMode, &out.BackupChargeMode + *out = new(string) + **out = **in + } + if in.BackupSize != nil { + in, out := &in.BackupSize, &out.BackupSize + *out = new(float64) + **out = **in + } + if in.Bandwidth != nil { + in, out := &in.Bandwidth, &out.Bandwidth + *out = new(string) + **out = **in + } + if in.FloatingIps != nil { + in, out := &in.FloatingIps, &out.FloatingIps + *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.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 BandwidthAssociateV2Observation. +func (in *BandwidthAssociateV2Observation) DeepCopy() *BandwidthAssociateV2Observation { + if in == nil { + return nil + } + out := new(BandwidthAssociateV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BandwidthAssociateV2Parameters) DeepCopyInto(out *BandwidthAssociateV2Parameters) { + *out = *in + if in.BackupChargeMode != nil { + in, out := &in.BackupChargeMode, &out.BackupChargeMode + *out = new(string) + **out = **in + } + if in.BackupSize != nil { + in, out := &in.BackupSize, &out.BackupSize + *out = new(float64) + **out = **in + } + if in.Bandwidth != nil { + in, out := &in.Bandwidth, &out.Bandwidth + *out = new(string) + **out = **in + } + if in.FloatingIps != nil { + in, out := &in.FloatingIps, &out.FloatingIps + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BandwidthAssociateV2Parameters. +func (in *BandwidthAssociateV2Parameters) DeepCopy() *BandwidthAssociateV2Parameters { + if in == nil { + return nil + } + out := new(BandwidthAssociateV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BandwidthAssociateV2Spec) DeepCopyInto(out *BandwidthAssociateV2Spec) { + *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 BandwidthAssociateV2Spec. +func (in *BandwidthAssociateV2Spec) DeepCopy() *BandwidthAssociateV2Spec { + if in == nil { + return nil + } + out := new(BandwidthAssociateV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BandwidthAssociateV2Status) DeepCopyInto(out *BandwidthAssociateV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BandwidthAssociateV2Status. +func (in *BandwidthAssociateV2Status) DeepCopy() *BandwidthAssociateV2Status { + if in == nil { + return nil + } + out := new(BandwidthAssociateV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BandwidthInitParameters) DeepCopyInto(out *BandwidthInitParameters) { + *out = *in + if in.ChargeMode != nil { + in, out := &in.ChargeMode, &out.ChargeMode + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.ShareType != nil { + in, out := &in.ShareType, &out.ShareType + *out = new(string) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BandwidthInitParameters. +func (in *BandwidthInitParameters) DeepCopy() *BandwidthInitParameters { + if in == nil { + return nil + } + out := new(BandwidthInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BandwidthObservation) DeepCopyInto(out *BandwidthObservation) { + *out = *in + if in.ChargeMode != nil { + in, out := &in.ChargeMode, &out.ChargeMode + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.ShareType != nil { + in, out := &in.ShareType, &out.ShareType + *out = new(string) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BandwidthObservation. +func (in *BandwidthObservation) DeepCopy() *BandwidthObservation { + if in == nil { + return nil + } + out := new(BandwidthObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BandwidthParameters) DeepCopyInto(out *BandwidthParameters) { + *out = *in + if in.ChargeMode != nil { + in, out := &in.ChargeMode, &out.ChargeMode + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.ShareType != nil { + in, out := &in.ShareType, &out.ShareType + *out = new(string) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BandwidthParameters. +func (in *BandwidthParameters) DeepCopy() *BandwidthParameters { + if in == nil { + return nil + } + out := new(BandwidthParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BandwidthV2) DeepCopyInto(out *BandwidthV2) { + *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 BandwidthV2. +func (in *BandwidthV2) DeepCopy() *BandwidthV2 { + if in == nil { + return nil + } + out := new(BandwidthV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *BandwidthV2) 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 *BandwidthV2InitParameters) DeepCopyInto(out *BandwidthV2InitParameters) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BandwidthV2InitParameters. +func (in *BandwidthV2InitParameters) DeepCopy() *BandwidthV2InitParameters { + if in == nil { + return nil + } + out := new(BandwidthV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BandwidthV2List) DeepCopyInto(out *BandwidthV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]BandwidthV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BandwidthV2List. +func (in *BandwidthV2List) DeepCopy() *BandwidthV2List { + if in == nil { + return nil + } + out := new(BandwidthV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *BandwidthV2List) 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 *BandwidthV2Observation) DeepCopyInto(out *BandwidthV2Observation) { + *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.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } + 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 BandwidthV2Observation. +func (in *BandwidthV2Observation) DeepCopy() *BandwidthV2Observation { + if in == nil { + return nil + } + out := new(BandwidthV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BandwidthV2Parameters) DeepCopyInto(out *BandwidthV2Parameters) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Size != nil { + in, out := &in.Size, &out.Size + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BandwidthV2Parameters. +func (in *BandwidthV2Parameters) DeepCopy() *BandwidthV2Parameters { + if in == nil { + return nil + } + out := new(BandwidthV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BandwidthV2Spec) DeepCopyInto(out *BandwidthV2Spec) { + *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 BandwidthV2Spec. +func (in *BandwidthV2Spec) DeepCopy() *BandwidthV2Spec { + if in == nil { + return nil + } + out := new(BandwidthV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BandwidthV2Status) DeepCopyInto(out *BandwidthV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BandwidthV2Status. +func (in *BandwidthV2Status) DeepCopy() *BandwidthV2Status { + if in == nil { + return nil + } + out := new(BandwidthV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EIPV1) DeepCopyInto(out *EIPV1) { + *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 EIPV1. +func (in *EIPV1) DeepCopy() *EIPV1 { + if in == nil { + return nil + } + out := new(EIPV1) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *EIPV1) 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 *EIPV1InitParameters) DeepCopyInto(out *EIPV1InitParameters) { + *out = *in + if in.Bandwidth != nil { + in, out := &in.Bandwidth, &out.Bandwidth + *out = make([]BandwidthInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + 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.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.UnbindPort != nil { + in, out := &in.UnbindPort, &out.UnbindPort + *out = new(bool) + **out = **in + } + if in.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 EIPV1InitParameters. +func (in *EIPV1InitParameters) DeepCopy() *EIPV1InitParameters { + if in == nil { + return nil + } + out := new(EIPV1InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EIPV1List) DeepCopyInto(out *EIPV1List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]EIPV1, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EIPV1List. +func (in *EIPV1List) DeepCopy() *EIPV1List { + if in == nil { + return nil + } + out := new(EIPV1List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *EIPV1List) 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 *EIPV1Observation) DeepCopyInto(out *EIPV1Observation) { + *out = *in + if in.Bandwidth != nil { + in, out := &in.Bandwidth, &out.Bandwidth + *out = make([]BandwidthObservation, 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.Publicip != nil { + in, out := &in.Publicip, &out.Publicip + *out = make([]PublicipObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + 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.UnbindPort != nil { + in, out := &in.UnbindPort, &out.UnbindPort + *out = new(bool) + **out = **in + } + if in.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 EIPV1Observation. +func (in *EIPV1Observation) DeepCopy() *EIPV1Observation { + if in == nil { + return nil + } + out := new(EIPV1Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EIPV1Parameters) DeepCopyInto(out *EIPV1Parameters) { + *out = *in + if in.Bandwidth != nil { + in, out := &in.Bandwidth, &out.Bandwidth + *out = make([]BandwidthParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + 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.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.UnbindPort != nil { + in, out := &in.UnbindPort, &out.UnbindPort + *out = new(bool) + **out = **in + } + if in.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 EIPV1Parameters. +func (in *EIPV1Parameters) DeepCopy() *EIPV1Parameters { + if in == nil { + return nil + } + out := new(EIPV1Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EIPV1Spec) DeepCopyInto(out *EIPV1Spec) { + *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 EIPV1Spec. +func (in *EIPV1Spec) DeepCopy() *EIPV1Spec { + if in == nil { + return nil + } + out := new(EIPV1Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EIPV1Status) DeepCopyInto(out *EIPV1Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EIPV1Status. +func (in *EIPV1Status) DeepCopy() *EIPV1Status { + if in == nil { + return nil + } + out := new(EIPV1Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FlowLogV1) DeepCopyInto(out *FlowLogV1) { + *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 FlowLogV1. +func (in *FlowLogV1) DeepCopy() *FlowLogV1 { + if in == nil { + return nil + } + out := new(FlowLogV1) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *FlowLogV1) 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 *FlowLogV1InitParameters) DeepCopyInto(out *FlowLogV1InitParameters) { + *out = *in + if in.AdminState != nil { + in, out := &in.AdminState, &out.AdminState + *out = new(bool) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.LogGroupID != nil { + in, out := &in.LogGroupID, &out.LogGroupID + *out = new(string) + **out = **in + } + if in.LogTopicID != nil { + in, out := &in.LogTopicID, &out.LogTopicID + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.ResourceID != nil { + in, out := &in.ResourceID, &out.ResourceID + *out = new(string) + **out = **in + } + if in.ResourceType != nil { + in, out := &in.ResourceType, &out.ResourceType + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(string) + **out = **in + } + if in.TrafficType != nil { + in, out := &in.TrafficType, &out.TrafficType + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowLogV1InitParameters. +func (in *FlowLogV1InitParameters) DeepCopy() *FlowLogV1InitParameters { + if in == nil { + return nil + } + out := new(FlowLogV1InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FlowLogV1List) DeepCopyInto(out *FlowLogV1List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]FlowLogV1, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowLogV1List. +func (in *FlowLogV1List) DeepCopy() *FlowLogV1List { + if in == nil { + return nil + } + out := new(FlowLogV1List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *FlowLogV1List) 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 *FlowLogV1Observation) DeepCopyInto(out *FlowLogV1Observation) { + *out = *in + if in.AdminState != nil { + in, out := &in.AdminState, &out.AdminState + *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.LogGroupID != nil { + in, out := &in.LogGroupID, &out.LogGroupID + *out = new(string) + **out = **in + } + if in.LogTopicID != nil { + in, out := &in.LogTopicID, &out.LogTopicID + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.ResourceID != nil { + in, out := &in.ResourceID, &out.ResourceID + *out = new(string) + **out = **in + } + if in.ResourceType != nil { + in, out := &in.ResourceType, &out.ResourceType + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(string) + **out = **in + } + if in.TrafficType != nil { + in, out := &in.TrafficType, &out.TrafficType + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowLogV1Observation. +func (in *FlowLogV1Observation) DeepCopy() *FlowLogV1Observation { + if in == nil { + return nil + } + out := new(FlowLogV1Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FlowLogV1Parameters) DeepCopyInto(out *FlowLogV1Parameters) { + *out = *in + if in.AdminState != nil { + in, out := &in.AdminState, &out.AdminState + *out = new(bool) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.LogGroupID != nil { + in, out := &in.LogGroupID, &out.LogGroupID + *out = new(string) + **out = **in + } + if in.LogTopicID != nil { + in, out := &in.LogTopicID, &out.LogTopicID + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.ResourceID != nil { + in, out := &in.ResourceID, &out.ResourceID + *out = new(string) + **out = **in + } + if in.ResourceType != nil { + in, out := &in.ResourceType, &out.ResourceType + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(string) + **out = **in + } + if in.TrafficType != nil { + in, out := &in.TrafficType, &out.TrafficType + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowLogV1Parameters. +func (in *FlowLogV1Parameters) DeepCopy() *FlowLogV1Parameters { + if in == nil { + return nil + } + out := new(FlowLogV1Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FlowLogV1Spec) DeepCopyInto(out *FlowLogV1Spec) { + *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 FlowLogV1Spec. +func (in *FlowLogV1Spec) DeepCopy() *FlowLogV1Spec { + if in == nil { + return nil + } + out := new(FlowLogV1Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *FlowLogV1Status) DeepCopyInto(out *FlowLogV1Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlowLogV1Status. +func (in *FlowLogV1Status) DeepCopy() *FlowLogV1Status { + if in == nil { + return nil + } + out := new(FlowLogV1Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PeeringConnectionAccepterV2) DeepCopyInto(out *PeeringConnectionAccepterV2) { + *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 PeeringConnectionAccepterV2. +func (in *PeeringConnectionAccepterV2) DeepCopy() *PeeringConnectionAccepterV2 { + if in == nil { + return nil + } + out := new(PeeringConnectionAccepterV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PeeringConnectionAccepterV2) 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 *PeeringConnectionAccepterV2InitParameters) DeepCopyInto(out *PeeringConnectionAccepterV2InitParameters) { + *out = *in + if in.Accept != nil { + in, out := &in.Accept, &out.Accept + *out = new(bool) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.VPCPeeringConnectionID != nil { + in, out := &in.VPCPeeringConnectionID, &out.VPCPeeringConnectionID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PeeringConnectionAccepterV2InitParameters. +func (in *PeeringConnectionAccepterV2InitParameters) DeepCopy() *PeeringConnectionAccepterV2InitParameters { + if in == nil { + return nil + } + out := new(PeeringConnectionAccepterV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PeeringConnectionAccepterV2List) DeepCopyInto(out *PeeringConnectionAccepterV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]PeeringConnectionAccepterV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PeeringConnectionAccepterV2List. +func (in *PeeringConnectionAccepterV2List) DeepCopy() *PeeringConnectionAccepterV2List { + if in == nil { + return nil + } + out := new(PeeringConnectionAccepterV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PeeringConnectionAccepterV2List) 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 *PeeringConnectionAccepterV2Observation) DeepCopyInto(out *PeeringConnectionAccepterV2Observation) { + *out = *in + if in.Accept != nil { + in, out := &in.Accept, &out.Accept + *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.PeerTenantID != nil { + in, out := &in.PeerTenantID, &out.PeerTenantID + *out = new(string) + **out = **in + } + if in.PeerVPCID != nil { + in, out := &in.PeerVPCID, &out.PeerVPCID + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(string) + **out = **in + } + if in.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } + if in.VPCPeeringConnectionID != nil { + in, out := &in.VPCPeeringConnectionID, &out.VPCPeeringConnectionID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PeeringConnectionAccepterV2Observation. +func (in *PeeringConnectionAccepterV2Observation) DeepCopy() *PeeringConnectionAccepterV2Observation { + if in == nil { + return nil + } + out := new(PeeringConnectionAccepterV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PeeringConnectionAccepterV2Parameters) DeepCopyInto(out *PeeringConnectionAccepterV2Parameters) { + *out = *in + if in.Accept != nil { + in, out := &in.Accept, &out.Accept + *out = new(bool) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.VPCPeeringConnectionID != nil { + in, out := &in.VPCPeeringConnectionID, &out.VPCPeeringConnectionID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PeeringConnectionAccepterV2Parameters. +func (in *PeeringConnectionAccepterV2Parameters) DeepCopy() *PeeringConnectionAccepterV2Parameters { + if in == nil { + return nil + } + out := new(PeeringConnectionAccepterV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PeeringConnectionAccepterV2Spec) DeepCopyInto(out *PeeringConnectionAccepterV2Spec) { + *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 PeeringConnectionAccepterV2Spec. +func (in *PeeringConnectionAccepterV2Spec) DeepCopy() *PeeringConnectionAccepterV2Spec { + if in == nil { + return nil + } + out := new(PeeringConnectionAccepterV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PeeringConnectionAccepterV2Status) DeepCopyInto(out *PeeringConnectionAccepterV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PeeringConnectionAccepterV2Status. +func (in *PeeringConnectionAccepterV2Status) DeepCopy() *PeeringConnectionAccepterV2Status { + if in == nil { + return nil + } + out := new(PeeringConnectionAccepterV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PeeringConnectionV2) DeepCopyInto(out *PeeringConnectionV2) { + *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 PeeringConnectionV2. +func (in *PeeringConnectionV2) DeepCopy() *PeeringConnectionV2 { + if in == nil { + return nil + } + out := new(PeeringConnectionV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PeeringConnectionV2) 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 *PeeringConnectionV2InitParameters) DeepCopyInto(out *PeeringConnectionV2InitParameters) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PeerTenantID != nil { + in, out := &in.PeerTenantID, &out.PeerTenantID + *out = new(string) + **out = **in + } + if in.PeerVPCID != nil { + in, out := &in.PeerVPCID, &out.PeerVPCID + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PeeringConnectionV2InitParameters. +func (in *PeeringConnectionV2InitParameters) DeepCopy() *PeeringConnectionV2InitParameters { + if in == nil { + return nil + } + out := new(PeeringConnectionV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PeeringConnectionV2List) DeepCopyInto(out *PeeringConnectionV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]PeeringConnectionV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PeeringConnectionV2List. +func (in *PeeringConnectionV2List) DeepCopy() *PeeringConnectionV2List { + if in == nil { + return nil + } + out := new(PeeringConnectionV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *PeeringConnectionV2List) 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 *PeeringConnectionV2Observation) DeepCopyInto(out *PeeringConnectionV2Observation) { + *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.PeerTenantID != nil { + in, out := &in.PeerTenantID, &out.PeerTenantID + *out = new(string) + **out = **in + } + if in.PeerVPCID != nil { + in, out := &in.PeerVPCID, &out.PeerVPCID + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(string) + **out = **in + } + if in.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PeeringConnectionV2Observation. +func (in *PeeringConnectionV2Observation) DeepCopy() *PeeringConnectionV2Observation { + if in == nil { + return nil + } + out := new(PeeringConnectionV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PeeringConnectionV2Parameters) DeepCopyInto(out *PeeringConnectionV2Parameters) { + *out = *in + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PeerTenantID != nil { + in, out := &in.PeerTenantID, &out.PeerTenantID + *out = new(string) + **out = **in + } + if in.PeerVPCID != nil { + in, out := &in.PeerVPCID, &out.PeerVPCID + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PeeringConnectionV2Parameters. +func (in *PeeringConnectionV2Parameters) DeepCopy() *PeeringConnectionV2Parameters { + if in == nil { + return nil + } + out := new(PeeringConnectionV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PeeringConnectionV2Spec) DeepCopyInto(out *PeeringConnectionV2Spec) { + *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 PeeringConnectionV2Spec. +func (in *PeeringConnectionV2Spec) DeepCopy() *PeeringConnectionV2Spec { + if in == nil { + return nil + } + out := new(PeeringConnectionV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PeeringConnectionV2Status) DeepCopyInto(out *PeeringConnectionV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PeeringConnectionV2Status. +func (in *PeeringConnectionV2Status) DeepCopy() *PeeringConnectionV2Status { + if in == nil { + return nil + } + out := new(PeeringConnectionV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PublicipInitParameters) DeepCopyInto(out *PublicipInitParameters) { + *out = *in + if in.IPAddress != nil { + in, out := &in.IPAddress, &out.IPAddress + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PortID != nil { + in, out := &in.PortID, &out.PortID + *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 PublicipInitParameters. +func (in *PublicipInitParameters) DeepCopy() *PublicipInitParameters { + if in == nil { + return nil + } + out := new(PublicipInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PublicipObservation) DeepCopyInto(out *PublicipObservation) { + *out = *in + if in.IPAddress != nil { + in, out := &in.IPAddress, &out.IPAddress + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PortID != nil { + in, out := &in.PortID, &out.PortID + *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 PublicipObservation. +func (in *PublicipObservation) DeepCopy() *PublicipObservation { + if in == nil { + return nil + } + out := new(PublicipObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PublicipParameters) DeepCopyInto(out *PublicipParameters) { + *out = *in + if in.IPAddress != nil { + in, out := &in.IPAddress, &out.IPAddress + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PortID != nil { + in, out := &in.PortID, &out.PortID + *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 PublicipParameters. +func (in *PublicipParameters) DeepCopy() *PublicipParameters { + if in == nil { + return nil + } + out := new(PublicipParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RouteInitParameters) DeepCopyInto(out *RouteInitParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Destination != nil { + in, out := &in.Destination, &out.Destination + *out = new(string) + **out = **in + } + if in.Nexthop != nil { + in, out := &in.Nexthop, &out.Nexthop + *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 RouteInitParameters. +func (in *RouteInitParameters) DeepCopy() *RouteInitParameters { + if in == nil { + return nil + } + out := new(RouteInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RouteObservation) DeepCopyInto(out *RouteObservation) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Destination != nil { + in, out := &in.Destination, &out.Destination + *out = new(string) + **out = **in + } + if in.Nexthop != nil { + in, out := &in.Nexthop, &out.Nexthop + *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 RouteObservation. +func (in *RouteObservation) DeepCopy() *RouteObservation { + if in == nil { + return nil + } + out := new(RouteObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RouteParameters) DeepCopyInto(out *RouteParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Destination != nil { + in, out := &in.Destination, &out.Destination + *out = new(string) + **out = **in + } + if in.Nexthop != nil { + in, out := &in.Nexthop, &out.Nexthop + *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 RouteParameters. +func (in *RouteParameters) DeepCopy() *RouteParameters { + if in == nil { + return nil + } + out := new(RouteParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RouteTableV1) DeepCopyInto(out *RouteTableV1) { + *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 RouteTableV1. +func (in *RouteTableV1) DeepCopy() *RouteTableV1 { + if in == nil { + return nil + } + out := new(RouteTableV1) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *RouteTableV1) 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 *RouteTableV1InitParameters) DeepCopyInto(out *RouteTableV1InitParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *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.Route != nil { + in, out := &in.Route, &out.Route + *out = make([]RouteInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Subnets != nil { + in, out := &in.Subnets, &out.Subnets + *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.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteTableV1InitParameters. +func (in *RouteTableV1InitParameters) DeepCopy() *RouteTableV1InitParameters { + if in == nil { + return nil + } + out := new(RouteTableV1InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RouteTableV1List) DeepCopyInto(out *RouteTableV1List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]RouteTableV1, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteTableV1List. +func (in *RouteTableV1List) DeepCopy() *RouteTableV1List { + if in == nil { + return nil + } + out := new(RouteTableV1List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *RouteTableV1List) 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 *RouteTableV1Observation) DeepCopyInto(out *RouteTableV1Observation) { + *out = *in + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt + *out = new(string) + **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.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.Route != nil { + in, out := &in.Route, &out.Route + *out = make([]RouteObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Subnets != nil { + in, out := &in.Subnets, &out.Subnets + *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.UpdatedAt != nil { + in, out := &in.UpdatedAt, &out.UpdatedAt + *out = new(string) + **out = **in + } + if in.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteTableV1Observation. +func (in *RouteTableV1Observation) DeepCopy() *RouteTableV1Observation { + if in == nil { + return nil + } + out := new(RouteTableV1Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RouteTableV1Parameters) DeepCopyInto(out *RouteTableV1Parameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *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.Route != nil { + in, out := &in.Route, &out.Route + *out = make([]RouteParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Subnets != nil { + in, out := &in.Subnets, &out.Subnets + *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.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteTableV1Parameters. +func (in *RouteTableV1Parameters) DeepCopy() *RouteTableV1Parameters { + if in == nil { + return nil + } + out := new(RouteTableV1Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RouteTableV1Spec) DeepCopyInto(out *RouteTableV1Spec) { + *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 RouteTableV1Spec. +func (in *RouteTableV1Spec) DeepCopy() *RouteTableV1Spec { + if in == nil { + return nil + } + out := new(RouteTableV1Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RouteTableV1Status) DeepCopyInto(out *RouteTableV1Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteTableV1Status. +func (in *RouteTableV1Status) DeepCopy() *RouteTableV1Status { + if in == nil { + return nil + } + out := new(RouteTableV1Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RouteV2) DeepCopyInto(out *RouteV2) { + *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 RouteV2. +func (in *RouteV2) DeepCopy() *RouteV2 { + if in == nil { + return nil + } + out := new(RouteV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *RouteV2) 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 *RouteV2InitParameters) DeepCopyInto(out *RouteV2InitParameters) { + *out = *in + if in.Destination != nil { + in, out := &in.Destination, &out.Destination + *out = new(string) + **out = **in + } + if in.Nexthop != nil { + in, out := &in.Nexthop, &out.Nexthop + *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.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteV2InitParameters. +func (in *RouteV2InitParameters) DeepCopy() *RouteV2InitParameters { + if in == nil { + return nil + } + out := new(RouteV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RouteV2List) DeepCopyInto(out *RouteV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]RouteV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteV2List. +func (in *RouteV2List) DeepCopy() *RouteV2List { + if in == nil { + return nil + } + out := new(RouteV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *RouteV2List) 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 *RouteV2Observation) DeepCopyInto(out *RouteV2Observation) { + *out = *in + if in.Destination != nil { + in, out := &in.Destination, &out.Destination + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Nexthop != nil { + in, out := &in.Nexthop, &out.Nexthop + *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.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteV2Observation. +func (in *RouteV2Observation) DeepCopy() *RouteV2Observation { + if in == nil { + return nil + } + out := new(RouteV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RouteV2Parameters) DeepCopyInto(out *RouteV2Parameters) { + *out = *in + if in.Destination != nil { + in, out := &in.Destination, &out.Destination + *out = new(string) + **out = **in + } + if in.Nexthop != nil { + in, out := &in.Nexthop, &out.Nexthop + *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.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteV2Parameters. +func (in *RouteV2Parameters) DeepCopy() *RouteV2Parameters { + if in == nil { + return nil + } + out := new(RouteV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RouteV2Spec) DeepCopyInto(out *RouteV2Spec) { + *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 RouteV2Spec. +func (in *RouteV2Spec) DeepCopy() *RouteV2Spec { + if in == nil { + return nil + } + out := new(RouteV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *RouteV2Status) DeepCopyInto(out *RouteV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new RouteV2Status. +func (in *RouteV2Status) DeepCopy() *RouteV2Status { + if in == nil { + return nil + } + out := new(RouteV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SubnetV1) DeepCopyInto(out *SubnetV1) { + *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 SubnetV1. +func (in *SubnetV1) DeepCopy() *SubnetV1 { + if in == nil { + return nil + } + out := new(SubnetV1) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *SubnetV1) 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 *SubnetV1InitParameters) DeepCopyInto(out *SubnetV1InitParameters) { + *out = *in + if in.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *out = new(string) + **out = **in + } + if in.Cidr != nil { + in, out := &in.Cidr, &out.Cidr + *out = new(string) + **out = **in + } + if in.DHCPEnable != nil { + in, out := &in.DHCPEnable, &out.DHCPEnable + *out = new(bool) + **out = **in + } + if in.DNSList != nil { + in, out := &in.DNSList, &out.DNSList + *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.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.GatewayIP != nil { + in, out := &in.GatewayIP, &out.GatewayIP + *out = new(string) + **out = **in + } + if in.IPv6Enable != nil { + in, out := &in.IPv6Enable, &out.IPv6Enable + *out = new(bool) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NtpAddresses != nil { + in, out := &in.NtpAddresses, &out.NtpAddresses + *out = new(string) + **out = **in + } + if in.PrimaryDNS != nil { + in, out := &in.PrimaryDNS, &out.PrimaryDNS + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.SecondaryDNS != nil { + in, out := &in.SecondaryDNS, &out.SecondaryDNS + *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.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubnetV1InitParameters. +func (in *SubnetV1InitParameters) DeepCopy() *SubnetV1InitParameters { + if in == nil { + return nil + } + out := new(SubnetV1InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SubnetV1List) DeepCopyInto(out *SubnetV1List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]SubnetV1, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubnetV1List. +func (in *SubnetV1List) DeepCopy() *SubnetV1List { + if in == nil { + return nil + } + out := new(SubnetV1List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *SubnetV1List) 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 *SubnetV1Observation) DeepCopyInto(out *SubnetV1Observation) { + *out = *in + if in.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *out = new(string) + **out = **in + } + if in.Cidr != nil { + in, out := &in.Cidr, &out.Cidr + *out = new(string) + **out = **in + } + if in.CidrIPv6 != nil { + in, out := &in.CidrIPv6, &out.CidrIPv6 + *out = new(string) + **out = **in + } + if in.DHCPEnable != nil { + in, out := &in.DHCPEnable, &out.DHCPEnable + *out = new(bool) + **out = **in + } + if in.DNSList != nil { + in, out := &in.DNSList, &out.DNSList + *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.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.GatewayIP != nil { + in, out := &in.GatewayIP, &out.GatewayIP + *out = new(string) + **out = **in + } + if in.GatewayIPv6 != nil { + in, out := &in.GatewayIPv6, &out.GatewayIPv6 + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.IPv6Enable != nil { + in, out := &in.IPv6Enable, &out.IPv6Enable + *out = new(bool) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NetworkID != nil { + in, out := &in.NetworkID, &out.NetworkID + *out = new(string) + **out = **in + } + if in.NtpAddresses != nil { + in, out := &in.NtpAddresses, &out.NtpAddresses + *out = new(string) + **out = **in + } + if in.PrimaryDNS != nil { + in, out := &in.PrimaryDNS, &out.PrimaryDNS + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.SecondaryDNS != nil { + in, out := &in.SecondaryDNS, &out.SecondaryDNS + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *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.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubnetV1Observation. +func (in *SubnetV1Observation) DeepCopy() *SubnetV1Observation { + if in == nil { + return nil + } + out := new(SubnetV1Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SubnetV1Parameters) DeepCopyInto(out *SubnetV1Parameters) { + *out = *in + if in.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *out = new(string) + **out = **in + } + if in.Cidr != nil { + in, out := &in.Cidr, &out.Cidr + *out = new(string) + **out = **in + } + if in.DHCPEnable != nil { + in, out := &in.DHCPEnable, &out.DHCPEnable + *out = new(bool) + **out = **in + } + if in.DNSList != nil { + in, out := &in.DNSList, &out.DNSList + *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.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.GatewayIP != nil { + in, out := &in.GatewayIP, &out.GatewayIP + *out = new(string) + **out = **in + } + if in.IPv6Enable != nil { + in, out := &in.IPv6Enable, &out.IPv6Enable + *out = new(bool) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.NtpAddresses != nil { + in, out := &in.NtpAddresses, &out.NtpAddresses + *out = new(string) + **out = **in + } + if in.PrimaryDNS != nil { + in, out := &in.PrimaryDNS, &out.PrimaryDNS + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.SecondaryDNS != nil { + in, out := &in.SecondaryDNS, &out.SecondaryDNS + *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.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubnetV1Parameters. +func (in *SubnetV1Parameters) DeepCopy() *SubnetV1Parameters { + if in == nil { + return nil + } + out := new(SubnetV1Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SubnetV1Spec) DeepCopyInto(out *SubnetV1Spec) { + *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 SubnetV1Spec. +func (in *SubnetV1Spec) DeepCopy() *SubnetV1Spec { + if in == nil { + return nil + } + out := new(SubnetV1Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SubnetV1Status) DeepCopyInto(out *SubnetV1Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SubnetV1Status. +func (in *SubnetV1Status) DeepCopy() *SubnetV1Status { + if in == nil { + return nil + } + out := new(SubnetV1Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *V1) DeepCopyInto(out *V1) { + *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 V1. +func (in *V1) DeepCopy() *V1 { + if in == nil { + return nil + } + out := new(V1) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *V1) 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 *V1InitParameters) DeepCopyInto(out *V1InitParameters) { + *out = *in + if in.Cidr != nil { + in, out := &in.Cidr, &out.Cidr + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *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.SecondaryCidr != nil { + in, out := &in.SecondaryCidr, &out.SecondaryCidr + *out = new(string) + **out = **in + } + if in.Shared != nil { + in, out := &in.Shared, &out.Shared + *out = new(bool) + **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 V1InitParameters. +func (in *V1InitParameters) DeepCopy() *V1InitParameters { + if in == nil { + return nil + } + out := new(V1InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *V1List) DeepCopyInto(out *V1List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]V1, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new V1List. +func (in *V1List) DeepCopy() *V1List { + if in == nil { + return nil + } + out := new(V1List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *V1List) 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 *V1Observation) DeepCopyInto(out *V1Observation) { + *out = *in + if in.Cidr != nil { + in, out := &in.Cidr, &out.Cidr + *out = new(string) + **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.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.SecondaryCidr != nil { + in, out := &in.SecondaryCidr, &out.SecondaryCidr + *out = new(string) + **out = **in + } + if in.Shared != nil { + in, out := &in.Shared, &out.Shared + *out = new(bool) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *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 V1Observation. +func (in *V1Observation) DeepCopy() *V1Observation { + if in == nil { + return nil + } + out := new(V1Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *V1Parameters) DeepCopyInto(out *V1Parameters) { + *out = *in + if in.Cidr != nil { + in, out := &in.Cidr, &out.Cidr + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *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.SecondaryCidr != nil { + in, out := &in.SecondaryCidr, &out.SecondaryCidr + *out = new(string) + **out = **in + } + if in.Shared != nil { + in, out := &in.Shared, &out.Shared + *out = new(bool) + **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 V1Parameters. +func (in *V1Parameters) DeepCopy() *V1Parameters { + if in == nil { + return nil + } + out := new(V1Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *V1Spec) DeepCopyInto(out *V1Spec) { + *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 V1Spec. +func (in *V1Spec) DeepCopy() *V1Spec { + if in == nil { + return nil + } + out := new(V1Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *V1Status) DeepCopyInto(out *V1Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new V1Status. +func (in *V1Status) DeepCopy() *V1Status { + if in == nil { + return nil + } + out := new(V1Status) + in.DeepCopyInto(out) + return out +} diff --git a/apis/vpc/v1alpha1/zz_generated_terraformed.go b/apis/vpc/v1alpha1/zz_generated_terraformed.go new file mode 100755 index 0000000..9632c72 --- /dev/null +++ b/apis/vpc/v1alpha1/zz_generated_terraformed.go @@ -0,0 +1,858 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "github.com/pkg/errors" + + "github.com/crossplane/upjet/pkg/resource" + "github.com/crossplane/upjet/pkg/resource/json" +) + +// GetTerraformResourceType returns Terraform resource type for this BandwidthAssociateV2 +func (mg *BandwidthAssociateV2) GetTerraformResourceType() string { + return "opentelekomcloud_vpc_bandwidth_associate_v2" +} + +// GetConnectionDetailsMapping for this BandwidthAssociateV2 +func (tr *BandwidthAssociateV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this BandwidthAssociateV2 +func (tr *BandwidthAssociateV2) 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 BandwidthAssociateV2 +func (tr *BandwidthAssociateV2) 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 BandwidthAssociateV2 +func (tr *BandwidthAssociateV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this BandwidthAssociateV2 +func (tr *BandwidthAssociateV2) 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 BandwidthAssociateV2 +func (tr *BandwidthAssociateV2) 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 BandwidthAssociateV2 +func (tr *BandwidthAssociateV2) 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) +} + +// LateInitialize this BandwidthAssociateV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *BandwidthAssociateV2) LateInitialize(attrs []byte) (bool, error) { + params := &BandwidthAssociateV2Parameters{} + 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 *BandwidthAssociateV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this BandwidthV2 +func (mg *BandwidthV2) GetTerraformResourceType() string { + return "opentelekomcloud_vpc_bandwidth_v2" +} + +// GetConnectionDetailsMapping for this BandwidthV2 +func (tr *BandwidthV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this BandwidthV2 +func (tr *BandwidthV2) 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 BandwidthV2 +func (tr *BandwidthV2) 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 BandwidthV2 +func (tr *BandwidthV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this BandwidthV2 +func (tr *BandwidthV2) 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 BandwidthV2 +func (tr *BandwidthV2) 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 BandwidthV2 +func (tr *BandwidthV2) 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) +} + +// LateInitialize this BandwidthV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *BandwidthV2) LateInitialize(attrs []byte) (bool, error) { + params := &BandwidthV2Parameters{} + 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 *BandwidthV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this EIPV1 +func (mg *EIPV1) GetTerraformResourceType() string { + return "opentelekomcloud_vpc_eip_v1" +} + +// GetConnectionDetailsMapping for this EIPV1 +func (tr *EIPV1) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this EIPV1 +func (tr *EIPV1) 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 EIPV1 +func (tr *EIPV1) 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 EIPV1 +func (tr *EIPV1) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this EIPV1 +func (tr *EIPV1) 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 EIPV1 +func (tr *EIPV1) 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 EIPV1 +func (tr *EIPV1) 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) +} + +// LateInitialize this EIPV1 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *EIPV1) LateInitialize(attrs []byte) (bool, error) { + params := &EIPV1Parameters{} + 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 *EIPV1) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this FlowLogV1 +func (mg *FlowLogV1) GetTerraformResourceType() string { + return "opentelekomcloud_vpc_flow_log_v1" +} + +// GetConnectionDetailsMapping for this FlowLogV1 +func (tr *FlowLogV1) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this FlowLogV1 +func (tr *FlowLogV1) 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 FlowLogV1 +func (tr *FlowLogV1) 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 FlowLogV1 +func (tr *FlowLogV1) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this FlowLogV1 +func (tr *FlowLogV1) 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 FlowLogV1 +func (tr *FlowLogV1) 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 FlowLogV1 +func (tr *FlowLogV1) 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) +} + +// LateInitialize this FlowLogV1 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *FlowLogV1) LateInitialize(attrs []byte) (bool, error) { + params := &FlowLogV1Parameters{} + 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 *FlowLogV1) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this PeeringConnectionAccepterV2 +func (mg *PeeringConnectionAccepterV2) GetTerraformResourceType() string { + return "opentelekomcloud_vpc_peering_connection_accepter_v2" +} + +// GetConnectionDetailsMapping for this PeeringConnectionAccepterV2 +func (tr *PeeringConnectionAccepterV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this PeeringConnectionAccepterV2 +func (tr *PeeringConnectionAccepterV2) 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 PeeringConnectionAccepterV2 +func (tr *PeeringConnectionAccepterV2) 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 PeeringConnectionAccepterV2 +func (tr *PeeringConnectionAccepterV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this PeeringConnectionAccepterV2 +func (tr *PeeringConnectionAccepterV2) 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 PeeringConnectionAccepterV2 +func (tr *PeeringConnectionAccepterV2) 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 PeeringConnectionAccepterV2 +func (tr *PeeringConnectionAccepterV2) 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) +} + +// LateInitialize this PeeringConnectionAccepterV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *PeeringConnectionAccepterV2) LateInitialize(attrs []byte) (bool, error) { + params := &PeeringConnectionAccepterV2Parameters{} + 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 *PeeringConnectionAccepterV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this PeeringConnectionV2 +func (mg *PeeringConnectionV2) GetTerraformResourceType() string { + return "opentelekomcloud_vpc_peering_connection_v2" +} + +// GetConnectionDetailsMapping for this PeeringConnectionV2 +func (tr *PeeringConnectionV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this PeeringConnectionV2 +func (tr *PeeringConnectionV2) 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 PeeringConnectionV2 +func (tr *PeeringConnectionV2) 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 PeeringConnectionV2 +func (tr *PeeringConnectionV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this PeeringConnectionV2 +func (tr *PeeringConnectionV2) 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 PeeringConnectionV2 +func (tr *PeeringConnectionV2) 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 PeeringConnectionV2 +func (tr *PeeringConnectionV2) 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) +} + +// LateInitialize this PeeringConnectionV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *PeeringConnectionV2) LateInitialize(attrs []byte) (bool, error) { + params := &PeeringConnectionV2Parameters{} + 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 *PeeringConnectionV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this RouteTableV1 +func (mg *RouteTableV1) GetTerraformResourceType() string { + return "opentelekomcloud_vpc_route_table_v1" +} + +// GetConnectionDetailsMapping for this RouteTableV1 +func (tr *RouteTableV1) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this RouteTableV1 +func (tr *RouteTableV1) 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 RouteTableV1 +func (tr *RouteTableV1) 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 RouteTableV1 +func (tr *RouteTableV1) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this RouteTableV1 +func (tr *RouteTableV1) 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 RouteTableV1 +func (tr *RouteTableV1) 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 RouteTableV1 +func (tr *RouteTableV1) 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) +} + +// LateInitialize this RouteTableV1 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *RouteTableV1) LateInitialize(attrs []byte) (bool, error) { + params := &RouteTableV1Parameters{} + 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 *RouteTableV1) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this RouteV2 +func (mg *RouteV2) GetTerraformResourceType() string { + return "opentelekomcloud_vpc_route_v2" +} + +// GetConnectionDetailsMapping for this RouteV2 +func (tr *RouteV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this RouteV2 +func (tr *RouteV2) 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 RouteV2 +func (tr *RouteV2) 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 RouteV2 +func (tr *RouteV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this RouteV2 +func (tr *RouteV2) 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 RouteV2 +func (tr *RouteV2) 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 RouteV2 +func (tr *RouteV2) 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) +} + +// LateInitialize this RouteV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *RouteV2) LateInitialize(attrs []byte) (bool, error) { + params := &RouteV2Parameters{} + 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 *RouteV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this SubnetV1 +func (mg *SubnetV1) GetTerraformResourceType() string { + return "opentelekomcloud_vpc_subnet_v1" +} + +// GetConnectionDetailsMapping for this SubnetV1 +func (tr *SubnetV1) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this SubnetV1 +func (tr *SubnetV1) 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 SubnetV1 +func (tr *SubnetV1) 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 SubnetV1 +func (tr *SubnetV1) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this SubnetV1 +func (tr *SubnetV1) 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 SubnetV1 +func (tr *SubnetV1) 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 SubnetV1 +func (tr *SubnetV1) 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) +} + +// LateInitialize this SubnetV1 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *SubnetV1) LateInitialize(attrs []byte) (bool, error) { + params := &SubnetV1Parameters{} + 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 *SubnetV1) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this V1 +func (mg *V1) GetTerraformResourceType() string { + return "opentelekomcloud_vpc_v1" +} + +// GetConnectionDetailsMapping for this V1 +func (tr *V1) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this V1 +func (tr *V1) 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 V1 +func (tr *V1) 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 V1 +func (tr *V1) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this V1 +func (tr *V1) 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 V1 +func (tr *V1) 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 V1 +func (tr *V1) 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) +} + +// LateInitialize this V1 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *V1) LateInitialize(attrs []byte) (bool, error) { + params := &V1Parameters{} + 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 *V1) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/vpc/v1alpha1/zz_groupversion_info.go b/apis/vpc/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..5791778 --- /dev/null +++ b/apis/vpc/v1alpha1/zz_groupversion_info.go @@ -0,0 +1,36 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +// +kubebuilder:object:generate=true +// +groupName=vpc.crossplane.io +// +versionName=v1alpha1 +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +// Package type metadata. +const ( + CRDGroup = "vpc.crossplane.io" + CRDVersion = "v1alpha1" +) + +var ( + // CRDGroupVersion is the API Group Version used to register the objects + CRDGroupVersion = schema.GroupVersion{Group: CRDGroup, Version: CRDVersion} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme + SchemeBuilder = &scheme.Builder{GroupVersion: CRDGroupVersion} + + // AddToScheme adds the types in this group-version to the given scheme. + AddToScheme = SchemeBuilder.AddToScheme +) diff --git a/apis/vpc/v1alpha1/zz_peeringconnectionaccepterv2_types.go b/apis/vpc/v1alpha1/zz_peeringconnectionaccepterv2_types.go new file mode 100755 index 0000000..ff62c23 --- /dev/null +++ b/apis/vpc/v1alpha1/zz_peeringconnectionaccepterv2_types.go @@ -0,0 +1,133 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 PeeringConnectionAccepterV2InitParameters struct { + + // - Whether or not to accept the peering request. Defaults to false. + Accept *bool `json:"accept,omitempty" tf:"accept,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The VPC Peering Connection ID to manage. Changing this creates a new VPC peering connection accepter. + VPCPeeringConnectionID *string `json:"vpcPeeringConnectionId,omitempty" tf:"vpc_peering_connection_id,omitempty"` +} + +type PeeringConnectionAccepterV2Observation struct { + + // - Whether or not to accept the peering request. Defaults to false. + Accept *bool `json:"accept,omitempty" tf:"accept,omitempty"` + + // The VPC peering connection ID. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The VPC peering connection name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The Tenant Id of the accepter tenant. + PeerTenantID *string `json:"peerTenantId,omitempty" tf:"peer_tenant_id,omitempty"` + + // The VPC ID of the accepter tenant. + PeerVPCID *string `json:"peerVpcId,omitempty" tf:"peer_vpc_id,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The VPC peering connection status. + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + // The ID of requester VPC involved in a VPC peering connection. + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` + + // The VPC Peering Connection ID to manage. Changing this creates a new VPC peering connection accepter. + VPCPeeringConnectionID *string `json:"vpcPeeringConnectionId,omitempty" tf:"vpc_peering_connection_id,omitempty"` +} + +type PeeringConnectionAccepterV2Parameters struct { + + // - Whether or not to accept the peering request. Defaults to false. + // +kubebuilder:validation:Optional + Accept *bool `json:"accept,omitempty" tf:"accept,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The VPC Peering Connection ID to manage. Changing this creates a new VPC peering connection accepter. + // +kubebuilder:validation:Optional + VPCPeeringConnectionID *string `json:"vpcPeeringConnectionId,omitempty" tf:"vpc_peering_connection_id,omitempty"` +} + +// PeeringConnectionAccepterV2Spec defines the desired state of PeeringConnectionAccepterV2 +type PeeringConnectionAccepterV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider PeeringConnectionAccepterV2Parameters `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 PeeringConnectionAccepterV2InitParameters `json:"initProvider,omitempty"` +} + +// PeeringConnectionAccepterV2Status defines the observed state of PeeringConnectionAccepterV2. +type PeeringConnectionAccepterV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider PeeringConnectionAccepterV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// PeeringConnectionAccepterV2 is the Schema for the PeeringConnectionAccepterV2s API. Manages a VPC Peering Accepter resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type PeeringConnectionAccepterV2 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.vpcPeeringConnectionId) || (has(self.initProvider) && has(self.initProvider.vpcPeeringConnectionId))",message="spec.forProvider.vpcPeeringConnectionId is a required parameter" + Spec PeeringConnectionAccepterV2Spec `json:"spec"` + Status PeeringConnectionAccepterV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// PeeringConnectionAccepterV2List contains a list of PeeringConnectionAccepterV2s +type PeeringConnectionAccepterV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []PeeringConnectionAccepterV2 `json:"items"` +} + +// Repository type metadata. +var ( + PeeringConnectionAccepterV2_Kind = "PeeringConnectionAccepterV2" + PeeringConnectionAccepterV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: PeeringConnectionAccepterV2_Kind}.String() + PeeringConnectionAccepterV2_KindAPIVersion = PeeringConnectionAccepterV2_Kind + "." + CRDGroupVersion.String() + PeeringConnectionAccepterV2_GroupVersionKind = CRDGroupVersion.WithKind(PeeringConnectionAccepterV2_Kind) +) + +func init() { + SchemeBuilder.Register(&PeeringConnectionAccepterV2{}, &PeeringConnectionAccepterV2List{}) +} diff --git a/apis/vpc/v1alpha1/zz_peeringconnectionv2_types.go b/apis/vpc/v1alpha1/zz_peeringconnectionv2_types.go new file mode 100755 index 0000000..1404eaf --- /dev/null +++ b/apis/vpc/v1alpha1/zz_peeringconnectionv2_types.go @@ -0,0 +1,143 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 PeeringConnectionV2InitParameters struct { + + // Specifies the name of the VPC peering connection. The value can contain 1 to 64 characters. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specified the Tenant Id of the accepter tenant. Changing this creates a new VPC peering connection. + PeerTenantID *string `json:"peerTenantId,omitempty" tf:"peer_tenant_id,omitempty"` + + // Specifies the VPC ID of the accepter tenant. Changing this creates a new VPC peering connection. + PeerVPCID *string `json:"peerVpcId,omitempty" tf:"peer_vpc_id,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Specifies the ID of a VPC involved in a VPC peering connection. Changing this creates a new VPC peering connection. + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +} + +type PeeringConnectionV2Observation struct { + + // The VPC peering connection ID. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Specifies the name of the VPC peering connection. The value can contain 1 to 64 characters. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specified the Tenant Id of the accepter tenant. Changing this creates a new VPC peering connection. + PeerTenantID *string `json:"peerTenantId,omitempty" tf:"peer_tenant_id,omitempty"` + + // Specifies the VPC ID of the accepter tenant. Changing this creates a new VPC peering connection. + PeerVPCID *string `json:"peerVpcId,omitempty" tf:"peer_vpc_id,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The VPC peering connection status. The value can be PENDING_ACCEPTANCE, REJECTED, EXPIRED, DELETED, or ACTIVE. + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + // Specifies the ID of a VPC involved in a VPC peering connection. Changing this creates a new VPC peering connection. + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +} + +type PeeringConnectionV2Parameters struct { + + // Specifies the name of the VPC peering connection. The value can contain 1 to 64 characters. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specified the Tenant Id of the accepter tenant. Changing this creates a new VPC peering connection. + // +kubebuilder:validation:Optional + PeerTenantID *string `json:"peerTenantId,omitempty" tf:"peer_tenant_id,omitempty"` + + // Specifies the VPC ID of the accepter tenant. Changing this creates a new VPC peering connection. + // +kubebuilder:validation:Optional + PeerVPCID *string `json:"peerVpcId,omitempty" tf:"peer_vpc_id,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Specifies the ID of a VPC involved in a VPC peering connection. Changing this creates a new VPC peering connection. + // +kubebuilder:validation:Optional + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +} + +// PeeringConnectionV2Spec defines the desired state of PeeringConnectionV2 +type PeeringConnectionV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider PeeringConnectionV2Parameters `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 PeeringConnectionV2InitParameters `json:"initProvider,omitempty"` +} + +// PeeringConnectionV2Status defines the observed state of PeeringConnectionV2. +type PeeringConnectionV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider PeeringConnectionV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// PeeringConnectionV2 is the Schema for the PeeringConnectionV2s API. Manages a VPC Peering resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type PeeringConnectionV2 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.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.peerVpcId) || (has(self.initProvider) && has(self.initProvider.peerVpcId))",message="spec.forProvider.peerVpcId is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.vpcId) || (has(self.initProvider) && has(self.initProvider.vpcId))",message="spec.forProvider.vpcId is a required parameter" + Spec PeeringConnectionV2Spec `json:"spec"` + Status PeeringConnectionV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// PeeringConnectionV2List contains a list of PeeringConnectionV2s +type PeeringConnectionV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []PeeringConnectionV2 `json:"items"` +} + +// Repository type metadata. +var ( + PeeringConnectionV2_Kind = "PeeringConnectionV2" + PeeringConnectionV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: PeeringConnectionV2_Kind}.String() + PeeringConnectionV2_KindAPIVersion = PeeringConnectionV2_Kind + "." + CRDGroupVersion.String() + PeeringConnectionV2_GroupVersionKind = CRDGroupVersion.WithKind(PeeringConnectionV2_Kind) +) + +func init() { + SchemeBuilder.Register(&PeeringConnectionV2{}, &PeeringConnectionV2List{}) +} diff --git a/apis/vpc/v1alpha1/zz_routetablev1_types.go b/apis/vpc/v1alpha1/zz_routetablev1_types.go new file mode 100755 index 0000000..e64cbf1 --- /dev/null +++ b/apis/vpc/v1alpha1/zz_routetablev1_types.go @@ -0,0 +1,234 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 RouteInitParameters struct { + + // Specifies the supplementary information about the route. + // The value is a string of no more than 255 characters and cannot contain angle brackets (< or >). + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Specifies the destination address in the CIDR notation format, + // for example, 192.168.200.0/24. The destination of each route must be unique and cannot overlap + // with any subnet in the VPC. + Destination *string `json:"destination,omitempty" tf:"destination,omitempty"` + + // Specifies the next hop. + Nexthop *string `json:"nexthop,omitempty" tf:"nexthop,omitempty"` + + // Specifies the route type. Currently, the value can be: + // ecs, eni, vip, nat, peering, vpn, dc and cc. + Type *string `json:"type,omitempty" tf:"type,omitempty"` +} + +type RouteObservation struct { + + // Specifies the supplementary information about the route. + // The value is a string of no more than 255 characters and cannot contain angle brackets (< or >). + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Specifies the destination address in the CIDR notation format, + // for example, 192.168.200.0/24. The destination of each route must be unique and cannot overlap + // with any subnet in the VPC. + Destination *string `json:"destination,omitempty" tf:"destination,omitempty"` + + // Specifies the next hop. + Nexthop *string `json:"nexthop,omitempty" tf:"nexthop,omitempty"` + + // Specifies the route type. Currently, the value can be: + // ecs, eni, vip, nat, peering, vpn, dc and cc. + Type *string `json:"type,omitempty" tf:"type,omitempty"` +} + +type RouteParameters struct { + + // Specifies the supplementary information about the route. + // The value is a string of no more than 255 characters and cannot contain angle brackets (< or >). + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Specifies the destination address in the CIDR notation format, + // for example, 192.168.200.0/24. The destination of each route must be unique and cannot overlap + // with any subnet in the VPC. + // +kubebuilder:validation:Optional + Destination *string `json:"destination" tf:"destination,omitempty"` + + // Specifies the next hop. + // +kubebuilder:validation:Optional + Nexthop *string `json:"nexthop" tf:"nexthop,omitempty"` + + // Specifies the route type. Currently, the value can be: + // ecs, eni, vip, nat, peering, vpn, dc and cc. + // +kubebuilder:validation:Optional + Type *string `json:"type" tf:"type,omitempty"` +} + +type RouteTableV1InitParameters struct { + + // Specifies the supplementary information about the route table. + // The value is a string of no more than 255 characters and cannot contain angle brackets (< or >). + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Specifies the route table name. The value is a string of no more than + // 64 characters that can contain letters, digits, underscores (_), hyphens (-), and periods (.). + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The region in which to create the vpc route table. + // If omitted, the provider-level region will be used. Changing this creates a new resource. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Specifies the route object list. The route object + // is documented below. + Route []RouteInitParameters `json:"route,omitempty" tf:"route,omitempty"` + + // Specifies an array of one or more subnets associating with the route table. + Subnets []*string `json:"subnets,omitempty" tf:"subnets,omitempty"` + + // Specifies the VPC ID for which a route table is to be added. + // Changing this creates a new resource. + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +} + +type RouteTableV1Observation struct { + + // Specifies the time (UTC) when the route table is created. + CreatedAt *string `json:"createdAt,omitempty" tf:"created_at,omitempty"` + + // Specifies the supplementary information about the route table. + // The value is a string of no more than 255 characters and cannot contain angle brackets (< or >). + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The resource ID in UUID format. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Specifies the route table name. The value is a string of no more than + // 64 characters that can contain letters, digits, underscores (_), hyphens (-), and periods (.). + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The region in which to create the vpc route table. + // If omitted, the provider-level region will be used. Changing this creates a new resource. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Specifies the route object list. The route object + // is documented below. + Route []RouteObservation `json:"route,omitempty" tf:"route,omitempty"` + + // Specifies an array of one or more subnets associating with the route table. + Subnets []*string `json:"subnets,omitempty" tf:"subnets,omitempty"` + + // Specifies the time (UTC) when the route table is updated. + UpdatedAt *string `json:"updatedAt,omitempty" tf:"updated_at,omitempty"` + + // Specifies the VPC ID for which a route table is to be added. + // Changing this creates a new resource. + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +} + +type RouteTableV1Parameters struct { + + // Specifies the supplementary information about the route table. + // The value is a string of no more than 255 characters and cannot contain angle brackets (< or >). + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Specifies the route table name. The value is a string of no more than + // 64 characters that can contain letters, digits, underscores (_), hyphens (-), and periods (.). + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The region in which to create the vpc route table. + // If omitted, the provider-level region will be used. Changing this creates a new resource. + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Specifies the route object list. The route object + // is documented below. + // +kubebuilder:validation:Optional + Route []RouteParameters `json:"route,omitempty" tf:"route,omitempty"` + + // Specifies an array of one or more subnets associating with the route table. + // +kubebuilder:validation:Optional + Subnets []*string `json:"subnets,omitempty" tf:"subnets,omitempty"` + + // Specifies the VPC ID for which a route table is to be added. + // Changing this creates a new resource. + // +kubebuilder:validation:Optional + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +} + +// RouteTableV1Spec defines the desired state of RouteTableV1 +type RouteTableV1Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider RouteTableV1Parameters `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 RouteTableV1InitParameters `json:"initProvider,omitempty"` +} + +// RouteTableV1Status defines the observed state of RouteTableV1. +type RouteTableV1Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider RouteTableV1Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// RouteTableV1 is the Schema for the RouteTableV1s API. Manages a VPC Route Table resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type RouteTableV1 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.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.vpcId) || (has(self.initProvider) && has(self.initProvider.vpcId))",message="spec.forProvider.vpcId is a required parameter" + Spec RouteTableV1Spec `json:"spec"` + Status RouteTableV1Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// RouteTableV1List contains a list of RouteTableV1s +type RouteTableV1List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []RouteTableV1 `json:"items"` +} + +// Repository type metadata. +var ( + RouteTableV1_Kind = "RouteTableV1" + RouteTableV1_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: RouteTableV1_Kind}.String() + RouteTableV1_KindAPIVersion = RouteTableV1_Kind + "." + CRDGroupVersion.String() + RouteTableV1_GroupVersionKind = CRDGroupVersion.WithKind(RouteTableV1_Kind) +) + +func init() { + SchemeBuilder.Register(&RouteTableV1{}, &RouteTableV1List{}) +} diff --git a/apis/vpc/v1alpha1/zz_routev2_types.go b/apis/vpc/v1alpha1/zz_routev2_types.go new file mode 100755 index 0000000..d2d08f8 --- /dev/null +++ b/apis/vpc/v1alpha1/zz_routev2_types.go @@ -0,0 +1,151 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 RouteV2InitParameters struct { + + // Specifies the destination IP address or CIDR block. Changing this creates a new Route. + Destination *string `json:"destination,omitempty" tf:"destination,omitempty"` + + // Specifies the next hop. If the route type is peering, enter the VPC peering connection ID. Changing this creates a new Route. + Nexthop *string `json:"nexthop,omitempty" tf:"nexthop,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Specifies the tenant ID. Only the administrator can specify the tenant ID of other tenant. Changing this creates a new Route. + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // Specifies the route type. Currently, the value can only be peering. Changing this creates a new Route. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Specifies the VPC for which a route is to be added. Changing this creates a new Route. + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +} + +type RouteV2Observation struct { + + // Specifies the destination IP address or CIDR block. Changing this creates a new Route. + Destination *string `json:"destination,omitempty" tf:"destination,omitempty"` + + // The route ID. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Specifies the next hop. If the route type is peering, enter the VPC peering connection ID. Changing this creates a new Route. + Nexthop *string `json:"nexthop,omitempty" tf:"nexthop,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Specifies the tenant ID. Only the administrator can specify the tenant ID of other tenant. Changing this creates a new Route. + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // Specifies the route type. Currently, the value can only be peering. Changing this creates a new Route. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Specifies the VPC for which a route is to be added. Changing this creates a new Route. + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +} + +type RouteV2Parameters struct { + + // Specifies the destination IP address or CIDR block. Changing this creates a new Route. + // +kubebuilder:validation:Optional + Destination *string `json:"destination,omitempty" tf:"destination,omitempty"` + + // Specifies the next hop. If the route type is peering, enter the VPC peering connection ID. Changing this creates a new Route. + // +kubebuilder:validation:Optional + Nexthop *string `json:"nexthop,omitempty" tf:"nexthop,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Specifies the tenant ID. Only the administrator can specify the tenant ID of other tenant. Changing this creates a new Route. + // +kubebuilder:validation:Optional + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // Specifies the route type. Currently, the value can only be peering. Changing this creates a new Route. + // +kubebuilder:validation:Optional + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Specifies the VPC for which a route is to be added. Changing this creates a new Route. + // +kubebuilder:validation:Optional + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +} + +// RouteV2Spec defines the desired state of RouteV2 +type RouteV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider RouteV2Parameters `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 RouteV2InitParameters `json:"initProvider,omitempty"` +} + +// RouteV2Status defines the observed state of RouteV2. +type RouteV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider RouteV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// RouteV2 is the Schema for the RouteV2s API. Manages a VPC Route Table resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type RouteV2 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.destination) || (has(self.initProvider) && has(self.initProvider.destination))",message="spec.forProvider.destination is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.nexthop) || (has(self.initProvider) && has(self.initProvider.nexthop))",message="spec.forProvider.nexthop 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.vpcId) || (has(self.initProvider) && has(self.initProvider.vpcId))",message="spec.forProvider.vpcId is a required parameter" + Spec RouteV2Spec `json:"spec"` + Status RouteV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// RouteV2List contains a list of RouteV2s +type RouteV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []RouteV2 `json:"items"` +} + +// Repository type metadata. +var ( + RouteV2_Kind = "RouteV2" + RouteV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: RouteV2_Kind}.String() + RouteV2_KindAPIVersion = RouteV2_Kind + "." + CRDGroupVersion.String() + RouteV2_GroupVersionKind = CRDGroupVersion.WithKind(RouteV2_Kind) +) + +func init() { + SchemeBuilder.Register(&RouteV2{}, &RouteV2List{}) +} diff --git a/apis/vpc/v1alpha1/zz_subnetv1_types.go b/apis/vpc/v1alpha1/zz_subnetv1_types.go new file mode 100755 index 0000000..403a042 --- /dev/null +++ b/apis/vpc/v1alpha1/zz_subnetv1_types.go @@ -0,0 +1,277 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 SubnetV1InitParameters struct { + + // Identifies the availability zone (AZ) to which the subnet belongs. + // The value must be an existing AZ in the system. Changing this creates a new Subnet. + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // Specifies the network segment on which the subnet resides. The value must be in CIDR format. + // The value must be within the CIDR block of the VPC. The subnet mask cannot be greater than 28. + // Changing this creates a new Subnet. + Cidr *string `json:"cidr,omitempty" tf:"cidr,omitempty"` + + // Specifies whether the DHCP function is enabled for the subnet. The value can + // be true or false. If this parameter is left blank, it is set to true by default. + DHCPEnable *bool `json:"dhcpEnable,omitempty" tf:"dhcp_enable,omitempty"` + + // Specifies the DNS server address list of a subnet. This field is required if you + // need to use more than two DNS servers. This parameter value is the superset of both DNS server address + // 1 and DNS server address 2. + DNSList []*string `json:"dnsList,omitempty" tf:"dns_list,omitempty"` + + // A description of the VPC subnet. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Specifies the gateway of the subnet. The value must be a valid IP address. + // The value must be an IP address in the subnet segment. Changing this creates a new Subnet. + GatewayIP *string `json:"gatewayIp,omitempty" tf:"gateway_ip,omitempty"` + + // Specifies whether IPv6 is enabled. If IPv6 is enabled, you can use IPv6 CIDR blocks. The value can + // be true or false. If this parameter is left blank, it is set to false by default. + IPv6Enable *bool `json:"ipv6Enable,omitempty" tf:"ipv6_enable,omitempty"` + + // The subnet name. The value is a string of 1 to 64 characters that can contain letters, + // digits, underscores (_), and hyphens (-). + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the NTP server address configured for the subnet. + NtpAddresses *string `json:"ntpAddresses,omitempty" tf:"ntp_addresses,omitempty"` + + // Specifies the IP address of DNS server 1 on the subnet. The value must be a + // valid IP address. Default is 100.125.4.25, OpenTelekomCloud internal DNS server. + PrimaryDNS *string `json:"primaryDns,omitempty" tf:"primary_dns,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Specifies the IP address of DNS server 2 on the subnet. The value must be a + // valid IP address. Default is 100.125.129.199, OpenTelekomCloud secondary internal DNS server. + SecondaryDNS *string `json:"secondaryDns,omitempty" tf:"secondary_dns,omitempty"` + + // The key/value pairs to associate with the subnet. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Specifies the ID of the VPC to which the subnet belongs. Changing this creates a new Subnet. + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +} + +type SubnetV1Observation struct { + + // Identifies the availability zone (AZ) to which the subnet belongs. + // The value must be an existing AZ in the system. Changing this creates a new Subnet. + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // Specifies the network segment on which the subnet resides. The value must be in CIDR format. + // The value must be within the CIDR block of the VPC. The subnet mask cannot be greater than 28. + // Changing this creates a new Subnet. + Cidr *string `json:"cidr,omitempty" tf:"cidr,omitempty"` + + CidrIPv6 *string `json:"cidrIpv6,omitempty" tf:"cidr_ipv6,omitempty"` + + // Specifies whether the DHCP function is enabled for the subnet. The value can + // be true or false. If this parameter is left blank, it is set to true by default. + DHCPEnable *bool `json:"dhcpEnable,omitempty" tf:"dhcp_enable,omitempty"` + + // Specifies the DNS server address list of a subnet. This field is required if you + // need to use more than two DNS servers. This parameter value is the superset of both DNS server address + // 1 and DNS server address 2. + DNSList []*string `json:"dnsList,omitempty" tf:"dns_list,omitempty"` + + // A description of the VPC subnet. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Specifies the gateway of the subnet. The value must be a valid IP address. + // The value must be an IP address in the subnet segment. Changing this creates a new Subnet. + GatewayIP *string `json:"gatewayIp,omitempty" tf:"gateway_ip,omitempty"` + + GatewayIPv6 *string `json:"gatewayIpv6,omitempty" tf:"gateway_ipv6,omitempty"` + + // Specifies a resource ID in UUID format. Same as OpenStack network ID (OS_NETWORK_ID). + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Specifies whether IPv6 is enabled. If IPv6 is enabled, you can use IPv6 CIDR blocks. The value can + // be true or false. If this parameter is left blank, it is set to false by default. + IPv6Enable *bool `json:"ipv6Enable,omitempty" tf:"ipv6_enable,omitempty"` + + // The subnet name. The value is a string of 1 to 64 characters that can contain letters, + // digits, underscores (_), and hyphens (-). + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the OpenStack network ID. + NetworkID *string `json:"networkId,omitempty" tf:"network_id,omitempty"` + + // Specifies the NTP server address configured for the subnet. + NtpAddresses *string `json:"ntpAddresses,omitempty" tf:"ntp_addresses,omitempty"` + + // Specifies the IP address of DNS server 1 on the subnet. The value must be a + // valid IP address. Default is 100.125.4.25, OpenTelekomCloud internal DNS server. + PrimaryDNS *string `json:"primaryDns,omitempty" tf:"primary_dns,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Specifies the IP address of DNS server 2 on the subnet. The value must be a + // valid IP address. Default is 100.125.129.199, OpenTelekomCloud secondary internal DNS server. + SecondaryDNS *string `json:"secondaryDns,omitempty" tf:"secondary_dns,omitempty"` + + // Specifies the status of the subnet. The value can be ACTIVE, DOWN, UNKNOWN, or ERROR. + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + // Specifies the OpenStack subnet ID. + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // The key/value pairs to associate with the subnet. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Specifies the ID of the VPC to which the subnet belongs. Changing this creates a new Subnet. + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +} + +type SubnetV1Parameters struct { + + // Identifies the availability zone (AZ) to which the subnet belongs. + // The value must be an existing AZ in the system. Changing this creates a new Subnet. + // +kubebuilder:validation:Optional + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // Specifies the network segment on which the subnet resides. The value must be in CIDR format. + // The value must be within the CIDR block of the VPC. The subnet mask cannot be greater than 28. + // Changing this creates a new Subnet. + // +kubebuilder:validation:Optional + Cidr *string `json:"cidr,omitempty" tf:"cidr,omitempty"` + + // Specifies whether the DHCP function is enabled for the subnet. The value can + // be true or false. If this parameter is left blank, it is set to true by default. + // +kubebuilder:validation:Optional + DHCPEnable *bool `json:"dhcpEnable,omitempty" tf:"dhcp_enable,omitempty"` + + // Specifies the DNS server address list of a subnet. This field is required if you + // need to use more than two DNS servers. This parameter value is the superset of both DNS server address + // 1 and DNS server address 2. + // +kubebuilder:validation:Optional + DNSList []*string `json:"dnsList,omitempty" tf:"dns_list,omitempty"` + + // A description of the VPC subnet. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Specifies the gateway of the subnet. The value must be a valid IP address. + // The value must be an IP address in the subnet segment. Changing this creates a new Subnet. + // +kubebuilder:validation:Optional + GatewayIP *string `json:"gatewayIp,omitempty" tf:"gateway_ip,omitempty"` + + // Specifies whether IPv6 is enabled. If IPv6 is enabled, you can use IPv6 CIDR blocks. The value can + // be true or false. If this parameter is left blank, it is set to false by default. + // +kubebuilder:validation:Optional + IPv6Enable *bool `json:"ipv6Enable,omitempty" tf:"ipv6_enable,omitempty"` + + // The subnet name. The value is a string of 1 to 64 characters that can contain letters, + // digits, underscores (_), and hyphens (-). + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the NTP server address configured for the subnet. + // +kubebuilder:validation:Optional + NtpAddresses *string `json:"ntpAddresses,omitempty" tf:"ntp_addresses,omitempty"` + + // Specifies the IP address of DNS server 1 on the subnet. The value must be a + // valid IP address. Default is 100.125.4.25, OpenTelekomCloud internal DNS server. + // +kubebuilder:validation:Optional + PrimaryDNS *string `json:"primaryDns,omitempty" tf:"primary_dns,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Specifies the IP address of DNS server 2 on the subnet. The value must be a + // valid IP address. Default is 100.125.129.199, OpenTelekomCloud secondary internal DNS server. + // +kubebuilder:validation:Optional + SecondaryDNS *string `json:"secondaryDns,omitempty" tf:"secondary_dns,omitempty"` + + // The key/value pairs to associate with the subnet. + // +kubebuilder:validation:Optional + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Specifies the ID of the VPC to which the subnet belongs. Changing this creates a new Subnet. + // +kubebuilder:validation:Optional + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +} + +// SubnetV1Spec defines the desired state of SubnetV1 +type SubnetV1Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider SubnetV1Parameters `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 SubnetV1InitParameters `json:"initProvider,omitempty"` +} + +// SubnetV1Status defines the observed state of SubnetV1. +type SubnetV1Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider SubnetV1Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// SubnetV1 is the Schema for the SubnetV1s API. Manages a VPC Subnet resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type SubnetV1 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.cidr) || (has(self.initProvider) && has(self.initProvider.cidr))",message="spec.forProvider.cidr is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.gatewayIp) || (has(self.initProvider) && has(self.initProvider.gatewayIp))",message="spec.forProvider.gatewayIp is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.vpcId) || (has(self.initProvider) && has(self.initProvider.vpcId))",message="spec.forProvider.vpcId is a required parameter" + Spec SubnetV1Spec `json:"spec"` + Status SubnetV1Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// SubnetV1List contains a list of SubnetV1s +type SubnetV1List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []SubnetV1 `json:"items"` +} + +// Repository type metadata. +var ( + SubnetV1_Kind = "SubnetV1" + SubnetV1_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: SubnetV1_Kind}.String() + SubnetV1_KindAPIVersion = SubnetV1_Kind + "." + CRDGroupVersion.String() + SubnetV1_GroupVersionKind = CRDGroupVersion.WithKind(SubnetV1_Kind) +) + +func init() { + SchemeBuilder.Register(&SubnetV1{}, &SubnetV1List{}) +} diff --git a/apis/vpc/v1alpha1/zz_v1_types.go b/apis/vpc/v1alpha1/zz_v1_types.go new file mode 100755 index 0000000..c1e0c89 --- /dev/null +++ b/apis/vpc/v1alpha1/zz_v1_types.go @@ -0,0 +1,186 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 V1InitParameters struct { + + // The range of available subnets in the VPC. The value ranges from + // 10.0.0.0/8 to 10.255.255.0/24, 172.16.0.0/12 to 172.31.255.0/24, + // or 192.168.0.0/16 to 192.168.255.0/24. + Cidr *string `json:"cidr,omitempty" tf:"cidr,omitempty"` + + // A description of the VPC. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The name of the VPC. The name must be unique for a tenant. The value is a string of + // no more than 64 characters and can contain digits, letters, underscores (_), and hyphens (-). + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Secondary CIDR block that can be added to VPCs. + // The value cannot contain the following: 100.64.0.0/1, 214.0.0.0/7, 198.18.0.0/15, 169.254.0.0/16, + // 0.0.0.0/8, 127.0.0.0/8, 240.0.0.0/4, 172.31.0.0/16, 192.168.0.0/16. + // Currently, only one secondary CIDR block can be added to each VPC. + SecondaryCidr *string `json:"secondaryCidr,omitempty" tf:"secondary_cidr,omitempty"` + + // Specifies whether the shared SNAT should be used or not. Is also + // required for cross-tenant sharing. Shared SNAT only avadilable in eu-de region. + // Deprecated, VPC Shared SNAT End of Life from 01.03.2024, please do not use. + Shared *bool `json:"shared,omitempty" tf:"shared,omitempty"` + + // The key/value pairs to associate with the VPC. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +} + +type V1Observation struct { + + // The range of available subnets in the VPC. The value ranges from + // 10.0.0.0/8 to 10.255.255.0/24, 172.16.0.0/12 to 172.31.255.0/24, + // or 192.168.0.0/16 to 192.168.255.0/24. + Cidr *string `json:"cidr,omitempty" tf:"cidr,omitempty"` + + // A description of the VPC. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The name of the VPC. The name must be unique for a tenant. The value is a string of + // no more than 64 characters and can contain digits, letters, underscores (_), and hyphens (-). + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Secondary CIDR block that can be added to VPCs. + // The value cannot contain the following: 100.64.0.0/1, 214.0.0.0/7, 198.18.0.0/15, 169.254.0.0/16, + // 0.0.0.0/8, 127.0.0.0/8, 240.0.0.0/4, 172.31.0.0/16, 192.168.0.0/16. + // Currently, only one secondary CIDR block can be added to each VPC. + SecondaryCidr *string `json:"secondaryCidr,omitempty" tf:"secondary_cidr,omitempty"` + + // Specifies whether the shared SNAT should be used or not. Is also + // required for cross-tenant sharing. Shared SNAT only avadilable in eu-de region. + // Deprecated, VPC Shared SNAT End of Life from 01.03.2024, please do not use. + Shared *bool `json:"shared,omitempty" tf:"shared,omitempty"` + + // The current status of the desired VPC. Can be either CREATING, + // OK, DOWN, PENDING_UPDATE, PENDING_DELETE or ERROR. + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + // The key/value pairs to associate with the VPC. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +} + +type V1Parameters struct { + + // The range of available subnets in the VPC. The value ranges from + // 10.0.0.0/8 to 10.255.255.0/24, 172.16.0.0/12 to 172.31.255.0/24, + // or 192.168.0.0/16 to 192.168.255.0/24. + // +kubebuilder:validation:Optional + Cidr *string `json:"cidr,omitempty" tf:"cidr,omitempty"` + + // A description of the VPC. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The name of the VPC. The name must be unique for a tenant. The value is a string of + // no more than 64 characters and can contain digits, letters, underscores (_), and hyphens (-). + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Secondary CIDR block that can be added to VPCs. + // The value cannot contain the following: 100.64.0.0/1, 214.0.0.0/7, 198.18.0.0/15, 169.254.0.0/16, + // 0.0.0.0/8, 127.0.0.0/8, 240.0.0.0/4, 172.31.0.0/16, 192.168.0.0/16. + // Currently, only one secondary CIDR block can be added to each VPC. + // +kubebuilder:validation:Optional + SecondaryCidr *string `json:"secondaryCidr,omitempty" tf:"secondary_cidr,omitempty"` + + // Specifies whether the shared SNAT should be used or not. Is also + // required for cross-tenant sharing. Shared SNAT only avadilable in eu-de region. + // Deprecated, VPC Shared SNAT End of Life from 01.03.2024, please do not use. + // +kubebuilder:validation:Optional + Shared *bool `json:"shared,omitempty" tf:"shared,omitempty"` + + // The key/value pairs to associate with the VPC. + // +kubebuilder:validation:Optional + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +} + +// V1Spec defines the desired state of V1 +type V1Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider V1Parameters `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 V1InitParameters `json:"initProvider,omitempty"` +} + +// V1Status defines the observed state of V1. +type V1Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider V1Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// V1 is the Schema for the V1s API. Manages a VPC resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type V1 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.cidr) || (has(self.initProvider) && has(self.initProvider.cidr))",message="spec.forProvider.cidr is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + Spec V1Spec `json:"spec"` + Status V1Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// V1List contains a list of V1s +type V1List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []V1 `json:"items"` +} + +// Repository type metadata. +var ( + V1_Kind = "V1" + V1_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: V1_Kind}.String() + V1_KindAPIVersion = V1_Kind + "." + CRDGroupVersion.String() + V1_GroupVersionKind = CRDGroupVersion.WithKind(V1_Kind) +) + +func init() { + SchemeBuilder.Register(&V1{}, &V1List{}) +} diff --git a/apis/vpcep/v1alpha1/zz_endpointv1_types.go b/apis/vpcep/v1alpha1/zz_endpointv1_types.go new file mode 100755 index 0000000..f220063 --- /dev/null +++ b/apis/vpcep/v1alpha1/zz_endpointv1_types.go @@ -0,0 +1,213 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 EndpointV1InitParameters struct { + + // Specifies whether to create a private domain name. The default value is false. + EnableDNS *bool `json:"enableDns,omitempty" tf:"enable_dns,omitempty"` + + // Specifies whether to enable access control. + // This parameter is available only if you create a VPC endpoint for connecting to an interface VPC endpoint service. + EnableWhitelist *bool `json:"enableWhitelist,omitempty" tf:"enable_whitelist,omitempty"` + + // Specifies the IP address for accessing the associated VPC endpoint service. + PortIP *string `json:"portIp,omitempty" tf:"port_ip,omitempty"` + + // Lists the IDs of route tables. + RouteTables []*string `json:"routeTables,omitempty" tf:"route_tables,omitempty"` + + // Specifies the ID of the VPC endpoint service. + ServiceID *string `json:"serviceId,omitempty" tf:"service_id,omitempty"` + + // The value must be the ID of the subnet (OpenStack network) created in the VPC specified + // by vpc_id and in the format of the UUID. + // This parameter is mandatory only if you create a VPC endpoint for connecting to an interface VPC endpoint service. + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // Lists the resource tags. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Specifies the ID of the VPC (OpenStack router) where the VPC endpoint is to be created. + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` + + // Specifies an array of whitelisted IPs for controlling access to the VPC endpoint. + // IPv4 addresses or CIDR blocks can be specified to control access when you create a VPC endpoint. + // This parameter is mandatory only when you create a VPC endpoint for connecting to an interface VPC endpoint service. + Whitelist []*string `json:"whitelist,omitempty" tf:"whitelist,omitempty"` +} + +type EndpointV1Observation struct { + + // Specifies the domain name for accessing the associated VPC endpoint service. + // This parameter is only available when enable_dns is set to true. + DNSNames []*string `json:"dnsNames,omitempty" tf:"dns_names,omitempty"` + + // Specifies whether to create a private domain name. The default value is false. + EnableDNS *bool `json:"enableDns,omitempty" tf:"enable_dns,omitempty"` + + // Specifies whether to enable access control. + // This parameter is available only if you create a VPC endpoint for connecting to an interface VPC endpoint service. + EnableWhitelist *bool `json:"enableWhitelist,omitempty" tf:"enable_whitelist,omitempty"` + + // ID of VPC endpoint. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Specifies the packet ID of the VPC endpoint. + MarkerID *float64 `json:"markerId,omitempty" tf:"marker_id,omitempty"` + + // Specifies the IP address for accessing the associated VPC endpoint service. + PortIP *string `json:"portIp,omitempty" tf:"port_ip,omitempty"` + + // Specifies the project ID. + ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + + // Lists the IDs of route tables. + RouteTables []*string `json:"routeTables,omitempty" tf:"route_tables,omitempty"` + + // Specifies the ID of the VPC endpoint service. + ServiceID *string `json:"serviceId,omitempty" tf:"service_id,omitempty"` + + // Specifies the name of the VPC endpoint service. + ServiceName *string `json:"serviceName,omitempty" tf:"service_name,omitempty"` + + // Specifies the type of the VPC endpoint service that is associated with the VPC endpoint. + ServiceType *string `json:"serviceType,omitempty" tf:"service_type,omitempty"` + + // The value must be the ID of the subnet (OpenStack network) created in the VPC specified + // by vpc_id and in the format of the UUID. + // This parameter is mandatory only if you create a VPC endpoint for connecting to an interface VPC endpoint service. + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // Lists the resource tags. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Specifies the ID of the VPC (OpenStack router) where the VPC endpoint is to be created. + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` + + // Specifies an array of whitelisted IPs for controlling access to the VPC endpoint. + // IPv4 addresses or CIDR blocks can be specified to control access when you create a VPC endpoint. + // This parameter is mandatory only when you create a VPC endpoint for connecting to an interface VPC endpoint service. + Whitelist []*string `json:"whitelist,omitempty" tf:"whitelist,omitempty"` +} + +type EndpointV1Parameters struct { + + // Specifies whether to create a private domain name. The default value is false. + // +kubebuilder:validation:Optional + EnableDNS *bool `json:"enableDns,omitempty" tf:"enable_dns,omitempty"` + + // Specifies whether to enable access control. + // This parameter is available only if you create a VPC endpoint for connecting to an interface VPC endpoint service. + // +kubebuilder:validation:Optional + EnableWhitelist *bool `json:"enableWhitelist,omitempty" tf:"enable_whitelist,omitempty"` + + // Specifies the IP address for accessing the associated VPC endpoint service. + // +kubebuilder:validation:Optional + PortIP *string `json:"portIp,omitempty" tf:"port_ip,omitempty"` + + // Lists the IDs of route tables. + // +kubebuilder:validation:Optional + RouteTables []*string `json:"routeTables,omitempty" tf:"route_tables,omitempty"` + + // Specifies the ID of the VPC endpoint service. + // +kubebuilder:validation:Optional + ServiceID *string `json:"serviceId,omitempty" tf:"service_id,omitempty"` + + // The value must be the ID of the subnet (OpenStack network) created in the VPC specified + // by vpc_id and in the format of the UUID. + // This parameter is mandatory only if you create a VPC endpoint for connecting to an interface VPC endpoint service. + // +kubebuilder:validation:Optional + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // Lists the resource tags. + // +kubebuilder:validation:Optional + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Specifies the ID of the VPC (OpenStack router) where the VPC endpoint is to be created. + // +kubebuilder:validation:Optional + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` + + // Specifies an array of whitelisted IPs for controlling access to the VPC endpoint. + // IPv4 addresses or CIDR blocks can be specified to control access when you create a VPC endpoint. + // This parameter is mandatory only when you create a VPC endpoint for connecting to an interface VPC endpoint service. + // +kubebuilder:validation:Optional + Whitelist []*string `json:"whitelist,omitempty" tf:"whitelist,omitempty"` +} + +// EndpointV1Spec defines the desired state of EndpointV1 +type EndpointV1Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider EndpointV1Parameters `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 EndpointV1InitParameters `json:"initProvider,omitempty"` +} + +// EndpointV1Status defines the observed state of EndpointV1. +type EndpointV1Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider EndpointV1Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// EndpointV1 is the Schema for the EndpointV1s API. Manages a VPCEP Endpoint resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type EndpointV1 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.serviceId) || (has(self.initProvider) && has(self.initProvider.serviceId))",message="spec.forProvider.serviceId is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.vpcId) || (has(self.initProvider) && has(self.initProvider.vpcId))",message="spec.forProvider.vpcId is a required parameter" + Spec EndpointV1Spec `json:"spec"` + Status EndpointV1Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// EndpointV1List contains a list of EndpointV1s +type EndpointV1List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []EndpointV1 `json:"items"` +} + +// Repository type metadata. +var ( + EndpointV1_Kind = "EndpointV1" + EndpointV1_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: EndpointV1_Kind}.String() + EndpointV1_KindAPIVersion = EndpointV1_Kind + "." + CRDGroupVersion.String() + EndpointV1_GroupVersionKind = CRDGroupVersion.WithKind(EndpointV1_Kind) +) + +func init() { + SchemeBuilder.Register(&EndpointV1{}, &EndpointV1List{}) +} diff --git a/apis/vpcep/v1alpha1/zz_generated.deepcopy.go b/apis/vpcep/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..576b359 --- /dev/null +++ b/apis/vpcep/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,863 @@ +//go:build !ignore_autogenerated + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by controller-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + 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 *EndpointV1) DeepCopyInto(out *EndpointV1) { + *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 EndpointV1. +func (in *EndpointV1) DeepCopy() *EndpointV1 { + if in == nil { + return nil + } + out := new(EndpointV1) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *EndpointV1) 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 *EndpointV1InitParameters) DeepCopyInto(out *EndpointV1InitParameters) { + *out = *in + if in.EnableDNS != nil { + in, out := &in.EnableDNS, &out.EnableDNS + *out = new(bool) + **out = **in + } + if in.EnableWhitelist != nil { + in, out := &in.EnableWhitelist, &out.EnableWhitelist + *out = new(bool) + **out = **in + } + if in.PortIP != nil { + in, out := &in.PortIP, &out.PortIP + *out = new(string) + **out = **in + } + if in.RouteTables != nil { + in, out := &in.RouteTables, &out.RouteTables + *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.ServiceID != nil { + in, out := &in.ServiceID, &out.ServiceID + *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.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } + if in.Whitelist != nil { + in, out := &in.Whitelist, &out.Whitelist + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointV1InitParameters. +func (in *EndpointV1InitParameters) DeepCopy() *EndpointV1InitParameters { + if in == nil { + return nil + } + out := new(EndpointV1InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EndpointV1List) DeepCopyInto(out *EndpointV1List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]EndpointV1, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointV1List. +func (in *EndpointV1List) DeepCopy() *EndpointV1List { + if in == nil { + return nil + } + out := new(EndpointV1List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *EndpointV1List) 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 *EndpointV1Observation) DeepCopyInto(out *EndpointV1Observation) { + *out = *in + if in.DNSNames != nil { + in, out := &in.DNSNames, &out.DNSNames + *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.EnableDNS != nil { + in, out := &in.EnableDNS, &out.EnableDNS + *out = new(bool) + **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.MarkerID != nil { + in, out := &in.MarkerID, &out.MarkerID + *out = new(float64) + **out = **in + } + if in.PortIP != nil { + in, out := &in.PortIP, &out.PortIP + *out = new(string) + **out = **in + } + if in.ProjectID != nil { + in, out := &in.ProjectID, &out.ProjectID + *out = new(string) + **out = **in + } + if in.RouteTables != nil { + in, out := &in.RouteTables, &out.RouteTables + *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.ServiceID != nil { + in, out := &in.ServiceID, &out.ServiceID + *out = new(string) + **out = **in + } + if in.ServiceName != nil { + in, out := &in.ServiceName, &out.ServiceName + *out = new(string) + **out = **in + } + if in.ServiceType != nil { + in, out := &in.ServiceType, &out.ServiceType + *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.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } + if in.Whitelist != nil { + in, out := &in.Whitelist, &out.Whitelist + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointV1Observation. +func (in *EndpointV1Observation) DeepCopy() *EndpointV1Observation { + if in == nil { + return nil + } + out := new(EndpointV1Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EndpointV1Parameters) DeepCopyInto(out *EndpointV1Parameters) { + *out = *in + if in.EnableDNS != nil { + in, out := &in.EnableDNS, &out.EnableDNS + *out = new(bool) + **out = **in + } + if in.EnableWhitelist != nil { + in, out := &in.EnableWhitelist, &out.EnableWhitelist + *out = new(bool) + **out = **in + } + if in.PortIP != nil { + in, out := &in.PortIP, &out.PortIP + *out = new(string) + **out = **in + } + if in.RouteTables != nil { + in, out := &in.RouteTables, &out.RouteTables + *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.ServiceID != nil { + in, out := &in.ServiceID, &out.ServiceID + *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.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } + if in.Whitelist != nil { + in, out := &in.Whitelist, &out.Whitelist + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointV1Parameters. +func (in *EndpointV1Parameters) DeepCopy() *EndpointV1Parameters { + if in == nil { + return nil + } + out := new(EndpointV1Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EndpointV1Spec) DeepCopyInto(out *EndpointV1Spec) { + *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 EndpointV1Spec. +func (in *EndpointV1Spec) DeepCopy() *EndpointV1Spec { + if in == nil { + return nil + } + out := new(EndpointV1Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EndpointV1Status) DeepCopyInto(out *EndpointV1Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointV1Status. +func (in *EndpointV1Status) DeepCopy() *EndpointV1Status { + if in == nil { + return nil + } + out := new(EndpointV1Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PortInitParameters) DeepCopyInto(out *PortInitParameters) { + *out = *in + if in.ClientPort != nil { + in, out := &in.ClientPort, &out.ClientPort + *out = new(float64) + **out = **in + } + if in.Protocol != nil { + in, out := &in.Protocol, &out.Protocol + *out = new(string) + **out = **in + } + if in.ServerPort != nil { + in, out := &in.ServerPort, &out.ServerPort + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortInitParameters. +func (in *PortInitParameters) DeepCopy() *PortInitParameters { + if in == nil { + return nil + } + out := new(PortInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PortObservation) DeepCopyInto(out *PortObservation) { + *out = *in + if in.ClientPort != nil { + in, out := &in.ClientPort, &out.ClientPort + *out = new(float64) + **out = **in + } + if in.Protocol != nil { + in, out := &in.Protocol, &out.Protocol + *out = new(string) + **out = **in + } + if in.ServerPort != nil { + in, out := &in.ServerPort, &out.ServerPort + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortObservation. +func (in *PortObservation) DeepCopy() *PortObservation { + if in == nil { + return nil + } + out := new(PortObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *PortParameters) DeepCopyInto(out *PortParameters) { + *out = *in + if in.ClientPort != nil { + in, out := &in.ClientPort, &out.ClientPort + *out = new(float64) + **out = **in + } + if in.Protocol != nil { + in, out := &in.Protocol, &out.Protocol + *out = new(string) + **out = **in + } + if in.ServerPort != nil { + in, out := &in.ServerPort, &out.ServerPort + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PortParameters. +func (in *PortParameters) DeepCopy() *PortParameters { + if in == nil { + return nil + } + out := new(PortParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServiceV1) DeepCopyInto(out *ServiceV1) { + *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 ServiceV1. +func (in *ServiceV1) DeepCopy() *ServiceV1 { + if in == nil { + return nil + } + out := new(ServiceV1) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ServiceV1) 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 *ServiceV1InitParameters) DeepCopyInto(out *ServiceV1InitParameters) { + *out = *in + if in.ApprovalEnabled != nil { + in, out := &in.ApprovalEnabled, &out.ApprovalEnabled + *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.Port != nil { + in, out := &in.Port, &out.Port + *out = make([]PortInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.PortID != nil { + in, out := &in.PortID, &out.PortID + *out = new(string) + **out = **in + } + if in.ServerType != nil { + in, out := &in.ServerType, &out.ServerType + *out = new(string) + **out = **in + } + if in.ServiceType != nil { + in, out := &in.ServiceType, &out.ServiceType + *out = new(string) + **out = **in + } + if in.TCPProxy != nil { + in, out := &in.TCPProxy, &out.TCPProxy + *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.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } + if in.VipPortID != nil { + in, out := &in.VipPortID, &out.VipPortID + *out = new(string) + **out = **in + } + if in.Whitelist != nil { + in, out := &in.Whitelist, &out.Whitelist + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceV1InitParameters. +func (in *ServiceV1InitParameters) DeepCopy() *ServiceV1InitParameters { + if in == nil { + return nil + } + out := new(ServiceV1InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServiceV1List) DeepCopyInto(out *ServiceV1List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ServiceV1, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceV1List. +func (in *ServiceV1List) DeepCopy() *ServiceV1List { + if in == nil { + return nil + } + out := new(ServiceV1List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ServiceV1List) 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 *ServiceV1Observation) DeepCopyInto(out *ServiceV1Observation) { + *out = *in + if in.ApprovalEnabled != nil { + in, out := &in.ApprovalEnabled, &out.ApprovalEnabled + *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.Port != nil { + in, out := &in.Port, &out.Port + *out = make([]PortObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.PortID != nil { + in, out := &in.PortID, &out.PortID + *out = new(string) + **out = **in + } + if in.ServerType != nil { + in, out := &in.ServerType, &out.ServerType + *out = new(string) + **out = **in + } + if in.ServiceType != nil { + in, out := &in.ServiceType, &out.ServiceType + *out = new(string) + **out = **in + } + if in.TCPProxy != nil { + in, out := &in.TCPProxy, &out.TCPProxy + *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.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } + if in.VipPortID != nil { + in, out := &in.VipPortID, &out.VipPortID + *out = new(string) + **out = **in + } + if in.Whitelist != nil { + in, out := &in.Whitelist, &out.Whitelist + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceV1Observation. +func (in *ServiceV1Observation) DeepCopy() *ServiceV1Observation { + if in == nil { + return nil + } + out := new(ServiceV1Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServiceV1Parameters) DeepCopyInto(out *ServiceV1Parameters) { + *out = *in + if in.ApprovalEnabled != nil { + in, out := &in.ApprovalEnabled, &out.ApprovalEnabled + *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.Port != nil { + in, out := &in.Port, &out.Port + *out = make([]PortParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.PortID != nil { + in, out := &in.PortID, &out.PortID + *out = new(string) + **out = **in + } + if in.ServerType != nil { + in, out := &in.ServerType, &out.ServerType + *out = new(string) + **out = **in + } + if in.ServiceType != nil { + in, out := &in.ServiceType, &out.ServiceType + *out = new(string) + **out = **in + } + if in.TCPProxy != nil { + in, out := &in.TCPProxy, &out.TCPProxy + *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.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } + if in.VipPortID != nil { + in, out := &in.VipPortID, &out.VipPortID + *out = new(string) + **out = **in + } + if in.Whitelist != nil { + in, out := &in.Whitelist, &out.Whitelist + *out = make([]*string, len(*in)) + for i := range *in { + if (*in)[i] != nil { + in, out := &(*in)[i], &(*out)[i] + *out = new(string) + **out = **in + } + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceV1Parameters. +func (in *ServiceV1Parameters) DeepCopy() *ServiceV1Parameters { + if in == nil { + return nil + } + out := new(ServiceV1Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServiceV1Spec) DeepCopyInto(out *ServiceV1Spec) { + *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 ServiceV1Spec. +func (in *ServiceV1Spec) DeepCopy() *ServiceV1Spec { + if in == nil { + return nil + } + out := new(ServiceV1Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServiceV1Status) DeepCopyInto(out *ServiceV1Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceV1Status. +func (in *ServiceV1Status) DeepCopy() *ServiceV1Status { + if in == nil { + return nil + } + out := new(ServiceV1Status) + in.DeepCopyInto(out) + return out +} diff --git a/apis/vpcep/v1alpha1/zz_generated_terraformed.go b/apis/vpcep/v1alpha1/zz_generated_terraformed.go new file mode 100755 index 0000000..129dd50 --- /dev/null +++ b/apis/vpcep/v1alpha1/zz_generated_terraformed.go @@ -0,0 +1,186 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "github.com/pkg/errors" + + "github.com/crossplane/upjet/pkg/resource" + "github.com/crossplane/upjet/pkg/resource/json" +) + +// GetTerraformResourceType returns Terraform resource type for this EndpointV1 +func (mg *EndpointV1) GetTerraformResourceType() string { + return "opentelekomcloud_vpcep_endpoint_v1" +} + +// GetConnectionDetailsMapping for this EndpointV1 +func (tr *EndpointV1) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this EndpointV1 +func (tr *EndpointV1) 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 EndpointV1 +func (tr *EndpointV1) 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 EndpointV1 +func (tr *EndpointV1) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this EndpointV1 +func (tr *EndpointV1) 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 EndpointV1 +func (tr *EndpointV1) 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 EndpointV1 +func (tr *EndpointV1) 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) +} + +// LateInitialize this EndpointV1 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *EndpointV1) LateInitialize(attrs []byte) (bool, error) { + params := &EndpointV1Parameters{} + 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 *EndpointV1) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this ServiceV1 +func (mg *ServiceV1) GetTerraformResourceType() string { + return "opentelekomcloud_vpcep_service_v1" +} + +// GetConnectionDetailsMapping for this ServiceV1 +func (tr *ServiceV1) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this ServiceV1 +func (tr *ServiceV1) 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 ServiceV1 +func (tr *ServiceV1) 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 ServiceV1 +func (tr *ServiceV1) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this ServiceV1 +func (tr *ServiceV1) 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 ServiceV1 +func (tr *ServiceV1) 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 ServiceV1 +func (tr *ServiceV1) 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) +} + +// LateInitialize this ServiceV1 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *ServiceV1) LateInitialize(attrs []byte) (bool, error) { + params := &ServiceV1Parameters{} + 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 *ServiceV1) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/vpcep/v1alpha1/zz_groupversion_info.go b/apis/vpcep/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..f56a62a --- /dev/null +++ b/apis/vpcep/v1alpha1/zz_groupversion_info.go @@ -0,0 +1,36 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +// +kubebuilder:object:generate=true +// +groupName=vpcep.crossplane.io +// +versionName=v1alpha1 +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +// Package type metadata. +const ( + CRDGroup = "vpcep.crossplane.io" + CRDVersion = "v1alpha1" +) + +var ( + // CRDGroupVersion is the API Group Version used to register the objects + CRDGroupVersion = schema.GroupVersion{Group: CRDGroup, Version: CRDVersion} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme + SchemeBuilder = &scheme.Builder{GroupVersion: CRDGroupVersion} + + // AddToScheme adds the types in this group-version to the given scheme. + AddToScheme = SchemeBuilder.AddToScheme +) diff --git a/apis/vpcep/v1alpha1/zz_servicev1_types.go b/apis/vpcep/v1alpha1/zz_servicev1_types.go new file mode 100755 index 0000000..31cc874 --- /dev/null +++ b/apis/vpcep/v1alpha1/zz_servicev1_types.go @@ -0,0 +1,271 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 PortInitParameters struct { + + // Specifies the port for accessing the VPC endpoint. + ClientPort *float64 `json:"clientPort,omitempty" tf:"client_port,omitempty"` + + // Specifies the protocol used in port mappings. The value can be TCP or UDP. + // The default value is TCP. + Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` + + // Specifies the port for accessing the VPC endpoint service. + ServerPort *float64 `json:"serverPort,omitempty" tf:"server_port,omitempty"` +} + +type PortObservation struct { + + // Specifies the port for accessing the VPC endpoint. + ClientPort *float64 `json:"clientPort,omitempty" tf:"client_port,omitempty"` + + // Specifies the protocol used in port mappings. The value can be TCP or UDP. + // The default value is TCP. + Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` + + // Specifies the port for accessing the VPC endpoint service. + ServerPort *float64 `json:"serverPort,omitempty" tf:"server_port,omitempty"` +} + +type PortParameters struct { + + // Specifies the port for accessing the VPC endpoint. + // +kubebuilder:validation:Optional + ClientPort *float64 `json:"clientPort" tf:"client_port,omitempty"` + + // Specifies the protocol used in port mappings. The value can be TCP or UDP. + // The default value is TCP. + // +kubebuilder:validation:Optional + Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` + + // Specifies the port for accessing the VPC endpoint service. + // +kubebuilder:validation:Optional + ServerPort *float64 `json:"serverPort" tf:"server_port,omitempty"` +} + +type ServiceV1InitParameters struct { + + // Specifies whether connection approval is required. + ApprovalEnabled *bool `json:"approvalEnabled,omitempty" tf:"approval_enabled,omitempty"` + + // Specifies the name of the VPC endpoint service. + // The value contains a maximum of 16 characters, including letters, digits, underscores (_), and hyphens (-). + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the ID of the cluster associated with the target VPCEP resource. + PoolID *string `json:"poolId,omitempty" tf:"pool_id,omitempty"` + + // Lists the port mappings opened to the VPC endpoint service. See below for the details. + Port []PortInitParameters `json:"port,omitempty" tf:"port,omitempty"` + + // Specifies the ID for identifying the backend resource of the VPC endpoint service. + // The value is as follows: + PortID *string `json:"portId,omitempty" tf:"port_id,omitempty"` + + // Specifies the resource type. + ServerType *string `json:"serverType,omitempty" tf:"server_type,omitempty"` + + // Specifies the type of the VPC endpoint service. + // Only your private services can be configured into interface VPC endpoint services. + ServiceType *string `json:"serviceType,omitempty" tf:"service_type,omitempty"` + + // Specifies whether the client IP address and port number or marker_id information is + // transmitted to the server. + // This parameter is available only when the server can parse fields tcp option and tcp payload. + TCPProxy *string `json:"tcpProxy,omitempty" tf:"tcp_proxy,omitempty"` + + // Map of the resource tags. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Specifies the ID of the VPC (router) to which the backend resource of the VPC endpoint service belongs. + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` + + // Specifies the ID of the virtual NIC to which the virtual IP address is bound. + VipPortID *string `json:"vipPortId,omitempty" tf:"vip_port_id,omitempty"` + + // Lists of domain IDs of target users. + Whitelist []*string `json:"whitelist,omitempty" tf:"whitelist,omitempty"` +} + +type ServiceV1Observation struct { + + // Specifies whether connection approval is required. + ApprovalEnabled *bool `json:"approvalEnabled,omitempty" tf:"approval_enabled,omitempty"` + + // ID of VPC endpoint service + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Specifies the name of the VPC endpoint service. + // The value contains a maximum of 16 characters, including letters, digits, underscores (_), and hyphens (-). + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the ID of the cluster associated with the target VPCEP resource. + PoolID *string `json:"poolId,omitempty" tf:"pool_id,omitempty"` + + // Lists the port mappings opened to the VPC endpoint service. See below for the details. + Port []PortObservation `json:"port,omitempty" tf:"port,omitempty"` + + // Specifies the ID for identifying the backend resource of the VPC endpoint service. + // The value is as follows: + PortID *string `json:"portId,omitempty" tf:"port_id,omitempty"` + + // Specifies the resource type. + ServerType *string `json:"serverType,omitempty" tf:"server_type,omitempty"` + + // Specifies the type of the VPC endpoint service. + // Only your private services can be configured into interface VPC endpoint services. + ServiceType *string `json:"serviceType,omitempty" tf:"service_type,omitempty"` + + // Specifies whether the client IP address and port number or marker_id information is + // transmitted to the server. + // This parameter is available only when the server can parse fields tcp option and tcp payload. + TCPProxy *string `json:"tcpProxy,omitempty" tf:"tcp_proxy,omitempty"` + + // Map of the resource tags. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Specifies the ID of the VPC (router) to which the backend resource of the VPC endpoint service belongs. + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` + + // Specifies the ID of the virtual NIC to which the virtual IP address is bound. + VipPortID *string `json:"vipPortId,omitempty" tf:"vip_port_id,omitempty"` + + // Lists of domain IDs of target users. + Whitelist []*string `json:"whitelist,omitempty" tf:"whitelist,omitempty"` +} + +type ServiceV1Parameters struct { + + // Specifies whether connection approval is required. + // +kubebuilder:validation:Optional + ApprovalEnabled *bool `json:"approvalEnabled,omitempty" tf:"approval_enabled,omitempty"` + + // Specifies the name of the VPC endpoint service. + // The value contains a maximum of 16 characters, including letters, digits, underscores (_), and hyphens (-). + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the ID of the cluster associated with the target VPCEP resource. + // +kubebuilder:validation:Optional + PoolID *string `json:"poolId,omitempty" tf:"pool_id,omitempty"` + + // Lists the port mappings opened to the VPC endpoint service. See below for the details. + // +kubebuilder:validation:Optional + Port []PortParameters `json:"port,omitempty" tf:"port,omitempty"` + + // Specifies the ID for identifying the backend resource of the VPC endpoint service. + // The value is as follows: + // +kubebuilder:validation:Optional + PortID *string `json:"portId,omitempty" tf:"port_id,omitempty"` + + // Specifies the resource type. + // +kubebuilder:validation:Optional + ServerType *string `json:"serverType,omitempty" tf:"server_type,omitempty"` + + // Specifies the type of the VPC endpoint service. + // Only your private services can be configured into interface VPC endpoint services. + // +kubebuilder:validation:Optional + ServiceType *string `json:"serviceType,omitempty" tf:"service_type,omitempty"` + + // Specifies whether the client IP address and port number or marker_id information is + // transmitted to the server. + // This parameter is available only when the server can parse fields tcp option and tcp payload. + // +kubebuilder:validation:Optional + TCPProxy *string `json:"tcpProxy,omitempty" tf:"tcp_proxy,omitempty"` + + // Map of the resource tags. + // +kubebuilder:validation:Optional + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // Specifies the ID of the VPC (router) to which the backend resource of the VPC endpoint service belongs. + // +kubebuilder:validation:Optional + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` + + // Specifies the ID of the virtual NIC to which the virtual IP address is bound. + // +kubebuilder:validation:Optional + VipPortID *string `json:"vipPortId,omitempty" tf:"vip_port_id,omitempty"` + + // Lists of domain IDs of target users. + // +kubebuilder:validation:Optional + Whitelist []*string `json:"whitelist,omitempty" tf:"whitelist,omitempty"` +} + +// ServiceV1Spec defines the desired state of ServiceV1 +type ServiceV1Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider ServiceV1Parameters `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 ServiceV1InitParameters `json:"initProvider,omitempty"` +} + +// ServiceV1Status defines the observed state of ServiceV1. +type ServiceV1Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider ServiceV1Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// ServiceV1 is the Schema for the ServiceV1s API. Manages a VPCEP Service resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type ServiceV1 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.port) || (has(self.initProvider) && has(self.initProvider.port))",message="spec.forProvider.port is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.portId) || (has(self.initProvider) && has(self.initProvider.portId))",message="spec.forProvider.portId is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.serverType) || (has(self.initProvider) && has(self.initProvider.serverType))",message="spec.forProvider.serverType is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.vpcId) || (has(self.initProvider) && has(self.initProvider.vpcId))",message="spec.forProvider.vpcId is a required parameter" + Spec ServiceV1Spec `json:"spec"` + Status ServiceV1Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// ServiceV1List contains a list of ServiceV1s +type ServiceV1List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []ServiceV1 `json:"items"` +} + +// Repository type metadata. +var ( + ServiceV1_Kind = "ServiceV1" + ServiceV1_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: ServiceV1_Kind}.String() + ServiceV1_KindAPIVersion = ServiceV1_Kind + "." + CRDGroupVersion.String() + ServiceV1_GroupVersionKind = CRDGroupVersion.WithKind(ServiceV1_Kind) +) + +func init() { + SchemeBuilder.Register(&ServiceV1{}, &ServiceV1List{}) +} diff --git a/apis/vpnaas/v1alpha1/zz_endpointgroupv2_types.go b/apis/vpnaas/v1alpha1/zz_endpointgroupv2_types.go new file mode 100755 index 0000000..72c9001 --- /dev/null +++ b/apis/vpnaas/v1alpha1/zz_endpointgroupv2_types.go @@ -0,0 +1,180 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 EndpointGroupV2InitParameters struct { + + // The human-readable description for the group. + // Changing this updates the description of the existing group. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // List of endpoints of the same type, for the endpoint group. The values will depend on the type. + // Changing this creates a new group. + Endpoints []*string `json:"endpoints,omitempty" tf:"endpoints,omitempty"` + + // The name of the group. Changing this updates the name of + // the existing group. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The region in which to obtain the V2 Networking client. + // A Networking client is needed to create an endpoint group. If omitted, the + // region argument of the provider is used. Changing this creates a new group. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The owner of the group. Required if admin wants to + // create an endpoint group for another project. Changing this creates a new group. + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // The type of the endpoints in the group. A valid value is subnet, cidr, network, router, or vlan. + // Changing this creates a new group. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Map of additional options. + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +type EndpointGroupV2Observation struct { + + // The human-readable description for the group. + // Changing this updates the description of the existing group. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // List of endpoints of the same type, for the endpoint group. The values will depend on the type. + // Changing this creates a new group. + Endpoints []*string `json:"endpoints,omitempty" tf:"endpoints,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The name of the group. Changing this updates the name of + // the existing group. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The region in which to obtain the V2 Networking client. + // A Networking client is needed to create an endpoint group. If omitted, the + // region argument of the provider is used. Changing this creates a new group. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The owner of the group. Required if admin wants to + // create an endpoint group for another project. Changing this creates a new group. + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // The type of the endpoints in the group. A valid value is subnet, cidr, network, router, or vlan. + // Changing this creates a new group. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Map of additional options. + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +type EndpointGroupV2Parameters struct { + + // The human-readable description for the group. + // Changing this updates the description of the existing group. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // List of endpoints of the same type, for the endpoint group. The values will depend on the type. + // Changing this creates a new group. + // +kubebuilder:validation:Optional + Endpoints []*string `json:"endpoints,omitempty" tf:"endpoints,omitempty"` + + // The name of the group. Changing this updates the name of + // the existing group. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The region in which to obtain the V2 Networking client. + // A Networking client is needed to create an endpoint group. If omitted, the + // region argument of the provider is used. Changing this creates a new group. + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The owner of the group. Required if admin wants to + // create an endpoint group for another project. Changing this creates a new group. + // +kubebuilder:validation:Optional + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // The type of the endpoints in the group. A valid value is subnet, cidr, network, router, or vlan. + // Changing this creates a new group. + // +kubebuilder:validation:Optional + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Map of additional options. + // +kubebuilder:validation:Optional + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +// EndpointGroupV2Spec defines the desired state of EndpointGroupV2 +type EndpointGroupV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider EndpointGroupV2Parameters `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 EndpointGroupV2InitParameters `json:"initProvider,omitempty"` +} + +// EndpointGroupV2Status defines the observed state of EndpointGroupV2. +type EndpointGroupV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider EndpointGroupV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// EndpointGroupV2 is the Schema for the EndpointGroupV2s API. Manages a VPNAAS Endpoint Group resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type EndpointGroupV2 struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec EndpointGroupV2Spec `json:"spec"` + Status EndpointGroupV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// EndpointGroupV2List contains a list of EndpointGroupV2s +type EndpointGroupV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []EndpointGroupV2 `json:"items"` +} + +// Repository type metadata. +var ( + EndpointGroupV2_Kind = "EndpointGroupV2" + EndpointGroupV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: EndpointGroupV2_Kind}.String() + EndpointGroupV2_KindAPIVersion = EndpointGroupV2_Kind + "." + CRDGroupVersion.String() + EndpointGroupV2_GroupVersionKind = CRDGroupVersion.WithKind(EndpointGroupV2_Kind) +) + +func init() { + SchemeBuilder.Register(&EndpointGroupV2{}, &EndpointGroupV2List{}) +} diff --git a/apis/vpnaas/v1alpha1/zz_generated.deepcopy.go b/apis/vpnaas/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..51ab257 --- /dev/null +++ b/apis/vpnaas/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,2095 @@ +//go:build !ignore_autogenerated + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by controller-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + 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 *DpdInitParameters) DeepCopyInto(out *DpdInitParameters) { + *out = *in + if in.Action != nil { + in, out := &in.Action, &out.Action + *out = new(string) + **out = **in + } + if in.Interval != nil { + in, out := &in.Interval, &out.Interval + *out = new(float64) + **out = **in + } + if in.Timeout != nil { + in, out := &in.Timeout, &out.Timeout + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DpdInitParameters. +func (in *DpdInitParameters) DeepCopy() *DpdInitParameters { + if in == nil { + return nil + } + out := new(DpdInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DpdObservation) DeepCopyInto(out *DpdObservation) { + *out = *in + if in.Action != nil { + in, out := &in.Action, &out.Action + *out = new(string) + **out = **in + } + if in.Interval != nil { + in, out := &in.Interval, &out.Interval + *out = new(float64) + **out = **in + } + if in.Timeout != nil { + in, out := &in.Timeout, &out.Timeout + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DpdObservation. +func (in *DpdObservation) DeepCopy() *DpdObservation { + if in == nil { + return nil + } + out := new(DpdObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DpdParameters) DeepCopyInto(out *DpdParameters) { + *out = *in + if in.Action != nil { + in, out := &in.Action, &out.Action + *out = new(string) + **out = **in + } + if in.Interval != nil { + in, out := &in.Interval, &out.Interval + *out = new(float64) + **out = **in + } + if in.Timeout != nil { + in, out := &in.Timeout, &out.Timeout + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DpdParameters. +func (in *DpdParameters) DeepCopy() *DpdParameters { + if in == nil { + return nil + } + out := new(DpdParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EndpointGroupV2) DeepCopyInto(out *EndpointGroupV2) { + *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 EndpointGroupV2. +func (in *EndpointGroupV2) DeepCopy() *EndpointGroupV2 { + if in == nil { + return nil + } + out := new(EndpointGroupV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *EndpointGroupV2) 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 *EndpointGroupV2InitParameters) DeepCopyInto(out *EndpointGroupV2InitParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Endpoints != nil { + in, out := &in.Endpoints, &out.Endpoints + *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.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.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.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 EndpointGroupV2InitParameters. +func (in *EndpointGroupV2InitParameters) DeepCopy() *EndpointGroupV2InitParameters { + if in == nil { + return nil + } + out := new(EndpointGroupV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EndpointGroupV2List) DeepCopyInto(out *EndpointGroupV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]EndpointGroupV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointGroupV2List. +func (in *EndpointGroupV2List) DeepCopy() *EndpointGroupV2List { + if in == nil { + return nil + } + out := new(EndpointGroupV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *EndpointGroupV2List) 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 *EndpointGroupV2Observation) DeepCopyInto(out *EndpointGroupV2Observation) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Endpoints != nil { + in, out := &in.Endpoints, &out.Endpoints + *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.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.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.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 EndpointGroupV2Observation. +func (in *EndpointGroupV2Observation) DeepCopy() *EndpointGroupV2Observation { + if in == nil { + return nil + } + out := new(EndpointGroupV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EndpointGroupV2Parameters) DeepCopyInto(out *EndpointGroupV2Parameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Endpoints != nil { + in, out := &in.Endpoints, &out.Endpoints + *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.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.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.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 EndpointGroupV2Parameters. +func (in *EndpointGroupV2Parameters) DeepCopy() *EndpointGroupV2Parameters { + if in == nil { + return nil + } + out := new(EndpointGroupV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EndpointGroupV2Spec) DeepCopyInto(out *EndpointGroupV2Spec) { + *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 EndpointGroupV2Spec. +func (in *EndpointGroupV2Spec) DeepCopy() *EndpointGroupV2Spec { + if in == nil { + return nil + } + out := new(EndpointGroupV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EndpointGroupV2Status) DeepCopyInto(out *EndpointGroupV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointGroupV2Status. +func (in *EndpointGroupV2Status) DeepCopy() *EndpointGroupV2Status { + if in == nil { + return nil + } + out := new(EndpointGroupV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IkePolicyV2) DeepCopyInto(out *IkePolicyV2) { + *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 IkePolicyV2. +func (in *IkePolicyV2) DeepCopy() *IkePolicyV2 { + if in == nil { + return nil + } + out := new(IkePolicyV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *IkePolicyV2) 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 *IkePolicyV2InitParameters) DeepCopyInto(out *IkePolicyV2InitParameters) { + *out = *in + if in.AuthAlgorithm != nil { + in, out := &in.AuthAlgorithm, &out.AuthAlgorithm + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.EncryptionAlgorithm != nil { + in, out := &in.EncryptionAlgorithm, &out.EncryptionAlgorithm + *out = new(string) + **out = **in + } + if in.IkeVersion != nil { + in, out := &in.IkeVersion, &out.IkeVersion + *out = new(string) + **out = **in + } + if in.Lifetime != nil { + in, out := &in.Lifetime, &out.Lifetime + *out = make([]LifetimeInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Pfs != nil { + in, out := &in.Pfs, &out.Pfs + *out = new(string) + **out = **in + } + if in.Phase1NegotiationMode != nil { + in, out := &in.Phase1NegotiationMode, &out.Phase1NegotiationMode + *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.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 IkePolicyV2InitParameters. +func (in *IkePolicyV2InitParameters) DeepCopy() *IkePolicyV2InitParameters { + if in == nil { + return nil + } + out := new(IkePolicyV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IkePolicyV2List) DeepCopyInto(out *IkePolicyV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]IkePolicyV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IkePolicyV2List. +func (in *IkePolicyV2List) DeepCopy() *IkePolicyV2List { + if in == nil { + return nil + } + out := new(IkePolicyV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *IkePolicyV2List) 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 *IkePolicyV2Observation) DeepCopyInto(out *IkePolicyV2Observation) { + *out = *in + if in.AuthAlgorithm != nil { + in, out := &in.AuthAlgorithm, &out.AuthAlgorithm + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.EncryptionAlgorithm != nil { + in, out := &in.EncryptionAlgorithm, &out.EncryptionAlgorithm + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.IkeVersion != nil { + in, out := &in.IkeVersion, &out.IkeVersion + *out = new(string) + **out = **in + } + if in.Lifetime != nil { + in, out := &in.Lifetime, &out.Lifetime + *out = make([]LifetimeObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Pfs != nil { + in, out := &in.Pfs, &out.Pfs + *out = new(string) + **out = **in + } + if in.Phase1NegotiationMode != nil { + in, out := &in.Phase1NegotiationMode, &out.Phase1NegotiationMode + *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.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 IkePolicyV2Observation. +func (in *IkePolicyV2Observation) DeepCopy() *IkePolicyV2Observation { + if in == nil { + return nil + } + out := new(IkePolicyV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IkePolicyV2Parameters) DeepCopyInto(out *IkePolicyV2Parameters) { + *out = *in + if in.AuthAlgorithm != nil { + in, out := &in.AuthAlgorithm, &out.AuthAlgorithm + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.EncryptionAlgorithm != nil { + in, out := &in.EncryptionAlgorithm, &out.EncryptionAlgorithm + *out = new(string) + **out = **in + } + if in.IkeVersion != nil { + in, out := &in.IkeVersion, &out.IkeVersion + *out = new(string) + **out = **in + } + if in.Lifetime != nil { + in, out := &in.Lifetime, &out.Lifetime + *out = make([]LifetimeParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Pfs != nil { + in, out := &in.Pfs, &out.Pfs + *out = new(string) + **out = **in + } + if in.Phase1NegotiationMode != nil { + in, out := &in.Phase1NegotiationMode, &out.Phase1NegotiationMode + *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.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 IkePolicyV2Parameters. +func (in *IkePolicyV2Parameters) DeepCopy() *IkePolicyV2Parameters { + if in == nil { + return nil + } + out := new(IkePolicyV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IkePolicyV2Spec) DeepCopyInto(out *IkePolicyV2Spec) { + *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 IkePolicyV2Spec. +func (in *IkePolicyV2Spec) DeepCopy() *IkePolicyV2Spec { + if in == nil { + return nil + } + out := new(IkePolicyV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IkePolicyV2Status) DeepCopyInto(out *IkePolicyV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IkePolicyV2Status. +func (in *IkePolicyV2Status) DeepCopy() *IkePolicyV2Status { + if in == nil { + return nil + } + out := new(IkePolicyV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IpsecPolicyV2) DeepCopyInto(out *IpsecPolicyV2) { + *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 IpsecPolicyV2. +func (in *IpsecPolicyV2) DeepCopy() *IpsecPolicyV2 { + if in == nil { + return nil + } + out := new(IpsecPolicyV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *IpsecPolicyV2) 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 *IpsecPolicyV2InitParameters) DeepCopyInto(out *IpsecPolicyV2InitParameters) { + *out = *in + if in.AuthAlgorithm != nil { + in, out := &in.AuthAlgorithm, &out.AuthAlgorithm + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.EncapsulationMode != nil { + in, out := &in.EncapsulationMode, &out.EncapsulationMode + *out = new(string) + **out = **in + } + if in.EncryptionAlgorithm != nil { + in, out := &in.EncryptionAlgorithm, &out.EncryptionAlgorithm + *out = new(string) + **out = **in + } + if in.Lifetime != nil { + in, out := &in.Lifetime, &out.Lifetime + *out = make([]IpsecPolicyV2LifetimeInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Pfs != nil { + in, out := &in.Pfs, &out.Pfs + *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.TransformProtocol != nil { + in, out := &in.TransformProtocol, &out.TransformProtocol + *out = new(string) + **out = **in + } + if in.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 IpsecPolicyV2InitParameters. +func (in *IpsecPolicyV2InitParameters) DeepCopy() *IpsecPolicyV2InitParameters { + if in == nil { + return nil + } + out := new(IpsecPolicyV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IpsecPolicyV2LifetimeInitParameters) DeepCopyInto(out *IpsecPolicyV2LifetimeInitParameters) { + *out = *in + if in.Units != nil { + in, out := &in.Units, &out.Units + *out = new(string) + **out = **in + } + if in.Value != nil { + in, out := &in.Value, &out.Value + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IpsecPolicyV2LifetimeInitParameters. +func (in *IpsecPolicyV2LifetimeInitParameters) DeepCopy() *IpsecPolicyV2LifetimeInitParameters { + if in == nil { + return nil + } + out := new(IpsecPolicyV2LifetimeInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IpsecPolicyV2LifetimeObservation) DeepCopyInto(out *IpsecPolicyV2LifetimeObservation) { + *out = *in + if in.Units != nil { + in, out := &in.Units, &out.Units + *out = new(string) + **out = **in + } + if in.Value != nil { + in, out := &in.Value, &out.Value + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IpsecPolicyV2LifetimeObservation. +func (in *IpsecPolicyV2LifetimeObservation) DeepCopy() *IpsecPolicyV2LifetimeObservation { + if in == nil { + return nil + } + out := new(IpsecPolicyV2LifetimeObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IpsecPolicyV2LifetimeParameters) DeepCopyInto(out *IpsecPolicyV2LifetimeParameters) { + *out = *in + if in.Units != nil { + in, out := &in.Units, &out.Units + *out = new(string) + **out = **in + } + if in.Value != nil { + in, out := &in.Value, &out.Value + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IpsecPolicyV2LifetimeParameters. +func (in *IpsecPolicyV2LifetimeParameters) DeepCopy() *IpsecPolicyV2LifetimeParameters { + if in == nil { + return nil + } + out := new(IpsecPolicyV2LifetimeParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IpsecPolicyV2List) DeepCopyInto(out *IpsecPolicyV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]IpsecPolicyV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IpsecPolicyV2List. +func (in *IpsecPolicyV2List) DeepCopy() *IpsecPolicyV2List { + if in == nil { + return nil + } + out := new(IpsecPolicyV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *IpsecPolicyV2List) 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 *IpsecPolicyV2Observation) DeepCopyInto(out *IpsecPolicyV2Observation) { + *out = *in + if in.AuthAlgorithm != nil { + in, out := &in.AuthAlgorithm, &out.AuthAlgorithm + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.EncapsulationMode != nil { + in, out := &in.EncapsulationMode, &out.EncapsulationMode + *out = new(string) + **out = **in + } + if in.EncryptionAlgorithm != nil { + in, out := &in.EncryptionAlgorithm, &out.EncryptionAlgorithm + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Lifetime != nil { + in, out := &in.Lifetime, &out.Lifetime + *out = make([]IpsecPolicyV2LifetimeObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Pfs != nil { + in, out := &in.Pfs, &out.Pfs + *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.TransformProtocol != nil { + in, out := &in.TransformProtocol, &out.TransformProtocol + *out = new(string) + **out = **in + } + if in.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 IpsecPolicyV2Observation. +func (in *IpsecPolicyV2Observation) DeepCopy() *IpsecPolicyV2Observation { + if in == nil { + return nil + } + out := new(IpsecPolicyV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IpsecPolicyV2Parameters) DeepCopyInto(out *IpsecPolicyV2Parameters) { + *out = *in + if in.AuthAlgorithm != nil { + in, out := &in.AuthAlgorithm, &out.AuthAlgorithm + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.EncapsulationMode != nil { + in, out := &in.EncapsulationMode, &out.EncapsulationMode + *out = new(string) + **out = **in + } + if in.EncryptionAlgorithm != nil { + in, out := &in.EncryptionAlgorithm, &out.EncryptionAlgorithm + *out = new(string) + **out = **in + } + if in.Lifetime != nil { + in, out := &in.Lifetime, &out.Lifetime + *out = make([]IpsecPolicyV2LifetimeParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Pfs != nil { + in, out := &in.Pfs, &out.Pfs + *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.TransformProtocol != nil { + in, out := &in.TransformProtocol, &out.TransformProtocol + *out = new(string) + **out = **in + } + if in.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 IpsecPolicyV2Parameters. +func (in *IpsecPolicyV2Parameters) DeepCopy() *IpsecPolicyV2Parameters { + if in == nil { + return nil + } + out := new(IpsecPolicyV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IpsecPolicyV2Spec) DeepCopyInto(out *IpsecPolicyV2Spec) { + *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 IpsecPolicyV2Spec. +func (in *IpsecPolicyV2Spec) DeepCopy() *IpsecPolicyV2Spec { + if in == nil { + return nil + } + out := new(IpsecPolicyV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IpsecPolicyV2Status) DeepCopyInto(out *IpsecPolicyV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IpsecPolicyV2Status. +func (in *IpsecPolicyV2Status) DeepCopy() *IpsecPolicyV2Status { + if in == nil { + return nil + } + out := new(IpsecPolicyV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LifetimeInitParameters) DeepCopyInto(out *LifetimeInitParameters) { + *out = *in + if in.Units != nil { + in, out := &in.Units, &out.Units + *out = new(string) + **out = **in + } + if in.Value != nil { + in, out := &in.Value, &out.Value + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LifetimeInitParameters. +func (in *LifetimeInitParameters) DeepCopy() *LifetimeInitParameters { + if in == nil { + return nil + } + out := new(LifetimeInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LifetimeObservation) DeepCopyInto(out *LifetimeObservation) { + *out = *in + if in.Units != nil { + in, out := &in.Units, &out.Units + *out = new(string) + **out = **in + } + if in.Value != nil { + in, out := &in.Value, &out.Value + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LifetimeObservation. +func (in *LifetimeObservation) DeepCopy() *LifetimeObservation { + if in == nil { + return nil + } + out := new(LifetimeObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LifetimeParameters) DeepCopyInto(out *LifetimeParameters) { + *out = *in + if in.Units != nil { + in, out := &in.Units, &out.Units + *out = new(string) + **out = **in + } + if in.Value != nil { + in, out := &in.Value, &out.Value + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LifetimeParameters. +func (in *LifetimeParameters) DeepCopy() *LifetimeParameters { + if in == nil { + return nil + } + out := new(LifetimeParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServiceV2) DeepCopyInto(out *ServiceV2) { + *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 ServiceV2. +func (in *ServiceV2) DeepCopy() *ServiceV2 { + if in == nil { + return nil + } + out := new(ServiceV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ServiceV2) 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 *ServiceV2InitParameters) DeepCopyInto(out *ServiceV2InitParameters) { + *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.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.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.TenantID != nil { + in, out := &in.TenantID, &out.TenantID + *out = new(string) + **out = **in + } + if in.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 ServiceV2InitParameters. +func (in *ServiceV2InitParameters) DeepCopy() *ServiceV2InitParameters { + if in == nil { + return nil + } + out := new(ServiceV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServiceV2List) DeepCopyInto(out *ServiceV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]ServiceV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceV2List. +func (in *ServiceV2List) DeepCopy() *ServiceV2List { + if in == nil { + return nil + } + out := new(ServiceV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *ServiceV2List) 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 *ServiceV2Observation) DeepCopyInto(out *ServiceV2Observation) { + *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.ExternalV4IP != nil { + in, out := &in.ExternalV4IP, &out.ExternalV4IP + *out = new(string) + **out = **in + } + if in.ExternalV6IP != nil { + in, out := &in.ExternalV6IP, &out.ExternalV6IP + *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.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.RouterID != nil { + in, out := &in.RouterID, &out.RouterID + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *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.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 ServiceV2Observation. +func (in *ServiceV2Observation) DeepCopy() *ServiceV2Observation { + if in == nil { + return nil + } + out := new(ServiceV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServiceV2Parameters) DeepCopyInto(out *ServiceV2Parameters) { + *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.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.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.TenantID != nil { + in, out := &in.TenantID, &out.TenantID + *out = new(string) + **out = **in + } + if in.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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 ServiceV2Parameters. +func (in *ServiceV2Parameters) DeepCopy() *ServiceV2Parameters { + if in == nil { + return nil + } + out := new(ServiceV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServiceV2Spec) DeepCopyInto(out *ServiceV2Spec) { + *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 ServiceV2Spec. +func (in *ServiceV2Spec) DeepCopy() *ServiceV2Spec { + if in == nil { + return nil + } + out := new(ServiceV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServiceV2Status) DeepCopyInto(out *ServiceV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServiceV2Status. +func (in *ServiceV2Status) DeepCopy() *ServiceV2Status { + if in == nil { + return nil + } + out := new(ServiceV2Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SiteConnectionV2) DeepCopyInto(out *SiteConnectionV2) { + *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 SiteConnectionV2. +func (in *SiteConnectionV2) DeepCopy() *SiteConnectionV2 { + if in == nil { + return nil + } + out := new(SiteConnectionV2) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *SiteConnectionV2) 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 *SiteConnectionV2InitParameters) DeepCopyInto(out *SiteConnectionV2InitParameters) { + *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.Dpd != nil { + in, out := &in.Dpd, &out.Dpd + *out = make([]DpdInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.IkepolicyID != nil { + in, out := &in.IkepolicyID, &out.IkepolicyID + *out = new(string) + **out = **in + } + if in.Initiator != nil { + in, out := &in.Initiator, &out.Initiator + *out = new(string) + **out = **in + } + if in.IpsecpolicyID != nil { + in, out := &in.IpsecpolicyID, &out.IpsecpolicyID + *out = new(string) + **out = **in + } + if in.LocalEpGroupID != nil { + in, out := &in.LocalEpGroupID, &out.LocalEpGroupID + *out = new(string) + **out = **in + } + if in.LocalID != nil { + in, out := &in.LocalID, &out.LocalID + *out = new(string) + **out = **in + } + if in.Mtu != nil { + in, out := &in.Mtu, &out.Mtu + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PeerAddress != nil { + in, out := &in.PeerAddress, &out.PeerAddress + *out = new(string) + **out = **in + } + if in.PeerCidrs != nil { + in, out := &in.PeerCidrs, &out.PeerCidrs + *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.PeerEpGroupID != nil { + in, out := &in.PeerEpGroupID, &out.PeerEpGroupID + *out = new(string) + **out = **in + } + if in.PeerID != nil { + in, out := &in.PeerID, &out.PeerID + *out = new(string) + **out = **in + } + if in.Psk != nil { + in, out := &in.Psk, &out.Psk + *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.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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.VpnserviceID != nil { + in, out := &in.VpnserviceID, &out.VpnserviceID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SiteConnectionV2InitParameters. +func (in *SiteConnectionV2InitParameters) DeepCopy() *SiteConnectionV2InitParameters { + if in == nil { + return nil + } + out := new(SiteConnectionV2InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SiteConnectionV2List) DeepCopyInto(out *SiteConnectionV2List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]SiteConnectionV2, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SiteConnectionV2List. +func (in *SiteConnectionV2List) DeepCopy() *SiteConnectionV2List { + if in == nil { + return nil + } + out := new(SiteConnectionV2List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *SiteConnectionV2List) 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 *SiteConnectionV2Observation) DeepCopyInto(out *SiteConnectionV2Observation) { + *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.Dpd != nil { + in, out := &in.Dpd, &out.Dpd + *out = make([]DpdObservation, 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.IkepolicyID != nil { + in, out := &in.IkepolicyID, &out.IkepolicyID + *out = new(string) + **out = **in + } + if in.Initiator != nil { + in, out := &in.Initiator, &out.Initiator + *out = new(string) + **out = **in + } + if in.IpsecpolicyID != nil { + in, out := &in.IpsecpolicyID, &out.IpsecpolicyID + *out = new(string) + **out = **in + } + if in.LocalEpGroupID != nil { + in, out := &in.LocalEpGroupID, &out.LocalEpGroupID + *out = new(string) + **out = **in + } + if in.LocalID != nil { + in, out := &in.LocalID, &out.LocalID + *out = new(string) + **out = **in + } + if in.Mtu != nil { + in, out := &in.Mtu, &out.Mtu + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PeerAddress != nil { + in, out := &in.PeerAddress, &out.PeerAddress + *out = new(string) + **out = **in + } + if in.PeerCidrs != nil { + in, out := &in.PeerCidrs, &out.PeerCidrs + *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.PeerEpGroupID != nil { + in, out := &in.PeerEpGroupID, &out.PeerEpGroupID + *out = new(string) + **out = **in + } + if in.PeerID != nil { + in, out := &in.PeerID, &out.PeerID + *out = new(string) + **out = **in + } + if in.Psk != nil { + in, out := &in.Psk, &out.Psk + *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.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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.VpnserviceID != nil { + in, out := &in.VpnserviceID, &out.VpnserviceID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SiteConnectionV2Observation. +func (in *SiteConnectionV2Observation) DeepCopy() *SiteConnectionV2Observation { + if in == nil { + return nil + } + out := new(SiteConnectionV2Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SiteConnectionV2Parameters) DeepCopyInto(out *SiteConnectionV2Parameters) { + *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.Dpd != nil { + in, out := &in.Dpd, &out.Dpd + *out = make([]DpdParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.IkepolicyID != nil { + in, out := &in.IkepolicyID, &out.IkepolicyID + *out = new(string) + **out = **in + } + if in.Initiator != nil { + in, out := &in.Initiator, &out.Initiator + *out = new(string) + **out = **in + } + if in.IpsecpolicyID != nil { + in, out := &in.IpsecpolicyID, &out.IpsecpolicyID + *out = new(string) + **out = **in + } + if in.LocalEpGroupID != nil { + in, out := &in.LocalEpGroupID, &out.LocalEpGroupID + *out = new(string) + **out = **in + } + if in.LocalID != nil { + in, out := &in.LocalID, &out.LocalID + *out = new(string) + **out = **in + } + if in.Mtu != nil { + in, out := &in.Mtu, &out.Mtu + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PeerAddress != nil { + in, out := &in.PeerAddress, &out.PeerAddress + *out = new(string) + **out = **in + } + if in.PeerCidrs != nil { + in, out := &in.PeerCidrs, &out.PeerCidrs + *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.PeerEpGroupID != nil { + in, out := &in.PeerEpGroupID, &out.PeerEpGroupID + *out = new(string) + **out = **in + } + if in.PeerID != nil { + in, out := &in.PeerID, &out.PeerID + *out = new(string) + **out = **in + } + if in.Psk != nil { + in, out := &in.Psk, &out.Psk + *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.ValueSpecs != nil { + in, out := &in.ValueSpecs, &out.ValueSpecs + *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.VpnserviceID != nil { + in, out := &in.VpnserviceID, &out.VpnserviceID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SiteConnectionV2Parameters. +func (in *SiteConnectionV2Parameters) DeepCopy() *SiteConnectionV2Parameters { + if in == nil { + return nil + } + out := new(SiteConnectionV2Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SiteConnectionV2Spec) DeepCopyInto(out *SiteConnectionV2Spec) { + *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 SiteConnectionV2Spec. +func (in *SiteConnectionV2Spec) DeepCopy() *SiteConnectionV2Spec { + if in == nil { + return nil + } + out := new(SiteConnectionV2Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *SiteConnectionV2Status) DeepCopyInto(out *SiteConnectionV2Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new SiteConnectionV2Status. +func (in *SiteConnectionV2Status) DeepCopy() *SiteConnectionV2Status { + if in == nil { + return nil + } + out := new(SiteConnectionV2Status) + in.DeepCopyInto(out) + return out +} diff --git a/apis/vpnaas/v1alpha1/zz_generated_terraformed.go b/apis/vpnaas/v1alpha1/zz_generated_terraformed.go new file mode 100755 index 0000000..7d6b986 --- /dev/null +++ b/apis/vpnaas/v1alpha1/zz_generated_terraformed.go @@ -0,0 +1,438 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "github.com/pkg/errors" + + "github.com/crossplane/upjet/pkg/resource" + "github.com/crossplane/upjet/pkg/resource/json" +) + +// GetTerraformResourceType returns Terraform resource type for this EndpointGroupV2 +func (mg *EndpointGroupV2) GetTerraformResourceType() string { + return "opentelekomcloud_vpnaas_endpoint_group_v2" +} + +// GetConnectionDetailsMapping for this EndpointGroupV2 +func (tr *EndpointGroupV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this EndpointGroupV2 +func (tr *EndpointGroupV2) 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 EndpointGroupV2 +func (tr *EndpointGroupV2) 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 EndpointGroupV2 +func (tr *EndpointGroupV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this EndpointGroupV2 +func (tr *EndpointGroupV2) 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 EndpointGroupV2 +func (tr *EndpointGroupV2) 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 EndpointGroupV2 +func (tr *EndpointGroupV2) 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) +} + +// LateInitialize this EndpointGroupV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *EndpointGroupV2) LateInitialize(attrs []byte) (bool, error) { + params := &EndpointGroupV2Parameters{} + 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 *EndpointGroupV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this IkePolicyV2 +func (mg *IkePolicyV2) GetTerraformResourceType() string { + return "opentelekomcloud_vpnaas_ike_policy_v2" +} + +// GetConnectionDetailsMapping for this IkePolicyV2 +func (tr *IkePolicyV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this IkePolicyV2 +func (tr *IkePolicyV2) 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 IkePolicyV2 +func (tr *IkePolicyV2) 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 IkePolicyV2 +func (tr *IkePolicyV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this IkePolicyV2 +func (tr *IkePolicyV2) 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 IkePolicyV2 +func (tr *IkePolicyV2) 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 IkePolicyV2 +func (tr *IkePolicyV2) 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) +} + +// LateInitialize this IkePolicyV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *IkePolicyV2) LateInitialize(attrs []byte) (bool, error) { + params := &IkePolicyV2Parameters{} + 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 *IkePolicyV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this IpsecPolicyV2 +func (mg *IpsecPolicyV2) GetTerraformResourceType() string { + return "opentelekomcloud_vpnaas_ipsec_policy_v2" +} + +// GetConnectionDetailsMapping for this IpsecPolicyV2 +func (tr *IpsecPolicyV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this IpsecPolicyV2 +func (tr *IpsecPolicyV2) 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 IpsecPolicyV2 +func (tr *IpsecPolicyV2) 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 IpsecPolicyV2 +func (tr *IpsecPolicyV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this IpsecPolicyV2 +func (tr *IpsecPolicyV2) 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 IpsecPolicyV2 +func (tr *IpsecPolicyV2) 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 IpsecPolicyV2 +func (tr *IpsecPolicyV2) 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) +} + +// LateInitialize this IpsecPolicyV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *IpsecPolicyV2) LateInitialize(attrs []byte) (bool, error) { + params := &IpsecPolicyV2Parameters{} + 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 *IpsecPolicyV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this ServiceV2 +func (mg *ServiceV2) GetTerraformResourceType() string { + return "opentelekomcloud_vpnaas_service_v2" +} + +// GetConnectionDetailsMapping for this ServiceV2 +func (tr *ServiceV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this ServiceV2 +func (tr *ServiceV2) 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 ServiceV2 +func (tr *ServiceV2) 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 ServiceV2 +func (tr *ServiceV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this ServiceV2 +func (tr *ServiceV2) 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 ServiceV2 +func (tr *ServiceV2) 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 ServiceV2 +func (tr *ServiceV2) 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) +} + +// LateInitialize this ServiceV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *ServiceV2) LateInitialize(attrs []byte) (bool, error) { + params := &ServiceV2Parameters{} + 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 *ServiceV2) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this SiteConnectionV2 +func (mg *SiteConnectionV2) GetTerraformResourceType() string { + return "opentelekomcloud_vpnaas_site_connection_v2" +} + +// GetConnectionDetailsMapping for this SiteConnectionV2 +func (tr *SiteConnectionV2) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this SiteConnectionV2 +func (tr *SiteConnectionV2) 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 SiteConnectionV2 +func (tr *SiteConnectionV2) 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 SiteConnectionV2 +func (tr *SiteConnectionV2) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this SiteConnectionV2 +func (tr *SiteConnectionV2) 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 SiteConnectionV2 +func (tr *SiteConnectionV2) 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 SiteConnectionV2 +func (tr *SiteConnectionV2) 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) +} + +// LateInitialize this SiteConnectionV2 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *SiteConnectionV2) LateInitialize(attrs []byte) (bool, error) { + params := &SiteConnectionV2Parameters{} + 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 *SiteConnectionV2) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/vpnaas/v1alpha1/zz_groupversion_info.go b/apis/vpnaas/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..5b12a2e --- /dev/null +++ b/apis/vpnaas/v1alpha1/zz_groupversion_info.go @@ -0,0 +1,36 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +// +kubebuilder:object:generate=true +// +groupName=vpnaas.crossplane.io +// +versionName=v1alpha1 +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +// Package type metadata. +const ( + CRDGroup = "vpnaas.crossplane.io" + CRDVersion = "v1alpha1" +) + +var ( + // CRDGroupVersion is the API Group Version used to register the objects + CRDGroupVersion = schema.GroupVersion{Group: CRDGroup, Version: CRDVersion} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme + SchemeBuilder = &scheme.Builder{GroupVersion: CRDGroupVersion} + + // AddToScheme adds the types in this group-version to the given scheme. + AddToScheme = SchemeBuilder.AddToScheme +) diff --git a/apis/vpnaas/v1alpha1/zz_ikepolicyv2_types.go b/apis/vpnaas/v1alpha1/zz_ikepolicyv2_types.go new file mode 100755 index 0000000..e4b28ec --- /dev/null +++ b/apis/vpnaas/v1alpha1/zz_ikepolicyv2_types.go @@ -0,0 +1,241 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 IkePolicyV2InitParameters struct { + + // The authentication hash algorithm. Valid values are md5, + // sha1, sha2-256, sha2-384, sha2-512. Default is sha1. + AuthAlgorithm *string `json:"authAlgorithm,omitempty" tf:"auth_algorithm,omitempty"` + + // The human-readable description for the policy. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The encryption algorithm. Valid values are 3des, aes-128, aes-192 and so on. + // The default value is aes-128. + EncryptionAlgorithm *string `json:"encryptionAlgorithm,omitempty" tf:"encryption_algorithm,omitempty"` + + // The IKE mode. Valid values are v1 and v2. Default is v1. + IkeVersion *string `json:"ikeVersion,omitempty" tf:"ike_version,omitempty"` + + // The lifetime of the security association. Consists of Unit and Value. + Lifetime []LifetimeInitParameters `json:"lifetime,omitempty" tf:"lifetime,omitempty"` + + // The name of the policy. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The perfect forward secrecy mode. Valid values are group1, group2, group5 and so on. + // Default is group5. + Pfs *string `json:"pfs,omitempty" tf:"pfs,omitempty"` + + // The IKE mode. Valid values are main and aggressive. Default is main. + Phase1NegotiationMode *string `json:"phase1NegotiationMode,omitempty" tf:"phase1_negotiation_mode,omitempty"` + + // The region in which to obtain the V2 Networking client. + // A Networking client is needed to create a VPN service. If omitted, the + // region argument of the provider is used. Changing this creates a new service. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The owner of the policy. Required if admin wants to + // create a service for another policy. Changing this creates a new policy. + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // Map of additional options. + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +type IkePolicyV2Observation struct { + + // The authentication hash algorithm. Valid values are md5, + // sha1, sha2-256, sha2-384, sha2-512. Default is sha1. + AuthAlgorithm *string `json:"authAlgorithm,omitempty" tf:"auth_algorithm,omitempty"` + + // The human-readable description for the policy. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The encryption algorithm. Valid values are 3des, aes-128, aes-192 and so on. + // The default value is aes-128. + EncryptionAlgorithm *string `json:"encryptionAlgorithm,omitempty" tf:"encryption_algorithm,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The IKE mode. Valid values are v1 and v2. Default is v1. + IkeVersion *string `json:"ikeVersion,omitempty" tf:"ike_version,omitempty"` + + // The lifetime of the security association. Consists of Unit and Value. + Lifetime []LifetimeObservation `json:"lifetime,omitempty" tf:"lifetime,omitempty"` + + // The name of the policy. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The perfect forward secrecy mode. Valid values are group1, group2, group5 and so on. + // Default is group5. + Pfs *string `json:"pfs,omitempty" tf:"pfs,omitempty"` + + // The IKE mode. Valid values are main and aggressive. Default is main. + Phase1NegotiationMode *string `json:"phase1NegotiationMode,omitempty" tf:"phase1_negotiation_mode,omitempty"` + + // The region in which to obtain the V2 Networking client. + // A Networking client is needed to create a VPN service. If omitted, the + // region argument of the provider is used. Changing this creates a new service. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The owner of the policy. Required if admin wants to + // create a service for another policy. Changing this creates a new policy. + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // Map of additional options. + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +type IkePolicyV2Parameters struct { + + // The authentication hash algorithm. Valid values are md5, + // sha1, sha2-256, sha2-384, sha2-512. Default is sha1. + // +kubebuilder:validation:Optional + AuthAlgorithm *string `json:"authAlgorithm,omitempty" tf:"auth_algorithm,omitempty"` + + // The human-readable description for the policy. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The encryption algorithm. Valid values are 3des, aes-128, aes-192 and so on. + // The default value is aes-128. + // +kubebuilder:validation:Optional + EncryptionAlgorithm *string `json:"encryptionAlgorithm,omitempty" tf:"encryption_algorithm,omitempty"` + + // The IKE mode. Valid values are v1 and v2. Default is v1. + // +kubebuilder:validation:Optional + IkeVersion *string `json:"ikeVersion,omitempty" tf:"ike_version,omitempty"` + + // The lifetime of the security association. Consists of Unit and Value. + // +kubebuilder:validation:Optional + Lifetime []LifetimeParameters `json:"lifetime,omitempty" tf:"lifetime,omitempty"` + + // The name of the policy. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The perfect forward secrecy mode. Valid values are group1, group2, group5 and so on. + // Default is group5. + // +kubebuilder:validation:Optional + Pfs *string `json:"pfs,omitempty" tf:"pfs,omitempty"` + + // The IKE mode. Valid values are main and aggressive. Default is main. + // +kubebuilder:validation:Optional + Phase1NegotiationMode *string `json:"phase1NegotiationMode,omitempty" tf:"phase1_negotiation_mode,omitempty"` + + // The region in which to obtain the V2 Networking client. + // A Networking client is needed to create a VPN service. If omitted, the + // region argument of the provider is used. Changing this creates a new service. + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The owner of the policy. Required if admin wants to + // create a service for another policy. Changing this creates a new policy. + // +kubebuilder:validation:Optional + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // Map of additional options. + // +kubebuilder:validation:Optional + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +type LifetimeInitParameters struct { + Units *string `json:"units,omitempty" tf:"units,omitempty"` + + // The value for the lifetime of the security association. Default is 3600. + Value *float64 `json:"value,omitempty" tf:"value,omitempty"` +} + +type LifetimeObservation struct { + Units *string `json:"units,omitempty" tf:"units,omitempty"` + + // The value for the lifetime of the security association. Default is 3600. + Value *float64 `json:"value,omitempty" tf:"value,omitempty"` +} + +type LifetimeParameters struct { + + // +kubebuilder:validation:Optional + Units *string `json:"units,omitempty" tf:"units,omitempty"` + + // The value for the lifetime of the security association. Default is 3600. + // +kubebuilder:validation:Optional + Value *float64 `json:"value,omitempty" tf:"value,omitempty"` +} + +// IkePolicyV2Spec defines the desired state of IkePolicyV2 +type IkePolicyV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider IkePolicyV2Parameters `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 IkePolicyV2InitParameters `json:"initProvider,omitempty"` +} + +// IkePolicyV2Status defines the observed state of IkePolicyV2. +type IkePolicyV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider IkePolicyV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// IkePolicyV2 is the Schema for the IkePolicyV2s API. Manages a VPNAAS IKE Policy resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type IkePolicyV2 struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec IkePolicyV2Spec `json:"spec"` + Status IkePolicyV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// IkePolicyV2List contains a list of IkePolicyV2s +type IkePolicyV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []IkePolicyV2 `json:"items"` +} + +// Repository type metadata. +var ( + IkePolicyV2_Kind = "IkePolicyV2" + IkePolicyV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: IkePolicyV2_Kind}.String() + IkePolicyV2_KindAPIVersion = IkePolicyV2_Kind + "." + CRDGroupVersion.String() + IkePolicyV2_GroupVersionKind = CRDGroupVersion.WithKind(IkePolicyV2_Kind) +) + +func init() { + SchemeBuilder.Register(&IkePolicyV2{}, &IkePolicyV2List{}) +} diff --git a/apis/vpnaas/v1alpha1/zz_ipsecpolicyv2_types.go b/apis/vpnaas/v1alpha1/zz_ipsecpolicyv2_types.go new file mode 100755 index 0000000..7db5835 --- /dev/null +++ b/apis/vpnaas/v1alpha1/zz_ipsecpolicyv2_types.go @@ -0,0 +1,241 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 IpsecPolicyV2InitParameters struct { + + // The authentication hash algorithm. Valid values are md5, sha1, sha2-256, sha2-384, sha2-512. + // Default is sha1. + AuthAlgorithm *string `json:"authAlgorithm,omitempty" tf:"auth_algorithm,omitempty"` + + // The human-readable description for the policy. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The encapsulation mode. Default is tunnel. + EncapsulationMode *string `json:"encapsulationMode,omitempty" tf:"encapsulation_mode,omitempty"` + + // The encryption algorithm. Valid values are 3des, aes-128, aes-192 and so on. + // The default value is aes-128. + EncryptionAlgorithm *string `json:"encryptionAlgorithm,omitempty" tf:"encryption_algorithm,omitempty"` + + // The lifetime of the security association. Consists of Unit and Value. + Lifetime []IpsecPolicyV2LifetimeInitParameters `json:"lifetime,omitempty" tf:"lifetime,omitempty"` + + // The name of the policy. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The perfect forward secrecy mode. Valid values are group1, group2, group5, group14, + // group15, group16, group19, group20, group21 or disable Default is group5. + Pfs *string `json:"pfs,omitempty" tf:"pfs,omitempty"` + + // The region in which to obtain the V2 Networking client. + // A Networking client is needed to create an IPSec policy. If omitted, the + // region argument of the provider is used. Changing this creates a new policy. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The owner of the policy. Required if admin wants to + // create a policy for another project. Changing this creates a new policy. + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // The transform protocol. Valid values are esp, ah and ah-esp. Default is esp. + TransformProtocol *string `json:"transformProtocol,omitempty" tf:"transform_protocol,omitempty"` + + // Map of additional options. + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +type IpsecPolicyV2LifetimeInitParameters struct { + Units *string `json:"units,omitempty" tf:"units,omitempty"` + + // The value for the lifetime of the security association. Must be a positive integer. Default is 3600. + Value *float64 `json:"value,omitempty" tf:"value,omitempty"` +} + +type IpsecPolicyV2LifetimeObservation struct { + Units *string `json:"units,omitempty" tf:"units,omitempty"` + + // The value for the lifetime of the security association. Must be a positive integer. Default is 3600. + Value *float64 `json:"value,omitempty" tf:"value,omitempty"` +} + +type IpsecPolicyV2LifetimeParameters struct { + + // +kubebuilder:validation:Optional + Units *string `json:"units,omitempty" tf:"units,omitempty"` + + // The value for the lifetime of the security association. Must be a positive integer. Default is 3600. + // +kubebuilder:validation:Optional + Value *float64 `json:"value,omitempty" tf:"value,omitempty"` +} + +type IpsecPolicyV2Observation struct { + + // The authentication hash algorithm. Valid values are md5, sha1, sha2-256, sha2-384, sha2-512. + // Default is sha1. + AuthAlgorithm *string `json:"authAlgorithm,omitempty" tf:"auth_algorithm,omitempty"` + + // The human-readable description for the policy. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The encapsulation mode. Default is tunnel. + EncapsulationMode *string `json:"encapsulationMode,omitempty" tf:"encapsulation_mode,omitempty"` + + // The encryption algorithm. Valid values are 3des, aes-128, aes-192 and so on. + // The default value is aes-128. + EncryptionAlgorithm *string `json:"encryptionAlgorithm,omitempty" tf:"encryption_algorithm,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The lifetime of the security association. Consists of Unit and Value. + Lifetime []IpsecPolicyV2LifetimeObservation `json:"lifetime,omitempty" tf:"lifetime,omitempty"` + + // The name of the policy. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The perfect forward secrecy mode. Valid values are group1, group2, group5, group14, + // group15, group16, group19, group20, group21 or disable Default is group5. + Pfs *string `json:"pfs,omitempty" tf:"pfs,omitempty"` + + // The region in which to obtain the V2 Networking client. + // A Networking client is needed to create an IPSec policy. If omitted, the + // region argument of the provider is used. Changing this creates a new policy. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The owner of the policy. Required if admin wants to + // create a policy for another project. Changing this creates a new policy. + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // The transform protocol. Valid values are esp, ah and ah-esp. Default is esp. + TransformProtocol *string `json:"transformProtocol,omitempty" tf:"transform_protocol,omitempty"` + + // Map of additional options. + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +type IpsecPolicyV2Parameters struct { + + // The authentication hash algorithm. Valid values are md5, sha1, sha2-256, sha2-384, sha2-512. + // Default is sha1. + // +kubebuilder:validation:Optional + AuthAlgorithm *string `json:"authAlgorithm,omitempty" tf:"auth_algorithm,omitempty"` + + // The human-readable description for the policy. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The encapsulation mode. Default is tunnel. + // +kubebuilder:validation:Optional + EncapsulationMode *string `json:"encapsulationMode,omitempty" tf:"encapsulation_mode,omitempty"` + + // The encryption algorithm. Valid values are 3des, aes-128, aes-192 and so on. + // The default value is aes-128. + // +kubebuilder:validation:Optional + EncryptionAlgorithm *string `json:"encryptionAlgorithm,omitempty" tf:"encryption_algorithm,omitempty"` + + // The lifetime of the security association. Consists of Unit and Value. + // +kubebuilder:validation:Optional + Lifetime []IpsecPolicyV2LifetimeParameters `json:"lifetime,omitempty" tf:"lifetime,omitempty"` + + // The name of the policy. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The perfect forward secrecy mode. Valid values are group1, group2, group5, group14, + // group15, group16, group19, group20, group21 or disable Default is group5. + // +kubebuilder:validation:Optional + Pfs *string `json:"pfs,omitempty" tf:"pfs,omitempty"` + + // The region in which to obtain the V2 Networking client. + // A Networking client is needed to create an IPSec policy. If omitted, the + // region argument of the provider is used. Changing this creates a new policy. + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The owner of the policy. Required if admin wants to + // create a policy for another project. Changing this creates a new policy. + // +kubebuilder:validation:Optional + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // The transform protocol. Valid values are esp, ah and ah-esp. Default is esp. + // +kubebuilder:validation:Optional + TransformProtocol *string `json:"transformProtocol,omitempty" tf:"transform_protocol,omitempty"` + + // Map of additional options. + // +kubebuilder:validation:Optional + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +// IpsecPolicyV2Spec defines the desired state of IpsecPolicyV2 +type IpsecPolicyV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider IpsecPolicyV2Parameters `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 IpsecPolicyV2InitParameters `json:"initProvider,omitempty"` +} + +// IpsecPolicyV2Status defines the observed state of IpsecPolicyV2. +type IpsecPolicyV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider IpsecPolicyV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// IpsecPolicyV2 is the Schema for the IpsecPolicyV2s API. Manages a VPNAAS IPSEC Policy resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type IpsecPolicyV2 struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec IpsecPolicyV2Spec `json:"spec"` + Status IpsecPolicyV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// IpsecPolicyV2List contains a list of IpsecPolicyV2s +type IpsecPolicyV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []IpsecPolicyV2 `json:"items"` +} + +// Repository type metadata. +var ( + IpsecPolicyV2_Kind = "IpsecPolicyV2" + IpsecPolicyV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: IpsecPolicyV2_Kind}.String() + IpsecPolicyV2_KindAPIVersion = IpsecPolicyV2_Kind + "." + CRDGroupVersion.String() + IpsecPolicyV2_GroupVersionKind = CRDGroupVersion.WithKind(IpsecPolicyV2_Kind) +) + +func init() { + SchemeBuilder.Register(&IpsecPolicyV2{}, &IpsecPolicyV2List{}) +} diff --git a/apis/vpnaas/v1alpha1/zz_servicev2_types.go b/apis/vpnaas/v1alpha1/zz_servicev2_types.go new file mode 100755 index 0000000..628240a --- /dev/null +++ b/apis/vpnaas/v1alpha1/zz_servicev2_types.go @@ -0,0 +1,198 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 ServiceV2InitParameters struct { + + // The administrative state of the resource. Can either be true (Up) or false (Down). + // Changing this updates the administrative state of the existing service. + AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` + + // The human-readable description for the service. + // Changing this updates the description of the existing service. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The name of the service. Changing this updates the name of + // the existing service. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The region in which to obtain the V2 Networking client. + // A Networking client is needed to create a VPN service. If omitted, the + // region argument of the provider is used. Changing this creates a new service. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The ID of the router. Changing this creates a new service. + RouterID *string `json:"routerId,omitempty" tf:"router_id,omitempty"` + + // SubnetID is the ID of the subnet. Default is null. + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // The owner of the service. Required if admin wants to + // create a service for another project. Changing this creates a new service. + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // Map of additional options. + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +type ServiceV2Observation struct { + + // The administrative state of the resource. Can either be true (Up) or false (Down). + // Changing this updates the administrative state of the existing service. + AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` + + // The human-readable description for the service. + // Changing this updates the description of the existing service. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The read-only external (public) IPv4 address that is used for the VPN service. + ExternalV4IP *string `json:"externalV4Ip,omitempty" tf:"external_v4_ip,omitempty"` + + // The read-only external (public) IPv6 address that is used for the VPN service. + ExternalV6IP *string `json:"externalV6Ip,omitempty" tf:"external_v6_ip,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The name of the service. Changing this updates the name of + // the existing service. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The region in which to obtain the V2 Networking client. + // A Networking client is needed to create a VPN service. If omitted, the + // region argument of the provider is used. Changing this creates a new service. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The ID of the router. Changing this creates a new service. + RouterID *string `json:"routerId,omitempty" tf:"router_id,omitempty"` + + // Indicates whether IPsec VPN service is currently operational. Values are ACTIVE, + // DOWN, BUILD, ERROR, PENDING_CREATE, PENDING_UPDATE or PENDING_DELETE. + Status *string `json:"status,omitempty" tf:"status,omitempty"` + + // SubnetID is the ID of the subnet. Default is null. + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // The owner of the service. Required if admin wants to + // create a service for another project. Changing this creates a new service. + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // Map of additional options. + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +type ServiceV2Parameters struct { + + // The administrative state of the resource. Can either be true (Up) or false (Down). + // Changing this updates the administrative state of the existing service. + // +kubebuilder:validation:Optional + AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` + + // The human-readable description for the service. + // Changing this updates the description of the existing service. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The name of the service. Changing this updates the name of + // the existing service. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The region in which to obtain the V2 Networking client. + // A Networking client is needed to create a VPN service. If omitted, the + // region argument of the provider is used. Changing this creates a new service. + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The ID of the router. Changing this creates a new service. + // +kubebuilder:validation:Optional + RouterID *string `json:"routerId,omitempty" tf:"router_id,omitempty"` + + // SubnetID is the ID of the subnet. Default is null. + // +kubebuilder:validation:Optional + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // The owner of the service. Required if admin wants to + // create a service for another project. Changing this creates a new service. + // +kubebuilder:validation:Optional + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // Map of additional options. + // +kubebuilder:validation:Optional + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` +} + +// ServiceV2Spec defines the desired state of ServiceV2 +type ServiceV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider ServiceV2Parameters `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 ServiceV2InitParameters `json:"initProvider,omitempty"` +} + +// ServiceV2Status defines the observed state of ServiceV2. +type ServiceV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider ServiceV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// ServiceV2 is the Schema for the ServiceV2s API. Manages a VPNAAS Service resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type ServiceV2 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.routerId) || (has(self.initProvider) && has(self.initProvider.routerId))",message="spec.forProvider.routerId is a required parameter" + Spec ServiceV2Spec `json:"spec"` + Status ServiceV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// ServiceV2List contains a list of ServiceV2s +type ServiceV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []ServiceV2 `json:"items"` +} + +// Repository type metadata. +var ( + ServiceV2_Kind = "ServiceV2" + ServiceV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: ServiceV2_Kind}.String() + ServiceV2_KindAPIVersion = ServiceV2_Kind + "." + CRDGroupVersion.String() + ServiceV2_GroupVersionKind = CRDGroupVersion.WithKind(ServiceV2_Kind) +) + +func init() { + SchemeBuilder.Register(&ServiceV2{}, &ServiceV2List{}) +} diff --git a/apis/vpnaas/v1alpha1/zz_siteconnectionv2_types.go b/apis/vpnaas/v1alpha1/zz_siteconnectionv2_types.go new file mode 100755 index 0000000..29f5508 --- /dev/null +++ b/apis/vpnaas/v1alpha1/zz_siteconnectionv2_types.go @@ -0,0 +1,394 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 DpdInitParameters struct { + + // The dead peer detection (DPD) action. + // A valid value is clear, hold, restart, disabled or restart-by-peer. Default value is hold. + Action *string `json:"action,omitempty" tf:"action,omitempty"` + + // The dead peer detection (DPD) interval, in seconds. + // A valid value is a positive integer. Default is 30. + Interval *float64 `json:"interval,omitempty" tf:"interval,omitempty"` + + // The dead peer detection (DPD) timeout in seconds. + // A valid value is a positive integer that is greater than the DPD interval value. Default is 120. + Timeout *float64 `json:"timeout,omitempty" tf:"timeout,omitempty"` +} + +type DpdObservation struct { + + // The dead peer detection (DPD) action. + // A valid value is clear, hold, restart, disabled or restart-by-peer. Default value is hold. + Action *string `json:"action,omitempty" tf:"action,omitempty"` + + // The dead peer detection (DPD) interval, in seconds. + // A valid value is a positive integer. Default is 30. + Interval *float64 `json:"interval,omitempty" tf:"interval,omitempty"` + + // The dead peer detection (DPD) timeout in seconds. + // A valid value is a positive integer that is greater than the DPD interval value. Default is 120. + Timeout *float64 `json:"timeout,omitempty" tf:"timeout,omitempty"` +} + +type DpdParameters struct { + + // The dead peer detection (DPD) action. + // A valid value is clear, hold, restart, disabled or restart-by-peer. Default value is hold. + // +kubebuilder:validation:Optional + Action *string `json:"action,omitempty" tf:"action,omitempty"` + + // The dead peer detection (DPD) interval, in seconds. + // A valid value is a positive integer. Default is 30. + // +kubebuilder:validation:Optional + Interval *float64 `json:"interval,omitempty" tf:"interval,omitempty"` + + // The dead peer detection (DPD) timeout in seconds. + // A valid value is a positive integer that is greater than the DPD interval value. Default is 120. + // +kubebuilder:validation:Optional + Timeout *float64 `json:"timeout,omitempty" tf:"timeout,omitempty"` +} + +type SiteConnectionV2InitParameters struct { + + // The administrative state of the resource. Can either be up(true) or + // down(false). Changing this updates the administrative state of the existing connection. + AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` + + // The human-readable description for the connection. + // Changing this updates the description of the existing connection. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // A dictionary with dead peer detection (DPD) protocol controls. + Dpd []DpdInitParameters `json:"dpd,omitempty" tf:"dpd,omitempty"` + + // The ID of the IKE policy. Changing this creates a new connection. + IkepolicyID *string `json:"ikepolicyId,omitempty" tf:"ikepolicy_id,omitempty"` + + // A valid value is response-only or bi-directional. + Initiator *string `json:"initiator,omitempty" tf:"initiator,omitempty"` + + // The ID of the IPsec policy. Changing this creates a new connection. + IpsecpolicyID *string `json:"ipsecpolicyId,omitempty" tf:"ipsecpolicy_id,omitempty"` + + // The ID for the endpoint group that contains private subnets for the + // local side of the connection. You must specify this parameter with the peer_ep_group_id parameter unless + // in backward-compatible mode where peer_cidrs is provided with a subnet_id for the VPN service. + // Changing this updates the existing connection. + LocalEpGroupID *string `json:"localEpGroupId,omitempty" tf:"local_ep_group_id,omitempty"` + + // An ID to be used instead of the external IP address for a virtual router used in + // traffic between instances on different networks in east-west traffic. Most often, local ID would be domain name, + // email address, etc. If this is not configured then the external IP address will be used as the ID. + LocalID *string `json:"localId,omitempty" tf:"local_id,omitempty"` + + // The maximum transmission unit (MTU) value to address fragmentation. + // Minimum value is 68 for IPv4, and 1280 for IPv6. + Mtu *float64 `json:"mtu,omitempty" tf:"mtu,omitempty"` + + // The name of the connection. Changing this updates the name of + // the existing connection. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The peer gateway public IPv4 or IPv6 address or FQDN. + PeerAddress *string `json:"peerAddress,omitempty" tf:"peer_address,omitempty"` + + // Unique list of valid peer private CIDRs in the form /. + PeerCidrs []*string `json:"peerCidrs,omitempty" tf:"peer_cidrs,omitempty"` + + // The ID for the endpoint group that contains private CIDRs in the form + // / for the peer side of the connection. You must specify this parameter with the + // local_ep_group_id parameter unless in backward-compatible mode where peer_cidrs is provided + // with a subnet_id for the VPN service. + PeerEpGroupID *string `json:"peerEpGroupId,omitempty" tf:"peer_ep_group_id,omitempty"` + + // The peer router identity for authentication. A valid value is an IPv4 address, + // IPv6 address, e-mail address, key ID, or FQDN. Typically, this value matches the peer_address value. + // Changing this updates the existing policy. + PeerID *string `json:"peerId,omitempty" tf:"peer_id,omitempty"` + + // The pre-shared key. A PSK can contain 6 to 128 characters. Spaces and the following special characters are not allowed: <>&?*'". + Psk *string `json:"psk,omitempty" tf:"psk,omitempty"` + + // The region in which to obtain the V2 Networking client. + // A Networking client is needed to create an IPSec site connection. If omitted, the + // region argument of the provider is used. Changing this creates a new site connection. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The key/value pairs to associate with the connection. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The owner of the connection. Required if admin wants to + // create a connection for another project. Changing this creates a new connection. + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // Map of additional options. + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` + + // The ID of the VPN service. Changing this creates a new connection. + VpnserviceID *string `json:"vpnserviceId,omitempty" tf:"vpnservice_id,omitempty"` +} + +type SiteConnectionV2Observation struct { + + // The administrative state of the resource. Can either be up(true) or + // down(false). Changing this updates the administrative state of the existing connection. + AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` + + // The human-readable description for the connection. + // Changing this updates the description of the existing connection. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // A dictionary with dead peer detection (DPD) protocol controls. + Dpd []DpdObservation `json:"dpd,omitempty" tf:"dpd,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The ID of the IKE policy. Changing this creates a new connection. + IkepolicyID *string `json:"ikepolicyId,omitempty" tf:"ikepolicy_id,omitempty"` + + // A valid value is response-only or bi-directional. + Initiator *string `json:"initiator,omitempty" tf:"initiator,omitempty"` + + // The ID of the IPsec policy. Changing this creates a new connection. + IpsecpolicyID *string `json:"ipsecpolicyId,omitempty" tf:"ipsecpolicy_id,omitempty"` + + // The ID for the endpoint group that contains private subnets for the + // local side of the connection. You must specify this parameter with the peer_ep_group_id parameter unless + // in backward-compatible mode where peer_cidrs is provided with a subnet_id for the VPN service. + // Changing this updates the existing connection. + LocalEpGroupID *string `json:"localEpGroupId,omitempty" tf:"local_ep_group_id,omitempty"` + + // An ID to be used instead of the external IP address for a virtual router used in + // traffic between instances on different networks in east-west traffic. Most often, local ID would be domain name, + // email address, etc. If this is not configured then the external IP address will be used as the ID. + LocalID *string `json:"localId,omitempty" tf:"local_id,omitempty"` + + // The maximum transmission unit (MTU) value to address fragmentation. + // Minimum value is 68 for IPv4, and 1280 for IPv6. + Mtu *float64 `json:"mtu,omitempty" tf:"mtu,omitempty"` + + // The name of the connection. Changing this updates the name of + // the existing connection. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The peer gateway public IPv4 or IPv6 address or FQDN. + PeerAddress *string `json:"peerAddress,omitempty" tf:"peer_address,omitempty"` + + // Unique list of valid peer private CIDRs in the form /. + PeerCidrs []*string `json:"peerCidrs,omitempty" tf:"peer_cidrs,omitempty"` + + // The ID for the endpoint group that contains private CIDRs in the form + // / for the peer side of the connection. You must specify this parameter with the + // local_ep_group_id parameter unless in backward-compatible mode where peer_cidrs is provided + // with a subnet_id for the VPN service. + PeerEpGroupID *string `json:"peerEpGroupId,omitempty" tf:"peer_ep_group_id,omitempty"` + + // The peer router identity for authentication. A valid value is an IPv4 address, + // IPv6 address, e-mail address, key ID, or FQDN. Typically, this value matches the peer_address value. + // Changing this updates the existing policy. + PeerID *string `json:"peerId,omitempty" tf:"peer_id,omitempty"` + + // The pre-shared key. A PSK can contain 6 to 128 characters. Spaces and the following special characters are not allowed: <>&?*'". + Psk *string `json:"psk,omitempty" tf:"psk,omitempty"` + + // The region in which to obtain the V2 Networking client. + // A Networking client is needed to create an IPSec site connection. If omitted, the + // region argument of the provider is used. Changing this creates a new site connection. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The key/value pairs to associate with the connection. + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The owner of the connection. Required if admin wants to + // create a connection for another project. Changing this creates a new connection. + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // Map of additional options. + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` + + // The ID of the VPN service. Changing this creates a new connection. + VpnserviceID *string `json:"vpnserviceId,omitempty" tf:"vpnservice_id,omitempty"` +} + +type SiteConnectionV2Parameters struct { + + // The administrative state of the resource. Can either be up(true) or + // down(false). Changing this updates the administrative state of the existing connection. + // +kubebuilder:validation:Optional + AdminStateUp *bool `json:"adminStateUp,omitempty" tf:"admin_state_up,omitempty"` + + // The human-readable description for the connection. + // Changing this updates the description of the existing connection. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // A dictionary with dead peer detection (DPD) protocol controls. + // +kubebuilder:validation:Optional + Dpd []DpdParameters `json:"dpd,omitempty" tf:"dpd,omitempty"` + + // The ID of the IKE policy. Changing this creates a new connection. + // +kubebuilder:validation:Optional + IkepolicyID *string `json:"ikepolicyId,omitempty" tf:"ikepolicy_id,omitempty"` + + // A valid value is response-only or bi-directional. + // +kubebuilder:validation:Optional + Initiator *string `json:"initiator,omitempty" tf:"initiator,omitempty"` + + // The ID of the IPsec policy. Changing this creates a new connection. + // +kubebuilder:validation:Optional + IpsecpolicyID *string `json:"ipsecpolicyId,omitempty" tf:"ipsecpolicy_id,omitempty"` + + // The ID for the endpoint group that contains private subnets for the + // local side of the connection. You must specify this parameter with the peer_ep_group_id parameter unless + // in backward-compatible mode where peer_cidrs is provided with a subnet_id for the VPN service. + // Changing this updates the existing connection. + // +kubebuilder:validation:Optional + LocalEpGroupID *string `json:"localEpGroupId,omitempty" tf:"local_ep_group_id,omitempty"` + + // An ID to be used instead of the external IP address for a virtual router used in + // traffic between instances on different networks in east-west traffic. Most often, local ID would be domain name, + // email address, etc. If this is not configured then the external IP address will be used as the ID. + // +kubebuilder:validation:Optional + LocalID *string `json:"localId,omitempty" tf:"local_id,omitempty"` + + // The maximum transmission unit (MTU) value to address fragmentation. + // Minimum value is 68 for IPv4, and 1280 for IPv6. + // +kubebuilder:validation:Optional + Mtu *float64 `json:"mtu,omitempty" tf:"mtu,omitempty"` + + // The name of the connection. Changing this updates the name of + // the existing connection. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The peer gateway public IPv4 or IPv6 address or FQDN. + // +kubebuilder:validation:Optional + PeerAddress *string `json:"peerAddress,omitempty" tf:"peer_address,omitempty"` + + // Unique list of valid peer private CIDRs in the form /. + // +kubebuilder:validation:Optional + PeerCidrs []*string `json:"peerCidrs,omitempty" tf:"peer_cidrs,omitempty"` + + // The ID for the endpoint group that contains private CIDRs in the form + // / for the peer side of the connection. You must specify this parameter with the + // local_ep_group_id parameter unless in backward-compatible mode where peer_cidrs is provided + // with a subnet_id for the VPN service. + // +kubebuilder:validation:Optional + PeerEpGroupID *string `json:"peerEpGroupId,omitempty" tf:"peer_ep_group_id,omitempty"` + + // The peer router identity for authentication. A valid value is an IPv4 address, + // IPv6 address, e-mail address, key ID, or FQDN. Typically, this value matches the peer_address value. + // Changing this updates the existing policy. + // +kubebuilder:validation:Optional + PeerID *string `json:"peerId,omitempty" tf:"peer_id,omitempty"` + + // The pre-shared key. A PSK can contain 6 to 128 characters. Spaces and the following special characters are not allowed: <>&?*'". + // +kubebuilder:validation:Optional + Psk *string `json:"psk,omitempty" tf:"psk,omitempty"` + + // The region in which to obtain the V2 Networking client. + // A Networking client is needed to create an IPSec site connection. If omitted, the + // region argument of the provider is used. Changing this creates a new site connection. + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The key/value pairs to associate with the connection. + // +kubebuilder:validation:Optional + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // The owner of the connection. Required if admin wants to + // create a connection for another project. Changing this creates a new connection. + // +kubebuilder:validation:Optional + TenantID *string `json:"tenantId,omitempty" tf:"tenant_id,omitempty"` + + // Map of additional options. + // +kubebuilder:validation:Optional + ValueSpecs map[string]*string `json:"valueSpecs,omitempty" tf:"value_specs,omitempty"` + + // The ID of the VPN service. Changing this creates a new connection. + // +kubebuilder:validation:Optional + VpnserviceID *string `json:"vpnserviceId,omitempty" tf:"vpnservice_id,omitempty"` +} + +// SiteConnectionV2Spec defines the desired state of SiteConnectionV2 +type SiteConnectionV2Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider SiteConnectionV2Parameters `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 SiteConnectionV2InitParameters `json:"initProvider,omitempty"` +} + +// SiteConnectionV2Status defines the observed state of SiteConnectionV2. +type SiteConnectionV2Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider SiteConnectionV2Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// SiteConnectionV2 is the Schema for the SiteConnectionV2s API. Manages a VPNAAS Site Connection resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type SiteConnectionV2 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.ikepolicyId) || (has(self.initProvider) && has(self.initProvider.ikepolicyId))",message="spec.forProvider.ikepolicyId is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.ipsecpolicyId) || (has(self.initProvider) && has(self.initProvider.ipsecpolicyId))",message="spec.forProvider.ipsecpolicyId is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.peerAddress) || (has(self.initProvider) && has(self.initProvider.peerAddress))",message="spec.forProvider.peerAddress is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.peerId) || (has(self.initProvider) && has(self.initProvider.peerId))",message="spec.forProvider.peerId is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.psk) || (has(self.initProvider) && has(self.initProvider.psk))",message="spec.forProvider.psk is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.vpnserviceId) || (has(self.initProvider) && has(self.initProvider.vpnserviceId))",message="spec.forProvider.vpnserviceId is a required parameter" + Spec SiteConnectionV2Spec `json:"spec"` + Status SiteConnectionV2Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// SiteConnectionV2List contains a list of SiteConnectionV2s +type SiteConnectionV2List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []SiteConnectionV2 `json:"items"` +} + +// Repository type metadata. +var ( + SiteConnectionV2_Kind = "SiteConnectionV2" + SiteConnectionV2_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: SiteConnectionV2_Kind}.String() + SiteConnectionV2_KindAPIVersion = SiteConnectionV2_Kind + "." + CRDGroupVersion.String() + SiteConnectionV2_GroupVersionKind = CRDGroupVersion.WithKind(SiteConnectionV2_Kind) +) + +func init() { + SchemeBuilder.Register(&SiteConnectionV2{}, &SiteConnectionV2List{}) +} diff --git a/apis/waf/v1alpha1/zz_dedicatedalarmmaskingrulev1_types.go b/apis/waf/v1alpha1/zz_dedicatedalarmmaskingrulev1_types.go new file mode 100755 index 0000000..1846ef0 --- /dev/null +++ b/apis/waf/v1alpha1/zz_dedicatedalarmmaskingrulev1_types.go @@ -0,0 +1,262 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 AdvancedSettingsInitParameters struct { + + // Subfield of the specified field type. The default value is all. + Contents []*string `json:"contents,omitempty" tf:"contents,omitempty"` + + // Field type. + // The following field types are supported: Params, Cookie, Header, Body, and Multipart. + // When you select Params, Cookie, or Header, you can set this parameter to all or configure subfields as required. + Index *string `json:"index,omitempty" tf:"index,omitempty"` +} + +type AdvancedSettingsObservation struct { + + // Subfield of the specified field type. The default value is all. + Contents []*string `json:"contents,omitempty" tf:"contents,omitempty"` + + // Field type. + // The following field types are supported: Params, Cookie, Header, Body, and Multipart. + // When you select Params, Cookie, or Header, you can set this parameter to all or configure subfields as required. + Index *string `json:"index,omitempty" tf:"index,omitempty"` +} + +type AdvancedSettingsParameters struct { + + // Subfield of the specified field type. The default value is all. + // +kubebuilder:validation:Optional + Contents []*string `json:"contents,omitempty" tf:"contents,omitempty"` + + // Field type. + // The following field types are supported: Params, Cookie, Header, Body, and Multipart. + // When you select Params, Cookie, or Header, you can set this parameter to all or configure subfields as required. + // +kubebuilder:validation:Optional + Index *string `json:"index,omitempty" tf:"index,omitempty"` +} + +type ConditionsInitParameters struct { + + // Field type. The value can be url, ip, params, cookie, or header. + Category *string `json:"category,omitempty" tf:"category,omitempty"` + + // Content. The array length is limited to 1. + // The content format varies depending on the field type. + Contents []*string `json:"contents,omitempty" tf:"contents,omitempty"` + + // Subfield. When category is set to params, cookie, or header, set this parameter based on site requirements. This parameter is mandatory. + Index *string `json:"index,omitempty" tf:"index,omitempty"` + + // The matching logic varies depending on the field type. + LogicOperation *string `json:"logicOperation,omitempty" tf:"logic_operation,omitempty"` +} + +type ConditionsObservation struct { + + // Field type. The value can be url, ip, params, cookie, or header. + Category *string `json:"category,omitempty" tf:"category,omitempty"` + + // Content. The array length is limited to 1. + // The content format varies depending on the field type. + Contents []*string `json:"contents,omitempty" tf:"contents,omitempty"` + + // Subfield. When category is set to params, cookie, or header, set this parameter based on site requirements. This parameter is mandatory. + Index *string `json:"index,omitempty" tf:"index,omitempty"` + + // The matching logic varies depending on the field type. + LogicOperation *string `json:"logicOperation,omitempty" tf:"logic_operation,omitempty"` +} + +type ConditionsParameters struct { + + // Field type. The value can be url, ip, params, cookie, or header. + // +kubebuilder:validation:Optional + Category *string `json:"category" tf:"category,omitempty"` + + // Content. The array length is limited to 1. + // The content format varies depending on the field type. + // +kubebuilder:validation:Optional + Contents []*string `json:"contents,omitempty" tf:"contents,omitempty"` + + // Subfield. When category is set to params, cookie, or header, set this parameter based on site requirements. This parameter is mandatory. + // +kubebuilder:validation:Optional + Index *string `json:"index,omitempty" tf:"index,omitempty"` + + // The matching logic varies depending on the field type. + // +kubebuilder:validation:Optional + LogicOperation *string `json:"logicOperation" tf:"logic_operation,omitempty"` +} + +type DedicatedAlarmMaskingRuleV1InitParameters struct { + + // To ignore attacks of a specific field, specify the field in the Advanced settings area. + // After you add the rule, WAF will stop blocking attacks of the specified field. + // This parameter is not included if all modules are bypassed. Changing this creates a new rule. + // The advanced_settings block supports: + AdvancedSettings []AdvancedSettingsInitParameters `json:"advancedSettings,omitempty" tf:"advanced_settings,omitempty"` + + // Condition list. Changing this creates a new rule. + // The conditions block supports: + Conditions []ConditionsInitParameters `json:"conditions,omitempty" tf:"conditions,omitempty"` + + // Rule description. Changing this creates a new rule. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Domain names to be protected. Changing this creates a new rule. + Domains []*string `json:"domains,omitempty" tf:"domains,omitempty"` + + // The WAF policy ID. Changing this creates a new rule. + PolicyID *string `json:"policyId,omitempty" tf:"policy_id,omitempty"` + + // Items to be masked. Changing this creates a new rule. + // You can provide multiple items and separate them with semicolons (;). + Rule *string `json:"rule,omitempty" tf:"rule,omitempty"` +} + +type DedicatedAlarmMaskingRuleV1Observation struct { + + // To ignore attacks of a specific field, specify the field in the Advanced settings area. + // After you add the rule, WAF will stop blocking attacks of the specified field. + // This parameter is not included if all modules are bypassed. Changing this creates a new rule. + // The advanced_settings block supports: + AdvancedSettings []AdvancedSettingsObservation `json:"advancedSettings,omitempty" tf:"advanced_settings,omitempty"` + + // Condition list. Changing this creates a new rule. + // The conditions block supports: + Conditions []ConditionsObservation `json:"conditions,omitempty" tf:"conditions,omitempty"` + + // Timestamp the rule is created. + CreatedAt *float64 `json:"createdAt,omitempty" tf:"created_at,omitempty"` + + // Rule description. Changing this creates a new rule. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Domain names to be protected. Changing this creates a new rule. + Domains []*string `json:"domains,omitempty" tf:"domains,omitempty"` + + // ID of the rule. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The WAF policy ID. Changing this creates a new rule. + PolicyID *string `json:"policyId,omitempty" tf:"policy_id,omitempty"` + + // Items to be masked. Changing this creates a new rule. + // You can provide multiple items and separate them with semicolons (;). + Rule *string `json:"rule,omitempty" tf:"rule,omitempty"` + + // Rule status. The value can be: + Status *float64 `json:"status,omitempty" tf:"status,omitempty"` +} + +type DedicatedAlarmMaskingRuleV1Parameters struct { + + // To ignore attacks of a specific field, specify the field in the Advanced settings area. + // After you add the rule, WAF will stop blocking attacks of the specified field. + // This parameter is not included if all modules are bypassed. Changing this creates a new rule. + // The advanced_settings block supports: + // +kubebuilder:validation:Optional + AdvancedSettings []AdvancedSettingsParameters `json:"advancedSettings,omitempty" tf:"advanced_settings,omitempty"` + + // Condition list. Changing this creates a new rule. + // The conditions block supports: + // +kubebuilder:validation:Optional + Conditions []ConditionsParameters `json:"conditions,omitempty" tf:"conditions,omitempty"` + + // Rule description. Changing this creates a new rule. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Domain names to be protected. Changing this creates a new rule. + // +kubebuilder:validation:Optional + Domains []*string `json:"domains,omitempty" tf:"domains,omitempty"` + + // The WAF policy ID. Changing this creates a new rule. + // +kubebuilder:validation:Optional + PolicyID *string `json:"policyId,omitempty" tf:"policy_id,omitempty"` + + // Items to be masked. Changing this creates a new rule. + // You can provide multiple items and separate them with semicolons (;). + // +kubebuilder:validation:Optional + Rule *string `json:"rule,omitempty" tf:"rule,omitempty"` +} + +// DedicatedAlarmMaskingRuleV1Spec defines the desired state of DedicatedAlarmMaskingRuleV1 +type DedicatedAlarmMaskingRuleV1Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider DedicatedAlarmMaskingRuleV1Parameters `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 DedicatedAlarmMaskingRuleV1InitParameters `json:"initProvider,omitempty"` +} + +// DedicatedAlarmMaskingRuleV1Status defines the observed state of DedicatedAlarmMaskingRuleV1. +type DedicatedAlarmMaskingRuleV1Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider DedicatedAlarmMaskingRuleV1Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// DedicatedAlarmMaskingRuleV1 is the Schema for the DedicatedAlarmMaskingRuleV1s API. Manages a WAF Dedicated False Alarm Masking Rule resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type DedicatedAlarmMaskingRuleV1 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.conditions) || (has(self.initProvider) && has(self.initProvider.conditions))",message="spec.forProvider.conditions is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.domains) || (has(self.initProvider) && has(self.initProvider.domains))",message="spec.forProvider.domains 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.rule) || (has(self.initProvider) && has(self.initProvider.rule))",message="spec.forProvider.rule is a required parameter" + Spec DedicatedAlarmMaskingRuleV1Spec `json:"spec"` + Status DedicatedAlarmMaskingRuleV1Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// DedicatedAlarmMaskingRuleV1List contains a list of DedicatedAlarmMaskingRuleV1s +type DedicatedAlarmMaskingRuleV1List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []DedicatedAlarmMaskingRuleV1 `json:"items"` +} + +// Repository type metadata. +var ( + DedicatedAlarmMaskingRuleV1_Kind = "DedicatedAlarmMaskingRuleV1" + DedicatedAlarmMaskingRuleV1_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: DedicatedAlarmMaskingRuleV1_Kind}.String() + DedicatedAlarmMaskingRuleV1_KindAPIVersion = DedicatedAlarmMaskingRuleV1_Kind + "." + CRDGroupVersion.String() + DedicatedAlarmMaskingRuleV1_GroupVersionKind = CRDGroupVersion.WithKind(DedicatedAlarmMaskingRuleV1_Kind) +) + +func init() { + SchemeBuilder.Register(&DedicatedAlarmMaskingRuleV1{}, &DedicatedAlarmMaskingRuleV1List{}) +} diff --git a/apis/waf/v1alpha1/zz_dedicatedanticrawlerrulev1_types.go b/apis/waf/v1alpha1/zz_dedicatedanticrawlerrulev1_types.go new file mode 100755 index 0000000..9a02289 --- /dev/null +++ b/apis/waf/v1alpha1/zz_dedicatedanticrawlerrulev1_types.go @@ -0,0 +1,157 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 DedicatedAntiCrawlerRuleV1InitParameters struct { + + // Rule matching logic. + // Values are: + Logic *float64 `json:"logic,omitempty" tf:"logic,omitempty"` + + // Rule name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The WAF policy ID. Changing this creates a new rule. + PolicyID *string `json:"policyId,omitempty" tf:"policy_id,omitempty"` + + // JavaScript anti-crawler rule type. + // Values are: + ProtectionMode *string `json:"protectionMode,omitempty" tf:"protection_mode,omitempty"` + + // URL to which the rule applies. + URL *string `json:"url,omitempty" tf:"url,omitempty"` +} + +type DedicatedAntiCrawlerRuleV1Observation struct { + + // Timestamp the rule is created. + CreatedAt *float64 `json:"createdAt,omitempty" tf:"created_at,omitempty"` + + // ID of the rule. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Rule matching logic. + // Values are: + Logic *float64 `json:"logic,omitempty" tf:"logic,omitempty"` + + // Rule name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The WAF policy ID. Changing this creates a new rule. + PolicyID *string `json:"policyId,omitempty" tf:"policy_id,omitempty"` + + // JavaScript anti-crawler rule type. + // Values are: + ProtectionMode *string `json:"protectionMode,omitempty" tf:"protection_mode,omitempty"` + + // Rule status. The value can be 0 or 1. + Status *float64 `json:"status,omitempty" tf:"status,omitempty"` + + // URL to which the rule applies. + URL *string `json:"url,omitempty" tf:"url,omitempty"` +} + +type DedicatedAntiCrawlerRuleV1Parameters struct { + + // Rule matching logic. + // Values are: + // +kubebuilder:validation:Optional + Logic *float64 `json:"logic,omitempty" tf:"logic,omitempty"` + + // Rule name. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The WAF policy ID. Changing this creates a new rule. + // +kubebuilder:validation:Optional + PolicyID *string `json:"policyId,omitempty" tf:"policy_id,omitempty"` + + // JavaScript anti-crawler rule type. + // Values are: + // +kubebuilder:validation:Optional + ProtectionMode *string `json:"protectionMode,omitempty" tf:"protection_mode,omitempty"` + + // URL to which the rule applies. + // +kubebuilder:validation:Optional + URL *string `json:"url,omitempty" tf:"url,omitempty"` +} + +// DedicatedAntiCrawlerRuleV1Spec defines the desired state of DedicatedAntiCrawlerRuleV1 +type DedicatedAntiCrawlerRuleV1Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider DedicatedAntiCrawlerRuleV1Parameters `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 DedicatedAntiCrawlerRuleV1InitParameters `json:"initProvider,omitempty"` +} + +// DedicatedAntiCrawlerRuleV1Status defines the observed state of DedicatedAntiCrawlerRuleV1. +type DedicatedAntiCrawlerRuleV1Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider DedicatedAntiCrawlerRuleV1Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// DedicatedAntiCrawlerRuleV1 is the Schema for the DedicatedAntiCrawlerRuleV1s API. Manages a WAF Dedicated Anti Crawler Rule resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type DedicatedAntiCrawlerRuleV1 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.logic) || (has(self.initProvider) && has(self.initProvider.logic))",message="spec.forProvider.logic is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name 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.protectionMode) || (has(self.initProvider) && has(self.initProvider.protectionMode))",message="spec.forProvider.protectionMode is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.url) || (has(self.initProvider) && has(self.initProvider.url))",message="spec.forProvider.url is a required parameter" + Spec DedicatedAntiCrawlerRuleV1Spec `json:"spec"` + Status DedicatedAntiCrawlerRuleV1Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// DedicatedAntiCrawlerRuleV1List contains a list of DedicatedAntiCrawlerRuleV1s +type DedicatedAntiCrawlerRuleV1List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []DedicatedAntiCrawlerRuleV1 `json:"items"` +} + +// Repository type metadata. +var ( + DedicatedAntiCrawlerRuleV1_Kind = "DedicatedAntiCrawlerRuleV1" + DedicatedAntiCrawlerRuleV1_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: DedicatedAntiCrawlerRuleV1_Kind}.String() + DedicatedAntiCrawlerRuleV1_KindAPIVersion = DedicatedAntiCrawlerRuleV1_Kind + "." + CRDGroupVersion.String() + DedicatedAntiCrawlerRuleV1_GroupVersionKind = CRDGroupVersion.WithKind(DedicatedAntiCrawlerRuleV1_Kind) +) + +func init() { + SchemeBuilder.Register(&DedicatedAntiCrawlerRuleV1{}, &DedicatedAntiCrawlerRuleV1List{}) +} diff --git a/apis/waf/v1alpha1/zz_dedicatedantileakagerulev1_types.go b/apis/waf/v1alpha1/zz_dedicatedantileakagerulev1_types.go new file mode 100755 index 0000000..132f34c --- /dev/null +++ b/apis/waf/v1alpha1/zz_dedicatedantileakagerulev1_types.go @@ -0,0 +1,156 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 DedicatedAntiLeakageRuleV1InitParameters struct { + + // Sensitive information type in the information leakage prevention rule. + // Values: + Category *string `json:"category,omitempty" tf:"category,omitempty"` + + // Content corresponding to the sensitive information type. + // Multiple options can be set. + Contents []*string `json:"contents,omitempty" tf:"contents,omitempty"` + + // Rule description. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The WAF policy ID. Changing this creates a new rule. + PolicyID *string `json:"policyId,omitempty" tf:"policy_id,omitempty"` + + // URL to which the rule applies, for example, /admin + URL *string `json:"url,omitempty" tf:"url,omitempty"` +} + +type DedicatedAntiLeakageRuleV1Observation struct { + + // Sensitive information type in the information leakage prevention rule. + // Values: + Category *string `json:"category,omitempty" tf:"category,omitempty"` + + // Content corresponding to the sensitive information type. + // Multiple options can be set. + Contents []*string `json:"contents,omitempty" tf:"contents,omitempty"` + + // Timestamp the rule is created. + CreatedAt *float64 `json:"createdAt,omitempty" tf:"created_at,omitempty"` + + // Rule description. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // ID of the rule. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The WAF policy ID. Changing this creates a new rule. + PolicyID *string `json:"policyId,omitempty" tf:"policy_id,omitempty"` + + // Rule status. The value can be: + Status *float64 `json:"status,omitempty" tf:"status,omitempty"` + + // URL to which the rule applies, for example, /admin + URL *string `json:"url,omitempty" tf:"url,omitempty"` +} + +type DedicatedAntiLeakageRuleV1Parameters struct { + + // Sensitive information type in the information leakage prevention rule. + // Values: + // +kubebuilder:validation:Optional + Category *string `json:"category,omitempty" tf:"category,omitempty"` + + // Content corresponding to the sensitive information type. + // Multiple options can be set. + // +kubebuilder:validation:Optional + Contents []*string `json:"contents,omitempty" tf:"contents,omitempty"` + + // Rule description. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The WAF policy ID. Changing this creates a new rule. + // +kubebuilder:validation:Optional + PolicyID *string `json:"policyId,omitempty" tf:"policy_id,omitempty"` + + // URL to which the rule applies, for example, /admin + // +kubebuilder:validation:Optional + URL *string `json:"url,omitempty" tf:"url,omitempty"` +} + +// DedicatedAntiLeakageRuleV1Spec defines the desired state of DedicatedAntiLeakageRuleV1 +type DedicatedAntiLeakageRuleV1Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider DedicatedAntiLeakageRuleV1Parameters `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 DedicatedAntiLeakageRuleV1InitParameters `json:"initProvider,omitempty"` +} + +// DedicatedAntiLeakageRuleV1Status defines the observed state of DedicatedAntiLeakageRuleV1. +type DedicatedAntiLeakageRuleV1Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider DedicatedAntiLeakageRuleV1Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// DedicatedAntiLeakageRuleV1 is the Schema for the DedicatedAntiLeakageRuleV1s API. Manages a WAF Dedicated Anti Leakage Rule resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type DedicatedAntiLeakageRuleV1 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.category) || (has(self.initProvider) && has(self.initProvider.category))",message="spec.forProvider.category is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.contents) || (has(self.initProvider) && has(self.initProvider.contents))",message="spec.forProvider.contents 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.url) || (has(self.initProvider) && has(self.initProvider.url))",message="spec.forProvider.url is a required parameter" + Spec DedicatedAntiLeakageRuleV1Spec `json:"spec"` + Status DedicatedAntiLeakageRuleV1Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// DedicatedAntiLeakageRuleV1List contains a list of DedicatedAntiLeakageRuleV1s +type DedicatedAntiLeakageRuleV1List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []DedicatedAntiLeakageRuleV1 `json:"items"` +} + +// Repository type metadata. +var ( + DedicatedAntiLeakageRuleV1_Kind = "DedicatedAntiLeakageRuleV1" + DedicatedAntiLeakageRuleV1_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: DedicatedAntiLeakageRuleV1_Kind}.String() + DedicatedAntiLeakageRuleV1_KindAPIVersion = DedicatedAntiLeakageRuleV1_Kind + "." + CRDGroupVersion.String() + DedicatedAntiLeakageRuleV1_GroupVersionKind = CRDGroupVersion.WithKind(DedicatedAntiLeakageRuleV1_Kind) +) + +func init() { + SchemeBuilder.Register(&DedicatedAntiLeakageRuleV1{}, &DedicatedAntiLeakageRuleV1List{}) +} diff --git a/apis/waf/v1alpha1/zz_dedicatedblacklistrulev1_types.go b/apis/waf/v1alpha1/zz_dedicatedblacklistrulev1_types.go new file mode 100755 index 0000000..73421f8 --- /dev/null +++ b/apis/waf/v1alpha1/zz_dedicatedblacklistrulev1_types.go @@ -0,0 +1,168 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 DedicatedBlacklistRuleV1InitParameters struct { + + // Protective action. Changing this creates a new rule. + // The value can be: + Action *float64 `json:"action,omitempty" tf:"action,omitempty"` + + // Rule description. Changing this creates a new rule. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // ID of a known attack source rule. Changing this creates a new rule. + // This parameter can be configured only when action is set to 0. + FollowedActionID *string `json:"followedActionId,omitempty" tf:"followed_action_id,omitempty"` + + // IP addresses or an IP address range to be added to the blacklist or whitelist. Changing this creates a new rule. + // For example, 192.x.x.3 or 10.x.x.0/24 + IPAddress *string `json:"ipAddress,omitempty" tf:"ip_address,omitempty"` + + // Rule name. Changing this creates a new rule. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The WAF policy ID. Changing this creates a new rule. Changing this creates a new rule. + PolicyID *string `json:"policyId,omitempty" tf:"policy_id,omitempty"` +} + +type DedicatedBlacklistRuleV1Observation struct { + + // Protective action. Changing this creates a new rule. + // The value can be: + Action *float64 `json:"action,omitempty" tf:"action,omitempty"` + + // Timestamp the rule is created. + CreatedAt *float64 `json:"createdAt,omitempty" tf:"created_at,omitempty"` + + // Rule description. Changing this creates a new rule. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // ID of a known attack source rule. Changing this creates a new rule. + // This parameter can be configured only when action is set to 0. + FollowedActionID *string `json:"followedActionId,omitempty" tf:"followed_action_id,omitempty"` + + // ID of the rule. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // IP addresses or an IP address range to be added to the blacklist or whitelist. Changing this creates a new rule. + // For example, 192.x.x.3 or 10.x.x.0/24 + IPAddress *string `json:"ipAddress,omitempty" tf:"ip_address,omitempty"` + + // Rule name. Changing this creates a new rule. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The WAF policy ID. Changing this creates a new rule. Changing this creates a new rule. + PolicyID *string `json:"policyId,omitempty" tf:"policy_id,omitempty"` + + // Rule status. The value can be: + Status *float64 `json:"status,omitempty" tf:"status,omitempty"` +} + +type DedicatedBlacklistRuleV1Parameters struct { + + // Protective action. Changing this creates a new rule. + // The value can be: + // +kubebuilder:validation:Optional + Action *float64 `json:"action,omitempty" tf:"action,omitempty"` + + // Rule description. Changing this creates a new rule. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // ID of a known attack source rule. Changing this creates a new rule. + // This parameter can be configured only when action is set to 0. + // +kubebuilder:validation:Optional + FollowedActionID *string `json:"followedActionId,omitempty" tf:"followed_action_id,omitempty"` + + // IP addresses or an IP address range to be added to the blacklist or whitelist. Changing this creates a new rule. + // For example, 192.x.x.3 or 10.x.x.0/24 + // +kubebuilder:validation:Optional + IPAddress *string `json:"ipAddress,omitempty" tf:"ip_address,omitempty"` + + // Rule name. Changing this creates a new rule. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The WAF policy ID. Changing this creates a new rule. Changing this creates a new rule. + // +kubebuilder:validation:Optional + PolicyID *string `json:"policyId,omitempty" tf:"policy_id,omitempty"` +} + +// DedicatedBlacklistRuleV1Spec defines the desired state of DedicatedBlacklistRuleV1 +type DedicatedBlacklistRuleV1Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider DedicatedBlacklistRuleV1Parameters `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 DedicatedBlacklistRuleV1InitParameters `json:"initProvider,omitempty"` +} + +// DedicatedBlacklistRuleV1Status defines the observed state of DedicatedBlacklistRuleV1. +type DedicatedBlacklistRuleV1Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider DedicatedBlacklistRuleV1Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// DedicatedBlacklistRuleV1 is the Schema for the DedicatedBlacklistRuleV1s API. Manages a WAF Dedicated Blacklist Rule resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type DedicatedBlacklistRuleV1 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.ipAddress) || (has(self.initProvider) && has(self.initProvider.ipAddress))",message="spec.forProvider.ipAddress 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" + Spec DedicatedBlacklistRuleV1Spec `json:"spec"` + Status DedicatedBlacklistRuleV1Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// DedicatedBlacklistRuleV1List contains a list of DedicatedBlacklistRuleV1s +type DedicatedBlacklistRuleV1List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []DedicatedBlacklistRuleV1 `json:"items"` +} + +// Repository type metadata. +var ( + DedicatedBlacklistRuleV1_Kind = "DedicatedBlacklistRuleV1" + DedicatedBlacklistRuleV1_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: DedicatedBlacklistRuleV1_Kind}.String() + DedicatedBlacklistRuleV1_KindAPIVersion = DedicatedBlacklistRuleV1_Kind + "." + CRDGroupVersion.String() + DedicatedBlacklistRuleV1_GroupVersionKind = CRDGroupVersion.WithKind(DedicatedBlacklistRuleV1_Kind) +) + +func init() { + SchemeBuilder.Register(&DedicatedBlacklistRuleV1{}, &DedicatedBlacklistRuleV1List{}) +} diff --git a/apis/waf/v1alpha1/zz_dedicatedccrulev1_types.go b/apis/waf/v1alpha1/zz_dedicatedccrulev1_types.go new file mode 100755 index 0000000..f11b491 --- /dev/null +++ b/apis/waf/v1alpha1/zz_dedicatedccrulev1_types.go @@ -0,0 +1,353 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 ActionInitParameters struct { + + // Action type. Changing this creates a new rule. + Category *string `json:"category,omitempty" tf:"category,omitempty"` + + // Protection page content. Changing this creates a new rule. + Content *string `json:"content,omitempty" tf:"content,omitempty"` + + // User identifier. The value is fixed at referer. Changing this creates a new rule. + ContentType *string `json:"contentType,omitempty" tf:"content_type,omitempty"` +} + +type ActionObservation struct { + + // Action type. Changing this creates a new rule. + Category *string `json:"category,omitempty" tf:"category,omitempty"` + + // Protection page content. Changing this creates a new rule. + Content *string `json:"content,omitempty" tf:"content,omitempty"` + + // User identifier. The value is fixed at referer. Changing this creates a new rule. + ContentType *string `json:"contentType,omitempty" tf:"content_type,omitempty"` +} + +type ActionParameters struct { + + // Action type. Changing this creates a new rule. + // +kubebuilder:validation:Optional + Category *string `json:"category" tf:"category,omitempty"` + + // Protection page content. Changing this creates a new rule. + // +kubebuilder:validation:Optional + Content *string `json:"content,omitempty" tf:"content,omitempty"` + + // User identifier. The value is fixed at referer. Changing this creates a new rule. + // +kubebuilder:validation:Optional + ContentType *string `json:"contentType,omitempty" tf:"content_type,omitempty"` +} + +type DedicatedCcRuleV1ConditionsInitParameters struct { + + // Field type. The value can be url, ip, params, cookie, or header. + Category *string `json:"category,omitempty" tf:"category,omitempty"` + + // Content of the conditions. This parameter is mandatory when the suffix of logic_operation is not any or all. Changing this creates a new rule. + Contents []*string `json:"contents,omitempty" tf:"contents,omitempty"` + + // Subfield. When category is set to params, cookie, or header, set this parameter based on site requirements. This parameter is mandatory. Changing this creates a new rule. + Index *string `json:"index,omitempty" tf:"index,omitempty"` + + // Logic for matching the condition. + LogicOperation *string `json:"logicOperation,omitempty" tf:"logic_operation,omitempty"` + + // Reference table ID. This parameter is mandatory when the suffix of logic_operation is any or all. The reference table type must be the same as the category type. Changing this creates a new rule. + ValueListID *string `json:"valueListId,omitempty" tf:"value_list_id,omitempty"` +} + +type DedicatedCcRuleV1ConditionsObservation struct { + + // Field type. The value can be url, ip, params, cookie, or header. + Category *string `json:"category,omitempty" tf:"category,omitempty"` + + // Content of the conditions. This parameter is mandatory when the suffix of logic_operation is not any or all. Changing this creates a new rule. + Contents []*string `json:"contents,omitempty" tf:"contents,omitempty"` + + // Subfield. When category is set to params, cookie, or header, set this parameter based on site requirements. This parameter is mandatory. Changing this creates a new rule. + Index *string `json:"index,omitempty" tf:"index,omitempty"` + + // Logic for matching the condition. + LogicOperation *string `json:"logicOperation,omitempty" tf:"logic_operation,omitempty"` + + // Reference table ID. This parameter is mandatory when the suffix of logic_operation is any or all. The reference table type must be the same as the category type. Changing this creates a new rule. + ValueListID *string `json:"valueListId,omitempty" tf:"value_list_id,omitempty"` +} + +type DedicatedCcRuleV1ConditionsParameters struct { + + // Field type. The value can be url, ip, params, cookie, or header. + // +kubebuilder:validation:Optional + Category *string `json:"category" tf:"category,omitempty"` + + // Content of the conditions. This parameter is mandatory when the suffix of logic_operation is not any or all. Changing this creates a new rule. + // +kubebuilder:validation:Optional + Contents []*string `json:"contents,omitempty" tf:"contents,omitempty"` + + // Subfield. When category is set to params, cookie, or header, set this parameter based on site requirements. This parameter is mandatory. Changing this creates a new rule. + // +kubebuilder:validation:Optional + Index *string `json:"index,omitempty" tf:"index,omitempty"` + + // Logic for matching the condition. + // +kubebuilder:validation:Optional + LogicOperation *string `json:"logicOperation" tf:"logic_operation,omitempty"` + + // Reference table ID. This parameter is mandatory when the suffix of logic_operation is any or all. The reference table type must be the same as the category type. Changing this creates a new rule. + // +kubebuilder:validation:Optional + ValueListID *string `json:"valueListId,omitempty" tf:"value_list_id,omitempty"` +} + +type DedicatedCcRuleV1InitParameters struct { + + // Protection action to take if the number of requests reaches the upper limit. Changing this creates a new rule. + // The conditions block supports: + Action []ActionInitParameters `json:"action,omitempty" tf:"action,omitempty"` + + // Rate limit conditions of the CC protection rule. Changing this creates a new rule. + // The conditions block supports: + Conditions []DedicatedCcRuleV1ConditionsInitParameters `json:"conditions,omitempty" tf:"conditions,omitempty"` + + // Rule description. Changing this creates a new rule. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Rate limit frequency based on the number of requests. The value ranges from 1 to 2,147,483,647. Changing this creates a new rule. + LimitNum *float64 `json:"limitNum,omitempty" tf:"limit_num,omitempty"` + + // Rate limit period, in seconds. The value ranges from 1 to 3,600. Changing this creates a new rule. + LimitPeriod *float64 `json:"limitPeriod,omitempty" tf:"limit_period,omitempty"` + + // Block duration, in seconds. The value ranges from 0 to 65,535. Specifies the period within which access is blocked. An error page is displayed in this period. Changing this creates a new rule. + LockTime *float64 `json:"lockTime,omitempty" tf:"lock_time,omitempty"` + + // Protection mode of the CC attack protection rule. Changing this creates a new rule. Valid Options are: + Mode *float64 `json:"mode,omitempty" tf:"mode,omitempty"` + + // The WAF policy ID. Changing this creates a new rule. + PolicyID *string `json:"policyId,omitempty" tf:"policy_id,omitempty"` + + // Specifies the category. The value is referer. Changing this creates a new rule. + TagCategory *string `json:"tagCategory,omitempty" tf:"tag_category,omitempty"` + + // Specifies the category content. Changing this creates a new rule. + TagContents []*string `json:"tagContents,omitempty" tf:"tag_contents,omitempty"` + + // User identifier. Changing this creates a new rule. + // If tag_type is set to cookie, this parameter indicates cookie name. + // If tag_type is set to header, this parameter indicates header name. + TagIndex *string `json:"tagIndex,omitempty" tf:"tag_index,omitempty"` + + // Rate limit mode. Changing this creates a new rule. Valid Options are: + TagType *string `json:"tagType,omitempty" tf:"tag_type,omitempty"` + + // Path to be protected in the CC attack protection rule. Changing this creates a new rule. + URL *string `json:"url,omitempty" tf:"url,omitempty"` + + // Allowable frequency based on the number of requests. The value ranges from 0 to 2,147,483,647. This parameter is required only when the protection action type is dynamic_block. Changing this creates a new rule. + UnlockNum *float64 `json:"unlockNum,omitempty" tf:"unlock_num,omitempty"` +} + +type DedicatedCcRuleV1Observation struct { + + // Protection action to take if the number of requests reaches the upper limit. Changing this creates a new rule. + // The conditions block supports: + Action []ActionObservation `json:"action,omitempty" tf:"action,omitempty"` + + // Rate limit conditions of the CC protection rule. Changing this creates a new rule. + // The conditions block supports: + Conditions []DedicatedCcRuleV1ConditionsObservation `json:"conditions,omitempty" tf:"conditions,omitempty"` + + // Timestamp the rule is created. + CreatedAt *float64 `json:"createdAt,omitempty" tf:"created_at,omitempty"` + + // Rule description. Changing this creates a new rule. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // ID of the rule. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Rate limit frequency based on the number of requests. The value ranges from 1 to 2,147,483,647. Changing this creates a new rule. + LimitNum *float64 `json:"limitNum,omitempty" tf:"limit_num,omitempty"` + + // Rate limit period, in seconds. The value ranges from 1 to 3,600. Changing this creates a new rule. + LimitPeriod *float64 `json:"limitPeriod,omitempty" tf:"limit_period,omitempty"` + + // Block duration, in seconds. The value ranges from 0 to 65,535. Specifies the period within which access is blocked. An error page is displayed in this period. Changing this creates a new rule. + LockTime *float64 `json:"lockTime,omitempty" tf:"lock_time,omitempty"` + + // Protection mode of the CC attack protection rule. Changing this creates a new rule. Valid Options are: + Mode *float64 `json:"mode,omitempty" tf:"mode,omitempty"` + + // The WAF policy ID. Changing this creates a new rule. + PolicyID *string `json:"policyId,omitempty" tf:"policy_id,omitempty"` + + // Rule status. + Status *float64 `json:"status,omitempty" tf:"status,omitempty"` + + // Specifies the category. The value is referer. Changing this creates a new rule. + TagCategory *string `json:"tagCategory,omitempty" tf:"tag_category,omitempty"` + + // Specifies the category content. Changing this creates a new rule. + TagContents []*string `json:"tagContents,omitempty" tf:"tag_contents,omitempty"` + + // User identifier. Changing this creates a new rule. + // If tag_type is set to cookie, this parameter indicates cookie name. + // If tag_type is set to header, this parameter indicates header name. + TagIndex *string `json:"tagIndex,omitempty" tf:"tag_index,omitempty"` + + // Rate limit mode. Changing this creates a new rule. Valid Options are: + TagType *string `json:"tagType,omitempty" tf:"tag_type,omitempty"` + + // Path to be protected in the CC attack protection rule. Changing this creates a new rule. + URL *string `json:"url,omitempty" tf:"url,omitempty"` + + // Allowable frequency based on the number of requests. The value ranges from 0 to 2,147,483,647. This parameter is required only when the protection action type is dynamic_block. Changing this creates a new rule. + UnlockNum *float64 `json:"unlockNum,omitempty" tf:"unlock_num,omitempty"` +} + +type DedicatedCcRuleV1Parameters struct { + + // Protection action to take if the number of requests reaches the upper limit. Changing this creates a new rule. + // The conditions block supports: + // +kubebuilder:validation:Optional + Action []ActionParameters `json:"action,omitempty" tf:"action,omitempty"` + + // Rate limit conditions of the CC protection rule. Changing this creates a new rule. + // The conditions block supports: + // +kubebuilder:validation:Optional + Conditions []DedicatedCcRuleV1ConditionsParameters `json:"conditions,omitempty" tf:"conditions,omitempty"` + + // Rule description. Changing this creates a new rule. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Rate limit frequency based on the number of requests. The value ranges from 1 to 2,147,483,647. Changing this creates a new rule. + // +kubebuilder:validation:Optional + LimitNum *float64 `json:"limitNum,omitempty" tf:"limit_num,omitempty"` + + // Rate limit period, in seconds. The value ranges from 1 to 3,600. Changing this creates a new rule. + // +kubebuilder:validation:Optional + LimitPeriod *float64 `json:"limitPeriod,omitempty" tf:"limit_period,omitempty"` + + // Block duration, in seconds. The value ranges from 0 to 65,535. Specifies the period within which access is blocked. An error page is displayed in this period. Changing this creates a new rule. + // +kubebuilder:validation:Optional + LockTime *float64 `json:"lockTime,omitempty" tf:"lock_time,omitempty"` + + // Protection mode of the CC attack protection rule. Changing this creates a new rule. Valid Options are: + // +kubebuilder:validation:Optional + Mode *float64 `json:"mode,omitempty" tf:"mode,omitempty"` + + // The WAF policy ID. Changing this creates a new rule. + // +kubebuilder:validation:Optional + PolicyID *string `json:"policyId,omitempty" tf:"policy_id,omitempty"` + + // Specifies the category. The value is referer. Changing this creates a new rule. + // +kubebuilder:validation:Optional + TagCategory *string `json:"tagCategory,omitempty" tf:"tag_category,omitempty"` + + // Specifies the category content. Changing this creates a new rule. + // +kubebuilder:validation:Optional + TagContents []*string `json:"tagContents,omitempty" tf:"tag_contents,omitempty"` + + // User identifier. Changing this creates a new rule. + // If tag_type is set to cookie, this parameter indicates cookie name. + // If tag_type is set to header, this parameter indicates header name. + // +kubebuilder:validation:Optional + TagIndex *string `json:"tagIndex,omitempty" tf:"tag_index,omitempty"` + + // Rate limit mode. Changing this creates a new rule. Valid Options are: + // +kubebuilder:validation:Optional + TagType *string `json:"tagType,omitempty" tf:"tag_type,omitempty"` + + // Path to be protected in the CC attack protection rule. Changing this creates a new rule. + // +kubebuilder:validation:Optional + URL *string `json:"url,omitempty" tf:"url,omitempty"` + + // Allowable frequency based on the number of requests. The value ranges from 0 to 2,147,483,647. This parameter is required only when the protection action type is dynamic_block. Changing this creates a new rule. + // +kubebuilder:validation:Optional + UnlockNum *float64 `json:"unlockNum,omitempty" tf:"unlock_num,omitempty"` +} + +// DedicatedCcRuleV1Spec defines the desired state of DedicatedCcRuleV1 +type DedicatedCcRuleV1Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider DedicatedCcRuleV1Parameters `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 DedicatedCcRuleV1InitParameters `json:"initProvider,omitempty"` +} + +// DedicatedCcRuleV1Status defines the observed state of DedicatedCcRuleV1. +type DedicatedCcRuleV1Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider DedicatedCcRuleV1Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// DedicatedCcRuleV1 is the Schema for the DedicatedCcRuleV1s API. Manages a WAF Dedicated CC Rule resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type DedicatedCcRuleV1 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.limitNum) || (has(self.initProvider) && has(self.initProvider.limitNum))",message="spec.forProvider.limitNum is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.limitPeriod) || (has(self.initProvider) && has(self.initProvider.limitPeriod))",message="spec.forProvider.limitPeriod is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.mode) || (has(self.initProvider) && has(self.initProvider.mode))",message="spec.forProvider.mode 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.tagType) || (has(self.initProvider) && has(self.initProvider.tagType))",message="spec.forProvider.tagType is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.url) || (has(self.initProvider) && has(self.initProvider.url))",message="spec.forProvider.url is a required parameter" + Spec DedicatedCcRuleV1Spec `json:"spec"` + Status DedicatedCcRuleV1Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// DedicatedCcRuleV1List contains a list of DedicatedCcRuleV1s +type DedicatedCcRuleV1List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []DedicatedCcRuleV1 `json:"items"` +} + +// Repository type metadata. +var ( + DedicatedCcRuleV1_Kind = "DedicatedCcRuleV1" + DedicatedCcRuleV1_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: DedicatedCcRuleV1_Kind}.String() + DedicatedCcRuleV1_KindAPIVersion = DedicatedCcRuleV1_Kind + "." + CRDGroupVersion.String() + DedicatedCcRuleV1_GroupVersionKind = CRDGroupVersion.WithKind(DedicatedCcRuleV1_Kind) +) + +func init() { + SchemeBuilder.Register(&DedicatedCcRuleV1{}, &DedicatedCcRuleV1List{}) +} diff --git a/apis/waf/v1alpha1/zz_dedicatedcertificatev1_types.go b/apis/waf/v1alpha1/zz_dedicatedcertificatev1_types.go new file mode 100755 index 0000000..1b5d333 --- /dev/null +++ b/apis/waf/v1alpha1/zz_dedicatedcertificatev1_types.go @@ -0,0 +1,139 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 DedicatedCertificateV1InitParameters struct { + + // The certificate content. Changing this creates a new certificate. + Content *string `json:"content,omitempty" tf:"content,omitempty"` + + // The private key. Changing this creates a new certificate. + Key *string `json:"key,omitempty" tf:"key,omitempty"` + + // The certificate name. The value can contain a maximum of 64 characters. + // Only digits, letters, underscores(_), and hyphens(-) are allowed. Changing this creates a new certificate. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` +} + +type DedicatedCertificateV1Observation struct { + + // The certificate content. Changing this creates a new certificate. + Content *string `json:"content,omitempty" tf:"content,omitempty"` + + // Date when the certificate is uploaded. + CreatedAt *string `json:"createdAt,omitempty" tf:"created_at,omitempty"` + + // Date when the certificate expires. + Expires *string `json:"expires,omitempty" tf:"expires,omitempty"` + + // ID of the certificate. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The private key. Changing this creates a new certificate. + Key *string `json:"key,omitempty" tf:"key,omitempty"` + + // The certificate name. The value can contain a maximum of 64 characters. + // Only digits, letters, underscores(_), and hyphens(-) are allowed. Changing this creates a new certificate. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` +} + +type DedicatedCertificateV1Parameters struct { + + // The certificate content. Changing this creates a new certificate. + // +kubebuilder:validation:Optional + Content *string `json:"content,omitempty" tf:"content,omitempty"` + + // The private key. Changing this creates a new certificate. + // +kubebuilder:validation:Optional + Key *string `json:"key,omitempty" tf:"key,omitempty"` + + // The certificate name. The value can contain a maximum of 64 characters. + // Only digits, letters, underscores(_), and hyphens(-) are allowed. Changing this creates a new certificate. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` +} + +// DedicatedCertificateV1Spec defines the desired state of DedicatedCertificateV1 +type DedicatedCertificateV1Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider DedicatedCertificateV1Parameters `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 DedicatedCertificateV1InitParameters `json:"initProvider,omitempty"` +} + +// DedicatedCertificateV1Status defines the observed state of DedicatedCertificateV1. +type DedicatedCertificateV1Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider DedicatedCertificateV1Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// DedicatedCertificateV1 is the Schema for the DedicatedCertificateV1s API. Manages a WAF Dedicated Certificate resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type DedicatedCertificateV1 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.content) || (has(self.initProvider) && has(self.initProvider.content))",message="spec.forProvider.content is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.key) || (has(self.initProvider) && has(self.initProvider.key))",message="spec.forProvider.key is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + Spec DedicatedCertificateV1Spec `json:"spec"` + Status DedicatedCertificateV1Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// DedicatedCertificateV1List contains a list of DedicatedCertificateV1s +type DedicatedCertificateV1List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []DedicatedCertificateV1 `json:"items"` +} + +// Repository type metadata. +var ( + DedicatedCertificateV1_Kind = "DedicatedCertificateV1" + DedicatedCertificateV1_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: DedicatedCertificateV1_Kind}.String() + DedicatedCertificateV1_KindAPIVersion = DedicatedCertificateV1_Kind + "." + CRDGroupVersion.String() + DedicatedCertificateV1_GroupVersionKind = CRDGroupVersion.WithKind(DedicatedCertificateV1_Kind) +) + +func init() { + SchemeBuilder.Register(&DedicatedCertificateV1{}, &DedicatedCertificateV1List{}) +} diff --git a/apis/waf/v1alpha1/zz_dedicateddatamaskingrulev1_types.go b/apis/waf/v1alpha1/zz_dedicateddatamaskingrulev1_types.go new file mode 100755 index 0000000..de3a240 --- /dev/null +++ b/apis/waf/v1alpha1/zz_dedicateddatamaskingrulev1_types.go @@ -0,0 +1,153 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 DedicatedDataMaskingRuleV1InitParameters struct { + + // Masked field. + // Values: + Category *string `json:"category,omitempty" tf:"category,omitempty"` + + // Rule description. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Name of the masked field. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The WAF policy ID. Changing this creates a new rule. + PolicyID *string `json:"policyId,omitempty" tf:"policy_id,omitempty"` + + // URL protected by the data masking rule. The value must be in the standard URL format, for example, /admin. + URL *string `json:"url,omitempty" tf:"url,omitempty"` +} + +type DedicatedDataMaskingRuleV1Observation struct { + + // Masked field. + // Values: + Category *string `json:"category,omitempty" tf:"category,omitempty"` + + // Timestamp the rule is created. + CreatedAt *float64 `json:"createdAt,omitempty" tf:"created_at,omitempty"` + + // Rule description. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // ID of the rule. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Name of the masked field. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The WAF policy ID. Changing this creates a new rule. + PolicyID *string `json:"policyId,omitempty" tf:"policy_id,omitempty"` + + // Rule status. The value can be 0 or 1. + Status *float64 `json:"status,omitempty" tf:"status,omitempty"` + + // URL protected by the data masking rule. The value must be in the standard URL format, for example, /admin. + URL *string `json:"url,omitempty" tf:"url,omitempty"` +} + +type DedicatedDataMaskingRuleV1Parameters struct { + + // Masked field. + // Values: + // +kubebuilder:validation:Optional + Category *string `json:"category,omitempty" tf:"category,omitempty"` + + // Rule description. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Name of the masked field. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The WAF policy ID. Changing this creates a new rule. + // +kubebuilder:validation:Optional + PolicyID *string `json:"policyId,omitempty" tf:"policy_id,omitempty"` + + // URL protected by the data masking rule. The value must be in the standard URL format, for example, /admin. + // +kubebuilder:validation:Optional + URL *string `json:"url,omitempty" tf:"url,omitempty"` +} + +// DedicatedDataMaskingRuleV1Spec defines the desired state of DedicatedDataMaskingRuleV1 +type DedicatedDataMaskingRuleV1Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider DedicatedDataMaskingRuleV1Parameters `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 DedicatedDataMaskingRuleV1InitParameters `json:"initProvider,omitempty"` +} + +// DedicatedDataMaskingRuleV1Status defines the observed state of DedicatedDataMaskingRuleV1. +type DedicatedDataMaskingRuleV1Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider DedicatedDataMaskingRuleV1Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// DedicatedDataMaskingRuleV1 is the Schema for the DedicatedDataMaskingRuleV1s API. Manages a WAF Dedicated Data Masking Rule resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type DedicatedDataMaskingRuleV1 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.category) || (has(self.initProvider) && has(self.initProvider.category))",message="spec.forProvider.category is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name 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.url) || (has(self.initProvider) && has(self.initProvider.url))",message="spec.forProvider.url is a required parameter" + Spec DedicatedDataMaskingRuleV1Spec `json:"spec"` + Status DedicatedDataMaskingRuleV1Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// DedicatedDataMaskingRuleV1List contains a list of DedicatedDataMaskingRuleV1s +type DedicatedDataMaskingRuleV1List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []DedicatedDataMaskingRuleV1 `json:"items"` +} + +// Repository type metadata. +var ( + DedicatedDataMaskingRuleV1_Kind = "DedicatedDataMaskingRuleV1" + DedicatedDataMaskingRuleV1_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: DedicatedDataMaskingRuleV1_Kind}.String() + DedicatedDataMaskingRuleV1_KindAPIVersion = DedicatedDataMaskingRuleV1_Kind + "." + CRDGroupVersion.String() + DedicatedDataMaskingRuleV1_GroupVersionKind = CRDGroupVersion.WithKind(DedicatedDataMaskingRuleV1_Kind) +) + +func init() { + SchemeBuilder.Register(&DedicatedDataMaskingRuleV1{}, &DedicatedDataMaskingRuleV1List{}) +} diff --git a/apis/waf/v1alpha1/zz_dedicateddomainv1_types.go b/apis/waf/v1alpha1/zz_dedicateddomainv1_types.go new file mode 100755 index 0000000..8039797 --- /dev/null +++ b/apis/waf/v1alpha1/zz_dedicateddomainv1_types.go @@ -0,0 +1,399 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 DedicatedDomainV1InitParameters struct { + + // Specifies the certificate ID. This parameter is mandatory when client_protocol + // is set to HTTPS. + CertificateID *string `json:"certificateId,omitempty" tf:"certificate_id,omitempty"` + + // Specifies the cipher suite of domain. + // Values are: + Cipher *string `json:"cipher,omitempty" tf:"cipher,omitempty"` + + // Specifies the protected domain name or IP address (port allowed). For example, + // www.example.com or *.example.com or www.example.com:89. Changing this creates a new domain. + Domain *string `json:"domain,omitempty" tf:"domain,omitempty"` + + // Specifies whether to retain the policy when deleting a domain name. + // Defaults to true. + KeepPolicy *bool `json:"keepPolicy,omitempty" tf:"keep_policy,omitempty"` + + // Specifies the status of the PCI 3DS compliance certification check. + // Values are: true and false. This parameter must be used together with tls and cipher. + Pci3Ds *bool `json:"pci3Ds,omitempty" tf:"pci_3ds,omitempty"` + + // Specifies the status of the PCI DSS compliance certification check. + // Values are: true and false. This parameter must be used together with tls and cipher. + PciDss *bool `json:"pciDss,omitempty" tf:"pci_dss,omitempty"` + + // Specifies the policy ID associated with the domain. If not specified, a new policy + // will be created automatically. + PolicyID *string `json:"policyId,omitempty" tf:"policy_id,omitempty"` + + // The protection status of domain, 0: suspended, 1: enabled. + // Default value is 1. + ProtectStatus *float64 `json:"protectStatus,omitempty" tf:"protect_status,omitempty"` + + // Specifies whether a proxy is configured. Default value is false. + Proxy *bool `json:"proxy,omitempty" tf:"proxy,omitempty"` + + // The region in which to create the dedicated mode domain resource. If omitted, + // the provider-level region will be used. Changing this setting will push a new domain. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The server configuration list of the domain. A maximum of 80 can be configured. + // The server block supports: + Server []ServerInitParameters `json:"server,omitempty" tf:"server,omitempty"` + + // Specifies the minimum required TLS version. + // Values are: + TLS *string `json:"tls,omitempty" tf:"tls,omitempty"` + + // Specifies the timeout configuration. + // The timeout_config structure is documented below. + TimeoutConfig []TimeoutConfigInitParameters `json:"timeoutConfig,omitempty" tf:"timeout_config,omitempty"` +} + +type DedicatedDomainV1Observation struct { + + // Whether a domain name is connected to WAF. Valid values are: + AccessStatus *float64 `json:"accessStatus,omitempty" tf:"access_status,omitempty"` + + // The alarm page of domain. Valid values are: + AlarmPage map[string]*string `json:"alarmPage,omitempty" tf:"alarm_page,omitempty"` + + // Specifies the certificate ID. This parameter is mandatory when client_protocol + // is set to HTTPS. + CertificateID *string `json:"certificateId,omitempty" tf:"certificate_id,omitempty"` + + // The name of the certificate used by the domain name. + CertificateName *string `json:"certificateName,omitempty" tf:"certificate_name,omitempty"` + + // Specifies the cipher suite of domain. + // Values are: + Cipher *string `json:"cipher,omitempty" tf:"cipher,omitempty"` + + // The compliance certifications of the domain, values are: + ComplianceCertification map[string]*bool `json:"complianceCertification,omitempty" tf:"compliance_certification,omitempty"` + + // Timestamp when the dedicated WAF domain was created. + CreatedAt *float64 `json:"createdAt,omitempty" tf:"created_at,omitempty"` + + // Specifies the protected domain name or IP address (port allowed). For example, + // www.example.com or *.example.com or www.example.com:89. Changing this creates a new domain. + Domain *string `json:"domain,omitempty" tf:"domain,omitempty"` + + // ID of the domain. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Specifies whether to retain the policy when deleting a domain name. + // Defaults to true. + KeepPolicy *bool `json:"keepPolicy,omitempty" tf:"keep_policy,omitempty"` + + // Specifies the status of the PCI 3DS compliance certification check. + // Values are: true and false. This parameter must be used together with tls and cipher. + Pci3Ds *bool `json:"pci3Ds,omitempty" tf:"pci_3ds,omitempty"` + + // Specifies the status of the PCI DSS compliance certification check. + // Values are: true and false. This parameter must be used together with tls and cipher. + PciDss *bool `json:"pciDss,omitempty" tf:"pci_dss,omitempty"` + + // Specifies the policy ID associated with the domain. If not specified, a new policy + // will be created automatically. + PolicyID *string `json:"policyId,omitempty" tf:"policy_id,omitempty"` + + // The protection status of domain, 0: suspended, 1: enabled. + // Default value is 1. + ProtectStatus *float64 `json:"protectStatus,omitempty" tf:"protect_status,omitempty"` + + // The protocol type of the client. The options are HTTP and HTTPS. + Protocol *string `json:"protocol,omitempty" tf:"protocol,omitempty"` + + // Specifies whether a proxy is configured. Default value is false. + Proxy *bool `json:"proxy,omitempty" tf:"proxy,omitempty"` + + // The region in which to create the dedicated mode domain resource. If omitted, + // the provider-level region will be used. Changing this setting will push a new domain. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The server configuration list of the domain. A maximum of 80 can be configured. + // The server block supports: + Server []ServerObservation `json:"server,omitempty" tf:"server,omitempty"` + + // Specifies the minimum required TLS version. + // Values are: + TLS *string `json:"tls,omitempty" tf:"tls,omitempty"` + + // Specifies the timeout configuration. + // The timeout_config structure is documented below. + TimeoutConfig []TimeoutConfigObservation `json:"timeoutConfig,omitempty" tf:"timeout_config,omitempty"` + + // The traffic identifier of domain. Valid values are: + TrafficIdentifier map[string]*string `json:"trafficIdentifier,omitempty" tf:"traffic_identifier,omitempty"` +} + +type DedicatedDomainV1Parameters struct { + + // Specifies the certificate ID. This parameter is mandatory when client_protocol + // is set to HTTPS. + // +kubebuilder:validation:Optional + CertificateID *string `json:"certificateId,omitempty" tf:"certificate_id,omitempty"` + + // Specifies the cipher suite of domain. + // Values are: + // +kubebuilder:validation:Optional + Cipher *string `json:"cipher,omitempty" tf:"cipher,omitempty"` + + // Specifies the protected domain name or IP address (port allowed). For example, + // www.example.com or *.example.com or www.example.com:89. Changing this creates a new domain. + // +kubebuilder:validation:Optional + Domain *string `json:"domain,omitempty" tf:"domain,omitempty"` + + // Specifies whether to retain the policy when deleting a domain name. + // Defaults to true. + // +kubebuilder:validation:Optional + KeepPolicy *bool `json:"keepPolicy,omitempty" tf:"keep_policy,omitempty"` + + // Specifies the status of the PCI 3DS compliance certification check. + // Values are: true and false. This parameter must be used together with tls and cipher. + // +kubebuilder:validation:Optional + Pci3Ds *bool `json:"pci3Ds,omitempty" tf:"pci_3ds,omitempty"` + + // Specifies the status of the PCI DSS compliance certification check. + // Values are: true and false. This parameter must be used together with tls and cipher. + // +kubebuilder:validation:Optional + PciDss *bool `json:"pciDss,omitempty" tf:"pci_dss,omitempty"` + + // Specifies the policy ID associated with the domain. If not specified, a new policy + // will be created automatically. + // +kubebuilder:validation:Optional + PolicyID *string `json:"policyId,omitempty" tf:"policy_id,omitempty"` + + // The protection status of domain, 0: suspended, 1: enabled. + // Default value is 1. + // +kubebuilder:validation:Optional + ProtectStatus *float64 `json:"protectStatus,omitempty" tf:"protect_status,omitempty"` + + // Specifies whether a proxy is configured. Default value is false. + // +kubebuilder:validation:Optional + Proxy *bool `json:"proxy,omitempty" tf:"proxy,omitempty"` + + // The region in which to create the dedicated mode domain resource. If omitted, + // the provider-level region will be used. Changing this setting will push a new domain. + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The server configuration list of the domain. A maximum of 80 can be configured. + // The server block supports: + // +kubebuilder:validation:Optional + Server []ServerParameters `json:"server,omitempty" tf:"server,omitempty"` + + // Specifies the minimum required TLS version. + // Values are: + // +kubebuilder:validation:Optional + TLS *string `json:"tls,omitempty" tf:"tls,omitempty"` + + // Specifies the timeout configuration. + // The timeout_config structure is documented below. + // +kubebuilder:validation:Optional + TimeoutConfig []TimeoutConfigParameters `json:"timeoutConfig,omitempty" tf:"timeout_config,omitempty"` +} + +type ServerInitParameters struct { + + // IP address or domain name of the web server that the client accesses. For + // example, 192.168.1.1 or www.example.com. Changing this creates a new server. + Address *string `json:"address,omitempty" tf:"address,omitempty"` + + // Protocol type of the client. Values are HTTP and HTTPS. + // Changing this creates a new server. + ClientProtocol *string `json:"clientProtocol,omitempty" tf:"client_protocol,omitempty"` + + // Port number used by the web server. The value ranges from 0 to 65535. Changing this + // creates a new server. + Port *float64 `json:"port,omitempty" tf:"port,omitempty"` + + // Protocol used by WAF to forward client requests to the server. + // Values areHTTP and HTTPS. Changing this creates a new server. + ServerProtocol *string `json:"serverProtocol,omitempty" tf:"server_protocol,omitempty"` + + // Server network type, IPv4 or IPv6. Valid values are: ipv4 and ipv6. Changing + // this creates a new server. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // The id of the vpc used by the server. Changing this creates a server. + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +} + +type ServerObservation struct { + + // IP address or domain name of the web server that the client accesses. For + // example, 192.168.1.1 or www.example.com. Changing this creates a new server. + Address *string `json:"address,omitempty" tf:"address,omitempty"` + + // Protocol type of the client. Values are HTTP and HTTPS. + // Changing this creates a new server. + ClientProtocol *string `json:"clientProtocol,omitempty" tf:"client_protocol,omitempty"` + + // Port number used by the web server. The value ranges from 0 to 65535. Changing this + // creates a new server. + Port *float64 `json:"port,omitempty" tf:"port,omitempty"` + + // Protocol used by WAF to forward client requests to the server. + // Values areHTTP and HTTPS. Changing this creates a new server. + ServerProtocol *string `json:"serverProtocol,omitempty" tf:"server_protocol,omitempty"` + + // Server network type, IPv4 or IPv6. Valid values are: ipv4 and ipv6. Changing + // this creates a new server. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // The id of the vpc used by the server. Changing this creates a server. + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +} + +type ServerParameters struct { + + // IP address or domain name of the web server that the client accesses. For + // example, 192.168.1.1 or www.example.com. Changing this creates a new server. + // +kubebuilder:validation:Optional + Address *string `json:"address" tf:"address,omitempty"` + + // Protocol type of the client. Values are HTTP and HTTPS. + // Changing this creates a new server. + // +kubebuilder:validation:Optional + ClientProtocol *string `json:"clientProtocol" tf:"client_protocol,omitempty"` + + // Port number used by the web server. The value ranges from 0 to 65535. Changing this + // creates a new server. + // +kubebuilder:validation:Optional + Port *float64 `json:"port" tf:"port,omitempty"` + + // Protocol used by WAF to forward client requests to the server. + // Values areHTTP and HTTPS. Changing this creates a new server. + // +kubebuilder:validation:Optional + ServerProtocol *string `json:"serverProtocol" tf:"server_protocol,omitempty"` + + // Server network type, IPv4 or IPv6. Valid values are: ipv4 and ipv6. Changing + // this creates a new server. + // +kubebuilder:validation:Optional + Type *string `json:"type" tf:"type,omitempty"` + + // The id of the vpc used by the server. Changing this creates a server. + // +kubebuilder:validation:Optional + VPCID *string `json:"vpcId" tf:"vpc_id,omitempty"` +} + +type TimeoutConfigInitParameters struct { + + // Specifies the timeout in seconds for WAF to connect to the origin server. + ConnectTimeout *float64 `json:"connectTimeout,omitempty" tf:"connect_timeout,omitempty"` + + // Specifies the timeout in seconds for WAF to receive responses from the origin server. + ReadTimeout *float64 `json:"readTimeout,omitempty" tf:"read_timeout,omitempty"` + + SendTimeout *float64 `json:"sendTimeout,omitempty" tf:"send_timeout,omitempty"` +} + +type TimeoutConfigObservation struct { + + // Specifies the timeout in seconds for WAF to connect to the origin server. + ConnectTimeout *float64 `json:"connectTimeout,omitempty" tf:"connect_timeout,omitempty"` + + // Specifies the timeout in seconds for WAF to receive responses from the origin server. + ReadTimeout *float64 `json:"readTimeout,omitempty" tf:"read_timeout,omitempty"` + + SendTimeout *float64 `json:"sendTimeout,omitempty" tf:"send_timeout,omitempty"` +} + +type TimeoutConfigParameters struct { + + // Specifies the timeout in seconds for WAF to connect to the origin server. + // +kubebuilder:validation:Optional + ConnectTimeout *float64 `json:"connectTimeout,omitempty" tf:"connect_timeout,omitempty"` + + // Specifies the timeout in seconds for WAF to receive responses from the origin server. + // +kubebuilder:validation:Optional + ReadTimeout *float64 `json:"readTimeout,omitempty" tf:"read_timeout,omitempty"` + + // +kubebuilder:validation:Optional + SendTimeout *float64 `json:"sendTimeout,omitempty" tf:"send_timeout,omitempty"` +} + +// DedicatedDomainV1Spec defines the desired state of DedicatedDomainV1 +type DedicatedDomainV1Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider DedicatedDomainV1Parameters `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 DedicatedDomainV1InitParameters `json:"initProvider,omitempty"` +} + +// DedicatedDomainV1Status defines the observed state of DedicatedDomainV1. +type DedicatedDomainV1Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider DedicatedDomainV1Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// DedicatedDomainV1 is the Schema for the DedicatedDomainV1s API. Manages a WAF Dedicated Domain resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type DedicatedDomainV1 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.domain) || (has(self.initProvider) && has(self.initProvider.domain))",message="spec.forProvider.domain is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.server) || (has(self.initProvider) && has(self.initProvider.server))",message="spec.forProvider.server is a required parameter" + Spec DedicatedDomainV1Spec `json:"spec"` + Status DedicatedDomainV1Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// DedicatedDomainV1List contains a list of DedicatedDomainV1s +type DedicatedDomainV1List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []DedicatedDomainV1 `json:"items"` +} + +// Repository type metadata. +var ( + DedicatedDomainV1_Kind = "DedicatedDomainV1" + DedicatedDomainV1_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: DedicatedDomainV1_Kind}.String() + DedicatedDomainV1_KindAPIVersion = DedicatedDomainV1_Kind + "." + CRDGroupVersion.String() + DedicatedDomainV1_GroupVersionKind = CRDGroupVersion.WithKind(DedicatedDomainV1_Kind) +) + +func init() { + SchemeBuilder.Register(&DedicatedDomainV1{}, &DedicatedDomainV1List{}) +} diff --git a/apis/waf/v1alpha1/zz_dedicatedgeoiprulev1_types.go b/apis/waf/v1alpha1/zz_dedicatedgeoiprulev1_types.go new file mode 100755 index 0000000..fed68aa --- /dev/null +++ b/apis/waf/v1alpha1/zz_dedicatedgeoiprulev1_types.go @@ -0,0 +1,155 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 DedicatedGeoIPRuleV1InitParameters struct { + + // Protective action. + // The value can be: + Action *float64 `json:"action,omitempty" tf:"action,omitempty"` + + // Rule description + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Rule name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The WAF policy ID. Changing this creates a new rule. + PolicyID *string `json:"policyId,omitempty" tf:"policy_id,omitempty"` + + // Applicable regions. The value can be the region code. For more geographical location codes, see docs "Appendix - Geographic Location Codes." + // Values: + RegionCode *string `json:"regionCode,omitempty" tf:"region_code,omitempty"` +} + +type DedicatedGeoIPRuleV1Observation struct { + + // Protective action. + // The value can be: + Action *float64 `json:"action,omitempty" tf:"action,omitempty"` + + // Timestamp the rule is created. + CreatedAt *float64 `json:"createdAt,omitempty" tf:"created_at,omitempty"` + + // Rule description + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // ID of the rule. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Rule name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The WAF policy ID. Changing this creates a new rule. + PolicyID *string `json:"policyId,omitempty" tf:"policy_id,omitempty"` + + // Applicable regions. The value can be the region code. For more geographical location codes, see docs "Appendix - Geographic Location Codes." + // Values: + RegionCode *string `json:"regionCode,omitempty" tf:"region_code,omitempty"` + + // Rule status. The value can be: + Status *float64 `json:"status,omitempty" tf:"status,omitempty"` +} + +type DedicatedGeoIPRuleV1Parameters struct { + + // Protective action. + // The value can be: + // +kubebuilder:validation:Optional + Action *float64 `json:"action,omitempty" tf:"action,omitempty"` + + // Rule description + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Rule name. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The WAF policy ID. Changing this creates a new rule. + // +kubebuilder:validation:Optional + PolicyID *string `json:"policyId,omitempty" tf:"policy_id,omitempty"` + + // Applicable regions. The value can be the region code. For more geographical location codes, see docs "Appendix - Geographic Location Codes." + // Values: + // +kubebuilder:validation:Optional + RegionCode *string `json:"regionCode,omitempty" tf:"region_code,omitempty"` +} + +// DedicatedGeoIPRuleV1Spec defines the desired state of DedicatedGeoIPRuleV1 +type DedicatedGeoIPRuleV1Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider DedicatedGeoIPRuleV1Parameters `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 DedicatedGeoIPRuleV1InitParameters `json:"initProvider,omitempty"` +} + +// DedicatedGeoIPRuleV1Status defines the observed state of DedicatedGeoIPRuleV1. +type DedicatedGeoIPRuleV1Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider DedicatedGeoIPRuleV1Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// DedicatedGeoIPRuleV1 is the Schema for the DedicatedGeoIPRuleV1s API. Manages a WAF Dedicated Geolocation Access Control Rule resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type DedicatedGeoIPRuleV1 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.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.regionCode) || (has(self.initProvider) && has(self.initProvider.regionCode))",message="spec.forProvider.regionCode is a required parameter" + Spec DedicatedGeoIPRuleV1Spec `json:"spec"` + Status DedicatedGeoIPRuleV1Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// DedicatedGeoIPRuleV1List contains a list of DedicatedGeoIPRuleV1s +type DedicatedGeoIPRuleV1List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []DedicatedGeoIPRuleV1 `json:"items"` +} + +// Repository type metadata. +var ( + DedicatedGeoIPRuleV1_Kind = "DedicatedGeoIPRuleV1" + DedicatedGeoIPRuleV1_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: DedicatedGeoIPRuleV1_Kind}.String() + DedicatedGeoIPRuleV1_KindAPIVersion = DedicatedGeoIPRuleV1_Kind + "." + CRDGroupVersion.String() + DedicatedGeoIPRuleV1_GroupVersionKind = CRDGroupVersion.WithKind(DedicatedGeoIPRuleV1_Kind) +) + +func init() { + SchemeBuilder.Register(&DedicatedGeoIPRuleV1{}, &DedicatedGeoIPRuleV1List{}) +} diff --git a/apis/waf/v1alpha1/zz_dedicatedinstancev1_types.go b/apis/waf/v1alpha1/zz_dedicatedinstancev1_types.go new file mode 100755 index 0000000..b89ef89 --- /dev/null +++ b/apis/waf/v1alpha1/zz_dedicatedinstancev1_types.go @@ -0,0 +1,249 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 DedicatedInstanceV1InitParameters struct { + + // Dedicated engine CPU architecture. Default value is x86. + // Changing this will create a new instance. + Architecture *string `json:"architecture,omitempty" tf:"architecture,omitempty"` + + // AZ where the dedicated engine is to be created. Changing this will create a new instance. + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // ID of the specifications of the ECS hosting the dedicated engine. + // You can go to the management console and confirm supported specifications. Changing this will create a new instance. + Flavor *string `json:"flavor,omitempty" tf:"flavor,omitempty"` + + // The name of WAF dedicated instance. Duplicate names are allowed, we suggest to keeping the + // name unique. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Region where a dedicated engine is to be created. If omitted, the + // provider-level region will be used. Changing this setting will create a new instance. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Whether the dedicated WAF instance is network interface type. + // Default value is true. Changing this will create a new instance. + // -> Note: This type of instance is not available in eu-ch2 region, must set res_tenant value to false there. + ResTenant *bool `json:"resTenant,omitempty" tf:"res_tenant,omitempty"` + + // ID of the security group where the dedicated engine is located. + // Changing this will create a new instance. + SecurityGroup []*string `json:"securityGroup,omitempty" tf:"security_group,omitempty"` + + // Specifications of the dedicated engine version. Values are: + Specification *string `json:"specification,omitempty" tf:"specification,omitempty"` + + // ID of the VPC subnet where the dedicated engine is located. + // Subnet_id has the same value as network_id obtained by calling the OpenStack APIs. Changing this will create a + // new instance. + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // ID of the VPC where the dedicated engine is located. Changing this will create a new + // instance. + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +} + +type DedicatedInstanceV1Observation struct { + + // The access status of the instance. + AccessStatus *float64 `json:"accessStatus,omitempty" tf:"access_status,omitempty"` + + // Dedicated engine CPU architecture. Default value is x86. + // Changing this will create a new instance. + Architecture *string `json:"architecture,omitempty" tf:"architecture,omitempty"` + + // AZ where the dedicated engine is to be created. Changing this will create a new instance. + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // Billing status of dedicated WAF engine. The value can be 0, 1, or 2. + BillingStatus *float64 `json:"billingStatus,omitempty" tf:"billing_status,omitempty"` + + // Timestamp when the dedicated WAF engine was created. + CreatedAt *float64 `json:"createdAt,omitempty" tf:"created_at,omitempty"` + + // ID of the specifications of the ECS hosting the dedicated engine. + // You can go to the management console and confirm supported specifications. Changing this will create a new instance. + Flavor *string `json:"flavor,omitempty" tf:"flavor,omitempty"` + + // The id of the instance. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The name of WAF dedicated instance. Duplicate names are allowed, we suggest to keeping the + // name unique. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Region where a dedicated engine is to be created. If omitted, the + // provider-level region will be used. Changing this setting will create a new instance. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Whether the dedicated WAF instance is network interface type. + // Default value is true. Changing this will create a new instance. + // -> Note: This type of instance is not available in eu-ch2 region, must set res_tenant value to false there. + ResTenant *bool `json:"resTenant,omitempty" tf:"res_tenant,omitempty"` + + // ID of the security group where the dedicated engine is located. + // Changing this will create a new instance. + SecurityGroup []*string `json:"securityGroup,omitempty" tf:"security_group,omitempty"` + + // The id of the instance server. + ServerID *string `json:"serverId,omitempty" tf:"server_id,omitempty"` + + // The ip of the instance service. + ServiceIP *string `json:"serviceIp,omitempty" tf:"service_ip,omitempty"` + + // Specifications of the dedicated engine version. Values are: + Specification *string `json:"specification,omitempty" tf:"specification,omitempty"` + + // Running status of the dedicated engine. + // The value can be: + Status *float64 `json:"status,omitempty" tf:"status,omitempty"` + + // ID of the VPC subnet where the dedicated engine is located. + // Subnet_id has the same value as network_id obtained by calling the OpenStack APIs. Changing this will create a + // new instance. + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // The instance is to support upgrades. false: Cannot be upgraded, true: Can be upgraded. + Upgradable *bool `json:"upgradable,omitempty" tf:"upgradable,omitempty"` + + // ID of the VPC where the dedicated engine is located. Changing this will create a new + // instance. + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +} + +type DedicatedInstanceV1Parameters struct { + + // Dedicated engine CPU architecture. Default value is x86. + // Changing this will create a new instance. + // +kubebuilder:validation:Optional + Architecture *string `json:"architecture,omitempty" tf:"architecture,omitempty"` + + // AZ where the dedicated engine is to be created. Changing this will create a new instance. + // +kubebuilder:validation:Optional + AvailabilityZone *string `json:"availabilityZone,omitempty" tf:"availability_zone,omitempty"` + + // ID of the specifications of the ECS hosting the dedicated engine. + // You can go to the management console and confirm supported specifications. Changing this will create a new instance. + // +kubebuilder:validation:Optional + Flavor *string `json:"flavor,omitempty" tf:"flavor,omitempty"` + + // The name of WAF dedicated instance. Duplicate names are allowed, we suggest to keeping the + // name unique. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Region where a dedicated engine is to be created. If omitted, the + // provider-level region will be used. Changing this setting will create a new instance. + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // Whether the dedicated WAF instance is network interface type. + // Default value is true. Changing this will create a new instance. + // -> Note: This type of instance is not available in eu-ch2 region, must set res_tenant value to false there. + // +kubebuilder:validation:Optional + ResTenant *bool `json:"resTenant,omitempty" tf:"res_tenant,omitempty"` + + // ID of the security group where the dedicated engine is located. + // Changing this will create a new instance. + // +kubebuilder:validation:Optional + SecurityGroup []*string `json:"securityGroup,omitempty" tf:"security_group,omitempty"` + + // Specifications of the dedicated engine version. Values are: + // +kubebuilder:validation:Optional + Specification *string `json:"specification,omitempty" tf:"specification,omitempty"` + + // ID of the VPC subnet where the dedicated engine is located. + // Subnet_id has the same value as network_id obtained by calling the OpenStack APIs. Changing this will create a + // new instance. + // +kubebuilder:validation:Optional + SubnetID *string `json:"subnetId,omitempty" tf:"subnet_id,omitempty"` + + // ID of the VPC where the dedicated engine is located. Changing this will create a new + // instance. + // +kubebuilder:validation:Optional + VPCID *string `json:"vpcId,omitempty" tf:"vpc_id,omitempty"` +} + +// DedicatedInstanceV1Spec defines the desired state of DedicatedInstanceV1 +type DedicatedInstanceV1Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider DedicatedInstanceV1Parameters `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 DedicatedInstanceV1InitParameters `json:"initProvider,omitempty"` +} + +// DedicatedInstanceV1Status defines the observed state of DedicatedInstanceV1. +type DedicatedInstanceV1Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider DedicatedInstanceV1Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// DedicatedInstanceV1 is the Schema for the DedicatedInstanceV1s API. Manages a WAF Dedicated Instance resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type DedicatedInstanceV1 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.availabilityZone) || (has(self.initProvider) && has(self.initProvider.availabilityZone))",message="spec.forProvider.availabilityZone is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.flavor) || (has(self.initProvider) && has(self.initProvider.flavor))",message="spec.forProvider.flavor is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.securityGroup) || (has(self.initProvider) && has(self.initProvider.securityGroup))",message="spec.forProvider.securityGroup is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.specification) || (has(self.initProvider) && has(self.initProvider.specification))",message="spec.forProvider.specification 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" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.vpcId) || (has(self.initProvider) && has(self.initProvider.vpcId))",message="spec.forProvider.vpcId is a required parameter" + Spec DedicatedInstanceV1Spec `json:"spec"` + Status DedicatedInstanceV1Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// DedicatedInstanceV1List contains a list of DedicatedInstanceV1s +type DedicatedInstanceV1List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []DedicatedInstanceV1 `json:"items"` +} + +// Repository type metadata. +var ( + DedicatedInstanceV1_Kind = "DedicatedInstanceV1" + DedicatedInstanceV1_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: DedicatedInstanceV1_Kind}.String() + DedicatedInstanceV1_KindAPIVersion = DedicatedInstanceV1_Kind + "." + CRDGroupVersion.String() + DedicatedInstanceV1_GroupVersionKind = CRDGroupVersion.WithKind(DedicatedInstanceV1_Kind) +) + +func init() { + SchemeBuilder.Register(&DedicatedInstanceV1{}, &DedicatedInstanceV1List{}) +} diff --git a/apis/waf/v1alpha1/zz_dedicatedknownattacksourcerulev1_types.go b/apis/waf/v1alpha1/zz_dedicatedknownattacksourcerulev1_types.go new file mode 100755 index 0000000..1ad6dbb --- /dev/null +++ b/apis/waf/v1alpha1/zz_dedicatedknownattacksourcerulev1_types.go @@ -0,0 +1,145 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 DedicatedKnownAttackSourceRuleV1InitParameters struct { + + // Block duration, in seconds. + // If prefix long is selected for the rule type, the value for block_time ranges from 301 to 1800. + // If prefix short is selected for the rule type, the value for block_time ranges from 0 to 300. + BlockTime *float64 `json:"blockTime,omitempty" tf:"block_time,omitempty"` + + // Type of the know attack source rule. + // Enumeration values: + Category *string `json:"category,omitempty" tf:"category,omitempty"` + + // Rule description. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The WAF policy ID. Changing this creates a new rule. + PolicyID *string `json:"policyId,omitempty" tf:"policy_id,omitempty"` +} + +type DedicatedKnownAttackSourceRuleV1Observation struct { + + // Block duration, in seconds. + // If prefix long is selected for the rule type, the value for block_time ranges from 301 to 1800. + // If prefix short is selected for the rule type, the value for block_time ranges from 0 to 300. + BlockTime *float64 `json:"blockTime,omitempty" tf:"block_time,omitempty"` + + // Type of the know attack source rule. + // Enumeration values: + Category *string `json:"category,omitempty" tf:"category,omitempty"` + + // Timestamp the rule is created. + CreatedAt *float64 `json:"createdAt,omitempty" tf:"created_at,omitempty"` + + // Rule description. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // ID of the rule. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The WAF policy ID. Changing this creates a new rule. + PolicyID *string `json:"policyId,omitempty" tf:"policy_id,omitempty"` +} + +type DedicatedKnownAttackSourceRuleV1Parameters struct { + + // Block duration, in seconds. + // If prefix long is selected for the rule type, the value for block_time ranges from 301 to 1800. + // If prefix short is selected for the rule type, the value for block_time ranges from 0 to 300. + // +kubebuilder:validation:Optional + BlockTime *float64 `json:"blockTime,omitempty" tf:"block_time,omitempty"` + + // Type of the know attack source rule. + // Enumeration values: + // +kubebuilder:validation:Optional + Category *string `json:"category,omitempty" tf:"category,omitempty"` + + // Rule description. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The WAF policy ID. Changing this creates a new rule. + // +kubebuilder:validation:Optional + PolicyID *string `json:"policyId,omitempty" tf:"policy_id,omitempty"` +} + +// DedicatedKnownAttackSourceRuleV1Spec defines the desired state of DedicatedKnownAttackSourceRuleV1 +type DedicatedKnownAttackSourceRuleV1Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider DedicatedKnownAttackSourceRuleV1Parameters `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 DedicatedKnownAttackSourceRuleV1InitParameters `json:"initProvider,omitempty"` +} + +// DedicatedKnownAttackSourceRuleV1Status defines the observed state of DedicatedKnownAttackSourceRuleV1. +type DedicatedKnownAttackSourceRuleV1Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider DedicatedKnownAttackSourceRuleV1Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// DedicatedKnownAttackSourceRuleV1 is the Schema for the DedicatedKnownAttackSourceRuleV1s API. Manages a WAF Dedicated Known Attack Source Rule resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type DedicatedKnownAttackSourceRuleV1 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.blockTime) || (has(self.initProvider) && has(self.initProvider.blockTime))",message="spec.forProvider.blockTime is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.category) || (has(self.initProvider) && has(self.initProvider.category))",message="spec.forProvider.category 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" + Spec DedicatedKnownAttackSourceRuleV1Spec `json:"spec"` + Status DedicatedKnownAttackSourceRuleV1Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// DedicatedKnownAttackSourceRuleV1List contains a list of DedicatedKnownAttackSourceRuleV1s +type DedicatedKnownAttackSourceRuleV1List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []DedicatedKnownAttackSourceRuleV1 `json:"items"` +} + +// Repository type metadata. +var ( + DedicatedKnownAttackSourceRuleV1_Kind = "DedicatedKnownAttackSourceRuleV1" + DedicatedKnownAttackSourceRuleV1_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: DedicatedKnownAttackSourceRuleV1_Kind}.String() + DedicatedKnownAttackSourceRuleV1_KindAPIVersion = DedicatedKnownAttackSourceRuleV1_Kind + "." + CRDGroupVersion.String() + DedicatedKnownAttackSourceRuleV1_GroupVersionKind = CRDGroupVersion.WithKind(DedicatedKnownAttackSourceRuleV1_Kind) +) + +func init() { + SchemeBuilder.Register(&DedicatedKnownAttackSourceRuleV1{}, &DedicatedKnownAttackSourceRuleV1List{}) +} diff --git a/apis/waf/v1alpha1/zz_dedicatedpolicyv1_types.go b/apis/waf/v1alpha1/zz_dedicatedpolicyv1_types.go new file mode 100755 index 0000000..a3ffc01 --- /dev/null +++ b/apis/waf/v1alpha1/zz_dedicatedpolicyv1_types.go @@ -0,0 +1,356 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 DedicatedPolicyV1InitParameters struct { + + // Specifies the detection mode in Precise Protection. + FullDetection *bool `json:"fullDetection,omitempty" tf:"full_detection,omitempty"` + + // Specifies the protection level. + // Values are: + Level *float64 `json:"level,omitempty" tf:"level,omitempty"` + + // The policy name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the protection switches. + // The options block supports: + Options []OptionsInitParameters `json:"options,omitempty" tf:"options,omitempty"` + + // Specifies the protective action after a rule is matched. + // Values are: + ProtectionMode *string `json:"protectionMode,omitempty" tf:"protection_mode,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` +} + +type DedicatedPolicyV1Observation struct { + + // Time the policy is created. The value is a 13-digit timestamp, in ms. + CreatedAt *float64 `json:"createdAt,omitempty" tf:"created_at,omitempty"` + + // Specifies the domain IDs. + Domains []*string `json:"domains,omitempty" tf:"domains,omitempty"` + + // Specifies the detection mode in Precise Protection. + FullDetection *bool `json:"fullDetection,omitempty" tf:"full_detection,omitempty"` + + // ID of the policy. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Specifies the protection level. + // Values are: + Level *float64 `json:"level,omitempty" tf:"level,omitempty"` + + // The policy name. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the protection switches. + // The options block supports: + Options []OptionsObservation `json:"options,omitempty" tf:"options,omitempty"` + + // Specifies the protective action after a rule is matched. + // Values are: + ProtectionMode *string `json:"protectionMode,omitempty" tf:"protection_mode,omitempty"` + + Region *string `json:"region,omitempty" tf:"region,omitempty"` +} + +type DedicatedPolicyV1Parameters struct { + + // Specifies the detection mode in Precise Protection. + // +kubebuilder:validation:Optional + FullDetection *bool `json:"fullDetection,omitempty" tf:"full_detection,omitempty"` + + // Specifies the protection level. + // Values are: + // +kubebuilder:validation:Optional + Level *float64 `json:"level,omitempty" tf:"level,omitempty"` + + // The policy name. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // Specifies the protection switches. + // The options block supports: + // +kubebuilder:validation:Optional + Options []OptionsParameters `json:"options,omitempty" tf:"options,omitempty"` + + // Specifies the protective action after a rule is matched. + // Values are: + // +kubebuilder:validation:Optional + ProtectionMode *string `json:"protectionMode,omitempty" tf:"protection_mode,omitempty"` + + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` +} + +type OptionsInitParameters struct { + + // JavaScript anti-crawler function. + AntiCrawler *bool `json:"antiCrawler,omitempty" tf:"anti_crawler,omitempty"` + + // Whether the information leakage prevention is enabled. + AntiLeakage *bool `json:"antiLeakage,omitempty" tf:"anti_leakage,omitempty"` + + // Specifies whether Web Tamper Protection is enabled. + AntiTamper *bool `json:"antiTamper,omitempty" tf:"anti_tamper,omitempty"` + + // Specifies whether Blacklist and Whitelist is enabled. + Blacklist *bool `json:"blacklist,omitempty" tf:"blacklist,omitempty"` + + // Specifies whether CC Attack Protection is enabled. + Cc *bool `json:"cc,omitempty" tf:"cc,omitempty"` + + // Specifies whether General Check in Basic Web Protection is enabled. + Common *bool `json:"common,omitempty" tf:"common,omitempty"` + + // Specifies whether the master crawler detection switch in Basic Web Protection is enabled. + Crawler *bool `json:"crawler,omitempty" tf:"crawler,omitempty"` + + // Specifies whether the Search Engine switch in Basic Web Protection is enabled. + CrawlerEngine *bool `json:"crawlerEngine,omitempty" tf:"crawler_engine,omitempty"` + + // Specifies whether detection of other crawlers in Basic Web Protection is enabled. + CrawlerOther *bool `json:"crawlerOther,omitempty" tf:"crawler_other,omitempty"` + + // Specifies whether the Scanner switch in Basic Web Protection is enabled. + CrawlerScanner *bool `json:"crawlerScanner,omitempty" tf:"crawler_scanner,omitempty"` + + // Specifies whether the Script Tool switch in Basic Web Protection is enabled. + CrawlerScript *bool `json:"crawlerScript,omitempty" tf:"crawler_script,omitempty"` + + // Specifies whether Precise Protection is enabled. + Custom *bool `json:"custom,omitempty" tf:"custom,omitempty"` + + // Whether the Known Attack Source protection is enabled. + FollowedAction *bool `json:"followedAction,omitempty" tf:"followed_action,omitempty"` + + // Whether geolocation access control is enabled. + GeolocationAccessControl *bool `json:"geolocationAccessControl,omitempty" tf:"geolocation_access_control,omitempty"` + + // Whether false alarm masking is enabled. + Ignore *bool `json:"ignore,omitempty" tf:"ignore,omitempty"` + + // Specifies whether Data Masking is enabled. + Privacy *bool `json:"privacy,omitempty" tf:"privacy,omitempty"` + + // Specifies whether Basic Web Protection is enabled. + WebAttack *bool `json:"webAttack,omitempty" tf:"web_attack,omitempty"` + + // Specifies whether webshell detection in Basic Web Protection is enabled. + WebShell *bool `json:"webShell,omitempty" tf:"web_shell,omitempty"` +} + +type OptionsObservation struct { + + // JavaScript anti-crawler function. + AntiCrawler *bool `json:"antiCrawler,omitempty" tf:"anti_crawler,omitempty"` + + // Whether the information leakage prevention is enabled. + AntiLeakage *bool `json:"antiLeakage,omitempty" tf:"anti_leakage,omitempty"` + + // Specifies whether Web Tamper Protection is enabled. + AntiTamper *bool `json:"antiTamper,omitempty" tf:"anti_tamper,omitempty"` + + // Specifies whether Blacklist and Whitelist is enabled. + Blacklist *bool `json:"blacklist,omitempty" tf:"blacklist,omitempty"` + + BotEnable *bool `json:"botEnable,omitempty" tf:"bot_enable,omitempty"` + + // Specifies whether CC Attack Protection is enabled. + Cc *bool `json:"cc,omitempty" tf:"cc,omitempty"` + + // Specifies whether General Check in Basic Web Protection is enabled. + Common *bool `json:"common,omitempty" tf:"common,omitempty"` + + // Specifies whether the master crawler detection switch in Basic Web Protection is enabled. + Crawler *bool `json:"crawler,omitempty" tf:"crawler,omitempty"` + + // Specifies whether the Search Engine switch in Basic Web Protection is enabled. + CrawlerEngine *bool `json:"crawlerEngine,omitempty" tf:"crawler_engine,omitempty"` + + // Specifies whether detection of other crawlers in Basic Web Protection is enabled. + CrawlerOther *bool `json:"crawlerOther,omitempty" tf:"crawler_other,omitempty"` + + // Specifies whether the Scanner switch in Basic Web Protection is enabled. + CrawlerScanner *bool `json:"crawlerScanner,omitempty" tf:"crawler_scanner,omitempty"` + + // Specifies whether the Script Tool switch in Basic Web Protection is enabled. + CrawlerScript *bool `json:"crawlerScript,omitempty" tf:"crawler_script,omitempty"` + + // Specifies whether Precise Protection is enabled. + Custom *bool `json:"custom,omitempty" tf:"custom,omitempty"` + + // Whether the Known Attack Source protection is enabled. + FollowedAction *bool `json:"followedAction,omitempty" tf:"followed_action,omitempty"` + + // Whether geolocation access control is enabled. + GeolocationAccessControl *bool `json:"geolocationAccessControl,omitempty" tf:"geolocation_access_control,omitempty"` + + // Whether false alarm masking is enabled. + Ignore *bool `json:"ignore,omitempty" tf:"ignore,omitempty"` + + Precise *bool `json:"precise,omitempty" tf:"precise,omitempty"` + + // Specifies whether Data Masking is enabled. + Privacy *bool `json:"privacy,omitempty" tf:"privacy,omitempty"` + + // Specifies whether Basic Web Protection is enabled. + WebAttack *bool `json:"webAttack,omitempty" tf:"web_attack,omitempty"` + + // Specifies whether webshell detection in Basic Web Protection is enabled. + WebShell *bool `json:"webShell,omitempty" tf:"web_shell,omitempty"` +} + +type OptionsParameters struct { + + // JavaScript anti-crawler function. + // +kubebuilder:validation:Optional + AntiCrawler *bool `json:"antiCrawler,omitempty" tf:"anti_crawler,omitempty"` + + // Whether the information leakage prevention is enabled. + // +kubebuilder:validation:Optional + AntiLeakage *bool `json:"antiLeakage,omitempty" tf:"anti_leakage,omitempty"` + + // Specifies whether Web Tamper Protection is enabled. + // +kubebuilder:validation:Optional + AntiTamper *bool `json:"antiTamper,omitempty" tf:"anti_tamper,omitempty"` + + // Specifies whether Blacklist and Whitelist is enabled. + // +kubebuilder:validation:Optional + Blacklist *bool `json:"blacklist,omitempty" tf:"blacklist,omitempty"` + + // Specifies whether CC Attack Protection is enabled. + // +kubebuilder:validation:Optional + Cc *bool `json:"cc,omitempty" tf:"cc,omitempty"` + + // Specifies whether General Check in Basic Web Protection is enabled. + // +kubebuilder:validation:Optional + Common *bool `json:"common,omitempty" tf:"common,omitempty"` + + // Specifies whether the master crawler detection switch in Basic Web Protection is enabled. + // +kubebuilder:validation:Optional + Crawler *bool `json:"crawler,omitempty" tf:"crawler,omitempty"` + + // Specifies whether the Search Engine switch in Basic Web Protection is enabled. + // +kubebuilder:validation:Optional + CrawlerEngine *bool `json:"crawlerEngine,omitempty" tf:"crawler_engine,omitempty"` + + // Specifies whether detection of other crawlers in Basic Web Protection is enabled. + // +kubebuilder:validation:Optional + CrawlerOther *bool `json:"crawlerOther,omitempty" tf:"crawler_other,omitempty"` + + // Specifies whether the Scanner switch in Basic Web Protection is enabled. + // +kubebuilder:validation:Optional + CrawlerScanner *bool `json:"crawlerScanner,omitempty" tf:"crawler_scanner,omitempty"` + + // Specifies whether the Script Tool switch in Basic Web Protection is enabled. + // +kubebuilder:validation:Optional + CrawlerScript *bool `json:"crawlerScript,omitempty" tf:"crawler_script,omitempty"` + + // Specifies whether Precise Protection is enabled. + // +kubebuilder:validation:Optional + Custom *bool `json:"custom,omitempty" tf:"custom,omitempty"` + + // Whether the Known Attack Source protection is enabled. + // +kubebuilder:validation:Optional + FollowedAction *bool `json:"followedAction,omitempty" tf:"followed_action,omitempty"` + + // Whether geolocation access control is enabled. + // +kubebuilder:validation:Optional + GeolocationAccessControl *bool `json:"geolocationAccessControl,omitempty" tf:"geolocation_access_control,omitempty"` + + // Whether false alarm masking is enabled. + // +kubebuilder:validation:Optional + Ignore *bool `json:"ignore,omitempty" tf:"ignore,omitempty"` + + // Specifies whether Data Masking is enabled. + // +kubebuilder:validation:Optional + Privacy *bool `json:"privacy,omitempty" tf:"privacy,omitempty"` + + // Specifies whether Basic Web Protection is enabled. + // +kubebuilder:validation:Optional + WebAttack *bool `json:"webAttack,omitempty" tf:"web_attack,omitempty"` + + // Specifies whether webshell detection in Basic Web Protection is enabled. + // +kubebuilder:validation:Optional + WebShell *bool `json:"webShell,omitempty" tf:"web_shell,omitempty"` +} + +// DedicatedPolicyV1Spec defines the desired state of DedicatedPolicyV1 +type DedicatedPolicyV1Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider DedicatedPolicyV1Parameters `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 DedicatedPolicyV1InitParameters `json:"initProvider,omitempty"` +} + +// DedicatedPolicyV1Status defines the observed state of DedicatedPolicyV1. +type DedicatedPolicyV1Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider DedicatedPolicyV1Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// DedicatedPolicyV1 is the Schema for the DedicatedPolicyV1s API. Manages a WAF Dedicated Policy resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type DedicatedPolicyV1 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.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter" + Spec DedicatedPolicyV1Spec `json:"spec"` + Status DedicatedPolicyV1Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// DedicatedPolicyV1List contains a list of DedicatedPolicyV1s +type DedicatedPolicyV1List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []DedicatedPolicyV1 `json:"items"` +} + +// Repository type metadata. +var ( + DedicatedPolicyV1_Kind = "DedicatedPolicyV1" + DedicatedPolicyV1_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: DedicatedPolicyV1_Kind}.String() + DedicatedPolicyV1_KindAPIVersion = DedicatedPolicyV1_Kind + "." + CRDGroupVersion.String() + DedicatedPolicyV1_GroupVersionKind = CRDGroupVersion.WithKind(DedicatedPolicyV1_Kind) +) + +func init() { + SchemeBuilder.Register(&DedicatedPolicyV1{}, &DedicatedPolicyV1List{}) +} diff --git a/apis/waf/v1alpha1/zz_dedicatedpreciseprotectionrulev1_types.go b/apis/waf/v1alpha1/zz_dedicatedpreciseprotectionrulev1_types.go new file mode 100755 index 0000000..b46692d --- /dev/null +++ b/apis/waf/v1alpha1/zz_dedicatedpreciseprotectionrulev1_types.go @@ -0,0 +1,277 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 DedicatedPreciseProtectionRuleV1ActionInitParameters struct { + + // Action type. Changing this creates a new rule. + Category *string `json:"category,omitempty" tf:"category,omitempty"` + + // ID of a known attack source rule. This parameter can be configured only when category is set to block. Changing this creates a new rule. + FollowedActionID *string `json:"followedActionId,omitempty" tf:"followed_action_id,omitempty"` +} + +type DedicatedPreciseProtectionRuleV1ActionObservation struct { + + // Action type. Changing this creates a new rule. + Category *string `json:"category,omitempty" tf:"category,omitempty"` + + // ID of a known attack source rule. This parameter can be configured only when category is set to block. Changing this creates a new rule. + FollowedActionID *string `json:"followedActionId,omitempty" tf:"followed_action_id,omitempty"` +} + +type DedicatedPreciseProtectionRuleV1ActionParameters struct { + + // Action type. Changing this creates a new rule. + // +kubebuilder:validation:Optional + Category *string `json:"category" tf:"category,omitempty"` + + // ID of a known attack source rule. This parameter can be configured only when category is set to block. Changing this creates a new rule. + // +kubebuilder:validation:Optional + FollowedActionID *string `json:"followedActionId,omitempty" tf:"followed_action_id,omitempty"` +} + +type DedicatedPreciseProtectionRuleV1ConditionsInitParameters struct { + + // Field type. The options are url, user-agent, ip, params, cookie, referer, header, request_line, method, and request. + Category *string `json:"category,omitempty" tf:"category,omitempty"` + + // Content of the conditions. This parameter is mandatory when the suffix of logic_operation is not any or all. This parameter is mandatory when the suffix of logic_operation is not any or all. Changing this creates a new rule. + Contents []*string `json:"contents,omitempty" tf:"contents,omitempty"` + + // Subfield. Changing this creates a new rule. + Index *string `json:"index,omitempty" tf:"index,omitempty"` + + // Logic for matching the condition. Changing this creates a new rule. + LogicOperation *string `json:"logicOperation,omitempty" tf:"logic_operation,omitempty"` + + // Reference table ID. This parameter is mandatory when the suffix of logic_operation is any or all. The reference table type must be the same as the category type. Changing this creates a new rule. + ValueListID *string `json:"valueListId,omitempty" tf:"value_list_id,omitempty"` +} + +type DedicatedPreciseProtectionRuleV1ConditionsObservation struct { + + // Field type. The options are url, user-agent, ip, params, cookie, referer, header, request_line, method, and request. + Category *string `json:"category,omitempty" tf:"category,omitempty"` + + // Content of the conditions. This parameter is mandatory when the suffix of logic_operation is not any or all. This parameter is mandatory when the suffix of logic_operation is not any or all. Changing this creates a new rule. + Contents []*string `json:"contents,omitempty" tf:"contents,omitempty"` + + // Subfield. Changing this creates a new rule. + Index *string `json:"index,omitempty" tf:"index,omitempty"` + + // Logic for matching the condition. Changing this creates a new rule. + LogicOperation *string `json:"logicOperation,omitempty" tf:"logic_operation,omitempty"` + + // Reference table ID. This parameter is mandatory when the suffix of logic_operation is any or all. The reference table type must be the same as the category type. Changing this creates a new rule. + ValueListID *string `json:"valueListId,omitempty" tf:"value_list_id,omitempty"` +} + +type DedicatedPreciseProtectionRuleV1ConditionsParameters struct { + + // Field type. The options are url, user-agent, ip, params, cookie, referer, header, request_line, method, and request. + // +kubebuilder:validation:Optional + Category *string `json:"category,omitempty" tf:"category,omitempty"` + + // Content of the conditions. This parameter is mandatory when the suffix of logic_operation is not any or all. This parameter is mandatory when the suffix of logic_operation is not any or all. Changing this creates a new rule. + // +kubebuilder:validation:Optional + Contents []*string `json:"contents,omitempty" tf:"contents,omitempty"` + + // Subfield. Changing this creates a new rule. + // +kubebuilder:validation:Optional + Index *string `json:"index,omitempty" tf:"index,omitempty"` + + // Logic for matching the condition. Changing this creates a new rule. + // +kubebuilder:validation:Optional + LogicOperation *string `json:"logicOperation,omitempty" tf:"logic_operation,omitempty"` + + // Reference table ID. This parameter is mandatory when the suffix of logic_operation is any or all. The reference table type must be the same as the category type. Changing this creates a new rule. + // +kubebuilder:validation:Optional + ValueListID *string `json:"valueListId,omitempty" tf:"value_list_id,omitempty"` +} + +type DedicatedPreciseProtectionRuleV1InitParameters struct { + + // Protection action to take if the number of requests reaches the upper limit. Changing this creates a new rule. + // The conditions block supports: + Action []DedicatedPreciseProtectionRuleV1ActionInitParameters `json:"action,omitempty" tf:"action,omitempty"` + + // Match condition List. Changing this creates a new rule. + // The conditions block supports: + Conditions []DedicatedPreciseProtectionRuleV1ConditionsInitParameters `json:"conditions,omitempty" tf:"conditions,omitempty"` + + // Rule description. Changing this creates a new rule. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The WAF policy ID. Changing this creates a new rule. + PolicyID *string `json:"policyId,omitempty" tf:"policy_id,omitempty"` + + // Priority of a rule. A small value indicates a high priority. If two rules are assigned with the same priority, the rule added earlier has higher priority. Value range: 0 to 1000. Changing this creates a new rule. + Priority *float64 `json:"priority,omitempty" tf:"priority,omitempty"` + + // Timestamp (ms) when the precise protection rule takes effect. This parameter is returned only when time is true. Changing this creates a new rule. + Start *float64 `json:"start,omitempty" tf:"start,omitempty"` + + // Timestamp (ms) when the precise protection rule expires. This parameter is returned only when time is true. Changing this creates a new rule. + Terminal *float64 `json:"terminal,omitempty" tf:"terminal,omitempty"` + + // Time the precise protection rule takes effect. Changing this creates a new rule. + // Values: + Time *bool `json:"time,omitempty" tf:"time,omitempty"` +} + +type DedicatedPreciseProtectionRuleV1Observation struct { + + // Protection action to take if the number of requests reaches the upper limit. Changing this creates a new rule. + // The conditions block supports: + Action []DedicatedPreciseProtectionRuleV1ActionObservation `json:"action,omitempty" tf:"action,omitempty"` + + // Match condition List. Changing this creates a new rule. + // The conditions block supports: + Conditions []DedicatedPreciseProtectionRuleV1ConditionsObservation `json:"conditions,omitempty" tf:"conditions,omitempty"` + + // Timestamp the rule is created. + CreatedAt *float64 `json:"createdAt,omitempty" tf:"created_at,omitempty"` + + // Rule description. Changing this creates a new rule. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // ID of the rule. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The WAF policy ID. Changing this creates a new rule. + PolicyID *string `json:"policyId,omitempty" tf:"policy_id,omitempty"` + + // Priority of a rule. A small value indicates a high priority. If two rules are assigned with the same priority, the rule added earlier has higher priority. Value range: 0 to 1000. Changing this creates a new rule. + Priority *float64 `json:"priority,omitempty" tf:"priority,omitempty"` + + // Timestamp (ms) when the precise protection rule takes effect. This parameter is returned only when time is true. Changing this creates a new rule. + Start *float64 `json:"start,omitempty" tf:"start,omitempty"` + + // Rule status. The value can be: + Status *float64 `json:"status,omitempty" tf:"status,omitempty"` + + // Timestamp (ms) when the precise protection rule expires. This parameter is returned only when time is true. Changing this creates a new rule. + Terminal *float64 `json:"terminal,omitempty" tf:"terminal,omitempty"` + + // Time the precise protection rule takes effect. Changing this creates a new rule. + // Values: + Time *bool `json:"time,omitempty" tf:"time,omitempty"` +} + +type DedicatedPreciseProtectionRuleV1Parameters struct { + + // Protection action to take if the number of requests reaches the upper limit. Changing this creates a new rule. + // The conditions block supports: + // +kubebuilder:validation:Optional + Action []DedicatedPreciseProtectionRuleV1ActionParameters `json:"action,omitempty" tf:"action,omitempty"` + + // Match condition List. Changing this creates a new rule. + // The conditions block supports: + // +kubebuilder:validation:Optional + Conditions []DedicatedPreciseProtectionRuleV1ConditionsParameters `json:"conditions,omitempty" tf:"conditions,omitempty"` + + // Rule description. Changing this creates a new rule. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The WAF policy ID. Changing this creates a new rule. + // +kubebuilder:validation:Optional + PolicyID *string `json:"policyId,omitempty" tf:"policy_id,omitempty"` + + // Priority of a rule. A small value indicates a high priority. If two rules are assigned with the same priority, the rule added earlier has higher priority. Value range: 0 to 1000. Changing this creates a new rule. + // +kubebuilder:validation:Optional + Priority *float64 `json:"priority,omitempty" tf:"priority,omitempty"` + + // Timestamp (ms) when the precise protection rule takes effect. This parameter is returned only when time is true. Changing this creates a new rule. + // +kubebuilder:validation:Optional + Start *float64 `json:"start,omitempty" tf:"start,omitempty"` + + // Timestamp (ms) when the precise protection rule expires. This parameter is returned only when time is true. Changing this creates a new rule. + // +kubebuilder:validation:Optional + Terminal *float64 `json:"terminal,omitempty" tf:"terminal,omitempty"` + + // Time the precise protection rule takes effect. Changing this creates a new rule. + // Values: + // +kubebuilder:validation:Optional + Time *bool `json:"time,omitempty" tf:"time,omitempty"` +} + +// DedicatedPreciseProtectionRuleV1Spec defines the desired state of DedicatedPreciseProtectionRuleV1 +type DedicatedPreciseProtectionRuleV1Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider DedicatedPreciseProtectionRuleV1Parameters `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 DedicatedPreciseProtectionRuleV1InitParameters `json:"initProvider,omitempty"` +} + +// DedicatedPreciseProtectionRuleV1Status defines the observed state of DedicatedPreciseProtectionRuleV1. +type DedicatedPreciseProtectionRuleV1Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider DedicatedPreciseProtectionRuleV1Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// DedicatedPreciseProtectionRuleV1 is the Schema for the DedicatedPreciseProtectionRuleV1s API. Manages a WAF Dedicated Precise Protection Rule resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type DedicatedPreciseProtectionRuleV1 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.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.priority) || (has(self.initProvider) && has(self.initProvider.priority))",message="spec.forProvider.priority is a required parameter" + // +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.time) || (has(self.initProvider) && has(self.initProvider.time))",message="spec.forProvider.time is a required parameter" + Spec DedicatedPreciseProtectionRuleV1Spec `json:"spec"` + Status DedicatedPreciseProtectionRuleV1Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// DedicatedPreciseProtectionRuleV1List contains a list of DedicatedPreciseProtectionRuleV1s +type DedicatedPreciseProtectionRuleV1List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []DedicatedPreciseProtectionRuleV1 `json:"items"` +} + +// Repository type metadata. +var ( + DedicatedPreciseProtectionRuleV1_Kind = "DedicatedPreciseProtectionRuleV1" + DedicatedPreciseProtectionRuleV1_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: DedicatedPreciseProtectionRuleV1_Kind}.String() + DedicatedPreciseProtectionRuleV1_KindAPIVersion = DedicatedPreciseProtectionRuleV1_Kind + "." + CRDGroupVersion.String() + DedicatedPreciseProtectionRuleV1_GroupVersionKind = CRDGroupVersion.WithKind(DedicatedPreciseProtectionRuleV1_Kind) +) + +func init() { + SchemeBuilder.Register(&DedicatedPreciseProtectionRuleV1{}, &DedicatedPreciseProtectionRuleV1List{}) +} diff --git a/apis/waf/v1alpha1/zz_dedicatedreferencetablev1_types.go b/apis/waf/v1alpha1/zz_dedicatedreferencetablev1_types.go new file mode 100755 index 0000000..16aaee3 --- /dev/null +++ b/apis/waf/v1alpha1/zz_dedicatedreferencetablev1_types.go @@ -0,0 +1,163 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 DedicatedReferenceTableV1InitParameters struct { + + // The conditions of the reference table. The maximum length is 30. The maximum length of + // condition is 2048 characters. + // schema: Required + Conditions []*string `json:"conditions,omitempty" tf:"conditions,omitempty"` + + // The description of the reference table. The maximum length is 128 characters. + // Currently, could be set only on update. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The name of the reference table. Only letters, digits, and underscores(_) are allowed. The + // maximum length is 64 characters. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The region in which to create the WAF reference table resource. If omitted, + // the provider-level region will be used. Changing this setting will push a new reference table. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The type of the reference table, The options are url, user-agent, ip, + // params, cookie, referer and header. Changing this setting will push a new reference table. + Type *string `json:"type,omitempty" tf:"type,omitempty"` +} + +type DedicatedReferenceTableV1Observation struct { + + // The conditions of the reference table. The maximum length is 30. The maximum length of + // condition is 2048 characters. + // schema: Required + Conditions []*string `json:"conditions,omitempty" tf:"conditions,omitempty"` + + // The time when reference table was created. + CreatedAt *string `json:"createdAt,omitempty" tf:"created_at,omitempty"` + + // The description of the reference table. The maximum length is 128 characters. + // Currently, could be set only on update. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The id of the reference table. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The name of the reference table. Only letters, digits, and underscores(_) are allowed. The + // maximum length is 64 characters. + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The region in which to create the WAF reference table resource. If omitted, + // the provider-level region will be used. Changing this setting will push a new reference table. + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The type of the reference table, The options are url, user-agent, ip, + // params, cookie, referer and header. Changing this setting will push a new reference table. + Type *string `json:"type,omitempty" tf:"type,omitempty"` +} + +type DedicatedReferenceTableV1Parameters struct { + + // The conditions of the reference table. The maximum length is 30. The maximum length of + // condition is 2048 characters. + // schema: Required + // +kubebuilder:validation:Optional + Conditions []*string `json:"conditions,omitempty" tf:"conditions,omitempty"` + + // The description of the reference table. The maximum length is 128 characters. + // Currently, could be set only on update. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // The name of the reference table. Only letters, digits, and underscores(_) are allowed. The + // maximum length is 64 characters. + // +kubebuilder:validation:Optional + Name *string `json:"name,omitempty" tf:"name,omitempty"` + + // The region in which to create the WAF reference table resource. If omitted, + // the provider-level region will be used. Changing this setting will push a new reference table. + // +kubebuilder:validation:Optional + Region *string `json:"region,omitempty" tf:"region,omitempty"` + + // The type of the reference table, The options are url, user-agent, ip, + // params, cookie, referer and header. Changing this setting will push a new reference table. + // +kubebuilder:validation:Optional + Type *string `json:"type,omitempty" tf:"type,omitempty"` +} + +// DedicatedReferenceTableV1Spec defines the desired state of DedicatedReferenceTableV1 +type DedicatedReferenceTableV1Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider DedicatedReferenceTableV1Parameters `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 DedicatedReferenceTableV1InitParameters `json:"initProvider,omitempty"` +} + +// DedicatedReferenceTableV1Status defines the observed state of DedicatedReferenceTableV1. +type DedicatedReferenceTableV1Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider DedicatedReferenceTableV1Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// DedicatedReferenceTableV1 is the Schema for the DedicatedReferenceTableV1s API. Manages a WAF Dedicated Reference Table resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type DedicatedReferenceTableV1 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.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name 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 DedicatedReferenceTableV1Spec `json:"spec"` + Status DedicatedReferenceTableV1Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// DedicatedReferenceTableV1List contains a list of DedicatedReferenceTableV1s +type DedicatedReferenceTableV1List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []DedicatedReferenceTableV1 `json:"items"` +} + +// Repository type metadata. +var ( + DedicatedReferenceTableV1_Kind = "DedicatedReferenceTableV1" + DedicatedReferenceTableV1_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: DedicatedReferenceTableV1_Kind}.String() + DedicatedReferenceTableV1_KindAPIVersion = DedicatedReferenceTableV1_Kind + "." + CRDGroupVersion.String() + DedicatedReferenceTableV1_GroupVersionKind = CRDGroupVersion.WithKind(DedicatedReferenceTableV1_Kind) +) + +func init() { + SchemeBuilder.Register(&DedicatedReferenceTableV1{}, &DedicatedReferenceTableV1List{}) +} diff --git a/apis/waf/v1alpha1/zz_dedicatedwebtamperrulev1_types.go b/apis/waf/v1alpha1/zz_dedicatedwebtamperrulev1_types.go new file mode 100755 index 0000000..25a0464 --- /dev/null +++ b/apis/waf/v1alpha1/zz_dedicatedwebtamperrulev1_types.go @@ -0,0 +1,152 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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 DedicatedWebTamperRuleV1InitParameters struct { + + // Rule description. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Protected website. + Hostname *string `json:"hostname,omitempty" tf:"hostname,omitempty"` + + // The WAF policy ID. Changing this creates a new rule. + PolicyID *string `json:"policyId,omitempty" tf:"policy_id,omitempty"` + + // URL protected by the web tamper protection rule. + // The value must be in the standard URL format, for example, /admin + URL *string `json:"url,omitempty" tf:"url,omitempty"` + + // To update the cache for a web tamper protection Rule. + UpdateCache *bool `json:"updateCache,omitempty" tf:"update_cache,omitempty"` +} + +type DedicatedWebTamperRuleV1Observation struct { + + // Timestamp the rule is created. + CreatedAt *float64 `json:"createdAt,omitempty" tf:"created_at,omitempty"` + + // Rule description. + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Protected website. + Hostname *string `json:"hostname,omitempty" tf:"hostname,omitempty"` + + // ID of the rule. + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // The WAF policy ID. Changing this creates a new rule. + PolicyID *string `json:"policyId,omitempty" tf:"policy_id,omitempty"` + + // Rule status. The value can be: + Status *float64 `json:"status,omitempty" tf:"status,omitempty"` + + // URL protected by the web tamper protection rule. + // The value must be in the standard URL format, for example, /admin + URL *string `json:"url,omitempty" tf:"url,omitempty"` + + // To update the cache for a web tamper protection Rule. + UpdateCache *bool `json:"updateCache,omitempty" tf:"update_cache,omitempty"` +} + +type DedicatedWebTamperRuleV1Parameters struct { + + // Rule description. + // +kubebuilder:validation:Optional + Description *string `json:"description,omitempty" tf:"description,omitempty"` + + // Protected website. + // +kubebuilder:validation:Optional + Hostname *string `json:"hostname,omitempty" tf:"hostname,omitempty"` + + // The WAF policy ID. Changing this creates a new rule. + // +kubebuilder:validation:Optional + PolicyID *string `json:"policyId,omitempty" tf:"policy_id,omitempty"` + + // URL protected by the web tamper protection rule. + // The value must be in the standard URL format, for example, /admin + // +kubebuilder:validation:Optional + URL *string `json:"url,omitempty" tf:"url,omitempty"` + + // To update the cache for a web tamper protection Rule. + // +kubebuilder:validation:Optional + UpdateCache *bool `json:"updateCache,omitempty" tf:"update_cache,omitempty"` +} + +// DedicatedWebTamperRuleV1Spec defines the desired state of DedicatedWebTamperRuleV1 +type DedicatedWebTamperRuleV1Spec struct { + v1.ResourceSpec `json:",inline"` + ForProvider DedicatedWebTamperRuleV1Parameters `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 DedicatedWebTamperRuleV1InitParameters `json:"initProvider,omitempty"` +} + +// DedicatedWebTamperRuleV1Status defines the observed state of DedicatedWebTamperRuleV1. +type DedicatedWebTamperRuleV1Status struct { + v1.ResourceStatus `json:",inline"` + AtProvider DedicatedWebTamperRuleV1Observation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// DedicatedWebTamperRuleV1 is the Schema for the DedicatedWebTamperRuleV1s API. Manages a WAF Dedicated Web Tamper Rule resource within OpenTelekomCloud. +// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status" +// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].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:subresource:status +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,opentelekomcloud} +type DedicatedWebTamperRuleV1 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.hostname) || (has(self.initProvider) && has(self.initProvider.hostname))",message="spec.forProvider.hostname 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.url) || (has(self.initProvider) && has(self.initProvider.url))",message="spec.forProvider.url is a required parameter" + Spec DedicatedWebTamperRuleV1Spec `json:"spec"` + Status DedicatedWebTamperRuleV1Status `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// DedicatedWebTamperRuleV1List contains a list of DedicatedWebTamperRuleV1s +type DedicatedWebTamperRuleV1List struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []DedicatedWebTamperRuleV1 `json:"items"` +} + +// Repository type metadata. +var ( + DedicatedWebTamperRuleV1_Kind = "DedicatedWebTamperRuleV1" + DedicatedWebTamperRuleV1_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: DedicatedWebTamperRuleV1_Kind}.String() + DedicatedWebTamperRuleV1_KindAPIVersion = DedicatedWebTamperRuleV1_Kind + "." + CRDGroupVersion.String() + DedicatedWebTamperRuleV1_GroupVersionKind = CRDGroupVersion.WithKind(DedicatedWebTamperRuleV1_Kind) +) + +func init() { + SchemeBuilder.Register(&DedicatedWebTamperRuleV1{}, &DedicatedWebTamperRuleV1List{}) +} diff --git a/apis/waf/v1alpha1/zz_generated.deepcopy.go b/apis/waf/v1alpha1/zz_generated.deepcopy.go new file mode 100644 index 0000000..0281815 --- /dev/null +++ b/apis/waf/v1alpha1/zz_generated.deepcopy.go @@ -0,0 +1,5268 @@ +//go:build !ignore_autogenerated + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by controller-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + 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 *ActionInitParameters) DeepCopyInto(out *ActionInitParameters) { + *out = *in + if in.Category != nil { + in, out := &in.Category, &out.Category + *out = new(string) + **out = **in + } + if in.Content != nil { + in, out := &in.Content, &out.Content + *out = new(string) + **out = **in + } + if in.ContentType != nil { + in, out := &in.ContentType, &out.ContentType + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionInitParameters. +func (in *ActionInitParameters) DeepCopy() *ActionInitParameters { + if in == nil { + return nil + } + out := new(ActionInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ActionObservation) DeepCopyInto(out *ActionObservation) { + *out = *in + if in.Category != nil { + in, out := &in.Category, &out.Category + *out = new(string) + **out = **in + } + if in.Content != nil { + in, out := &in.Content, &out.Content + *out = new(string) + **out = **in + } + if in.ContentType != nil { + in, out := &in.ContentType, &out.ContentType + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionObservation. +func (in *ActionObservation) DeepCopy() *ActionObservation { + if in == nil { + return nil + } + out := new(ActionObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ActionParameters) DeepCopyInto(out *ActionParameters) { + *out = *in + if in.Category != nil { + in, out := &in.Category, &out.Category + *out = new(string) + **out = **in + } + if in.Content != nil { + in, out := &in.Content, &out.Content + *out = new(string) + **out = **in + } + if in.ContentType != nil { + in, out := &in.ContentType, &out.ContentType + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ActionParameters. +func (in *ActionParameters) DeepCopy() *ActionParameters { + if in == nil { + return nil + } + out := new(ActionParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AdvancedSettingsInitParameters) DeepCopyInto(out *AdvancedSettingsInitParameters) { + *out = *in + if in.Contents != nil { + in, out := &in.Contents, &out.Contents + *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.Index != nil { + in, out := &in.Index, &out.Index + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AdvancedSettingsInitParameters. +func (in *AdvancedSettingsInitParameters) DeepCopy() *AdvancedSettingsInitParameters { + if in == nil { + return nil + } + out := new(AdvancedSettingsInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AdvancedSettingsObservation) DeepCopyInto(out *AdvancedSettingsObservation) { + *out = *in + if in.Contents != nil { + in, out := &in.Contents, &out.Contents + *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.Index != nil { + in, out := &in.Index, &out.Index + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AdvancedSettingsObservation. +func (in *AdvancedSettingsObservation) DeepCopy() *AdvancedSettingsObservation { + if in == nil { + return nil + } + out := new(AdvancedSettingsObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AdvancedSettingsParameters) DeepCopyInto(out *AdvancedSettingsParameters) { + *out = *in + if in.Contents != nil { + in, out := &in.Contents, &out.Contents + *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.Index != nil { + in, out := &in.Index, &out.Index + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AdvancedSettingsParameters. +func (in *AdvancedSettingsParameters) DeepCopy() *AdvancedSettingsParameters { + if in == nil { + return nil + } + out := new(AdvancedSettingsParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ConditionsInitParameters) DeepCopyInto(out *ConditionsInitParameters) { + *out = *in + if in.Category != nil { + in, out := &in.Category, &out.Category + *out = new(string) + **out = **in + } + if in.Contents != nil { + in, out := &in.Contents, &out.Contents + *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.Index != nil { + in, out := &in.Index, &out.Index + *out = new(string) + **out = **in + } + if in.LogicOperation != nil { + in, out := &in.LogicOperation, &out.LogicOperation + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConditionsInitParameters. +func (in *ConditionsInitParameters) DeepCopy() *ConditionsInitParameters { + if in == nil { + return nil + } + out := new(ConditionsInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ConditionsObservation) DeepCopyInto(out *ConditionsObservation) { + *out = *in + if in.Category != nil { + in, out := &in.Category, &out.Category + *out = new(string) + **out = **in + } + if in.Contents != nil { + in, out := &in.Contents, &out.Contents + *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.Index != nil { + in, out := &in.Index, &out.Index + *out = new(string) + **out = **in + } + if in.LogicOperation != nil { + in, out := &in.LogicOperation, &out.LogicOperation + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConditionsObservation. +func (in *ConditionsObservation) DeepCopy() *ConditionsObservation { + if in == nil { + return nil + } + out := new(ConditionsObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ConditionsParameters) DeepCopyInto(out *ConditionsParameters) { + *out = *in + if in.Category != nil { + in, out := &in.Category, &out.Category + *out = new(string) + **out = **in + } + if in.Contents != nil { + in, out := &in.Contents, &out.Contents + *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.Index != nil { + in, out := &in.Index, &out.Index + *out = new(string) + **out = **in + } + if in.LogicOperation != nil { + in, out := &in.LogicOperation, &out.LogicOperation + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ConditionsParameters. +func (in *ConditionsParameters) DeepCopy() *ConditionsParameters { + if in == nil { + return nil + } + out := new(ConditionsParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedAlarmMaskingRuleV1) DeepCopyInto(out *DedicatedAlarmMaskingRuleV1) { + *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 DedicatedAlarmMaskingRuleV1. +func (in *DedicatedAlarmMaskingRuleV1) DeepCopy() *DedicatedAlarmMaskingRuleV1 { + if in == nil { + return nil + } + out := new(DedicatedAlarmMaskingRuleV1) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DedicatedAlarmMaskingRuleV1) 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 *DedicatedAlarmMaskingRuleV1InitParameters) DeepCopyInto(out *DedicatedAlarmMaskingRuleV1InitParameters) { + *out = *in + if in.AdvancedSettings != nil { + in, out := &in.AdvancedSettings, &out.AdvancedSettings + *out = make([]AdvancedSettingsInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]ConditionsInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Domains != nil { + in, out := &in.Domains, &out.Domains + *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.PolicyID != nil { + in, out := &in.PolicyID, &out.PolicyID + *out = new(string) + **out = **in + } + if in.Rule != nil { + in, out := &in.Rule, &out.Rule + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedAlarmMaskingRuleV1InitParameters. +func (in *DedicatedAlarmMaskingRuleV1InitParameters) DeepCopy() *DedicatedAlarmMaskingRuleV1InitParameters { + if in == nil { + return nil + } + out := new(DedicatedAlarmMaskingRuleV1InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedAlarmMaskingRuleV1List) DeepCopyInto(out *DedicatedAlarmMaskingRuleV1List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]DedicatedAlarmMaskingRuleV1, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedAlarmMaskingRuleV1List. +func (in *DedicatedAlarmMaskingRuleV1List) DeepCopy() *DedicatedAlarmMaskingRuleV1List { + if in == nil { + return nil + } + out := new(DedicatedAlarmMaskingRuleV1List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DedicatedAlarmMaskingRuleV1List) 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 *DedicatedAlarmMaskingRuleV1Observation) DeepCopyInto(out *DedicatedAlarmMaskingRuleV1Observation) { + *out = *in + if in.AdvancedSettings != nil { + in, out := &in.AdvancedSettings, &out.AdvancedSettings + *out = make([]AdvancedSettingsObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]ConditionsObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt + *out = new(float64) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Domains != nil { + in, out := &in.Domains, &out.Domains + *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.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.PolicyID != nil { + in, out := &in.PolicyID, &out.PolicyID + *out = new(string) + **out = **in + } + if in.Rule != nil { + in, out := &in.Rule, &out.Rule + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedAlarmMaskingRuleV1Observation. +func (in *DedicatedAlarmMaskingRuleV1Observation) DeepCopy() *DedicatedAlarmMaskingRuleV1Observation { + if in == nil { + return nil + } + out := new(DedicatedAlarmMaskingRuleV1Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedAlarmMaskingRuleV1Parameters) DeepCopyInto(out *DedicatedAlarmMaskingRuleV1Parameters) { + *out = *in + if in.AdvancedSettings != nil { + in, out := &in.AdvancedSettings, &out.AdvancedSettings + *out = make([]AdvancedSettingsParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]ConditionsParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Domains != nil { + in, out := &in.Domains, &out.Domains + *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.PolicyID != nil { + in, out := &in.PolicyID, &out.PolicyID + *out = new(string) + **out = **in + } + if in.Rule != nil { + in, out := &in.Rule, &out.Rule + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedAlarmMaskingRuleV1Parameters. +func (in *DedicatedAlarmMaskingRuleV1Parameters) DeepCopy() *DedicatedAlarmMaskingRuleV1Parameters { + if in == nil { + return nil + } + out := new(DedicatedAlarmMaskingRuleV1Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedAlarmMaskingRuleV1Spec) DeepCopyInto(out *DedicatedAlarmMaskingRuleV1Spec) { + *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 DedicatedAlarmMaskingRuleV1Spec. +func (in *DedicatedAlarmMaskingRuleV1Spec) DeepCopy() *DedicatedAlarmMaskingRuleV1Spec { + if in == nil { + return nil + } + out := new(DedicatedAlarmMaskingRuleV1Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedAlarmMaskingRuleV1Status) DeepCopyInto(out *DedicatedAlarmMaskingRuleV1Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedAlarmMaskingRuleV1Status. +func (in *DedicatedAlarmMaskingRuleV1Status) DeepCopy() *DedicatedAlarmMaskingRuleV1Status { + if in == nil { + return nil + } + out := new(DedicatedAlarmMaskingRuleV1Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedAntiCrawlerRuleV1) DeepCopyInto(out *DedicatedAntiCrawlerRuleV1) { + *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 DedicatedAntiCrawlerRuleV1. +func (in *DedicatedAntiCrawlerRuleV1) DeepCopy() *DedicatedAntiCrawlerRuleV1 { + if in == nil { + return nil + } + out := new(DedicatedAntiCrawlerRuleV1) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DedicatedAntiCrawlerRuleV1) 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 *DedicatedAntiCrawlerRuleV1InitParameters) DeepCopyInto(out *DedicatedAntiCrawlerRuleV1InitParameters) { + *out = *in + if in.Logic != nil { + in, out := &in.Logic, &out.Logic + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PolicyID != nil { + in, out := &in.PolicyID, &out.PolicyID + *out = new(string) + **out = **in + } + if in.ProtectionMode != nil { + in, out := &in.ProtectionMode, &out.ProtectionMode + *out = new(string) + **out = **in + } + if in.URL != nil { + in, out := &in.URL, &out.URL + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedAntiCrawlerRuleV1InitParameters. +func (in *DedicatedAntiCrawlerRuleV1InitParameters) DeepCopy() *DedicatedAntiCrawlerRuleV1InitParameters { + if in == nil { + return nil + } + out := new(DedicatedAntiCrawlerRuleV1InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedAntiCrawlerRuleV1List) DeepCopyInto(out *DedicatedAntiCrawlerRuleV1List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]DedicatedAntiCrawlerRuleV1, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedAntiCrawlerRuleV1List. +func (in *DedicatedAntiCrawlerRuleV1List) DeepCopy() *DedicatedAntiCrawlerRuleV1List { + if in == nil { + return nil + } + out := new(DedicatedAntiCrawlerRuleV1List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DedicatedAntiCrawlerRuleV1List) 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 *DedicatedAntiCrawlerRuleV1Observation) DeepCopyInto(out *DedicatedAntiCrawlerRuleV1Observation) { + *out = *in + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt + *out = new(float64) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Logic != nil { + in, out := &in.Logic, &out.Logic + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PolicyID != nil { + in, out := &in.PolicyID, &out.PolicyID + *out = new(string) + **out = **in + } + if in.ProtectionMode != nil { + in, out := &in.ProtectionMode, &out.ProtectionMode + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(float64) + **out = **in + } + if in.URL != nil { + in, out := &in.URL, &out.URL + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedAntiCrawlerRuleV1Observation. +func (in *DedicatedAntiCrawlerRuleV1Observation) DeepCopy() *DedicatedAntiCrawlerRuleV1Observation { + if in == nil { + return nil + } + out := new(DedicatedAntiCrawlerRuleV1Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedAntiCrawlerRuleV1Parameters) DeepCopyInto(out *DedicatedAntiCrawlerRuleV1Parameters) { + *out = *in + if in.Logic != nil { + in, out := &in.Logic, &out.Logic + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PolicyID != nil { + in, out := &in.PolicyID, &out.PolicyID + *out = new(string) + **out = **in + } + if in.ProtectionMode != nil { + in, out := &in.ProtectionMode, &out.ProtectionMode + *out = new(string) + **out = **in + } + if in.URL != nil { + in, out := &in.URL, &out.URL + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedAntiCrawlerRuleV1Parameters. +func (in *DedicatedAntiCrawlerRuleV1Parameters) DeepCopy() *DedicatedAntiCrawlerRuleV1Parameters { + if in == nil { + return nil + } + out := new(DedicatedAntiCrawlerRuleV1Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedAntiCrawlerRuleV1Spec) DeepCopyInto(out *DedicatedAntiCrawlerRuleV1Spec) { + *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 DedicatedAntiCrawlerRuleV1Spec. +func (in *DedicatedAntiCrawlerRuleV1Spec) DeepCopy() *DedicatedAntiCrawlerRuleV1Spec { + if in == nil { + return nil + } + out := new(DedicatedAntiCrawlerRuleV1Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedAntiCrawlerRuleV1Status) DeepCopyInto(out *DedicatedAntiCrawlerRuleV1Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedAntiCrawlerRuleV1Status. +func (in *DedicatedAntiCrawlerRuleV1Status) DeepCopy() *DedicatedAntiCrawlerRuleV1Status { + if in == nil { + return nil + } + out := new(DedicatedAntiCrawlerRuleV1Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedAntiLeakageRuleV1) DeepCopyInto(out *DedicatedAntiLeakageRuleV1) { + *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 DedicatedAntiLeakageRuleV1. +func (in *DedicatedAntiLeakageRuleV1) DeepCopy() *DedicatedAntiLeakageRuleV1 { + if in == nil { + return nil + } + out := new(DedicatedAntiLeakageRuleV1) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DedicatedAntiLeakageRuleV1) 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 *DedicatedAntiLeakageRuleV1InitParameters) DeepCopyInto(out *DedicatedAntiLeakageRuleV1InitParameters) { + *out = *in + if in.Category != nil { + in, out := &in.Category, &out.Category + *out = new(string) + **out = **in + } + if in.Contents != nil { + in, out := &in.Contents, &out.Contents + *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.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.PolicyID != nil { + in, out := &in.PolicyID, &out.PolicyID + *out = new(string) + **out = **in + } + if in.URL != nil { + in, out := &in.URL, &out.URL + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedAntiLeakageRuleV1InitParameters. +func (in *DedicatedAntiLeakageRuleV1InitParameters) DeepCopy() *DedicatedAntiLeakageRuleV1InitParameters { + if in == nil { + return nil + } + out := new(DedicatedAntiLeakageRuleV1InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedAntiLeakageRuleV1List) DeepCopyInto(out *DedicatedAntiLeakageRuleV1List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]DedicatedAntiLeakageRuleV1, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedAntiLeakageRuleV1List. +func (in *DedicatedAntiLeakageRuleV1List) DeepCopy() *DedicatedAntiLeakageRuleV1List { + if in == nil { + return nil + } + out := new(DedicatedAntiLeakageRuleV1List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DedicatedAntiLeakageRuleV1List) 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 *DedicatedAntiLeakageRuleV1Observation) DeepCopyInto(out *DedicatedAntiLeakageRuleV1Observation) { + *out = *in + if in.Category != nil { + in, out := &in.Category, &out.Category + *out = new(string) + **out = **in + } + if in.Contents != nil { + in, out := &in.Contents, &out.Contents + *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(float64) + **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.PolicyID != nil { + in, out := &in.PolicyID, &out.PolicyID + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(float64) + **out = **in + } + if in.URL != nil { + in, out := &in.URL, &out.URL + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedAntiLeakageRuleV1Observation. +func (in *DedicatedAntiLeakageRuleV1Observation) DeepCopy() *DedicatedAntiLeakageRuleV1Observation { + if in == nil { + return nil + } + out := new(DedicatedAntiLeakageRuleV1Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedAntiLeakageRuleV1Parameters) DeepCopyInto(out *DedicatedAntiLeakageRuleV1Parameters) { + *out = *in + if in.Category != nil { + in, out := &in.Category, &out.Category + *out = new(string) + **out = **in + } + if in.Contents != nil { + in, out := &in.Contents, &out.Contents + *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.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.PolicyID != nil { + in, out := &in.PolicyID, &out.PolicyID + *out = new(string) + **out = **in + } + if in.URL != nil { + in, out := &in.URL, &out.URL + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedAntiLeakageRuleV1Parameters. +func (in *DedicatedAntiLeakageRuleV1Parameters) DeepCopy() *DedicatedAntiLeakageRuleV1Parameters { + if in == nil { + return nil + } + out := new(DedicatedAntiLeakageRuleV1Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedAntiLeakageRuleV1Spec) DeepCopyInto(out *DedicatedAntiLeakageRuleV1Spec) { + *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 DedicatedAntiLeakageRuleV1Spec. +func (in *DedicatedAntiLeakageRuleV1Spec) DeepCopy() *DedicatedAntiLeakageRuleV1Spec { + if in == nil { + return nil + } + out := new(DedicatedAntiLeakageRuleV1Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedAntiLeakageRuleV1Status) DeepCopyInto(out *DedicatedAntiLeakageRuleV1Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedAntiLeakageRuleV1Status. +func (in *DedicatedAntiLeakageRuleV1Status) DeepCopy() *DedicatedAntiLeakageRuleV1Status { + if in == nil { + return nil + } + out := new(DedicatedAntiLeakageRuleV1Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedBlacklistRuleV1) DeepCopyInto(out *DedicatedBlacklistRuleV1) { + *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 DedicatedBlacklistRuleV1. +func (in *DedicatedBlacklistRuleV1) DeepCopy() *DedicatedBlacklistRuleV1 { + if in == nil { + return nil + } + out := new(DedicatedBlacklistRuleV1) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DedicatedBlacklistRuleV1) 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 *DedicatedBlacklistRuleV1InitParameters) DeepCopyInto(out *DedicatedBlacklistRuleV1InitParameters) { + *out = *in + if in.Action != nil { + in, out := &in.Action, &out.Action + *out = new(float64) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.FollowedActionID != nil { + in, out := &in.FollowedActionID, &out.FollowedActionID + *out = new(string) + **out = **in + } + if in.IPAddress != nil { + in, out := &in.IPAddress, &out.IPAddress + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PolicyID != nil { + in, out := &in.PolicyID, &out.PolicyID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedBlacklistRuleV1InitParameters. +func (in *DedicatedBlacklistRuleV1InitParameters) DeepCopy() *DedicatedBlacklistRuleV1InitParameters { + if in == nil { + return nil + } + out := new(DedicatedBlacklistRuleV1InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedBlacklistRuleV1List) DeepCopyInto(out *DedicatedBlacklistRuleV1List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]DedicatedBlacklistRuleV1, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedBlacklistRuleV1List. +func (in *DedicatedBlacklistRuleV1List) DeepCopy() *DedicatedBlacklistRuleV1List { + if in == nil { + return nil + } + out := new(DedicatedBlacklistRuleV1List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DedicatedBlacklistRuleV1List) 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 *DedicatedBlacklistRuleV1Observation) DeepCopyInto(out *DedicatedBlacklistRuleV1Observation) { + *out = *in + if in.Action != nil { + in, out := &in.Action, &out.Action + *out = new(float64) + **out = **in + } + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt + *out = new(float64) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.FollowedActionID != nil { + in, out := &in.FollowedActionID, &out.FollowedActionID + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.IPAddress != nil { + in, out := &in.IPAddress, &out.IPAddress + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PolicyID != nil { + in, out := &in.PolicyID, &out.PolicyID + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedBlacklistRuleV1Observation. +func (in *DedicatedBlacklistRuleV1Observation) DeepCopy() *DedicatedBlacklistRuleV1Observation { + if in == nil { + return nil + } + out := new(DedicatedBlacklistRuleV1Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedBlacklistRuleV1Parameters) DeepCopyInto(out *DedicatedBlacklistRuleV1Parameters) { + *out = *in + if in.Action != nil { + in, out := &in.Action, &out.Action + *out = new(float64) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.FollowedActionID != nil { + in, out := &in.FollowedActionID, &out.FollowedActionID + *out = new(string) + **out = **in + } + if in.IPAddress != nil { + in, out := &in.IPAddress, &out.IPAddress + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PolicyID != nil { + in, out := &in.PolicyID, &out.PolicyID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedBlacklistRuleV1Parameters. +func (in *DedicatedBlacklistRuleV1Parameters) DeepCopy() *DedicatedBlacklistRuleV1Parameters { + if in == nil { + return nil + } + out := new(DedicatedBlacklistRuleV1Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedBlacklistRuleV1Spec) DeepCopyInto(out *DedicatedBlacklistRuleV1Spec) { + *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 DedicatedBlacklistRuleV1Spec. +func (in *DedicatedBlacklistRuleV1Spec) DeepCopy() *DedicatedBlacklistRuleV1Spec { + if in == nil { + return nil + } + out := new(DedicatedBlacklistRuleV1Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedBlacklistRuleV1Status) DeepCopyInto(out *DedicatedBlacklistRuleV1Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedBlacklistRuleV1Status. +func (in *DedicatedBlacklistRuleV1Status) DeepCopy() *DedicatedBlacklistRuleV1Status { + if in == nil { + return nil + } + out := new(DedicatedBlacklistRuleV1Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedCcRuleV1) DeepCopyInto(out *DedicatedCcRuleV1) { + *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 DedicatedCcRuleV1. +func (in *DedicatedCcRuleV1) DeepCopy() *DedicatedCcRuleV1 { + if in == nil { + return nil + } + out := new(DedicatedCcRuleV1) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DedicatedCcRuleV1) 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 *DedicatedCcRuleV1ConditionsInitParameters) DeepCopyInto(out *DedicatedCcRuleV1ConditionsInitParameters) { + *out = *in + if in.Category != nil { + in, out := &in.Category, &out.Category + *out = new(string) + **out = **in + } + if in.Contents != nil { + in, out := &in.Contents, &out.Contents + *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.Index != nil { + in, out := &in.Index, &out.Index + *out = new(string) + **out = **in + } + if in.LogicOperation != nil { + in, out := &in.LogicOperation, &out.LogicOperation + *out = new(string) + **out = **in + } + if in.ValueListID != nil { + in, out := &in.ValueListID, &out.ValueListID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedCcRuleV1ConditionsInitParameters. +func (in *DedicatedCcRuleV1ConditionsInitParameters) DeepCopy() *DedicatedCcRuleV1ConditionsInitParameters { + if in == nil { + return nil + } + out := new(DedicatedCcRuleV1ConditionsInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedCcRuleV1ConditionsObservation) DeepCopyInto(out *DedicatedCcRuleV1ConditionsObservation) { + *out = *in + if in.Category != nil { + in, out := &in.Category, &out.Category + *out = new(string) + **out = **in + } + if in.Contents != nil { + in, out := &in.Contents, &out.Contents + *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.Index != nil { + in, out := &in.Index, &out.Index + *out = new(string) + **out = **in + } + if in.LogicOperation != nil { + in, out := &in.LogicOperation, &out.LogicOperation + *out = new(string) + **out = **in + } + if in.ValueListID != nil { + in, out := &in.ValueListID, &out.ValueListID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedCcRuleV1ConditionsObservation. +func (in *DedicatedCcRuleV1ConditionsObservation) DeepCopy() *DedicatedCcRuleV1ConditionsObservation { + if in == nil { + return nil + } + out := new(DedicatedCcRuleV1ConditionsObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedCcRuleV1ConditionsParameters) DeepCopyInto(out *DedicatedCcRuleV1ConditionsParameters) { + *out = *in + if in.Category != nil { + in, out := &in.Category, &out.Category + *out = new(string) + **out = **in + } + if in.Contents != nil { + in, out := &in.Contents, &out.Contents + *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.Index != nil { + in, out := &in.Index, &out.Index + *out = new(string) + **out = **in + } + if in.LogicOperation != nil { + in, out := &in.LogicOperation, &out.LogicOperation + *out = new(string) + **out = **in + } + if in.ValueListID != nil { + in, out := &in.ValueListID, &out.ValueListID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedCcRuleV1ConditionsParameters. +func (in *DedicatedCcRuleV1ConditionsParameters) DeepCopy() *DedicatedCcRuleV1ConditionsParameters { + if in == nil { + return nil + } + out := new(DedicatedCcRuleV1ConditionsParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedCcRuleV1InitParameters) DeepCopyInto(out *DedicatedCcRuleV1InitParameters) { + *out = *in + if in.Action != nil { + in, out := &in.Action, &out.Action + *out = make([]ActionInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]DedicatedCcRuleV1ConditionsInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.LimitNum != nil { + in, out := &in.LimitNum, &out.LimitNum + *out = new(float64) + **out = **in + } + if in.LimitPeriod != nil { + in, out := &in.LimitPeriod, &out.LimitPeriod + *out = new(float64) + **out = **in + } + if in.LockTime != nil { + in, out := &in.LockTime, &out.LockTime + *out = new(float64) + **out = **in + } + if in.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(float64) + **out = **in + } + if in.PolicyID != nil { + in, out := &in.PolicyID, &out.PolicyID + *out = new(string) + **out = **in + } + if in.TagCategory != nil { + in, out := &in.TagCategory, &out.TagCategory + *out = new(string) + **out = **in + } + if in.TagContents != nil { + in, out := &in.TagContents, &out.TagContents + *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.TagIndex != nil { + in, out := &in.TagIndex, &out.TagIndex + *out = new(string) + **out = **in + } + if in.TagType != nil { + in, out := &in.TagType, &out.TagType + *out = new(string) + **out = **in + } + if in.URL != nil { + in, out := &in.URL, &out.URL + *out = new(string) + **out = **in + } + if in.UnlockNum != nil { + in, out := &in.UnlockNum, &out.UnlockNum + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedCcRuleV1InitParameters. +func (in *DedicatedCcRuleV1InitParameters) DeepCopy() *DedicatedCcRuleV1InitParameters { + if in == nil { + return nil + } + out := new(DedicatedCcRuleV1InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedCcRuleV1List) DeepCopyInto(out *DedicatedCcRuleV1List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]DedicatedCcRuleV1, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedCcRuleV1List. +func (in *DedicatedCcRuleV1List) DeepCopy() *DedicatedCcRuleV1List { + if in == nil { + return nil + } + out := new(DedicatedCcRuleV1List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DedicatedCcRuleV1List) 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 *DedicatedCcRuleV1Observation) DeepCopyInto(out *DedicatedCcRuleV1Observation) { + *out = *in + if in.Action != nil { + in, out := &in.Action, &out.Action + *out = make([]ActionObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]DedicatedCcRuleV1ConditionsObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt + *out = new(float64) + **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.LimitNum != nil { + in, out := &in.LimitNum, &out.LimitNum + *out = new(float64) + **out = **in + } + if in.LimitPeriod != nil { + in, out := &in.LimitPeriod, &out.LimitPeriod + *out = new(float64) + **out = **in + } + if in.LockTime != nil { + in, out := &in.LockTime, &out.LockTime + *out = new(float64) + **out = **in + } + if in.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(float64) + **out = **in + } + if in.PolicyID != nil { + in, out := &in.PolicyID, &out.PolicyID + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(float64) + **out = **in + } + if in.TagCategory != nil { + in, out := &in.TagCategory, &out.TagCategory + *out = new(string) + **out = **in + } + if in.TagContents != nil { + in, out := &in.TagContents, &out.TagContents + *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.TagIndex != nil { + in, out := &in.TagIndex, &out.TagIndex + *out = new(string) + **out = **in + } + if in.TagType != nil { + in, out := &in.TagType, &out.TagType + *out = new(string) + **out = **in + } + if in.URL != nil { + in, out := &in.URL, &out.URL + *out = new(string) + **out = **in + } + if in.UnlockNum != nil { + in, out := &in.UnlockNum, &out.UnlockNum + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedCcRuleV1Observation. +func (in *DedicatedCcRuleV1Observation) DeepCopy() *DedicatedCcRuleV1Observation { + if in == nil { + return nil + } + out := new(DedicatedCcRuleV1Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedCcRuleV1Parameters) DeepCopyInto(out *DedicatedCcRuleV1Parameters) { + *out = *in + if in.Action != nil { + in, out := &in.Action, &out.Action + *out = make([]ActionParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]DedicatedCcRuleV1ConditionsParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.LimitNum != nil { + in, out := &in.LimitNum, &out.LimitNum + *out = new(float64) + **out = **in + } + if in.LimitPeriod != nil { + in, out := &in.LimitPeriod, &out.LimitPeriod + *out = new(float64) + **out = **in + } + if in.LockTime != nil { + in, out := &in.LockTime, &out.LockTime + *out = new(float64) + **out = **in + } + if in.Mode != nil { + in, out := &in.Mode, &out.Mode + *out = new(float64) + **out = **in + } + if in.PolicyID != nil { + in, out := &in.PolicyID, &out.PolicyID + *out = new(string) + **out = **in + } + if in.TagCategory != nil { + in, out := &in.TagCategory, &out.TagCategory + *out = new(string) + **out = **in + } + if in.TagContents != nil { + in, out := &in.TagContents, &out.TagContents + *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.TagIndex != nil { + in, out := &in.TagIndex, &out.TagIndex + *out = new(string) + **out = **in + } + if in.TagType != nil { + in, out := &in.TagType, &out.TagType + *out = new(string) + **out = **in + } + if in.URL != nil { + in, out := &in.URL, &out.URL + *out = new(string) + **out = **in + } + if in.UnlockNum != nil { + in, out := &in.UnlockNum, &out.UnlockNum + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedCcRuleV1Parameters. +func (in *DedicatedCcRuleV1Parameters) DeepCopy() *DedicatedCcRuleV1Parameters { + if in == nil { + return nil + } + out := new(DedicatedCcRuleV1Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedCcRuleV1Spec) DeepCopyInto(out *DedicatedCcRuleV1Spec) { + *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 DedicatedCcRuleV1Spec. +func (in *DedicatedCcRuleV1Spec) DeepCopy() *DedicatedCcRuleV1Spec { + if in == nil { + return nil + } + out := new(DedicatedCcRuleV1Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedCcRuleV1Status) DeepCopyInto(out *DedicatedCcRuleV1Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedCcRuleV1Status. +func (in *DedicatedCcRuleV1Status) DeepCopy() *DedicatedCcRuleV1Status { + if in == nil { + return nil + } + out := new(DedicatedCcRuleV1Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedCertificateV1) DeepCopyInto(out *DedicatedCertificateV1) { + *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 DedicatedCertificateV1. +func (in *DedicatedCertificateV1) DeepCopy() *DedicatedCertificateV1 { + if in == nil { + return nil + } + out := new(DedicatedCertificateV1) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DedicatedCertificateV1) 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 *DedicatedCertificateV1InitParameters) DeepCopyInto(out *DedicatedCertificateV1InitParameters) { + *out = *in + if in.Content != nil { + in, out := &in.Content, &out.Content + *out = new(string) + **out = **in + } + if in.Key != nil { + in, out := &in.Key, &out.Key + *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 + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedCertificateV1InitParameters. +func (in *DedicatedCertificateV1InitParameters) DeepCopy() *DedicatedCertificateV1InitParameters { + if in == nil { + return nil + } + out := new(DedicatedCertificateV1InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedCertificateV1List) DeepCopyInto(out *DedicatedCertificateV1List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]DedicatedCertificateV1, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedCertificateV1List. +func (in *DedicatedCertificateV1List) DeepCopy() *DedicatedCertificateV1List { + if in == nil { + return nil + } + out := new(DedicatedCertificateV1List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DedicatedCertificateV1List) 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 *DedicatedCertificateV1Observation) DeepCopyInto(out *DedicatedCertificateV1Observation) { + *out = *in + if in.Content != nil { + in, out := &in.Content, &out.Content + *out = new(string) + **out = **in + } + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt + *out = new(string) + **out = **in + } + if in.Expires != nil { + in, out := &in.Expires, &out.Expires + *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.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 + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedCertificateV1Observation. +func (in *DedicatedCertificateV1Observation) DeepCopy() *DedicatedCertificateV1Observation { + if in == nil { + return nil + } + out := new(DedicatedCertificateV1Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedCertificateV1Parameters) DeepCopyInto(out *DedicatedCertificateV1Parameters) { + *out = *in + if in.Content != nil { + in, out := &in.Content, &out.Content + *out = new(string) + **out = **in + } + if in.Key != nil { + in, out := &in.Key, &out.Key + *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 + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedCertificateV1Parameters. +func (in *DedicatedCertificateV1Parameters) DeepCopy() *DedicatedCertificateV1Parameters { + if in == nil { + return nil + } + out := new(DedicatedCertificateV1Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedCertificateV1Spec) DeepCopyInto(out *DedicatedCertificateV1Spec) { + *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 DedicatedCertificateV1Spec. +func (in *DedicatedCertificateV1Spec) DeepCopy() *DedicatedCertificateV1Spec { + if in == nil { + return nil + } + out := new(DedicatedCertificateV1Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedCertificateV1Status) DeepCopyInto(out *DedicatedCertificateV1Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedCertificateV1Status. +func (in *DedicatedCertificateV1Status) DeepCopy() *DedicatedCertificateV1Status { + if in == nil { + return nil + } + out := new(DedicatedCertificateV1Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedDataMaskingRuleV1) DeepCopyInto(out *DedicatedDataMaskingRuleV1) { + *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 DedicatedDataMaskingRuleV1. +func (in *DedicatedDataMaskingRuleV1) DeepCopy() *DedicatedDataMaskingRuleV1 { + if in == nil { + return nil + } + out := new(DedicatedDataMaskingRuleV1) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DedicatedDataMaskingRuleV1) 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 *DedicatedDataMaskingRuleV1InitParameters) DeepCopyInto(out *DedicatedDataMaskingRuleV1InitParameters) { + *out = *in + if in.Category != nil { + in, out := &in.Category, &out.Category + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PolicyID != nil { + in, out := &in.PolicyID, &out.PolicyID + *out = new(string) + **out = **in + } + if in.URL != nil { + in, out := &in.URL, &out.URL + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedDataMaskingRuleV1InitParameters. +func (in *DedicatedDataMaskingRuleV1InitParameters) DeepCopy() *DedicatedDataMaskingRuleV1InitParameters { + if in == nil { + return nil + } + out := new(DedicatedDataMaskingRuleV1InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedDataMaskingRuleV1List) DeepCopyInto(out *DedicatedDataMaskingRuleV1List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]DedicatedDataMaskingRuleV1, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedDataMaskingRuleV1List. +func (in *DedicatedDataMaskingRuleV1List) DeepCopy() *DedicatedDataMaskingRuleV1List { + if in == nil { + return nil + } + out := new(DedicatedDataMaskingRuleV1List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DedicatedDataMaskingRuleV1List) 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 *DedicatedDataMaskingRuleV1Observation) DeepCopyInto(out *DedicatedDataMaskingRuleV1Observation) { + *out = *in + if in.Category != nil { + in, out := &in.Category, &out.Category + *out = new(string) + **out = **in + } + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt + *out = new(float64) + **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.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PolicyID != nil { + in, out := &in.PolicyID, &out.PolicyID + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(float64) + **out = **in + } + if in.URL != nil { + in, out := &in.URL, &out.URL + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedDataMaskingRuleV1Observation. +func (in *DedicatedDataMaskingRuleV1Observation) DeepCopy() *DedicatedDataMaskingRuleV1Observation { + if in == nil { + return nil + } + out := new(DedicatedDataMaskingRuleV1Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedDataMaskingRuleV1Parameters) DeepCopyInto(out *DedicatedDataMaskingRuleV1Parameters) { + *out = *in + if in.Category != nil { + in, out := &in.Category, &out.Category + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PolicyID != nil { + in, out := &in.PolicyID, &out.PolicyID + *out = new(string) + **out = **in + } + if in.URL != nil { + in, out := &in.URL, &out.URL + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedDataMaskingRuleV1Parameters. +func (in *DedicatedDataMaskingRuleV1Parameters) DeepCopy() *DedicatedDataMaskingRuleV1Parameters { + if in == nil { + return nil + } + out := new(DedicatedDataMaskingRuleV1Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedDataMaskingRuleV1Spec) DeepCopyInto(out *DedicatedDataMaskingRuleV1Spec) { + *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 DedicatedDataMaskingRuleV1Spec. +func (in *DedicatedDataMaskingRuleV1Spec) DeepCopy() *DedicatedDataMaskingRuleV1Spec { + if in == nil { + return nil + } + out := new(DedicatedDataMaskingRuleV1Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedDataMaskingRuleV1Status) DeepCopyInto(out *DedicatedDataMaskingRuleV1Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedDataMaskingRuleV1Status. +func (in *DedicatedDataMaskingRuleV1Status) DeepCopy() *DedicatedDataMaskingRuleV1Status { + if in == nil { + return nil + } + out := new(DedicatedDataMaskingRuleV1Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedDomainV1) DeepCopyInto(out *DedicatedDomainV1) { + *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 DedicatedDomainV1. +func (in *DedicatedDomainV1) DeepCopy() *DedicatedDomainV1 { + if in == nil { + return nil + } + out := new(DedicatedDomainV1) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DedicatedDomainV1) 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 *DedicatedDomainV1InitParameters) DeepCopyInto(out *DedicatedDomainV1InitParameters) { + *out = *in + if in.CertificateID != nil { + in, out := &in.CertificateID, &out.CertificateID + *out = new(string) + **out = **in + } + if in.Cipher != nil { + in, out := &in.Cipher, &out.Cipher + *out = new(string) + **out = **in + } + if in.Domain != nil { + in, out := &in.Domain, &out.Domain + *out = new(string) + **out = **in + } + if in.KeepPolicy != nil { + in, out := &in.KeepPolicy, &out.KeepPolicy + *out = new(bool) + **out = **in + } + if in.Pci3Ds != nil { + in, out := &in.Pci3Ds, &out.Pci3Ds + *out = new(bool) + **out = **in + } + if in.PciDss != nil { + in, out := &in.PciDss, &out.PciDss + *out = new(bool) + **out = **in + } + if in.PolicyID != nil { + in, out := &in.PolicyID, &out.PolicyID + *out = new(string) + **out = **in + } + if in.ProtectStatus != nil { + in, out := &in.ProtectStatus, &out.ProtectStatus + *out = new(float64) + **out = **in + } + if in.Proxy != nil { + in, out := &in.Proxy, &out.Proxy + *out = new(bool) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.Server != nil { + in, out := &in.Server, &out.Server + *out = make([]ServerInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.TLS != nil { + in, out := &in.TLS, &out.TLS + *out = new(string) + **out = **in + } + if in.TimeoutConfig != nil { + in, out := &in.TimeoutConfig, &out.TimeoutConfig + *out = make([]TimeoutConfigInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedDomainV1InitParameters. +func (in *DedicatedDomainV1InitParameters) DeepCopy() *DedicatedDomainV1InitParameters { + if in == nil { + return nil + } + out := new(DedicatedDomainV1InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedDomainV1List) DeepCopyInto(out *DedicatedDomainV1List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]DedicatedDomainV1, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedDomainV1List. +func (in *DedicatedDomainV1List) DeepCopy() *DedicatedDomainV1List { + if in == nil { + return nil + } + out := new(DedicatedDomainV1List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DedicatedDomainV1List) 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 *DedicatedDomainV1Observation) DeepCopyInto(out *DedicatedDomainV1Observation) { + *out = *in + if in.AccessStatus != nil { + in, out := &in.AccessStatus, &out.AccessStatus + *out = new(float64) + **out = **in + } + if in.AlarmPage != nil { + in, out := &in.AlarmPage, &out.AlarmPage + *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.CertificateID != nil { + in, out := &in.CertificateID, &out.CertificateID + *out = new(string) + **out = **in + } + if in.CertificateName != nil { + in, out := &in.CertificateName, &out.CertificateName + *out = new(string) + **out = **in + } + if in.Cipher != nil { + in, out := &in.Cipher, &out.Cipher + *out = new(string) + **out = **in + } + if in.ComplianceCertification != nil { + in, out := &in.ComplianceCertification, &out.ComplianceCertification + *out = make(map[string]*bool, len(*in)) + for key, val := range *in { + var outVal *bool + if val == nil { + (*out)[key] = nil + } else { + inVal := (*in)[key] + in, out := &inVal, &outVal + *out = new(bool) + **out = **in + } + (*out)[key] = outVal + } + } + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt + *out = new(float64) + **out = **in + } + if in.Domain != nil { + in, out := &in.Domain, &out.Domain + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.KeepPolicy != nil { + in, out := &in.KeepPolicy, &out.KeepPolicy + *out = new(bool) + **out = **in + } + if in.Pci3Ds != nil { + in, out := &in.Pci3Ds, &out.Pci3Ds + *out = new(bool) + **out = **in + } + if in.PciDss != nil { + in, out := &in.PciDss, &out.PciDss + *out = new(bool) + **out = **in + } + if in.PolicyID != nil { + in, out := &in.PolicyID, &out.PolicyID + *out = new(string) + **out = **in + } + if in.ProtectStatus != nil { + in, out := &in.ProtectStatus, &out.ProtectStatus + *out = new(float64) + **out = **in + } + if in.Protocol != nil { + in, out := &in.Protocol, &out.Protocol + *out = new(string) + **out = **in + } + if in.Proxy != nil { + in, out := &in.Proxy, &out.Proxy + *out = new(bool) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.Server != nil { + in, out := &in.Server, &out.Server + *out = make([]ServerObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.TLS != nil { + in, out := &in.TLS, &out.TLS + *out = new(string) + **out = **in + } + if in.TimeoutConfig != nil { + in, out := &in.TimeoutConfig, &out.TimeoutConfig + *out = make([]TimeoutConfigObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.TrafficIdentifier != nil { + in, out := &in.TrafficIdentifier, &out.TrafficIdentifier + *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 DedicatedDomainV1Observation. +func (in *DedicatedDomainV1Observation) DeepCopy() *DedicatedDomainV1Observation { + if in == nil { + return nil + } + out := new(DedicatedDomainV1Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedDomainV1Parameters) DeepCopyInto(out *DedicatedDomainV1Parameters) { + *out = *in + if in.CertificateID != nil { + in, out := &in.CertificateID, &out.CertificateID + *out = new(string) + **out = **in + } + if in.Cipher != nil { + in, out := &in.Cipher, &out.Cipher + *out = new(string) + **out = **in + } + if in.Domain != nil { + in, out := &in.Domain, &out.Domain + *out = new(string) + **out = **in + } + if in.KeepPolicy != nil { + in, out := &in.KeepPolicy, &out.KeepPolicy + *out = new(bool) + **out = **in + } + if in.Pci3Ds != nil { + in, out := &in.Pci3Ds, &out.Pci3Ds + *out = new(bool) + **out = **in + } + if in.PciDss != nil { + in, out := &in.PciDss, &out.PciDss + *out = new(bool) + **out = **in + } + if in.PolicyID != nil { + in, out := &in.PolicyID, &out.PolicyID + *out = new(string) + **out = **in + } + if in.ProtectStatus != nil { + in, out := &in.ProtectStatus, &out.ProtectStatus + *out = new(float64) + **out = **in + } + if in.Proxy != nil { + in, out := &in.Proxy, &out.Proxy + *out = new(bool) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.Server != nil { + in, out := &in.Server, &out.Server + *out = make([]ServerParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.TLS != nil { + in, out := &in.TLS, &out.TLS + *out = new(string) + **out = **in + } + if in.TimeoutConfig != nil { + in, out := &in.TimeoutConfig, &out.TimeoutConfig + *out = make([]TimeoutConfigParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedDomainV1Parameters. +func (in *DedicatedDomainV1Parameters) DeepCopy() *DedicatedDomainV1Parameters { + if in == nil { + return nil + } + out := new(DedicatedDomainV1Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedDomainV1Spec) DeepCopyInto(out *DedicatedDomainV1Spec) { + *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 DedicatedDomainV1Spec. +func (in *DedicatedDomainV1Spec) DeepCopy() *DedicatedDomainV1Spec { + if in == nil { + return nil + } + out := new(DedicatedDomainV1Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedDomainV1Status) DeepCopyInto(out *DedicatedDomainV1Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedDomainV1Status. +func (in *DedicatedDomainV1Status) DeepCopy() *DedicatedDomainV1Status { + if in == nil { + return nil + } + out := new(DedicatedDomainV1Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedGeoIPRuleV1) DeepCopyInto(out *DedicatedGeoIPRuleV1) { + *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 DedicatedGeoIPRuleV1. +func (in *DedicatedGeoIPRuleV1) DeepCopy() *DedicatedGeoIPRuleV1 { + if in == nil { + return nil + } + out := new(DedicatedGeoIPRuleV1) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DedicatedGeoIPRuleV1) 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 *DedicatedGeoIPRuleV1InitParameters) DeepCopyInto(out *DedicatedGeoIPRuleV1InitParameters) { + *out = *in + if in.Action != nil { + in, out := &in.Action, &out.Action + *out = new(float64) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PolicyID != nil { + in, out := &in.PolicyID, &out.PolicyID + *out = new(string) + **out = **in + } + if in.RegionCode != nil { + in, out := &in.RegionCode, &out.RegionCode + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedGeoIPRuleV1InitParameters. +func (in *DedicatedGeoIPRuleV1InitParameters) DeepCopy() *DedicatedGeoIPRuleV1InitParameters { + if in == nil { + return nil + } + out := new(DedicatedGeoIPRuleV1InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedGeoIPRuleV1List) DeepCopyInto(out *DedicatedGeoIPRuleV1List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]DedicatedGeoIPRuleV1, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedGeoIPRuleV1List. +func (in *DedicatedGeoIPRuleV1List) DeepCopy() *DedicatedGeoIPRuleV1List { + if in == nil { + return nil + } + out := new(DedicatedGeoIPRuleV1List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DedicatedGeoIPRuleV1List) 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 *DedicatedGeoIPRuleV1Observation) DeepCopyInto(out *DedicatedGeoIPRuleV1Observation) { + *out = *in + if in.Action != nil { + in, out := &in.Action, &out.Action + *out = new(float64) + **out = **in + } + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt + *out = new(float64) + **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.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PolicyID != nil { + in, out := &in.PolicyID, &out.PolicyID + *out = new(string) + **out = **in + } + if in.RegionCode != nil { + in, out := &in.RegionCode, &out.RegionCode + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedGeoIPRuleV1Observation. +func (in *DedicatedGeoIPRuleV1Observation) DeepCopy() *DedicatedGeoIPRuleV1Observation { + if in == nil { + return nil + } + out := new(DedicatedGeoIPRuleV1Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedGeoIPRuleV1Parameters) DeepCopyInto(out *DedicatedGeoIPRuleV1Parameters) { + *out = *in + if in.Action != nil { + in, out := &in.Action, &out.Action + *out = new(float64) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.PolicyID != nil { + in, out := &in.PolicyID, &out.PolicyID + *out = new(string) + **out = **in + } + if in.RegionCode != nil { + in, out := &in.RegionCode, &out.RegionCode + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedGeoIPRuleV1Parameters. +func (in *DedicatedGeoIPRuleV1Parameters) DeepCopy() *DedicatedGeoIPRuleV1Parameters { + if in == nil { + return nil + } + out := new(DedicatedGeoIPRuleV1Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedGeoIPRuleV1Spec) DeepCopyInto(out *DedicatedGeoIPRuleV1Spec) { + *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 DedicatedGeoIPRuleV1Spec. +func (in *DedicatedGeoIPRuleV1Spec) DeepCopy() *DedicatedGeoIPRuleV1Spec { + if in == nil { + return nil + } + out := new(DedicatedGeoIPRuleV1Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedGeoIPRuleV1Status) DeepCopyInto(out *DedicatedGeoIPRuleV1Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedGeoIPRuleV1Status. +func (in *DedicatedGeoIPRuleV1Status) DeepCopy() *DedicatedGeoIPRuleV1Status { + if in == nil { + return nil + } + out := new(DedicatedGeoIPRuleV1Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedInstanceV1) DeepCopyInto(out *DedicatedInstanceV1) { + *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 DedicatedInstanceV1. +func (in *DedicatedInstanceV1) DeepCopy() *DedicatedInstanceV1 { + if in == nil { + return nil + } + out := new(DedicatedInstanceV1) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DedicatedInstanceV1) 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 *DedicatedInstanceV1InitParameters) DeepCopyInto(out *DedicatedInstanceV1InitParameters) { + *out = *in + if in.Architecture != nil { + in, out := &in.Architecture, &out.Architecture + *out = new(string) + **out = **in + } + if in.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *out = new(string) + **out = **in + } + if in.Flavor != nil { + in, out := &in.Flavor, &out.Flavor + *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.ResTenant != nil { + in, out := &in.ResTenant, &out.ResTenant + *out = new(bool) + **out = **in + } + if in.SecurityGroup != nil { + in, out := &in.SecurityGroup, &out.SecurityGroup + *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.Specification != nil { + in, out := &in.Specification, &out.Specification + *out = new(string) + **out = **in + } + if in.SubnetID != nil { + in, out := &in.SubnetID, &out.SubnetID + *out = new(string) + **out = **in + } + if in.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedInstanceV1InitParameters. +func (in *DedicatedInstanceV1InitParameters) DeepCopy() *DedicatedInstanceV1InitParameters { + if in == nil { + return nil + } + out := new(DedicatedInstanceV1InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedInstanceV1List) DeepCopyInto(out *DedicatedInstanceV1List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]DedicatedInstanceV1, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedInstanceV1List. +func (in *DedicatedInstanceV1List) DeepCopy() *DedicatedInstanceV1List { + if in == nil { + return nil + } + out := new(DedicatedInstanceV1List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DedicatedInstanceV1List) 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 *DedicatedInstanceV1Observation) DeepCopyInto(out *DedicatedInstanceV1Observation) { + *out = *in + if in.AccessStatus != nil { + in, out := &in.AccessStatus, &out.AccessStatus + *out = new(float64) + **out = **in + } + if in.Architecture != nil { + in, out := &in.Architecture, &out.Architecture + *out = new(string) + **out = **in + } + if in.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *out = new(string) + **out = **in + } + if in.BillingStatus != nil { + in, out := &in.BillingStatus, &out.BillingStatus + *out = new(float64) + **out = **in + } + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt + *out = new(float64) + **out = **in + } + if in.Flavor != nil { + in, out := &in.Flavor, &out.Flavor + *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.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.ResTenant != nil { + in, out := &in.ResTenant, &out.ResTenant + *out = new(bool) + **out = **in + } + if in.SecurityGroup != nil { + in, out := &in.SecurityGroup, &out.SecurityGroup + *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.ServerID != nil { + in, out := &in.ServerID, &out.ServerID + *out = new(string) + **out = **in + } + if in.ServiceIP != nil { + in, out := &in.ServiceIP, &out.ServiceIP + *out = new(string) + **out = **in + } + if in.Specification != nil { + in, out := &in.Specification, &out.Specification + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(float64) + **out = **in + } + if in.SubnetID != nil { + in, out := &in.SubnetID, &out.SubnetID + *out = new(string) + **out = **in + } + if in.Upgradable != nil { + in, out := &in.Upgradable, &out.Upgradable + *out = new(bool) + **out = **in + } + if in.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedInstanceV1Observation. +func (in *DedicatedInstanceV1Observation) DeepCopy() *DedicatedInstanceV1Observation { + if in == nil { + return nil + } + out := new(DedicatedInstanceV1Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedInstanceV1Parameters) DeepCopyInto(out *DedicatedInstanceV1Parameters) { + *out = *in + if in.Architecture != nil { + in, out := &in.Architecture, &out.Architecture + *out = new(string) + **out = **in + } + if in.AvailabilityZone != nil { + in, out := &in.AvailabilityZone, &out.AvailabilityZone + *out = new(string) + **out = **in + } + if in.Flavor != nil { + in, out := &in.Flavor, &out.Flavor + *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.ResTenant != nil { + in, out := &in.ResTenant, &out.ResTenant + *out = new(bool) + **out = **in + } + if in.SecurityGroup != nil { + in, out := &in.SecurityGroup, &out.SecurityGroup + *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.Specification != nil { + in, out := &in.Specification, &out.Specification + *out = new(string) + **out = **in + } + if in.SubnetID != nil { + in, out := &in.SubnetID, &out.SubnetID + *out = new(string) + **out = **in + } + if in.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedInstanceV1Parameters. +func (in *DedicatedInstanceV1Parameters) DeepCopy() *DedicatedInstanceV1Parameters { + if in == nil { + return nil + } + out := new(DedicatedInstanceV1Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedInstanceV1Spec) DeepCopyInto(out *DedicatedInstanceV1Spec) { + *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 DedicatedInstanceV1Spec. +func (in *DedicatedInstanceV1Spec) DeepCopy() *DedicatedInstanceV1Spec { + if in == nil { + return nil + } + out := new(DedicatedInstanceV1Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedInstanceV1Status) DeepCopyInto(out *DedicatedInstanceV1Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedInstanceV1Status. +func (in *DedicatedInstanceV1Status) DeepCopy() *DedicatedInstanceV1Status { + if in == nil { + return nil + } + out := new(DedicatedInstanceV1Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedKnownAttackSourceRuleV1) DeepCopyInto(out *DedicatedKnownAttackSourceRuleV1) { + *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 DedicatedKnownAttackSourceRuleV1. +func (in *DedicatedKnownAttackSourceRuleV1) DeepCopy() *DedicatedKnownAttackSourceRuleV1 { + if in == nil { + return nil + } + out := new(DedicatedKnownAttackSourceRuleV1) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DedicatedKnownAttackSourceRuleV1) 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 *DedicatedKnownAttackSourceRuleV1InitParameters) DeepCopyInto(out *DedicatedKnownAttackSourceRuleV1InitParameters) { + *out = *in + if in.BlockTime != nil { + in, out := &in.BlockTime, &out.BlockTime + *out = new(float64) + **out = **in + } + if in.Category != nil { + in, out := &in.Category, &out.Category + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.PolicyID != nil { + in, out := &in.PolicyID, &out.PolicyID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedKnownAttackSourceRuleV1InitParameters. +func (in *DedicatedKnownAttackSourceRuleV1InitParameters) DeepCopy() *DedicatedKnownAttackSourceRuleV1InitParameters { + if in == nil { + return nil + } + out := new(DedicatedKnownAttackSourceRuleV1InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedKnownAttackSourceRuleV1List) DeepCopyInto(out *DedicatedKnownAttackSourceRuleV1List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]DedicatedKnownAttackSourceRuleV1, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedKnownAttackSourceRuleV1List. +func (in *DedicatedKnownAttackSourceRuleV1List) DeepCopy() *DedicatedKnownAttackSourceRuleV1List { + if in == nil { + return nil + } + out := new(DedicatedKnownAttackSourceRuleV1List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DedicatedKnownAttackSourceRuleV1List) 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 *DedicatedKnownAttackSourceRuleV1Observation) DeepCopyInto(out *DedicatedKnownAttackSourceRuleV1Observation) { + *out = *in + if in.BlockTime != nil { + in, out := &in.BlockTime, &out.BlockTime + *out = new(float64) + **out = **in + } + if in.Category != nil { + in, out := &in.Category, &out.Category + *out = new(string) + **out = **in + } + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt + *out = new(float64) + **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.PolicyID != nil { + in, out := &in.PolicyID, &out.PolicyID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedKnownAttackSourceRuleV1Observation. +func (in *DedicatedKnownAttackSourceRuleV1Observation) DeepCopy() *DedicatedKnownAttackSourceRuleV1Observation { + if in == nil { + return nil + } + out := new(DedicatedKnownAttackSourceRuleV1Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedKnownAttackSourceRuleV1Parameters) DeepCopyInto(out *DedicatedKnownAttackSourceRuleV1Parameters) { + *out = *in + if in.BlockTime != nil { + in, out := &in.BlockTime, &out.BlockTime + *out = new(float64) + **out = **in + } + if in.Category != nil { + in, out := &in.Category, &out.Category + *out = new(string) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.PolicyID != nil { + in, out := &in.PolicyID, &out.PolicyID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedKnownAttackSourceRuleV1Parameters. +func (in *DedicatedKnownAttackSourceRuleV1Parameters) DeepCopy() *DedicatedKnownAttackSourceRuleV1Parameters { + if in == nil { + return nil + } + out := new(DedicatedKnownAttackSourceRuleV1Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedKnownAttackSourceRuleV1Spec) DeepCopyInto(out *DedicatedKnownAttackSourceRuleV1Spec) { + *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 DedicatedKnownAttackSourceRuleV1Spec. +func (in *DedicatedKnownAttackSourceRuleV1Spec) DeepCopy() *DedicatedKnownAttackSourceRuleV1Spec { + if in == nil { + return nil + } + out := new(DedicatedKnownAttackSourceRuleV1Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedKnownAttackSourceRuleV1Status) DeepCopyInto(out *DedicatedKnownAttackSourceRuleV1Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedKnownAttackSourceRuleV1Status. +func (in *DedicatedKnownAttackSourceRuleV1Status) DeepCopy() *DedicatedKnownAttackSourceRuleV1Status { + if in == nil { + return nil + } + out := new(DedicatedKnownAttackSourceRuleV1Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedPolicyV1) DeepCopyInto(out *DedicatedPolicyV1) { + *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 DedicatedPolicyV1. +func (in *DedicatedPolicyV1) DeepCopy() *DedicatedPolicyV1 { + if in == nil { + return nil + } + out := new(DedicatedPolicyV1) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DedicatedPolicyV1) 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 *DedicatedPolicyV1InitParameters) DeepCopyInto(out *DedicatedPolicyV1InitParameters) { + *out = *in + if in.FullDetection != nil { + in, out := &in.FullDetection, &out.FullDetection + *out = new(bool) + **out = **in + } + if in.Level != nil { + in, out := &in.Level, &out.Level + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Options != nil { + in, out := &in.Options, &out.Options + *out = make([]OptionsInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ProtectionMode != nil { + in, out := &in.ProtectionMode, &out.ProtectionMode + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedPolicyV1InitParameters. +func (in *DedicatedPolicyV1InitParameters) DeepCopy() *DedicatedPolicyV1InitParameters { + if in == nil { + return nil + } + out := new(DedicatedPolicyV1InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedPolicyV1List) DeepCopyInto(out *DedicatedPolicyV1List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]DedicatedPolicyV1, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedPolicyV1List. +func (in *DedicatedPolicyV1List) DeepCopy() *DedicatedPolicyV1List { + if in == nil { + return nil + } + out := new(DedicatedPolicyV1List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DedicatedPolicyV1List) 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 *DedicatedPolicyV1Observation) DeepCopyInto(out *DedicatedPolicyV1Observation) { + *out = *in + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt + *out = new(float64) + **out = **in + } + if in.Domains != nil { + in, out := &in.Domains, &out.Domains + *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.FullDetection != nil { + in, out := &in.FullDetection, &out.FullDetection + *out = new(bool) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.Level != nil { + in, out := &in.Level, &out.Level + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Options != nil { + in, out := &in.Options, &out.Options + *out = make([]OptionsObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ProtectionMode != nil { + in, out := &in.ProtectionMode, &out.ProtectionMode + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedPolicyV1Observation. +func (in *DedicatedPolicyV1Observation) DeepCopy() *DedicatedPolicyV1Observation { + if in == nil { + return nil + } + out := new(DedicatedPolicyV1Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedPolicyV1Parameters) DeepCopyInto(out *DedicatedPolicyV1Parameters) { + *out = *in + if in.FullDetection != nil { + in, out := &in.FullDetection, &out.FullDetection + *out = new(bool) + **out = **in + } + if in.Level != nil { + in, out := &in.Level, &out.Level + *out = new(float64) + **out = **in + } + if in.Name != nil { + in, out := &in.Name, &out.Name + *out = new(string) + **out = **in + } + if in.Options != nil { + in, out := &in.Options, &out.Options + *out = make([]OptionsParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ProtectionMode != nil { + in, out := &in.ProtectionMode, &out.ProtectionMode + *out = new(string) + **out = **in + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedPolicyV1Parameters. +func (in *DedicatedPolicyV1Parameters) DeepCopy() *DedicatedPolicyV1Parameters { + if in == nil { + return nil + } + out := new(DedicatedPolicyV1Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedPolicyV1Spec) DeepCopyInto(out *DedicatedPolicyV1Spec) { + *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 DedicatedPolicyV1Spec. +func (in *DedicatedPolicyV1Spec) DeepCopy() *DedicatedPolicyV1Spec { + if in == nil { + return nil + } + out := new(DedicatedPolicyV1Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedPolicyV1Status) DeepCopyInto(out *DedicatedPolicyV1Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedPolicyV1Status. +func (in *DedicatedPolicyV1Status) DeepCopy() *DedicatedPolicyV1Status { + if in == nil { + return nil + } + out := new(DedicatedPolicyV1Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedPreciseProtectionRuleV1) DeepCopyInto(out *DedicatedPreciseProtectionRuleV1) { + *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 DedicatedPreciseProtectionRuleV1. +func (in *DedicatedPreciseProtectionRuleV1) DeepCopy() *DedicatedPreciseProtectionRuleV1 { + if in == nil { + return nil + } + out := new(DedicatedPreciseProtectionRuleV1) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DedicatedPreciseProtectionRuleV1) 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 *DedicatedPreciseProtectionRuleV1ActionInitParameters) DeepCopyInto(out *DedicatedPreciseProtectionRuleV1ActionInitParameters) { + *out = *in + if in.Category != nil { + in, out := &in.Category, &out.Category + *out = new(string) + **out = **in + } + if in.FollowedActionID != nil { + in, out := &in.FollowedActionID, &out.FollowedActionID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedPreciseProtectionRuleV1ActionInitParameters. +func (in *DedicatedPreciseProtectionRuleV1ActionInitParameters) DeepCopy() *DedicatedPreciseProtectionRuleV1ActionInitParameters { + if in == nil { + return nil + } + out := new(DedicatedPreciseProtectionRuleV1ActionInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedPreciseProtectionRuleV1ActionObservation) DeepCopyInto(out *DedicatedPreciseProtectionRuleV1ActionObservation) { + *out = *in + if in.Category != nil { + in, out := &in.Category, &out.Category + *out = new(string) + **out = **in + } + if in.FollowedActionID != nil { + in, out := &in.FollowedActionID, &out.FollowedActionID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedPreciseProtectionRuleV1ActionObservation. +func (in *DedicatedPreciseProtectionRuleV1ActionObservation) DeepCopy() *DedicatedPreciseProtectionRuleV1ActionObservation { + if in == nil { + return nil + } + out := new(DedicatedPreciseProtectionRuleV1ActionObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedPreciseProtectionRuleV1ActionParameters) DeepCopyInto(out *DedicatedPreciseProtectionRuleV1ActionParameters) { + *out = *in + if in.Category != nil { + in, out := &in.Category, &out.Category + *out = new(string) + **out = **in + } + if in.FollowedActionID != nil { + in, out := &in.FollowedActionID, &out.FollowedActionID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedPreciseProtectionRuleV1ActionParameters. +func (in *DedicatedPreciseProtectionRuleV1ActionParameters) DeepCopy() *DedicatedPreciseProtectionRuleV1ActionParameters { + if in == nil { + return nil + } + out := new(DedicatedPreciseProtectionRuleV1ActionParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedPreciseProtectionRuleV1ConditionsInitParameters) DeepCopyInto(out *DedicatedPreciseProtectionRuleV1ConditionsInitParameters) { + *out = *in + if in.Category != nil { + in, out := &in.Category, &out.Category + *out = new(string) + **out = **in + } + if in.Contents != nil { + in, out := &in.Contents, &out.Contents + *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.Index != nil { + in, out := &in.Index, &out.Index + *out = new(string) + **out = **in + } + if in.LogicOperation != nil { + in, out := &in.LogicOperation, &out.LogicOperation + *out = new(string) + **out = **in + } + if in.ValueListID != nil { + in, out := &in.ValueListID, &out.ValueListID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedPreciseProtectionRuleV1ConditionsInitParameters. +func (in *DedicatedPreciseProtectionRuleV1ConditionsInitParameters) DeepCopy() *DedicatedPreciseProtectionRuleV1ConditionsInitParameters { + if in == nil { + return nil + } + out := new(DedicatedPreciseProtectionRuleV1ConditionsInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedPreciseProtectionRuleV1ConditionsObservation) DeepCopyInto(out *DedicatedPreciseProtectionRuleV1ConditionsObservation) { + *out = *in + if in.Category != nil { + in, out := &in.Category, &out.Category + *out = new(string) + **out = **in + } + if in.Contents != nil { + in, out := &in.Contents, &out.Contents + *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.Index != nil { + in, out := &in.Index, &out.Index + *out = new(string) + **out = **in + } + if in.LogicOperation != nil { + in, out := &in.LogicOperation, &out.LogicOperation + *out = new(string) + **out = **in + } + if in.ValueListID != nil { + in, out := &in.ValueListID, &out.ValueListID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedPreciseProtectionRuleV1ConditionsObservation. +func (in *DedicatedPreciseProtectionRuleV1ConditionsObservation) DeepCopy() *DedicatedPreciseProtectionRuleV1ConditionsObservation { + if in == nil { + return nil + } + out := new(DedicatedPreciseProtectionRuleV1ConditionsObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedPreciseProtectionRuleV1ConditionsParameters) DeepCopyInto(out *DedicatedPreciseProtectionRuleV1ConditionsParameters) { + *out = *in + if in.Category != nil { + in, out := &in.Category, &out.Category + *out = new(string) + **out = **in + } + if in.Contents != nil { + in, out := &in.Contents, &out.Contents + *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.Index != nil { + in, out := &in.Index, &out.Index + *out = new(string) + **out = **in + } + if in.LogicOperation != nil { + in, out := &in.LogicOperation, &out.LogicOperation + *out = new(string) + **out = **in + } + if in.ValueListID != nil { + in, out := &in.ValueListID, &out.ValueListID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedPreciseProtectionRuleV1ConditionsParameters. +func (in *DedicatedPreciseProtectionRuleV1ConditionsParameters) DeepCopy() *DedicatedPreciseProtectionRuleV1ConditionsParameters { + if in == nil { + return nil + } + out := new(DedicatedPreciseProtectionRuleV1ConditionsParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedPreciseProtectionRuleV1InitParameters) DeepCopyInto(out *DedicatedPreciseProtectionRuleV1InitParameters) { + *out = *in + if in.Action != nil { + in, out := &in.Action, &out.Action + *out = make([]DedicatedPreciseProtectionRuleV1ActionInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]DedicatedPreciseProtectionRuleV1ConditionsInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.PolicyID != nil { + in, out := &in.PolicyID, &out.PolicyID + *out = new(string) + **out = **in + } + if in.Priority != nil { + in, out := &in.Priority, &out.Priority + *out = new(float64) + **out = **in + } + if in.Start != nil { + in, out := &in.Start, &out.Start + *out = new(float64) + **out = **in + } + if in.Terminal != nil { + in, out := &in.Terminal, &out.Terminal + *out = new(float64) + **out = **in + } + if in.Time != nil { + in, out := &in.Time, &out.Time + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedPreciseProtectionRuleV1InitParameters. +func (in *DedicatedPreciseProtectionRuleV1InitParameters) DeepCopy() *DedicatedPreciseProtectionRuleV1InitParameters { + if in == nil { + return nil + } + out := new(DedicatedPreciseProtectionRuleV1InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedPreciseProtectionRuleV1List) DeepCopyInto(out *DedicatedPreciseProtectionRuleV1List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]DedicatedPreciseProtectionRuleV1, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedPreciseProtectionRuleV1List. +func (in *DedicatedPreciseProtectionRuleV1List) DeepCopy() *DedicatedPreciseProtectionRuleV1List { + if in == nil { + return nil + } + out := new(DedicatedPreciseProtectionRuleV1List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DedicatedPreciseProtectionRuleV1List) 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 *DedicatedPreciseProtectionRuleV1Observation) DeepCopyInto(out *DedicatedPreciseProtectionRuleV1Observation) { + *out = *in + if in.Action != nil { + in, out := &in.Action, &out.Action + *out = make([]DedicatedPreciseProtectionRuleV1ActionObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]DedicatedPreciseProtectionRuleV1ConditionsObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt + *out = new(float64) + **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.PolicyID != nil { + in, out := &in.PolicyID, &out.PolicyID + *out = new(string) + **out = **in + } + if in.Priority != nil { + in, out := &in.Priority, &out.Priority + *out = new(float64) + **out = **in + } + if in.Start != nil { + in, out := &in.Start, &out.Start + *out = new(float64) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(float64) + **out = **in + } + if in.Terminal != nil { + in, out := &in.Terminal, &out.Terminal + *out = new(float64) + **out = **in + } + if in.Time != nil { + in, out := &in.Time, &out.Time + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedPreciseProtectionRuleV1Observation. +func (in *DedicatedPreciseProtectionRuleV1Observation) DeepCopy() *DedicatedPreciseProtectionRuleV1Observation { + if in == nil { + return nil + } + out := new(DedicatedPreciseProtectionRuleV1Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedPreciseProtectionRuleV1Parameters) DeepCopyInto(out *DedicatedPreciseProtectionRuleV1Parameters) { + *out = *in + if in.Action != nil { + in, out := &in.Action, &out.Action + *out = make([]DedicatedPreciseProtectionRuleV1ActionParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]DedicatedPreciseProtectionRuleV1ConditionsParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.PolicyID != nil { + in, out := &in.PolicyID, &out.PolicyID + *out = new(string) + **out = **in + } + if in.Priority != nil { + in, out := &in.Priority, &out.Priority + *out = new(float64) + **out = **in + } + if in.Start != nil { + in, out := &in.Start, &out.Start + *out = new(float64) + **out = **in + } + if in.Terminal != nil { + in, out := &in.Terminal, &out.Terminal + *out = new(float64) + **out = **in + } + if in.Time != nil { + in, out := &in.Time, &out.Time + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedPreciseProtectionRuleV1Parameters. +func (in *DedicatedPreciseProtectionRuleV1Parameters) DeepCopy() *DedicatedPreciseProtectionRuleV1Parameters { + if in == nil { + return nil + } + out := new(DedicatedPreciseProtectionRuleV1Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedPreciseProtectionRuleV1Spec) DeepCopyInto(out *DedicatedPreciseProtectionRuleV1Spec) { + *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 DedicatedPreciseProtectionRuleV1Spec. +func (in *DedicatedPreciseProtectionRuleV1Spec) DeepCopy() *DedicatedPreciseProtectionRuleV1Spec { + if in == nil { + return nil + } + out := new(DedicatedPreciseProtectionRuleV1Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedPreciseProtectionRuleV1Status) DeepCopyInto(out *DedicatedPreciseProtectionRuleV1Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedPreciseProtectionRuleV1Status. +func (in *DedicatedPreciseProtectionRuleV1Status) DeepCopy() *DedicatedPreciseProtectionRuleV1Status { + if in == nil { + return nil + } + out := new(DedicatedPreciseProtectionRuleV1Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedReferenceTableV1) DeepCopyInto(out *DedicatedReferenceTableV1) { + *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 DedicatedReferenceTableV1. +func (in *DedicatedReferenceTableV1) DeepCopy() *DedicatedReferenceTableV1 { + if in == nil { + return nil + } + out := new(DedicatedReferenceTableV1) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DedicatedReferenceTableV1) 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 *DedicatedReferenceTableV1InitParameters) DeepCopyInto(out *DedicatedReferenceTableV1InitParameters) { + *out = *in + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *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.Description != nil { + in, out := &in.Description, &out.Description + *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.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 DedicatedReferenceTableV1InitParameters. +func (in *DedicatedReferenceTableV1InitParameters) DeepCopy() *DedicatedReferenceTableV1InitParameters { + if in == nil { + return nil + } + out := new(DedicatedReferenceTableV1InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedReferenceTableV1List) DeepCopyInto(out *DedicatedReferenceTableV1List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]DedicatedReferenceTableV1, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedReferenceTableV1List. +func (in *DedicatedReferenceTableV1List) DeepCopy() *DedicatedReferenceTableV1List { + if in == nil { + return nil + } + out := new(DedicatedReferenceTableV1List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DedicatedReferenceTableV1List) 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 *DedicatedReferenceTableV1Observation) DeepCopyInto(out *DedicatedReferenceTableV1Observation) { + *out = *in + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *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.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.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.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 DedicatedReferenceTableV1Observation. +func (in *DedicatedReferenceTableV1Observation) DeepCopy() *DedicatedReferenceTableV1Observation { + if in == nil { + return nil + } + out := new(DedicatedReferenceTableV1Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedReferenceTableV1Parameters) DeepCopyInto(out *DedicatedReferenceTableV1Parameters) { + *out = *in + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *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.Description != nil { + in, out := &in.Description, &out.Description + *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.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 DedicatedReferenceTableV1Parameters. +func (in *DedicatedReferenceTableV1Parameters) DeepCopy() *DedicatedReferenceTableV1Parameters { + if in == nil { + return nil + } + out := new(DedicatedReferenceTableV1Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedReferenceTableV1Spec) DeepCopyInto(out *DedicatedReferenceTableV1Spec) { + *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 DedicatedReferenceTableV1Spec. +func (in *DedicatedReferenceTableV1Spec) DeepCopy() *DedicatedReferenceTableV1Spec { + if in == nil { + return nil + } + out := new(DedicatedReferenceTableV1Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedReferenceTableV1Status) DeepCopyInto(out *DedicatedReferenceTableV1Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedReferenceTableV1Status. +func (in *DedicatedReferenceTableV1Status) DeepCopy() *DedicatedReferenceTableV1Status { + if in == nil { + return nil + } + out := new(DedicatedReferenceTableV1Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedWebTamperRuleV1) DeepCopyInto(out *DedicatedWebTamperRuleV1) { + *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 DedicatedWebTamperRuleV1. +func (in *DedicatedWebTamperRuleV1) DeepCopy() *DedicatedWebTamperRuleV1 { + if in == nil { + return nil + } + out := new(DedicatedWebTamperRuleV1) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DedicatedWebTamperRuleV1) 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 *DedicatedWebTamperRuleV1InitParameters) DeepCopyInto(out *DedicatedWebTamperRuleV1InitParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Hostname != nil { + in, out := &in.Hostname, &out.Hostname + *out = new(string) + **out = **in + } + if in.PolicyID != nil { + in, out := &in.PolicyID, &out.PolicyID + *out = new(string) + **out = **in + } + if in.URL != nil { + in, out := &in.URL, &out.URL + *out = new(string) + **out = **in + } + if in.UpdateCache != nil { + in, out := &in.UpdateCache, &out.UpdateCache + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedWebTamperRuleV1InitParameters. +func (in *DedicatedWebTamperRuleV1InitParameters) DeepCopy() *DedicatedWebTamperRuleV1InitParameters { + if in == nil { + return nil + } + out := new(DedicatedWebTamperRuleV1InitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedWebTamperRuleV1List) DeepCopyInto(out *DedicatedWebTamperRuleV1List) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]DedicatedWebTamperRuleV1, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedWebTamperRuleV1List. +func (in *DedicatedWebTamperRuleV1List) DeepCopy() *DedicatedWebTamperRuleV1List { + if in == nil { + return nil + } + out := new(DedicatedWebTamperRuleV1List) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *DedicatedWebTamperRuleV1List) 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 *DedicatedWebTamperRuleV1Observation) DeepCopyInto(out *DedicatedWebTamperRuleV1Observation) { + *out = *in + if in.CreatedAt != nil { + in, out := &in.CreatedAt, &out.CreatedAt + *out = new(float64) + **out = **in + } + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Hostname != nil { + in, out := &in.Hostname, &out.Hostname + *out = new(string) + **out = **in + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.PolicyID != nil { + in, out := &in.PolicyID, &out.PolicyID + *out = new(string) + **out = **in + } + if in.Status != nil { + in, out := &in.Status, &out.Status + *out = new(float64) + **out = **in + } + if in.URL != nil { + in, out := &in.URL, &out.URL + *out = new(string) + **out = **in + } + if in.UpdateCache != nil { + in, out := &in.UpdateCache, &out.UpdateCache + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedWebTamperRuleV1Observation. +func (in *DedicatedWebTamperRuleV1Observation) DeepCopy() *DedicatedWebTamperRuleV1Observation { + if in == nil { + return nil + } + out := new(DedicatedWebTamperRuleV1Observation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedWebTamperRuleV1Parameters) DeepCopyInto(out *DedicatedWebTamperRuleV1Parameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.Hostname != nil { + in, out := &in.Hostname, &out.Hostname + *out = new(string) + **out = **in + } + if in.PolicyID != nil { + in, out := &in.PolicyID, &out.PolicyID + *out = new(string) + **out = **in + } + if in.URL != nil { + in, out := &in.URL, &out.URL + *out = new(string) + **out = **in + } + if in.UpdateCache != nil { + in, out := &in.UpdateCache, &out.UpdateCache + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedWebTamperRuleV1Parameters. +func (in *DedicatedWebTamperRuleV1Parameters) DeepCopy() *DedicatedWebTamperRuleV1Parameters { + if in == nil { + return nil + } + out := new(DedicatedWebTamperRuleV1Parameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedWebTamperRuleV1Spec) DeepCopyInto(out *DedicatedWebTamperRuleV1Spec) { + *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 DedicatedWebTamperRuleV1Spec. +func (in *DedicatedWebTamperRuleV1Spec) DeepCopy() *DedicatedWebTamperRuleV1Spec { + if in == nil { + return nil + } + out := new(DedicatedWebTamperRuleV1Spec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DedicatedWebTamperRuleV1Status) DeepCopyInto(out *DedicatedWebTamperRuleV1Status) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DedicatedWebTamperRuleV1Status. +func (in *DedicatedWebTamperRuleV1Status) DeepCopy() *DedicatedWebTamperRuleV1Status { + if in == nil { + return nil + } + out := new(DedicatedWebTamperRuleV1Status) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OptionsInitParameters) DeepCopyInto(out *OptionsInitParameters) { + *out = *in + if in.AntiCrawler != nil { + in, out := &in.AntiCrawler, &out.AntiCrawler + *out = new(bool) + **out = **in + } + if in.AntiLeakage != nil { + in, out := &in.AntiLeakage, &out.AntiLeakage + *out = new(bool) + **out = **in + } + if in.AntiTamper != nil { + in, out := &in.AntiTamper, &out.AntiTamper + *out = new(bool) + **out = **in + } + if in.Blacklist != nil { + in, out := &in.Blacklist, &out.Blacklist + *out = new(bool) + **out = **in + } + if in.Cc != nil { + in, out := &in.Cc, &out.Cc + *out = new(bool) + **out = **in + } + if in.Common != nil { + in, out := &in.Common, &out.Common + *out = new(bool) + **out = **in + } + if in.Crawler != nil { + in, out := &in.Crawler, &out.Crawler + *out = new(bool) + **out = **in + } + if in.CrawlerEngine != nil { + in, out := &in.CrawlerEngine, &out.CrawlerEngine + *out = new(bool) + **out = **in + } + if in.CrawlerOther != nil { + in, out := &in.CrawlerOther, &out.CrawlerOther + *out = new(bool) + **out = **in + } + if in.CrawlerScanner != nil { + in, out := &in.CrawlerScanner, &out.CrawlerScanner + *out = new(bool) + **out = **in + } + if in.CrawlerScript != nil { + in, out := &in.CrawlerScript, &out.CrawlerScript + *out = new(bool) + **out = **in + } + if in.Custom != nil { + in, out := &in.Custom, &out.Custom + *out = new(bool) + **out = **in + } + if in.FollowedAction != nil { + in, out := &in.FollowedAction, &out.FollowedAction + *out = new(bool) + **out = **in + } + if in.GeolocationAccessControl != nil { + in, out := &in.GeolocationAccessControl, &out.GeolocationAccessControl + *out = new(bool) + **out = **in + } + if in.Ignore != nil { + in, out := &in.Ignore, &out.Ignore + *out = new(bool) + **out = **in + } + if in.Privacy != nil { + in, out := &in.Privacy, &out.Privacy + *out = new(bool) + **out = **in + } + if in.WebAttack != nil { + in, out := &in.WebAttack, &out.WebAttack + *out = new(bool) + **out = **in + } + if in.WebShell != nil { + in, out := &in.WebShell, &out.WebShell + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OptionsInitParameters. +func (in *OptionsInitParameters) DeepCopy() *OptionsInitParameters { + if in == nil { + return nil + } + out := new(OptionsInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OptionsObservation) DeepCopyInto(out *OptionsObservation) { + *out = *in + if in.AntiCrawler != nil { + in, out := &in.AntiCrawler, &out.AntiCrawler + *out = new(bool) + **out = **in + } + if in.AntiLeakage != nil { + in, out := &in.AntiLeakage, &out.AntiLeakage + *out = new(bool) + **out = **in + } + if in.AntiTamper != nil { + in, out := &in.AntiTamper, &out.AntiTamper + *out = new(bool) + **out = **in + } + if in.Blacklist != nil { + in, out := &in.Blacklist, &out.Blacklist + *out = new(bool) + **out = **in + } + if in.BotEnable != nil { + in, out := &in.BotEnable, &out.BotEnable + *out = new(bool) + **out = **in + } + if in.Cc != nil { + in, out := &in.Cc, &out.Cc + *out = new(bool) + **out = **in + } + if in.Common != nil { + in, out := &in.Common, &out.Common + *out = new(bool) + **out = **in + } + if in.Crawler != nil { + in, out := &in.Crawler, &out.Crawler + *out = new(bool) + **out = **in + } + if in.CrawlerEngine != nil { + in, out := &in.CrawlerEngine, &out.CrawlerEngine + *out = new(bool) + **out = **in + } + if in.CrawlerOther != nil { + in, out := &in.CrawlerOther, &out.CrawlerOther + *out = new(bool) + **out = **in + } + if in.CrawlerScanner != nil { + in, out := &in.CrawlerScanner, &out.CrawlerScanner + *out = new(bool) + **out = **in + } + if in.CrawlerScript != nil { + in, out := &in.CrawlerScript, &out.CrawlerScript + *out = new(bool) + **out = **in + } + if in.Custom != nil { + in, out := &in.Custom, &out.Custom + *out = new(bool) + **out = **in + } + if in.FollowedAction != nil { + in, out := &in.FollowedAction, &out.FollowedAction + *out = new(bool) + **out = **in + } + if in.GeolocationAccessControl != nil { + in, out := &in.GeolocationAccessControl, &out.GeolocationAccessControl + *out = new(bool) + **out = **in + } + if in.Ignore != nil { + in, out := &in.Ignore, &out.Ignore + *out = new(bool) + **out = **in + } + if in.Precise != nil { + in, out := &in.Precise, &out.Precise + *out = new(bool) + **out = **in + } + if in.Privacy != nil { + in, out := &in.Privacy, &out.Privacy + *out = new(bool) + **out = **in + } + if in.WebAttack != nil { + in, out := &in.WebAttack, &out.WebAttack + *out = new(bool) + **out = **in + } + if in.WebShell != nil { + in, out := &in.WebShell, &out.WebShell + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OptionsObservation. +func (in *OptionsObservation) DeepCopy() *OptionsObservation { + if in == nil { + return nil + } + out := new(OptionsObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OptionsParameters) DeepCopyInto(out *OptionsParameters) { + *out = *in + if in.AntiCrawler != nil { + in, out := &in.AntiCrawler, &out.AntiCrawler + *out = new(bool) + **out = **in + } + if in.AntiLeakage != nil { + in, out := &in.AntiLeakage, &out.AntiLeakage + *out = new(bool) + **out = **in + } + if in.AntiTamper != nil { + in, out := &in.AntiTamper, &out.AntiTamper + *out = new(bool) + **out = **in + } + if in.Blacklist != nil { + in, out := &in.Blacklist, &out.Blacklist + *out = new(bool) + **out = **in + } + if in.Cc != nil { + in, out := &in.Cc, &out.Cc + *out = new(bool) + **out = **in + } + if in.Common != nil { + in, out := &in.Common, &out.Common + *out = new(bool) + **out = **in + } + if in.Crawler != nil { + in, out := &in.Crawler, &out.Crawler + *out = new(bool) + **out = **in + } + if in.CrawlerEngine != nil { + in, out := &in.CrawlerEngine, &out.CrawlerEngine + *out = new(bool) + **out = **in + } + if in.CrawlerOther != nil { + in, out := &in.CrawlerOther, &out.CrawlerOther + *out = new(bool) + **out = **in + } + if in.CrawlerScanner != nil { + in, out := &in.CrawlerScanner, &out.CrawlerScanner + *out = new(bool) + **out = **in + } + if in.CrawlerScript != nil { + in, out := &in.CrawlerScript, &out.CrawlerScript + *out = new(bool) + **out = **in + } + if in.Custom != nil { + in, out := &in.Custom, &out.Custom + *out = new(bool) + **out = **in + } + if in.FollowedAction != nil { + in, out := &in.FollowedAction, &out.FollowedAction + *out = new(bool) + **out = **in + } + if in.GeolocationAccessControl != nil { + in, out := &in.GeolocationAccessControl, &out.GeolocationAccessControl + *out = new(bool) + **out = **in + } + if in.Ignore != nil { + in, out := &in.Ignore, &out.Ignore + *out = new(bool) + **out = **in + } + if in.Privacy != nil { + in, out := &in.Privacy, &out.Privacy + *out = new(bool) + **out = **in + } + if in.WebAttack != nil { + in, out := &in.WebAttack, &out.WebAttack + *out = new(bool) + **out = **in + } + if in.WebShell != nil { + in, out := &in.WebShell, &out.WebShell + *out = new(bool) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OptionsParameters. +func (in *OptionsParameters) DeepCopy() *OptionsParameters { + if in == nil { + return nil + } + out := new(OptionsParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServerInitParameters) DeepCopyInto(out *ServerInitParameters) { + *out = *in + if in.Address != nil { + in, out := &in.Address, &out.Address + *out = new(string) + **out = **in + } + if in.ClientProtocol != nil { + in, out := &in.ClientProtocol, &out.ClientProtocol + *out = new(string) + **out = **in + } + if in.Port != nil { + in, out := &in.Port, &out.Port + *out = new(float64) + **out = **in + } + if in.ServerProtocol != nil { + in, out := &in.ServerProtocol, &out.ServerProtocol + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerInitParameters. +func (in *ServerInitParameters) DeepCopy() *ServerInitParameters { + if in == nil { + return nil + } + out := new(ServerInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServerObservation) DeepCopyInto(out *ServerObservation) { + *out = *in + if in.Address != nil { + in, out := &in.Address, &out.Address + *out = new(string) + **out = **in + } + if in.ClientProtocol != nil { + in, out := &in.ClientProtocol, &out.ClientProtocol + *out = new(string) + **out = **in + } + if in.Port != nil { + in, out := &in.Port, &out.Port + *out = new(float64) + **out = **in + } + if in.ServerProtocol != nil { + in, out := &in.ServerProtocol, &out.ServerProtocol + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerObservation. +func (in *ServerObservation) DeepCopy() *ServerObservation { + if in == nil { + return nil + } + out := new(ServerObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ServerParameters) DeepCopyInto(out *ServerParameters) { + *out = *in + if in.Address != nil { + in, out := &in.Address, &out.Address + *out = new(string) + **out = **in + } + if in.ClientProtocol != nil { + in, out := &in.ClientProtocol, &out.ClientProtocol + *out = new(string) + **out = **in + } + if in.Port != nil { + in, out := &in.Port, &out.Port + *out = new(float64) + **out = **in + } + if in.ServerProtocol != nil { + in, out := &in.ServerProtocol, &out.ServerProtocol + *out = new(string) + **out = **in + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.VPCID != nil { + in, out := &in.VPCID, &out.VPCID + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ServerParameters. +func (in *ServerParameters) DeepCopy() *ServerParameters { + if in == nil { + return nil + } + out := new(ServerParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TimeoutConfigInitParameters) DeepCopyInto(out *TimeoutConfigInitParameters) { + *out = *in + if in.ConnectTimeout != nil { + in, out := &in.ConnectTimeout, &out.ConnectTimeout + *out = new(float64) + **out = **in + } + if in.ReadTimeout != nil { + in, out := &in.ReadTimeout, &out.ReadTimeout + *out = new(float64) + **out = **in + } + if in.SendTimeout != nil { + in, out := &in.SendTimeout, &out.SendTimeout + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TimeoutConfigInitParameters. +func (in *TimeoutConfigInitParameters) DeepCopy() *TimeoutConfigInitParameters { + if in == nil { + return nil + } + out := new(TimeoutConfigInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TimeoutConfigObservation) DeepCopyInto(out *TimeoutConfigObservation) { + *out = *in + if in.ConnectTimeout != nil { + in, out := &in.ConnectTimeout, &out.ConnectTimeout + *out = new(float64) + **out = **in + } + if in.ReadTimeout != nil { + in, out := &in.ReadTimeout, &out.ReadTimeout + *out = new(float64) + **out = **in + } + if in.SendTimeout != nil { + in, out := &in.SendTimeout, &out.SendTimeout + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TimeoutConfigObservation. +func (in *TimeoutConfigObservation) DeepCopy() *TimeoutConfigObservation { + if in == nil { + return nil + } + out := new(TimeoutConfigObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TimeoutConfigParameters) DeepCopyInto(out *TimeoutConfigParameters) { + *out = *in + if in.ConnectTimeout != nil { + in, out := &in.ConnectTimeout, &out.ConnectTimeout + *out = new(float64) + **out = **in + } + if in.ReadTimeout != nil { + in, out := &in.ReadTimeout, &out.ReadTimeout + *out = new(float64) + **out = **in + } + if in.SendTimeout != nil { + in, out := &in.SendTimeout, &out.SendTimeout + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TimeoutConfigParameters. +func (in *TimeoutConfigParameters) DeepCopy() *TimeoutConfigParameters { + if in == nil { + return nil + } + out := new(TimeoutConfigParameters) + in.DeepCopyInto(out) + return out +} diff --git a/apis/waf/v1alpha1/zz_generated_terraformed.go b/apis/waf/v1alpha1/zz_generated_terraformed.go new file mode 100755 index 0000000..38bc235 --- /dev/null +++ b/apis/waf/v1alpha1/zz_generated_terraformed.go @@ -0,0 +1,1278 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1alpha1 + +import ( + "github.com/pkg/errors" + + "github.com/crossplane/upjet/pkg/resource" + "github.com/crossplane/upjet/pkg/resource/json" +) + +// GetTerraformResourceType returns Terraform resource type for this DedicatedAlarmMaskingRuleV1 +func (mg *DedicatedAlarmMaskingRuleV1) GetTerraformResourceType() string { + return "opentelekomcloud_waf_dedicated_alarm_masking_rule_v1" +} + +// GetConnectionDetailsMapping for this DedicatedAlarmMaskingRuleV1 +func (tr *DedicatedAlarmMaskingRuleV1) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this DedicatedAlarmMaskingRuleV1 +func (tr *DedicatedAlarmMaskingRuleV1) 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 DedicatedAlarmMaskingRuleV1 +func (tr *DedicatedAlarmMaskingRuleV1) 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 DedicatedAlarmMaskingRuleV1 +func (tr *DedicatedAlarmMaskingRuleV1) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this DedicatedAlarmMaskingRuleV1 +func (tr *DedicatedAlarmMaskingRuleV1) 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 DedicatedAlarmMaskingRuleV1 +func (tr *DedicatedAlarmMaskingRuleV1) 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 DedicatedAlarmMaskingRuleV1 +func (tr *DedicatedAlarmMaskingRuleV1) 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) +} + +// LateInitialize this DedicatedAlarmMaskingRuleV1 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *DedicatedAlarmMaskingRuleV1) LateInitialize(attrs []byte) (bool, error) { + params := &DedicatedAlarmMaskingRuleV1Parameters{} + 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 *DedicatedAlarmMaskingRuleV1) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this DedicatedAntiCrawlerRuleV1 +func (mg *DedicatedAntiCrawlerRuleV1) GetTerraformResourceType() string { + return "opentelekomcloud_waf_dedicated_anti_crawler_rule_v1" +} + +// GetConnectionDetailsMapping for this DedicatedAntiCrawlerRuleV1 +func (tr *DedicatedAntiCrawlerRuleV1) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this DedicatedAntiCrawlerRuleV1 +func (tr *DedicatedAntiCrawlerRuleV1) 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 DedicatedAntiCrawlerRuleV1 +func (tr *DedicatedAntiCrawlerRuleV1) 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 DedicatedAntiCrawlerRuleV1 +func (tr *DedicatedAntiCrawlerRuleV1) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this DedicatedAntiCrawlerRuleV1 +func (tr *DedicatedAntiCrawlerRuleV1) 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 DedicatedAntiCrawlerRuleV1 +func (tr *DedicatedAntiCrawlerRuleV1) 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 DedicatedAntiCrawlerRuleV1 +func (tr *DedicatedAntiCrawlerRuleV1) 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) +} + +// LateInitialize this DedicatedAntiCrawlerRuleV1 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *DedicatedAntiCrawlerRuleV1) LateInitialize(attrs []byte) (bool, error) { + params := &DedicatedAntiCrawlerRuleV1Parameters{} + 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 *DedicatedAntiCrawlerRuleV1) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this DedicatedAntiLeakageRuleV1 +func (mg *DedicatedAntiLeakageRuleV1) GetTerraformResourceType() string { + return "opentelekomcloud_waf_dedicated_anti_leakage_rule_v1" +} + +// GetConnectionDetailsMapping for this DedicatedAntiLeakageRuleV1 +func (tr *DedicatedAntiLeakageRuleV1) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this DedicatedAntiLeakageRuleV1 +func (tr *DedicatedAntiLeakageRuleV1) 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 DedicatedAntiLeakageRuleV1 +func (tr *DedicatedAntiLeakageRuleV1) 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 DedicatedAntiLeakageRuleV1 +func (tr *DedicatedAntiLeakageRuleV1) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this DedicatedAntiLeakageRuleV1 +func (tr *DedicatedAntiLeakageRuleV1) 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 DedicatedAntiLeakageRuleV1 +func (tr *DedicatedAntiLeakageRuleV1) 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 DedicatedAntiLeakageRuleV1 +func (tr *DedicatedAntiLeakageRuleV1) 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) +} + +// LateInitialize this DedicatedAntiLeakageRuleV1 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *DedicatedAntiLeakageRuleV1) LateInitialize(attrs []byte) (bool, error) { + params := &DedicatedAntiLeakageRuleV1Parameters{} + 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 *DedicatedAntiLeakageRuleV1) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this DedicatedBlacklistRuleV1 +func (mg *DedicatedBlacklistRuleV1) GetTerraformResourceType() string { + return "opentelekomcloud_waf_dedicated_blacklist_rule_v1" +} + +// GetConnectionDetailsMapping for this DedicatedBlacklistRuleV1 +func (tr *DedicatedBlacklistRuleV1) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this DedicatedBlacklistRuleV1 +func (tr *DedicatedBlacklistRuleV1) 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 DedicatedBlacklistRuleV1 +func (tr *DedicatedBlacklistRuleV1) 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 DedicatedBlacklistRuleV1 +func (tr *DedicatedBlacklistRuleV1) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this DedicatedBlacklistRuleV1 +func (tr *DedicatedBlacklistRuleV1) 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 DedicatedBlacklistRuleV1 +func (tr *DedicatedBlacklistRuleV1) 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 DedicatedBlacklistRuleV1 +func (tr *DedicatedBlacklistRuleV1) 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) +} + +// LateInitialize this DedicatedBlacklistRuleV1 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *DedicatedBlacklistRuleV1) LateInitialize(attrs []byte) (bool, error) { + params := &DedicatedBlacklistRuleV1Parameters{} + 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 *DedicatedBlacklistRuleV1) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this DedicatedCcRuleV1 +func (mg *DedicatedCcRuleV1) GetTerraformResourceType() string { + return "opentelekomcloud_waf_dedicated_cc_rule_v1" +} + +// GetConnectionDetailsMapping for this DedicatedCcRuleV1 +func (tr *DedicatedCcRuleV1) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this DedicatedCcRuleV1 +func (tr *DedicatedCcRuleV1) 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 DedicatedCcRuleV1 +func (tr *DedicatedCcRuleV1) 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 DedicatedCcRuleV1 +func (tr *DedicatedCcRuleV1) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this DedicatedCcRuleV1 +func (tr *DedicatedCcRuleV1) 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 DedicatedCcRuleV1 +func (tr *DedicatedCcRuleV1) 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 DedicatedCcRuleV1 +func (tr *DedicatedCcRuleV1) 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) +} + +// LateInitialize this DedicatedCcRuleV1 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *DedicatedCcRuleV1) LateInitialize(attrs []byte) (bool, error) { + params := &DedicatedCcRuleV1Parameters{} + 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 *DedicatedCcRuleV1) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this DedicatedCertificateV1 +func (mg *DedicatedCertificateV1) GetTerraformResourceType() string { + return "opentelekomcloud_waf_dedicated_certificate_v1" +} + +// GetConnectionDetailsMapping for this DedicatedCertificateV1 +func (tr *DedicatedCertificateV1) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this DedicatedCertificateV1 +func (tr *DedicatedCertificateV1) 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 DedicatedCertificateV1 +func (tr *DedicatedCertificateV1) 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 DedicatedCertificateV1 +func (tr *DedicatedCertificateV1) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this DedicatedCertificateV1 +func (tr *DedicatedCertificateV1) 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 DedicatedCertificateV1 +func (tr *DedicatedCertificateV1) 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 DedicatedCertificateV1 +func (tr *DedicatedCertificateV1) 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) +} + +// LateInitialize this DedicatedCertificateV1 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *DedicatedCertificateV1) LateInitialize(attrs []byte) (bool, error) { + params := &DedicatedCertificateV1Parameters{} + 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 *DedicatedCertificateV1) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this DedicatedDataMaskingRuleV1 +func (mg *DedicatedDataMaskingRuleV1) GetTerraformResourceType() string { + return "opentelekomcloud_waf_dedicated_data_masking_rule_v1" +} + +// GetConnectionDetailsMapping for this DedicatedDataMaskingRuleV1 +func (tr *DedicatedDataMaskingRuleV1) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this DedicatedDataMaskingRuleV1 +func (tr *DedicatedDataMaskingRuleV1) 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 DedicatedDataMaskingRuleV1 +func (tr *DedicatedDataMaskingRuleV1) 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 DedicatedDataMaskingRuleV1 +func (tr *DedicatedDataMaskingRuleV1) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this DedicatedDataMaskingRuleV1 +func (tr *DedicatedDataMaskingRuleV1) 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 DedicatedDataMaskingRuleV1 +func (tr *DedicatedDataMaskingRuleV1) 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 DedicatedDataMaskingRuleV1 +func (tr *DedicatedDataMaskingRuleV1) 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) +} + +// LateInitialize this DedicatedDataMaskingRuleV1 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *DedicatedDataMaskingRuleV1) LateInitialize(attrs []byte) (bool, error) { + params := &DedicatedDataMaskingRuleV1Parameters{} + 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 *DedicatedDataMaskingRuleV1) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this DedicatedDomainV1 +func (mg *DedicatedDomainV1) GetTerraformResourceType() string { + return "opentelekomcloud_waf_dedicated_domain_v1" +} + +// GetConnectionDetailsMapping for this DedicatedDomainV1 +func (tr *DedicatedDomainV1) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this DedicatedDomainV1 +func (tr *DedicatedDomainV1) 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 DedicatedDomainV1 +func (tr *DedicatedDomainV1) 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 DedicatedDomainV1 +func (tr *DedicatedDomainV1) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this DedicatedDomainV1 +func (tr *DedicatedDomainV1) 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 DedicatedDomainV1 +func (tr *DedicatedDomainV1) 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 DedicatedDomainV1 +func (tr *DedicatedDomainV1) 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) +} + +// LateInitialize this DedicatedDomainV1 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *DedicatedDomainV1) LateInitialize(attrs []byte) (bool, error) { + params := &DedicatedDomainV1Parameters{} + 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 *DedicatedDomainV1) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this DedicatedGeoIPRuleV1 +func (mg *DedicatedGeoIPRuleV1) GetTerraformResourceType() string { + return "opentelekomcloud_waf_dedicated_geo_ip_rule_v1" +} + +// GetConnectionDetailsMapping for this DedicatedGeoIPRuleV1 +func (tr *DedicatedGeoIPRuleV1) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this DedicatedGeoIPRuleV1 +func (tr *DedicatedGeoIPRuleV1) 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 DedicatedGeoIPRuleV1 +func (tr *DedicatedGeoIPRuleV1) 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 DedicatedGeoIPRuleV1 +func (tr *DedicatedGeoIPRuleV1) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this DedicatedGeoIPRuleV1 +func (tr *DedicatedGeoIPRuleV1) 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 DedicatedGeoIPRuleV1 +func (tr *DedicatedGeoIPRuleV1) 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 DedicatedGeoIPRuleV1 +func (tr *DedicatedGeoIPRuleV1) 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) +} + +// LateInitialize this DedicatedGeoIPRuleV1 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *DedicatedGeoIPRuleV1) LateInitialize(attrs []byte) (bool, error) { + params := &DedicatedGeoIPRuleV1Parameters{} + 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 *DedicatedGeoIPRuleV1) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this DedicatedInstanceV1 +func (mg *DedicatedInstanceV1) GetTerraformResourceType() string { + return "opentelekomcloud_waf_dedicated_instance_v1" +} + +// GetConnectionDetailsMapping for this DedicatedInstanceV1 +func (tr *DedicatedInstanceV1) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this DedicatedInstanceV1 +func (tr *DedicatedInstanceV1) 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 DedicatedInstanceV1 +func (tr *DedicatedInstanceV1) 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 DedicatedInstanceV1 +func (tr *DedicatedInstanceV1) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this DedicatedInstanceV1 +func (tr *DedicatedInstanceV1) 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 DedicatedInstanceV1 +func (tr *DedicatedInstanceV1) 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 DedicatedInstanceV1 +func (tr *DedicatedInstanceV1) 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) +} + +// LateInitialize this DedicatedInstanceV1 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *DedicatedInstanceV1) LateInitialize(attrs []byte) (bool, error) { + params := &DedicatedInstanceV1Parameters{} + 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 *DedicatedInstanceV1) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this DedicatedKnownAttackSourceRuleV1 +func (mg *DedicatedKnownAttackSourceRuleV1) GetTerraformResourceType() string { + return "opentelekomcloud_waf_dedicated_known_attack_source_rule_v1" +} + +// GetConnectionDetailsMapping for this DedicatedKnownAttackSourceRuleV1 +func (tr *DedicatedKnownAttackSourceRuleV1) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this DedicatedKnownAttackSourceRuleV1 +func (tr *DedicatedKnownAttackSourceRuleV1) 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 DedicatedKnownAttackSourceRuleV1 +func (tr *DedicatedKnownAttackSourceRuleV1) 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 DedicatedKnownAttackSourceRuleV1 +func (tr *DedicatedKnownAttackSourceRuleV1) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this DedicatedKnownAttackSourceRuleV1 +func (tr *DedicatedKnownAttackSourceRuleV1) 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 DedicatedKnownAttackSourceRuleV1 +func (tr *DedicatedKnownAttackSourceRuleV1) 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 DedicatedKnownAttackSourceRuleV1 +func (tr *DedicatedKnownAttackSourceRuleV1) 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) +} + +// LateInitialize this DedicatedKnownAttackSourceRuleV1 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *DedicatedKnownAttackSourceRuleV1) LateInitialize(attrs []byte) (bool, error) { + params := &DedicatedKnownAttackSourceRuleV1Parameters{} + 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 *DedicatedKnownAttackSourceRuleV1) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this DedicatedPolicyV1 +func (mg *DedicatedPolicyV1) GetTerraformResourceType() string { + return "opentelekomcloud_waf_dedicated_policy_v1" +} + +// GetConnectionDetailsMapping for this DedicatedPolicyV1 +func (tr *DedicatedPolicyV1) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this DedicatedPolicyV1 +func (tr *DedicatedPolicyV1) 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 DedicatedPolicyV1 +func (tr *DedicatedPolicyV1) 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 DedicatedPolicyV1 +func (tr *DedicatedPolicyV1) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this DedicatedPolicyV1 +func (tr *DedicatedPolicyV1) 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 DedicatedPolicyV1 +func (tr *DedicatedPolicyV1) 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 DedicatedPolicyV1 +func (tr *DedicatedPolicyV1) 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) +} + +// LateInitialize this DedicatedPolicyV1 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *DedicatedPolicyV1) LateInitialize(attrs []byte) (bool, error) { + params := &DedicatedPolicyV1Parameters{} + 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 *DedicatedPolicyV1) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this DedicatedPreciseProtectionRuleV1 +func (mg *DedicatedPreciseProtectionRuleV1) GetTerraformResourceType() string { + return "opentelekomcloud_waf_dedicated_precise_protection_rule_v1" +} + +// GetConnectionDetailsMapping for this DedicatedPreciseProtectionRuleV1 +func (tr *DedicatedPreciseProtectionRuleV1) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this DedicatedPreciseProtectionRuleV1 +func (tr *DedicatedPreciseProtectionRuleV1) 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 DedicatedPreciseProtectionRuleV1 +func (tr *DedicatedPreciseProtectionRuleV1) 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 DedicatedPreciseProtectionRuleV1 +func (tr *DedicatedPreciseProtectionRuleV1) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this DedicatedPreciseProtectionRuleV1 +func (tr *DedicatedPreciseProtectionRuleV1) 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 DedicatedPreciseProtectionRuleV1 +func (tr *DedicatedPreciseProtectionRuleV1) 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 DedicatedPreciseProtectionRuleV1 +func (tr *DedicatedPreciseProtectionRuleV1) 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) +} + +// LateInitialize this DedicatedPreciseProtectionRuleV1 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *DedicatedPreciseProtectionRuleV1) LateInitialize(attrs []byte) (bool, error) { + params := &DedicatedPreciseProtectionRuleV1Parameters{} + 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 *DedicatedPreciseProtectionRuleV1) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this DedicatedReferenceTableV1 +func (mg *DedicatedReferenceTableV1) GetTerraformResourceType() string { + return "opentelekomcloud_waf_dedicated_reference_table_v1" +} + +// GetConnectionDetailsMapping for this DedicatedReferenceTableV1 +func (tr *DedicatedReferenceTableV1) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this DedicatedReferenceTableV1 +func (tr *DedicatedReferenceTableV1) 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 DedicatedReferenceTableV1 +func (tr *DedicatedReferenceTableV1) 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 DedicatedReferenceTableV1 +func (tr *DedicatedReferenceTableV1) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this DedicatedReferenceTableV1 +func (tr *DedicatedReferenceTableV1) 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 DedicatedReferenceTableV1 +func (tr *DedicatedReferenceTableV1) 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 DedicatedReferenceTableV1 +func (tr *DedicatedReferenceTableV1) 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) +} + +// LateInitialize this DedicatedReferenceTableV1 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *DedicatedReferenceTableV1) LateInitialize(attrs []byte) (bool, error) { + params := &DedicatedReferenceTableV1Parameters{} + 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 *DedicatedReferenceTableV1) GetTerraformSchemaVersion() int { + return 0 +} + +// GetTerraformResourceType returns Terraform resource type for this DedicatedWebTamperRuleV1 +func (mg *DedicatedWebTamperRuleV1) GetTerraformResourceType() string { + return "opentelekomcloud_waf_dedicated_web_tamper_rule_v1" +} + +// GetConnectionDetailsMapping for this DedicatedWebTamperRuleV1 +func (tr *DedicatedWebTamperRuleV1) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this DedicatedWebTamperRuleV1 +func (tr *DedicatedWebTamperRuleV1) 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 DedicatedWebTamperRuleV1 +func (tr *DedicatedWebTamperRuleV1) 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 DedicatedWebTamperRuleV1 +func (tr *DedicatedWebTamperRuleV1) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this DedicatedWebTamperRuleV1 +func (tr *DedicatedWebTamperRuleV1) 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 DedicatedWebTamperRuleV1 +func (tr *DedicatedWebTamperRuleV1) 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 DedicatedWebTamperRuleV1 +func (tr *DedicatedWebTamperRuleV1) 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) +} + +// LateInitialize this DedicatedWebTamperRuleV1 using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *DedicatedWebTamperRuleV1) LateInitialize(attrs []byte) (bool, error) { + params := &DedicatedWebTamperRuleV1Parameters{} + 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 *DedicatedWebTamperRuleV1) GetTerraformSchemaVersion() int { + return 0 +} diff --git a/apis/waf/v1alpha1/zz_groupversion_info.go b/apis/waf/v1alpha1/zz_groupversion_info.go new file mode 100755 index 0000000..de9fe87 --- /dev/null +++ b/apis/waf/v1alpha1/zz_groupversion_info.go @@ -0,0 +1,36 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +// +kubebuilder:object:generate=true +// +groupName=waf.crossplane.io +// +versionName=v1alpha1 +package v1alpha1 + +import ( + "k8s.io/apimachinery/pkg/runtime/schema" + "sigs.k8s.io/controller-runtime/pkg/scheme" +) + +// Package type metadata. +const ( + CRDGroup = "waf.crossplane.io" + CRDVersion = "v1alpha1" +) + +var ( + // CRDGroupVersion is the API Group Version used to register the objects + CRDGroupVersion = schema.GroupVersion{Group: CRDGroup, Version: CRDVersion} + + // SchemeBuilder is used to add go types to the GroupVersionKind scheme + SchemeBuilder = &scheme.Builder{GroupVersion: CRDGroupVersion} + + // AddToScheme adds the types in this group-version to the given scheme. + AddToScheme = SchemeBuilder.AddToScheme +) diff --git a/apis/zz_register.go b/apis/zz_register.go index 9a6d212..ecf1cfc 100755 --- a/apis/zz_register.go +++ b/apis/zz_register.go @@ -14,17 +14,73 @@ package apis import ( "k8s.io/apimachinery/pkg/runtime" - v1alpha1 "github.com/upbound/upjet-provider-template/apis/null/v1alpha1" - v1alpha1apis "github.com/upbound/upjet-provider-template/apis/v1alpha1" - v1beta1 "github.com/upbound/upjet-provider-template/apis/v1beta1" + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/blockstorage/v1alpha1" + v1alpha1cce "github.com/opentelekomcloud/provider-opentelekomcloud/apis/cce/v1alpha1" + v1alpha1compute "github.com/opentelekomcloud/provider-opentelekomcloud/apis/compute/v1alpha1" + v1alpha1dcs "github.com/opentelekomcloud/provider-opentelekomcloud/apis/dcs/v1alpha1" + v1alpha1dds "github.com/opentelekomcloud/provider-opentelekomcloud/apis/dds/v1alpha1" + v1alpha1deh "github.com/opentelekomcloud/provider-opentelekomcloud/apis/deh/v1alpha1" + v1alpha1dis "github.com/opentelekomcloud/provider-opentelekomcloud/apis/dis/v1alpha1" + v1alpha1dms "github.com/opentelekomcloud/provider-opentelekomcloud/apis/dms/v1alpha1" + v1alpha1dns "github.com/opentelekomcloud/provider-opentelekomcloud/apis/dns/v1alpha1" + v1alpha1ecs "github.com/opentelekomcloud/provider-opentelekomcloud/apis/ecs/v1alpha1" + v1alpha1evs "github.com/opentelekomcloud/provider-opentelekomcloud/apis/evs/v1alpha1" + v1alpha1fgs "github.com/opentelekomcloud/provider-opentelekomcloud/apis/fgs/v1alpha1" + v1alpha1fw "github.com/opentelekomcloud/provider-opentelekomcloud/apis/fw/v1alpha1" + v1alpha1identity "github.com/opentelekomcloud/provider-opentelekomcloud/apis/identity/v1alpha1" + v1alpha1images "github.com/opentelekomcloud/provider-opentelekomcloud/apis/images/v1alpha1" + v1alpha1ims "github.com/opentelekomcloud/provider-opentelekomcloud/apis/ims/v1alpha1" + v1alpha1kms "github.com/opentelekomcloud/provider-opentelekomcloud/apis/kms/v1alpha1" + v1alpha1lb "github.com/opentelekomcloud/provider-opentelekomcloud/apis/lb/v1alpha1" + v1alpha1nat "github.com/opentelekomcloud/provider-opentelekomcloud/apis/nat/v1alpha1" + v1alpha1networking "github.com/opentelekomcloud/provider-opentelekomcloud/apis/networking/v1alpha1" + v1alpha1obs "github.com/opentelekomcloud/provider-opentelekomcloud/apis/obs/v1alpha1" + v1alpha1rds "github.com/opentelekomcloud/provider-opentelekomcloud/apis/rds/v1alpha1" + v1alpha1s3 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/s3/v1alpha1" + v1alpha1sfs "github.com/opentelekomcloud/provider-opentelekomcloud/apis/sfs/v1alpha1" + v1alpha1smn "github.com/opentelekomcloud/provider-opentelekomcloud/apis/smn/v1alpha1" + v1alpha1apis "github.com/opentelekomcloud/provider-opentelekomcloud/apis/v1alpha1" + v1beta1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/v1beta1" + v1alpha1vpc "github.com/opentelekomcloud/provider-opentelekomcloud/apis/vpc/v1alpha1" + v1alpha1vpcep "github.com/opentelekomcloud/provider-opentelekomcloud/apis/vpcep/v1alpha1" + v1alpha1vpnaas "github.com/opentelekomcloud/provider-opentelekomcloud/apis/vpnaas/v1alpha1" + v1alpha1waf "github.com/opentelekomcloud/provider-opentelekomcloud/apis/waf/v1alpha1" ) func init() { // Register the types with the Scheme so the components can map objects to GroupVersionKinds and back AddToSchemes = append(AddToSchemes, v1alpha1.SchemeBuilder.AddToScheme, + v1alpha1cce.SchemeBuilder.AddToScheme, + v1alpha1compute.SchemeBuilder.AddToScheme, + v1alpha1dcs.SchemeBuilder.AddToScheme, + v1alpha1dds.SchemeBuilder.AddToScheme, + v1alpha1deh.SchemeBuilder.AddToScheme, + v1alpha1dis.SchemeBuilder.AddToScheme, + v1alpha1dms.SchemeBuilder.AddToScheme, + v1alpha1dns.SchemeBuilder.AddToScheme, + v1alpha1ecs.SchemeBuilder.AddToScheme, + v1alpha1evs.SchemeBuilder.AddToScheme, + v1alpha1fgs.SchemeBuilder.AddToScheme, + v1alpha1fw.SchemeBuilder.AddToScheme, + v1alpha1identity.SchemeBuilder.AddToScheme, + v1alpha1images.SchemeBuilder.AddToScheme, + v1alpha1ims.SchemeBuilder.AddToScheme, + v1alpha1kms.SchemeBuilder.AddToScheme, + v1alpha1lb.SchemeBuilder.AddToScheme, + v1alpha1nat.SchemeBuilder.AddToScheme, + v1alpha1networking.SchemeBuilder.AddToScheme, + v1alpha1obs.SchemeBuilder.AddToScheme, + v1alpha1rds.SchemeBuilder.AddToScheme, + v1alpha1s3.SchemeBuilder.AddToScheme, + v1alpha1sfs.SchemeBuilder.AddToScheme, + v1alpha1smn.SchemeBuilder.AddToScheme, v1alpha1apis.SchemeBuilder.AddToScheme, v1beta1.SchemeBuilder.AddToScheme, + v1alpha1vpc.SchemeBuilder.AddToScheme, + v1alpha1vpcep.SchemeBuilder.AddToScheme, + v1alpha1vpnaas.SchemeBuilder.AddToScheme, + v1alpha1waf.SchemeBuilder.AddToScheme, ) } diff --git a/cluster/images/upjet-provider-template/Dockerfile b/cluster/images/provider-opentelekomcloud/Dockerfile similarity index 100% rename from cluster/images/upjet-provider-template/Dockerfile rename to cluster/images/provider-opentelekomcloud/Dockerfile diff --git a/cluster/images/upjet-provider-template/Makefile b/cluster/images/provider-opentelekomcloud/Makefile similarity index 100% rename from cluster/images/upjet-provider-template/Makefile rename to cluster/images/provider-opentelekomcloud/Makefile diff --git a/cluster/images/upjet-provider-template/terraformrc.hcl b/cluster/images/provider-opentelekomcloud/terraformrc.hcl similarity index 100% rename from cluster/images/upjet-provider-template/terraformrc.hcl rename to cluster/images/provider-opentelekomcloud/terraformrc.hcl diff --git a/cluster/test/setup.sh b/cluster/test/setup.sh index f1138cc..c701ad1 100755 --- a/cluster/test/setup.sh +++ b/cluster/test/setup.sh @@ -13,7 +13,7 @@ ${KUBECTL} -n upbound-system wait --for=condition=Available deployment --all --t echo "Creating a default provider config..." cat </.' + policy_id: |- + - (Required, String, ForceNew) Specifies the ACL Policy ID for APIs binding. + Changing this will create a new resource. + publish_ids: '- (Required, List) Specifies the publishing IDs corresponding to the APIs bound by the ACL policy.' + region: '- Specifies the region where the dedicated instance and the throttling policy are located.' + importStatements: [] + opentelekomcloud_apigw_acl_policy_v2: + subCategory: APIGW + description: Manages a APIGW ACL policy resource within OpenTelekomCloud. + name: opentelekomcloud_apigw_acl_policy_v2 + title: opentelekomcloud_apigw_acl_policy_v2 + examples: + - name: ip_rule + manifest: |- + { + "entity_type": "IP", + "gateway_id": "${var.gateway_id}", + "name": "${var.policy_name}", + "type": "PERMIT", + "value": "${join(\",\", var.ip_addresses)}" + } + references: + gateway_id: var.gateway_id + name: var.policy_name + - name: domain_rule + manifest: |- + { + "entity_type": "DOMAIN", + "gateway_id": "${var.gateway_id}", + "name": "${var.policy_name}", + "type": "PERMIT", + "value": "${join(\",\", var.domain_names)}" + } + references: + gateway_id: var.gateway_id + name: var.policy_name + - name: domain_id_rule + manifest: |- + { + "entity_type": "DOMAIN_ID", + "gateway_id": "${var.gateway_id}", + "name": "${var.policy_name}", + "type": "PERMIT", + "value": "${join(\",\", var.domain_ids)}" + } + references: + gateway_id: var.gateway_id + name: var.policy_name + argumentDocs: + DENY: ': Forbid specific IPs or accounts to access API.' + DOMAIN: ': This rule is specified to control access to the API for specific accounts (specified by domain name).' + DOMAIN_ID: |- + : This rule is specified to control access to the API for specific accounts (specified by domain ID). + Changing this will create a new resource. + IP: ': This rule is specified to control access to the API for specific IPs.' + PERMIT: ': Allow specific IPs or accounts to access API.' + entity_type: |- + - (Required, String, ForceNew) Specifies the entity type of the ACL policy. + The valid values are as follows: + gateway_id: |- + - (Required, String, ForceNew) Specifies the ID of the dedicated gateway instance to which the ACL + policy belongs. + Changing this will create a new resource. + id: '- The ID of the ACL policy.' + name: |- + - (Required, String) Specifies the name of the ACL policy. + The valid length is limited from 3 to 64, only English letters, Chinese characters, digits and underscores (_) are + allowed. The name must start with an letter. + region: '- The region where the ACL policy is located.' + type: |- + - (Required, String) Specifies the type of the ACL policy. + The valid values are as follows: + updated_at: '- The latest update time of the ACL policy.' + value: |- + - (Required, String) Specifies one or more objects from which the access will be controlled. + Separate multiple objects with commas (,). + importStatements: [] + opentelekomcloud_apigw_api_publishment_v2: + subCategory: APIGW + description: Manages a APIGW API publishment resource within OpenTelekomCloud. + name: opentelekomcloud_apigw_api_publishment_v2 + title: opentelekomcloud_apigw_api_publishment_v2 + examples: + - name: default + manifest: |- + { + "api_id": "${var.api_id}", + "environment_id": "${var.environment_id}", + "gateway_id": "${var.gateway_id}" + } + references: + api_id: var.api_id + environment_id: var.environment_id + gateway_id: var.gateway_id + - name: default + manifest: |- + { + "api_id": "${var.api_id}", + "environment_id": "${var.environment_id}", + "gateway_id": "${var.gateway_id}", + "version_id": "${var.version_id}" + } + references: + api_id: var.api_id + environment_id: var.environment_id + gateway_id: var.gateway_id + version_id: var.version_id + argumentDocs: + api_id: |- + - (Required, String, ForceNew) Specifies the ID of the API to be published or already published. + Changing this will create a new resource. + description: '- (Optional, String) Specifies the description of the current publish.' + environment_id: |- + - (Required, String, ForceNew) Specifies the ID of the environment to which the current version of the API + will be published or has been published. + Changing this will create a new resource. + environment_name: '- The name of the environment to which the current version of the API is published.' + history: |- + - All publish history of the API. + The object structure is documented below. + history.description: '- The version description of the API publish.' + history.version_id: '- The version ID of the API publish.' + id: '- The resource ID, which is constructed from the instance ID, environment ID, and API ID, separated by slashes.' + instance_id: |- + - (Required, String, ForceNew) Specifies an ID of the APIGW dedicated instance to which the API belongs + to. Changing this will create a new resource. + publish_id: '- The publishing ID of the API in current environment.' + published_at: '- Time when the current version was published.' + region: '- The region in which to APIs was published.' + version_id: '- (Optional, String) Specifies the version ID of the current publish.' + importStatements: + - $ terraform import opentelekomcloud_apigw_api_publishment_v2.pub // + opentelekomcloud_apigw_api_v2: + subCategory: APIGW + description: Manages a APIGW API resource within OpenTelekomCloud. + name: opentelekomcloud_apigw_api_v2 + title: opentelekomcloud_apigw_api_v2 + examples: + - name: api + manifest: |- + { + "backend_params": [ { - "host": "${element(aws_instance.cluster.*.public_ip, 0)}" + "location": "PATH", + "name": "userAge", + "type": "REQUEST", + "value": "user_age" } ], - "provisioner": { - "remote-exec": [ + "description": "Created by script", + "failure_response": "Failed response", + "gateway_id": "${opentelekomcloud_apigw_gateway_v2.gateway.id}", + "group_id": "${opentelekomcloud_apigw_group_v2.group.id}", + "http": [ + { + "request_method": "GET", + "request_protocol": "HTTP", + "request_uri": "/getUserAge/{userAge}", + "retry_count": 1, + "timeout": 30000, + "url_domain": "opentelekomcloud.my.com" + } + ], + "http_policy": [ + { + "backend_params": [ + { + "location": "PATH", + "name": "userAge", + "type": "REQUEST", + "value": "user_age" + }, + { + "location": "HEADER", + "name": "%[2]s", + "system_param_type": "internal", + "type": "SYSTEM", + "value": "serverName" + } + ], + "conditions": [ + { + "origin": "param", + "param_name": "user_age", + "type": "EXACT", + "value": "28" + } + ], + "effective_mode": "ANY", + "name": "my_policy1", + "request_method": "GET", + "request_protocol": "HTTP", + "request_uri": "/getUserAge/{userAge}", + "retry_count": 1, + "timeout": 30000, + "url_domain": "opentelekomcloud.my.com" + } + ], + "match_mode": "EXACT", + "name": "my_api", + "request_method": "GET", + "request_params": [ + { + "location": "PATH", + "maximum": 200, + "minimum": 0, + "name": "user_age", + "required": true, + "type": "NUMBER" + }, + { + "enumeration": "ACC_TEST_A,ACC_TEST_B", + "location": "HEADER", + "maximum": 20, + "minimum": 10, + "name": "X-TEST-ENUM", + "passthrough": true, + "sample": "ACC_TEST_XXX", + "type": "STRING" + } + ], + "request_protocol": "HTTP", + "request_uri": "/user_info/{user_age}", + "security_authentication_type": "APP", + "success_response": "Success response", + "type": "Public" + } + references: + gateway_id: opentelekomcloud_apigw_gateway_v2.gateway.id + group_id: opentelekomcloud_apigw_group_v2.group.id + dependencies: + opentelekomcloud_apigw_environment_v2.env: |- + { + "description": "test description", + "instance_id": "${opentelekomcloud_apigw_gateway_v2.gateway.id}", + "name": "my_env" + } + opentelekomcloud_apigw_gateway_v2.gateway: |- + { + "availability_zones": [ + "eu-de-01", + "eu-de-02" + ], + "description": "test gateway 2", + "ingress_bandwidth_charging_mode": "bandwidth", + "ingress_bandwidth_size": 5, + "maintain_begin": "02:00:00", + "name": "my_gw", + "security_group_id": "${var.secgroup_id}", + "spec_id": "BASIC", + "subnet_id": "${var.subnet_id}", + "vpc_id": "${var.vpc_id}" + } + opentelekomcloud_apigw_group_v2.group: |- + { + "description": "test description", + "environment": [ + { + "environment_id": "${opentelekomcloud_apigw_environment_v2.env.id}", + "variable": [ + { + "name": "test-name", + "value": "test-value" + } + ] + } + ], + "instance_id": "${opentelekomcloud_apigw_gateway_v2.gateway.id}", + "name": "my_group" + } + argumentDocs: + "3": to 32 characters. + ENUM: ', separate condition values with commas.' + PATTERN: ', enter a regular expression compatible with PERL.' + authorizer_id: |- + - (Optional, String) Specifies the ID of the authorizer to which the API request used. + It is Required when security_authentication_type is AUTHORIZER. + backend_params: |- + - (Optional, List) Specifies the configurations of the backend parameters. + The object structure is documented below. + backend_params.description: |- + - (Optional, String) Specifies the description of the constant or system parameter. + The description contains a maximum of 255 characters and the angle brackets (< and >) are not allowed. + backend_params.location: |- + - (Required, String) Specifies the location of the backend parameter. + The valid values are PATH, QUERY and HEADER. + backend_params.name: |- + - (Required, String) Specifies the backend parameter name, which contain of 1 to 32 characters and start with a + letter. Only letters, digits, hyphens (-), underscores (_) and periods (.) are allowed. The parameter name is not + case-sensitive. It cannot start with x-apig- or x-sdk- and cannot be x-stage. If the location is specified as + HEADER, the name cannot contain underscores. + backend_params.system_param_type: |- + - (Optional, String) Specifies the type of the system parameter. + The valid values are frontend, backend and internal, defaults to internal. + backend_params.type: |- + - (Required, String) Specifies the backend parameter type. + The valid values are REQUEST, CONSTANT and SYSTEM. + backend_params.value: '- (Required, String) Specifies the request parameter name corresponding to the back-end request parameter.' + body_description: |- + - (Optional, String) Specifies the description of the API request body, which can be an example + request body, media type or parameters. + The request body does not exceed 20,480 characters. + conditions.origin: |- + - (Optional, String) Specifies the backend policy type. + The valid values are param, source, defaults to source. + conditions.param_name: |- + - (Optional, String) Specifies the request parameter name. + This parameter is required if the policy type is param. The valid values are user_age and X-TEST-ENUM. + conditions.type: |- + - (Optional, String) Specifies the condition type of the backend policy. + The valid values are EXACT, ENUM and PATTERN, defaults to EXACT. + conditions.value: |- + - (Required, String) Specifies the value of the backend policy. + For a condition with the input parameter source: + cors: '- (Optional, Bool) Specifies whether CORS is supported, defaults to false.' + description: |- + - (Optional, String) Specifies the API description. + The description contains a maximum of 255 characters and the angle brackets (< and >) are not allowed. + failure_response: |- + - (Optional, String) Specifies the example response for a failure request. + The response contains a maximum of 20,480 characters. + func_graph: |- + - (Optional, List, ForceNew) Specifies the function graph backend details. + The object structure is documented below. + Changing this will create a new API resource. + func_graph.authorizer_id: '- (Optional, String) Specifies the ID of the backend custom authorization.' + func_graph.description: |- + - (Optional, String) Specifies the description of the constant or system parameter. + The description contains a maximum of 255 characters and the angle brackets (< and >) are not allowed. + func_graph.function_urn: '- (Required, String) Specifies the URN of the FunctionGraph function.' + func_graph.invocation_type: |- + - (Optional, String) Specifies the invocation type. + The valid values are async and sync, defaults to sync. + func_graph.network_type: |- + - (Optional, String) Function network architecture. + The valid values are VPC and NON-VPC, defaults to NON-VPC. + func_graph.timeout: |- + - (Optional, Int) Specifies the timeout for API requests to backend service. + The valid value is range form 1 to 600,000, defaults to 5,000. + func_graph.version: '- (Required, String) Specifies the function version.' + func_graph_policy: |- + - (Optional, List) Specifies the Mock policy backends. + The maximum blocks of the policy is 5. + The object structure is documented below. + func_graph_policy.authorizer_id: '- (Optional, String) Specifies the ID of the backend custom authorization.' + func_graph_policy.backend_params: |- + - (Optional, List) Specifies the configuration list of the backend parameters. + The maximum of request parameters is 50. + The object structure is documented above. + func_graph_policy.conditions: |- + - (Required, List) Specifies an array of one or more policy conditions. + Up to five conditions can be set. + The object structure is documented below. + func_graph_policy.effective_mode: |- + - (Optional, String) Specifies the effective mode of the backend policy. + The valid values are ALL and ANY, defaults to ANY. + func_graph_policy.function_urn: '- (Required, String) Specifies the URN of the FunctionGraph function.' + func_graph_policy.invocation_mode: |- + - (Optional, String) Specifies the invocation mode of the FunctionGraph function. + The valid values are async and sync, defaults to sync. + func_graph_policy.name: |- + - (Required, String) Specifies the backend policy name. + The valid length is limited from can contain 3 to 64, only letters, digits and underscores (_) are allowed. + func_graph_policy.network_type: |- + - (Optional, String) Function network architecture. + The valid values are VPC and NON-VPC, defaults to NON-VPC. + func_graph_policy.timeout: |- + - (Optional, Int) Specifies the timeout for API requests to backend service, the unit is ms. + The valid value ranges from 1 to 600,000, defaults to 5,000. + func_graph_policy.version: '- (Optional, String) Specifies the version of the FunctionGraph function.' + gateway_id: |- + - (Required, String, ForceNew) Specifies an ID of the APIG dedicated instance to which the API belongs + to. Changing this will create a new API resource. + group_id: '- (Required, String) Specifies an ID of the APIG group to which the API belongs to.' + http: |- + - (Optional, List, ForceNew) Specifies the web backend details. + The object structure is documented below. Changing this will create a new API resource. + http.authorizer_id: '- (Optional, String) Specifies the ID of the backend custom authorization.' + http.description: |- + - (Optional, String) Specifies the description of the constant or system parameter. + The description contains a maximum of 255 characters and the angle brackets (< and >) are not allowed. + http.request_method: |- + - (Optional, String) Specifies the backend request method of the API. + The valid values are GET, POST, PUT, DELETE, HEAD, PATCH, OPTIONS and ANY. + http.request_protocol: |- + - (Optional, String) Specifies the backend request protocol. + The valid values are HTTP and HTTPS, defaults to HTTPS. + http.request_uri: |- + - (Required, String) Specifies the backend request address, which can contain a maximum of 512 characters and + must comply with URI specifications. + http.retry_count: |- + - (Optional, Int) Specifies the number of retry attempts to request the backend service. + The valid value ranges from -1 to 10, defaults to -1. + -1 indicates that idempotent APIs will retry once and non-idempotent APIs will not retry. + POST and PATCH are not-idempotent. + GET, HEAD, PUT, OPTIONS and DELETE are idempotent. + http.ssl_enable: '- (Optional, Bool) Specifies whether to enable two-way authentication, defaults to false.' + http.timeout: |- + - (Optional, Int) Specifies the timeout for API requests to backend service, the unit is ms. + The valid value ranges from 1 to 600,000, defaults to 5,000. + http.url_domain: |- + - (Optional, String) Backend service address. + A backend service address consists of a domain name or IP address and a port number, + with not more than 255 characters. It must be in the format Host name:Port number, + for example, apig.example.com:7443. If the port number is not specified, the default HTTPS port 443 or the default HTTP port 80 is used. + http.version: '- (Required, String) Specifies the function version.' + http.vpc_channel_id: |- + - (Optional, String) Specifies the VPC channel ID. This parameter and url_domain are + alternative. + http.vpc_channel_proxy_host: |- + - (Optional, String) Specifies the proxy host header. + The host header can be customized for requests to be forwarded to cloud servers through the VPC channel. + By default, the original host header of the request is used. + http_policy: |- + - (Optional, List) Specifies the example response for a failed request. + The maximum blocks of the policy is 5. + The object structure is documented below. + http_policy.authorizer_id: '- (Optional, String) Specifies the ID of the backend custom authorization.' + http_policy.backend_params: |- + - (Optional, List) Specifies an array of one or more backend parameters. The maximum of request + parameters is 50. The object structure is documented above. + http_policy.conditions: |- + - (Required, List) Specifies an array of one or more policy conditions. + Up to five conditions can be set. + The object structure is documented below. + http_policy.effective_mode: |- + - (Optional, String) Specifies the effective mode of the backend policy. The valid values are ALL + and ANY, defaults to ANY. + http_policy.name: |- + - (Required, String) Specifies the backend policy name. + The valid length is limited from can contain 3 to 64, only letters, digits and underscores (_) are allowed. + http_policy.request_method: |- + - (Optional, String) Specifies the backend request method of the API. + The valid values are GET, POST, PUT, DELETE, HEAD, PATCH, OPTIONS and ANY. + http_policy.request_protocol: |- + - (Optional, String) Specifies the backend request protocol. The valid values are HTTP and + HTTPS, defaults to HTTPS. + http_policy.request_uri: |- + - (Required, String) Specifies the backend request address, which can contain a maximum of 512 characters and + must comply with URI specifications. + http_policy.retry_count: |- + - (Optional, Int) Specifies the number of retry attempts to request the backend service. + The valid value ranges from -1 to 10, defaults to -1. + -1 indicates that idempotent APIs will retry once and non-idempotent APIs will not retry. + POST and PATCH are not-idempotent. + GET, HEAD, PUT, OPTIONS and DELETE are idempotent. + http_policy.timeout: |- + - (Optional, Int) Specifies the timeout, in ms, which allowed for APIGW to request the backend service. The + valid value is range from 1 to 600,000, defaults to 5,000. + http_policy.url_domain: |- + - (Optional, String) Specifies the backend service address. + The value which consists of a domain name or IP address, and a port number, with not more than 255 characters. + The backend service address must be in the format "{host name}:{Port number}", for example, apig.example.com:7443. + If the port number is not specified, the default HTTPS port 443, or the default HTTP port 80 is used. + The backend service address can contain environment variables, each starting with a letter and consisting of 3 to + 32 characters. Only letters, digits, hyphens (-), and underscores (_) are allowed. + http_policy.vpc_channel_id: |- + - (Optional, String) Specifies the VPC channel ID. + This parameter and url_domain are alternative. + http_policy.vpc_channel_proxy_host: |- + - (Optional, String) Specifies the proxy host header. + The host header can be customized for requests to be forwarded to cloud servers through the VPC channel. + By default, the original host header of the request is used. + id: '- The ID of the API.' + match_mode: |- + - (Optional, String) Specifies the route matching mode. + The valid values are EXACT and PREFIX, defaults to EXACT. + mock: |- + - (Optional, List, ForceNew) Specifies the mock backend details. + The object structure is documented below. + Changing this will create a new API resource. + mock.authorizer_id: '- (Optional, String) Specifies the ID of the backend custom authorization.' + mock.description: |- + - (Optional, String) Specifies the description of the constant or system parameter. + The description contains a maximum of 255 characters and the angle brackets (< and >) are not allowed. + mock.response: |- + - (Required, String) Specifies the response of the backend policy. + The description contains a maximum of 2,048 characters and the angle brackets (< and >) are not allowed. + mock.version: '- (Optional, String) Specifies the mock version. It cannot exceed 64 characters.' + mock_policy: |- + - (Optional, List) Specifies the Mock policy backends. + The maximum blocks of the policy is 5. + The object structure is documented below. + mock_policy.authorizer_id: '- (Optional, String) Specifies the ID of the backend custom authorization.' + mock_policy.backend_params: |- + - (Optional, List) Specifies an array of one or more backend parameters. + The maximum of request parameters is 50. + The object structure is documented above. + mock_policy.conditions: |- + - (Required, List) Specifies an array of one or more policy conditions. + Up to five conditions can be set. + The object structure is documented below. + mock_policy.effective_mode: |- + - (Optional, String) Specifies the effective mode of the backend policy. + The valid values are ALL and ANY, defaults to ANY. + mock_policy.name: |- + - (Required, String) Specifies the backend policy name. + The valid length is limited from can contain 3 to 64, only letters, digits and underscores (_) are allowed. + mock_policy.response: |- + - (Optional, String) Specifies the response of the backend policy. + The description contains a maximum of 2,048 characters and the angle brackets (< and >) are not allowed. + name: |- + - (Required, String) Specifies the API name. + The valid length is limited from can contain 3 to 255, only Chinese and English letters, digits and + following special characters are allowed: -_./(())::、. + The name must start with a digit, Chinese or English letter. + region: |- + - (Optional, String, ForceNew) Specifies the region where the API is located. + If omitted, the provider-level region will be used. Changing this will create a new API resource. + registered_at: '- Time when the API is registered.' + request_method: |- + - (Required, String) Specifies the request method of the API. + The valid values are GET, POST, PUT, DELETE, HEAD, PATCH, OPTIONS and ANY. + request_params: |- + - (Optional, List) Specifies the configurations of the front-end parameters. + The object structure is documented below. + request_params.default: |- + - (Optional, String) Specifies the default value of the request parameter. + The value contains a maximum of 255 characters and the angle brackets (< and >) are not allowed. + request_params.description: |- + - (Optional, String) Specifies the description of the request parameter. + The description contains a maximum of 255 characters and the angle brackets (< and >) are not allowed. + request_params.enumeration: |- + - (Optional, String) Specifies the enumerated value(s). + Use commas to separate multiple enumeration values, such as VALUE_A,VALUE_B. + request_params.location: |- + - (Optional, String) Specifies the location of the request parameter. + The valid values are PATH, QUERY and HEADER, defaults to PATH. + request_params.maximum: '- (Optional, Int) Specifies the maximum value or size of the request parameter.' + request_params.minimum: '- (Optional, Int) Specifies the minimum value or size of the request parameter.' + request_params.name: |- + - (Required, String) Specifies the request parameter name. + The valid length is limited from can contain 1 to 32, only letters, digits, hyphens (-), underscores (_) and + periods (.) are allowed. + If Location is specified as HEADER and security_authentication_type is specified as APP, the parameter name + cannot be Authorization (case-insensitive) and cannot contain underscores. + request_params.passthrough: '- (Optional, Bool) Specifies whether to transparently transfer the parameter.' + request_params.required: '- (Optional, Bool) Specifies whether the request parameter is required.' + request_params.sample: |- + - (Optional, String) Specifies the example value of the request parameter. + The example contains a maximum of 255 characters and the angle brackets (< and >) are not allowed. + request_params.type: |- + - (Optional, String) Specifies the request parameter type. + The valid values are STRING and NUMBER, defaults to STRING. + request_protocol: |- + - (Required, String) Specifies the request protocol of the API. + The valid values are HTTP, HTTPS and BOTH. + request_uri: |- + - (Required, String) Specifies the request address, which can contain a maximum of 512 characters, + the request parameters enclosed with brackets ({}). + response_id: '- (Optional, String) Specifies the APIG group response ID.' + security_authentication_enabled: |- + - (Optional, Bool) Specifies whether the authentication of the application code is enabled. + The application code must located in the header when security_authentication_enabled is true. + security_authentication_type: |- + - (Optional, String) Specifies the security authentication mode of the API request. + The valid values are NONE, APP, IAM and AUTHORIZER, defaults to NONE. + success_response: |- + - (Optional, String) Specifies the example response for a successful request. + The response contains a maximum of 20,480 characters. + tags: |- + - (Optional, List) Tags. Use letters, digits, and special characters (-*#%.:_) and start with a letter. + By default, 10 tags are supported. To increase the quota, contact technical support to modify the API_TAG_NUM_LIMIT configuration. + type: |- + - (Required, String) Specifies the API type. + The valid values are Public and Private. + updated_at: '- Time when the API was last modified.' + version: '- (Optional, String) Specifies the API version.' + importStatements: [] + opentelekomcloud_apigw_appcode_v2: + subCategory: APIGW + description: Manages a APIGW AppCode resource within OpenTelekomCloud. + name: opentelekomcloud_apigw_appcode_v2 + title: opentelekomcloud_apigw_appcode_v2 + examples: + - name: code + manifest: |- + { + "application_id": "${var.application_id}", + "gateway_id": "${var.gateway_id}" + } + references: + application_id: var.application_id + gateway_id: var.gateway_id + - name: code + manifest: |- + { + "application_id": "${var.application_id}", + "gateway_id": "${var.gateway_id}", + "value": "${var.app_code}" + } + references: + application_id: var.application_id + gateway_id: var.gateway_id + value: var.app_code + argumentDocs: + application_id: |- + - (Required, String, ForceNew) Specifies the ID of application to which the AppCode belongs. + Changing this will create a new resource. + created_at: '- The creation time of the AppCode.' + gateway_id: |- + - (Required, String, ForceNew) Specifies the ID of the dedicated instance to which the application + and AppCode belong. Changing this will create a new resource. + id: '- The AppCode ID.' + region: '- The region where the application and AppCode are located.' + value: |- + - (Optional, String, ForceNew) Specifies the AppCode value (content). + The value can contain 64 to 180 characters, starting with a letter, plus sign +, or slash /, or digit. + Only letters, digit and the following special characters are allowed: +_!@#$%/=. + If omitted, a random value will be generated. Changing this will create a new resource. + importStatements: [] + opentelekomcloud_apigw_application_authorization_v2: + subCategory: APIGW + description: Manages a APIGW Application authorization resource within OpenTelekomCloud. + name: opentelekomcloud_apigw_application_authorization_v2 + title: opentelekomcloud_apigw_application_authorization_v2 + examples: + - name: auth + manifest: |- + { + "api_ids": "${var.published_api_ids}", + "application_id": "${var.application_id}", + "env_id": "${var.published_env_id}", + "gateway_id": "${var.gateway_id}" + } + references: + api_ids: var.published_api_ids + application_id: var.application_id + env_id: var.published_env_id + gateway_id: var.gateway_id + argumentDocs: + api_ids: '- (Required, List) Specifies the authorized API IDs.' + application_id: |- + - (Required, String, ForceNew) Specifies the ID of the application authorized to access the APIs. + Changing this will create a new resource. + create: '- Default is 3 minutes.' + delete: '- Default is 3 minutes.' + env_id: |- + - (Required, String, ForceNew) Specifies the environment ID where the APIs were published. + Changing this will create a new resource. + gateway_id: |- + - (Required, String, ForceNew) Specifies the ID of the dedicated gateway instance to which the application + and APIs belong. + Changing this will create a new resource. + id: '- The resource ID, also /.' + region: '- Region where the application and APIs are located.' + update: '- Default is 3 minutes.' + importStatements: [] + opentelekomcloud_apigw_application_v2: + subCategory: APIGW + description: Manages a APIGW Application resource within OpenTelekomCloud. + name: opentelekomcloud_apigw_application_v2 + title: opentelekomcloud_apigw_application_v2 + examples: + - name: test + manifest: |- + { + "app_codes": [ + "${var.app_code}" + ], + "description": "Created by script", + "gateway_id": "${var.gateway_id}", + "name": "${var.app_name}" + } + references: + gateway_id: var.gateway_id + name: var.app_name + argumentDocs: + app_codes: |- + - (Optional, List) Specifies an array of one or more application codes that the application has. + Up to five application codes can be created. + The valid length of each application code is limited from can contain 64 to 180. + The application code must start with a letter, digit, plus sign + or slash /. + Only letters, digits and following special characters are allowed: !@#$%+-_/=. + app_key: '- App key.' + app_secret: '- App secret.' + description: |- + - (Optional, String) Specifies the application description. + The description contain a maximum of 255 characters and the angle brackets (< and >) are not allowed. + gateway_id: |- + - (Required, String, ForceNew) Specifies the ID of the dedicated instance to which the application + belongs. + Changing this will create a new resource. + id: '- The application ID.' + name: |- + - (Required, String) Specifies the application name. + The valid length is limited from can contain 3 to 64, only letters, digits and hyphens - are allowed. + The name must start with a letter. + region: '- The region where the application is located.' + registration_time: '- The registration time.' + secret_action: |- + - (Optional, String) Specifies the secret action to be done for the application. + The valid action is RESET. + updated_at: '- The latest update time of the application.' + importStatements: + - $ terraform import opentelekomcloud_apigw_application_v2.app / + opentelekomcloud_apigw_custom_authorizer_v2: + subCategory: APIGW + description: Manages a APIGW Custom Authorizer resource within OpenTelekomCloud. + name: opentelekomcloud_apigw_custom_authorizer_v2 + title: opentelekomcloud_apigw_custom_authorizer_v2 + examples: + - name: test + manifest: |- + { + "cache_age": 60, + "function_urn": "${var.function_urn}", + "gateway_id": "${var.gateway_id}", + "identity": [ + { + "location": "QUERY", + "name": "user_name" + } + ], + "name": "${var.authorizer_name}", + "type": "FRONTEND" + } + references: + function_urn: var.function_urn + gateway_id: var.gateway_id + name: var.authorizer_name + argumentDocs: + created_at: '- The creation time of the custom authorizer.' + function_urn: '- (Required, String) Specifies the uniform function URN of the function graph resource.' + gateway_id: |- + - (Required, String, ForceNew) Specifies an ID of the APIGW dedicated instance to which the + custom authorizer belongs to. + Changing this will create a new custom authorizer resource. + id: '- ID of the custom authorizer.' + identity: |- + - (Optional, List) Specifies an array of one or more parameter identities of the custom authorizer. + The object structure is documented below. + identity.location: '- (Required, String) Specifies the parameter location, which support HEADER and QUERY.' + identity.name: |- + - (Required, String) Specifies the name of the parameter to be verified. + The parameter includes front-end and back-end parameters. + identity.validation: |- + - (Optional, String) Specifies the parameter verification expression. + If omitted, the custom authorizer will not perform verification. + The valid value is range form 1 to 2,048. + is_body_send: '- (Optional, Bool) Specifies whether to send the body.' + name: |- + - (Required, String) Specifies the name of the custom authorizer. + The custom authorizer name consists of 3 to 64 characters, starting with a letter. + Only letters, digits and underscores _ are allowed. + region: '- The region in which to create the custom authorizer resource.' + ttl: '- (Optional, Int) Specifies the maximum cache age.' + type: |- + - (Optional, String, ForceNew) Specifies the custom authorize type. + The valid values are FRONTEND and BACKEND. Defaults to FRONTEND. + Changing this will create a new custom authorizer resource. + user_data: |- + - (Optional, String) Specifies the user data, which can contain a maximum of 2,048 characters. + The user data is used by APIGW to invoke the specified authentication function when accessing the backend service. + importStatements: + - $ terraform import opentelekomcloud_apigw_custom_authorizer_v2.test / + opentelekomcloud_apigw_environment_v2: + subCategory: APIGW + description: Manages a APIGW Environment resource within OpenTelekomCloud. + name: opentelekomcloud_apigw_environment_v2 + title: opentelekomcloud_apigw_environment_v2 + examples: + - name: test + manifest: |- + { + "description": "${var.description}", + "instance_id": "${var.instance_id}", + "name": "${var.environment_name}" + } + references: + description: var.description + instance_id: var.instance_id + name: var.environment_name + argumentDocs: + created_at: '- The time when the environment was created.' + description: |- + - (Optional, String) Specifies the environment description. + The value can contain a maximum of 255 characters, and the angle brackets (< and >) are not allowed. + id: '- The ID of the dedicated environment.' + instance_id: |- + - (Required, String, ForceNew) Specifies the ID of the dedicated instance to which the environment + belongs. + Changing this will create a new resource. + name: |- + - (Required, String) Specifies the environment name. + The valid length is limited from 3 to 64, only letters, digits and underscores (_) are allowed. + The name must start with a letter. + region: |- + - (Optional, String, ForceNew) Specifies the region where the dedicated instance is located. + If omitted, the provider-level region will be used. Changing this will create a new resource. + importStatements: [] + opentelekomcloud_apigw_environment_variable_v2: + subCategory: APIGW + description: Manages a APIGW Environment variable resource within OpenTelekomCloud. + name: opentelekomcloud_apigw_environment_variable_v2 + title: opentelekomcloud_apigw_environment_variable_v2 + examples: + - name: var + manifest: |- + { + "environment_id": "${var.environment_id}", + "gateway_id": "${var.gateway_id}", + "group_id": "${var.group_id}", + "name": "${var.variable_name}", + "value": "${var.variable_value}" + } + references: + environment_id: var.environment_id + gateway_id: var.gateway_id + group_id: var.group_id + name: var.variable_name + value: var.variable_value + argumentDocs: + environment_id: |- + - (Required, String, ForceNew) Specifies the ID of the environment to which the environment variable belongs. + Changing this creates a new resource. + gateway_id: |- + - (Required, String, ForceNew) Specifies the ID of the dedicated gateway instance to which the environment + variable belongs. Changing this creates a new resource. + group_id: |- + - (Required, String, ForceNew) Specifies the ID of the group to which the environment variable belongs. + Changing this creates a new resource. + id: '- The resource ID.' + name: |- + - (Required, String, ForceNew) Specifies the name of the environment variable. + The valid length is limited from 3 to 32 characters. + Only letters, digits, hyphens -, and underscores _ are allowed, and must start with a letter. + In the definition of an API, the name (case-sensitive) indicates a variable, for example, #Name#. + It is replaced by the actual value when the API is published in an environment. The variable name must be unique. + Changing this creates a new resource. + region: '- The region where the dedicated instance is located.' + value: |- + - (Required, String, ForceNew) Specifies the value of the environment variable. + The valid length is limited from 1 to 255 characters. Only letters, digits and special characters _-/.: are allowed. + Changing this creates a new resource. + importStatements: [] + opentelekomcloud_apigw_gateway_v2: + subCategory: APIGW + description: Manages a API Gateway resource within OpenTelekomCloud. + name: opentelekomcloud_apigw_gateway_v2 + title: opentelekomcloud_apigw_gateway_v2 + examples: + - name: gateway + manifest: |- + { + "availability_zones": [ + "eu-de-01", + "eu-de-02" + ], + "bandwidth_size": 5, + "description": "test gateway", + "ingress_bandwidth_charging_mode": "bandwidth", + "ingress_bandwidth_size": 5, + "maintain_begin": "22:00:00", + "name": "test-gateway", + "security_group_id": "${var.default_secgroup.id}", + "spec_id": "BASIC", + "subnet_id": "${var.network_id}", + "vpc_id": "${var.vpc_id}" + } + references: + security_group_id: var.default_secgroup.id + subnet_id: var.network_id + vpc_id: var.vpc_id + argumentDocs: + availability_zones: '- (Optional, List) Specifies gateway description.' + bandwidth_charging_mode: |- + - (Optional, String, ForceNew) Billing type of the public outbound access bandwidth. + The valid values are as follows: + bandwidth_size: |- + - (Optional, String) Specifies outbound access bandwidth. This parameter is required if public outbound + access is enabled for the gateway. After you configure the bandwidth for the gateway, + users can access resources on public networks. + description: '- (Optional, String) Specifies gateway description.' + ingress_bandwidth_charging_mode: |- + - (Optional, String, ForceNew) Specifies the ingress bandwidth billing type of the dedicated instance. + The valid values are as follows: + ingress_bandwidth_size: |- + - (Optional, String, ForceNew) Specifies public inbound access bandwidth. This parameter is required if public + inbound access is enabled for the gateway and loadbalancer_provider is set to elb. + After you bind an EIP to the gateway, users can access APIs in the gateway from public networks using the EIP. + loadbalancer_provider: |- + - (Optional, String) Specifies type of the load balancer used by the gateway. + This resource provides the following timeouts configuration options: + maintain_begin: |- + - (Optional, String) Specifies start time of the maintenance time window. + It must be in the format "xx:00:00". The value of xx can be 02, 06, 10, 14, 18, or 22. + maintain_end: |- + - End time of the maintenance time window. It must be in the format "xx:00:00". + There is a 4-hour difference between the start time and end time. + name: '- (Required, String) Specifies gateway name.' + private_egress_addresses: '- List of private egress addresses.' + project_id: '- Instance project id.' + public_egress_address: '- IP address for public outbound access.' + region: '- Instance region.' + security_group_id: '- (Required, String) Specifies ID of the security group to which the gateway belongs.' + spec_id: |- + - (Required, ForceNew, String) Gateway edition. Options: + This resource provides the following timeouts configuration options: + status: '- Instance status.' + subnet_id: '- (Required, ForceNew, String) Specifies network ID.' + supported_features: '- Supported features.' + vpc_id: '- (Required, ForceNew, String) Specifies VPC ID.' + vpc_ingress_address: '- VPC ingress address.' + vpcep_service_name: '- Name of a VPC endpoint service.' + importStatements: + - $ terraform import opentelekomcloud_apigw_gateway_v2.gateway c1881895-cdcb-4d23-96cb-032e6a3ee667 + opentelekomcloud_apigw_group_v2: + subCategory: APIGW + description: Manages a APIGW Group resource within OpenTelekomCloud. + name: opentelekomcloud_apigw_group_v2 + title: opentelekomcloud_apigw_group_v2 + examples: + - name: group + manifest: |- + { + "description": "test description", + "environment": [ + { + "environment_id": "${var.env_id}", + "variable": [ + { + "name": "test-name", + "value": "test-value" + } + ] + } + ], + "instance_id": "${var.gateway_id}", + "name": "group-name" + } + references: + environment.environment_id: var.env_id + instance_id: var.gateway_id + argumentDocs: + description: '- (Optional, String) Specifies the group description.' + environment: |- + - (Optional, List) Specifies an array of one or more environments of the associated group. + The environment structure is documented below. + environment.environment_id: '- (Required, String) Specifies the environment ID of the associated group.' + environment.variable: |- + - (Required, List) Specifies an array of one or more environment variables. + The variable structure is documented below. + environment.variable.id: '- The variable ID.' + id: '- The group ID.' + instance_id: |- + - (Required, String, ForceNew) Specifies the ID of the dedicated instance to which the group belongs. + Changing this will create a new resource. + name: |- + - (Required, String) Specifies the group name. + The valid length is limited from 3 to 64, only letters, digits and hyphens (-) are + allowed. + region: |- + - (Optional, String, ForceNew) Specifies the region where the APIGW group is located. + If omitted, the provider-level region will be used. Changing this will create a new resource. + registration_time: '- The registration time, in RFC-3339 format.' + updated_at: '- The time when the API group was last modified, in RFC-3339 format.' + variable.name: |- + - (Required, String) Specifies the variable name. + The valid length is limited from 3 to 32 characters. + Only letters, digits, hyphens (-), and underscores (_) are allowed, and must start with a letter. + variable.value: |- + - (Required, String) Specifies the variable value. + The valid length is limited from 1 to 255 characters. + Only letters, digits and special characters (_-/.:) are allowed. + importStatements: + - $ terraform import opentelekomcloud_apigw_group_v2.test / + opentelekomcloud_apigw_response_v2: + subCategory: APIGW + description: Manages a APIGW Custom Response resource within OpenTelekomCloud. + name: opentelekomcloud_apigw_response_v2 + title: opentelekomcloud_apigw_response_v2 + examples: + - name: test + manifest: |- + { + "gateway_id": "${var.gateway_id}", + "group_id": "${var.group_id}", + "name": "${var.response_name}", + "rule": [ + { + "body": "{\"code\":\"$context.authorizer.frontend.code\",\"message\":\"$context.authorizer.frontend.message\"}", + "error_type": "AUTHORIZER_FAILURE", + "status_code": 401 + } + ] + } + references: + gateway_id: var.gateway_id + group_id: var.group_id + name: var.response_name + argumentDocs: + ACCESS_DENIED: ': (403) Access denied.' + AUTH_FAILURE: ': (401) Authentication failed.' + AUTH_HEADER_MISSING: ': (401) The identity source is missing.' + AUTHORIZER_CONF_FAILURE: ': (500) There has been a custom authorizer error.' + AUTHORIZER_FAILURE: ': (500) Custom authentication failed.' + AUTHORIZER_IDENTITIES_FAILURE: ': (401) The identity source of the custom authorizer is invalid.' + BACKEND_TIMEOUT: ': (504) Communication with the backend service timed out.' + BACKEND_UNAVAILABLE: ': (502) The backend service is unavailable.' + DEFAULT_4XX: ': (NONE) Another 4XX error occurred.' + DEFAULT_5XX: ': (NONE) Another 5XX error occurred.' + NOT_FOUND: ': (404) No API is found.' + REQUEST_PARAMETERS_FAILURE: ': (400) The request parameters are incorrect.' + THIRD_AUTH_CONF_FAILURE: ': (500) Third-party authorizer configuration error.' + THIRD_AUTH_FAILURE: ': (401) Third-party authentication failed.' + THIRD_AUTH_IDENTITIES_FAILURE: ': (401) Identity source of the third-party authorizer is invalid.' + THROTTLED: ': (429) The request was rejected due to request throttling.' + UNAUTHORIZED: ': (401) The app you are using has not been authorized to call the API.' + created_at: '- The creation time of the API custom response.' + gateway_id: |- + - (Required, String, ForceNew) Specifies the ID of the dedicated instance to which the API group and the + API custom response belong. + Changing this will create a new resource. + group_id: |- + - (Required, String, ForceNew) Specifies the ID of the API group to which the API custom response + belongs. + Changing this will create a new resource. + id: '- ID of the API custom response.' + name: |- + - (Required, String) Specifies the name of the API custom response. + The valid length is limited from 1 to 64, letters, digits, hyphens (-) and underscores (_) are allowed. + region: '- The region where the API custom response is located.' + rule: |- + - (Optional, List) Specifies the API custom response rules definition. + The object structure is documented below. + rule.body: |- + - (Required, String) Specifies the body template of the API response rule, e.g. + {\"code\":\"$context.authorizer.frontend.code\",\"message\":\"$context.authorizer.frontend.message\"} + rule.error_type: |- + - (Required, String) Specifies the error type of the API response rule. + The valid values and the related default status code are as follows: + rule.status_code: '- (Optional, Int) Specifies the HTTP status code of the API response rule.' + updated_at: '- The latest update time of the API custom response.' + importStatements: + - $ terraform import opentelekomcloud_apigw_response_v2.test // + opentelekomcloud_apigw_signature_associate_v2: + subCategory: APIGW + description: Manages a APIGW Signature Associate resource within OpenTelekomCloud. + name: opentelekomcloud_apigw_signature_associate_v2 + title: opentelekomcloud_apigw_signature_associate_v2 + examples: + - name: test + manifest: |- + { + "instance_id": "${var.gateway_id}", + "publish_ids": "${var.api_publish_ids}", + "signature_id": "${var.signature_id}" + } + references: + instance_id: var.gateway_id + publish_ids: var.api_publish_ids + signature_id: var.signature_id + argumentDocs: + create: '- Default is 3 minutes.' + delete: '- Default is 3 minutes.' + gateway_id: |- + - (Required, String, ForceNew) Specifies the ID of the dedicated instance to which the APIs and the + signature belong. + Changing this will create a new resource. + id: '- Resource ID. The format is /.' + publish_ids: '- (Required, List) Specifies the publish IDs corresponding to the APIs bound by the signature.' + region: '- Region where the signature and the APIs are located.' + signature_id: |- + - (Required, String, ForceNew) Specifies the signature ID for APIs binding. + Changing this will create a new resource. + update: '- Default is 3 minutes.' + importStatements: [] + opentelekomcloud_apigw_signature_v2: + subCategory: APIGW + description: Manages a APIGW Signature resource within OpenTelekomCloud. + name: opentelekomcloud_apigw_signature_v2 + title: opentelekomcloud_apigw_signature_v2 + examples: + - name: hmac + manifest: |- + { + "instance_id": "${var.gateway_id}", + "key": "${var.signature_key}", + "name": "${var.signature_name}", + "secret": "${var.signature_secret}", + "type": "hmac" + } + references: + instance_id: var.gateway_id + key: var.signature_key + name: var.signature_name + secret: var.signature_secret + - name: hmac + manifest: |- + { + "instance_id": "${var.gateway_id}", + "name": "${var.signature_name}", + "type": "hmac" + } + references: + instance_id: var.gateway_id + name: var.signature_name + - name: aes + manifest: |- + { + "algorithm": "aes-128-cfb", + "instance_id": "${var.gateway_id}", + "key": "${var.signature_key}", + "name": "${var.signature_name}", + "secret": "${var.signature_secret}", + "type": "aes" + } + references: + instance_id: var.gateway_id + key: var.signature_key + name: var.signature_name + secret: var.signature_secret + argumentDocs: + aes: |- + : AES type + Changing this will create a new resource. + aes-256-cfb: Changing this will create a new resource. + algorithm: |- + - (Optional, String) Specifies the signature algorithm. + This parameter is required and only available when signature type is aes. + The valid values are as follows: + basic: ': Basic auth type.' + created_at: '- The creation time of the signature.' + gateway_id: |- + - (Required, String, ForceNew) Specifies the ID of the dedicated gateway to which the signature + belongs. Changing this will create a new resource. + hmac: ': HMAC type.' + id: '- The ID of the signature.' + key: '- (Optional, String) Specifies the signature key.' + name: |- + - (Required, String) Specifies the signature name. + The valid length is limited from 3 to 64, only English letters, Chinese characters, digits and underscores _ are + allowed. The name must start with an English letter or Chinese character. + region: '- Region where the signature is located.' + secret: |- + - (Optional, String) Specifies the signature secret. + If not specified, the secret will automatically generated. The auto-generation is only supported on first creation. + Changing this will create a new resource. + type: |- + - (Required, String) Specifies the type of signature. + The valid values are as follows: + updated_at: '- The latest update time of the signature.' + importStatements: [] + opentelekomcloud_apigw_throttling_policy_associate_v2: + subCategory: APIGW + description: Manages a APIGW Throttling Policy Associate resource within OpenTelekomCloud. + name: opentelekomcloud_apigw_throttling_policy_associate_v2 + title: opentelekomcloud_apigw_throttling_policy_associate_v2 + examples: + - name: tpa + manifest: |- + { + "gateway_id": "${var.gateway_id}", + "policy_id": "${var.policy_id}", + "publish_ids": "${var.publish_ids}" + } + references: + gateway_id: var.gateway_id + policy_id: var.policy_id + publish_ids: var.publish_ids + argumentDocs: + gateway_id: |- + - (Required, String, ForceNew) Specifies the ID of the dedicated gateway to which the APIs and the + throttling policy belongs. + Changing this will create a new resource. + id: '- Resource ID. The format is /.' + policy_id: |- + - (Required, String, ForceNew) Specifies the ID of the throttling policy. + Changing this will create a new resource. + publish_ids: '- (Required, List) Specifies the publishing IDs corresponding to the APIs bound by the throttling policy.' + region: '- Specifies the region where the dedicated instance and the throttling policy are located.' + importStatements: + - $ terraform import opentelekomcloud_apigw_throttling_policy_associate_v2.tpa / + opentelekomcloud_apigw_throttling_policy_v2: + subCategory: APIGW + description: Manages a APIGW Throttling Policy resource within OpenTelekomCloud. + name: opentelekomcloud_apigw_throttling_policy_v2 + title: opentelekomcloud_apigw_throttling_policy_v2 + examples: + - name: policy + manifest: |- + { + "description": "Created by tf", + "instance_id": "${opentelekomcloud_apigw_gateway_v2.gateway.id}", + "max_api_requests": 70, + "max_app_requests": 45, + "max_ip_requests": 45, + "max_user_requests": 45, + "name": "throttling policy", + "period": 10, + "period_unit": "MINUTE", + "type": "API-shared" + } + references: + instance_id: opentelekomcloud_apigw_gateway_v2.gateway.id + argumentDocs: + app_throttles: |- + - (Optional, List) Specifies the array of one or more special throttling policies for APP limit. + The app_throttles object structure is documented below. + created_at: '- The creation time of the throttling policy.' + description: |- + - (Optional, String) Specifies the description about the API throttling policy. + The description contain a maximum of 255 characters and the angle brackets (< and >) are not allowed. + id: '- ID of the API throttling policy.' + instance_id: |- + - (Required, String, ForceNew) Specifies the ID of the dedicated instance to which the throttling + policy belongs. + max_api_requests: |- + - (Required, Int) Specifies the maximum number of times an API can be accessed within a specified + period. The value of this parameter cannot exceed the default limit 200 TPS. + max_app_requests: |- + - (Optional, Int) Specifies the maximum number of times the API can be accessed by an app within + the same period. + The value of this parameter must be less than or equal to the value of max_user_requests. + max_ip_requests: |- + - (Optional, Int) Specifies the maximum number of times the API can be accessed by an IP address + within the same period. + The value of this parameter must be less than or equal to the value of max_api_requests. + max_user_requests: |- + - (Optional, Int) Specifies the maximum number of times the API can be accessed by a user within + the same period. + The value of this parameter must be less than or equal to the value of max_api_requests. + name: |- + - (Required, String) Specifies the name of the throttling policy. + The valid length is limited from 3 to 64, only English letters, digits and underscores (_) are + allowed. + period: |- + - (Required, Int) Specifies the period of time for limiting the number of API calls. + This parameter applies with each of the API call limits: max_api_requests, max_app_requests, max_ip_requests + and max_user_requests. + period_unit: |- + - (Optional, String) Specifies the time unit for limiting the number of API calls. + The valid values are SECOND, MINUTE, HOUR and DAY, defaults to MINUTE. + region: '- The region where the throttling policy is located.' + type: |- + - (Optional, String) Specifies the type of the request throttling policy. + The valid values are as follows: + user_throttles: |- + - (Optional, List) Specifies the array of one or more special throttling policies for IAM user limit. + The user_throttles object structure is documented below. + user_throttles.id: '- ID of the special user/application throttling policy.' + user_throttles.max_api_requests: |- + - (Required, Int) Specifies the maximum number of times an API can be accessed within a specified + period. + user_throttles.throttling_object_id: '- (Required, String) Specifies the object ID which the special throttling policy belongs.' + user_throttles.throttling_object_name: '- The object name which the special user/application throttling policy belongs.' + importStatements: + - $ terraform import opentelekomcloud_apigw_throttling_policy_v2.test / + opentelekomcloud_apigw_vpc_channel_v2: + subCategory: APIGW + description: Manages a APIGW VPC Channel resource within OpenTelekomCloud. + name: opentelekomcloud_apigw_vpc_channel_v2 + title: opentelekomcloud_apigw_vpc_channel_v2 + examples: + - name: test + manifest: |- + { + "dynamic": { + "member": [ { - "inline": [ - "bootstrap-cluster.sh ${join(\" \", aws_instance.cluster.*.private_ip)}" - ] + "content": [ + { + "id": "${member.value[\"id\"]}", + "weight": "${member.value[\"weight\"]}" + } + ], + "for_each": "${var.backend_servers}" } ] }, - "triggers": { - "cluster_instance_ids": "${join(\",\", aws_instance.cluster.*.id)}" - } + "gateway_id": "${var.gateway_id}", + "name": "${var.channel_name}", + "port": 8080 + } + references: + dynamic.content.id: member.value["id"] + dynamic.content.weight: member.value["weight"] + dynamic.for_each: var.backend_servers + gateway_id: var.gateway_id + name: var.channel_name + - name: test + manifest: |- + { + "dynamic": { + "member": [ + { + "content": [ + { + "group_name": "${member.value[\"group_name\"]}", + "id": "${member.value[\"id\"]}", + "weight": "${member.value[\"weight\"]}" + } + ], + "for_each": "${var.backend_servers}" + } + ], + "member_group": [ + { + "content": [ + { + "description": "${member.value[\"description\"]}", + "name": "${member.value[\"name\"]}", + "weight": "${member.value[\"weight\"]}" + } + ], + "for_each": "${var.backend_server_groups}" + } + ] + }, + "gateway_id": "${var.gateway_id}", + "name": "${var.channel_name}", + "port": 8080 + } + references: + dynamic.content.description: member.value["description"] + dynamic.content.group_name: member.value["group_name"] + dynamic.content.id: member.value["id"] + dynamic.content.name: member.value["name"] + dynamic.content.weight: member.value["weight"] + dynamic.for_each: var.backend_servers + gateway_id: var.gateway_id + name: var.channel_name + - name: test + manifest: |- + { + "dynamic": { + "member_group": [ + { + "content": [ + { + "microservice_port": "${member_group.value[\"microservice_port\"]}", + "microservice_tags": "${member_group.value[\"microservice_tags\"]}", + "name": "${member_group.value[\"name\"]}", + "weight": "${member_group.value[\"weight\"]}" + } + ], + "for_each": "${var.member_groups_config}" + } + ] + }, + "gateway_id": "${var.gateway_id}", + "health_check": [ + { + "enable_client_ssl": false, + "http_codes": "200,201,208-209", + "interval": 5, + "method": "GET", + "path": "/", + "port": 65530, + "protocol": "TCP", + "status": 1, + "threshold_abnormal": 2, + "threshold_normal": 2, + "timeout": 2 + } + ], + "lb_algorithm": 1, + "member_type": "ip", + "microservice": [ + { + "cce_config": [ + { + "cluster_id": "${var.cluster_id}", + "label_key": "app", + "label_value": "${var.stateless_workload_name}", + "namespace": "default", + "workload_type": "deployment" + } + ] + } + ], + "name": "${var.channel_name}", + "port": 80, + "type": 3 + } + references: + dynamic.content.microservice_port: member_group.value["microservice_port"] + dynamic.content.microservice_tags: member_group.value["microservice_tags"] + dynamic.content.name: member_group.value["name"] + dynamic.content.weight: member_group.value["weight"] + dynamic.for_each: var.member_groups_config + gateway_id: var.gateway_id + microservice.cce_config.cluster_id: var.cluster_id + microservice.cce_config.label_value: var.stateless_workload_name + name: var.channel_name + argumentDocs: + "1": ': Weighted round robin (WRR).' + "2": ': Weighted least connections (WLC).' + "3": ': Source hashing.' + "4": ': URI hashing.' + 200,201,202: . + 200-299: . + 201,202,210-299: . + created_at: '- The time when the channel was created.' + daemonset: ': Daemons set.' + deployment: ': Stateless load.' + ecs: . + gateway_id: |- + - (Required, String, ForceNew) Specifies the ID of the dedicated API gateway to which the channel + belongs. + Changing this will create a new resource. + health_check: |- + - (Optional, List) Specifies the health configuration of cloud servers associated with the load balance + channel for APIG regularly check. + The object structure is documented below. + health_check.1: (normal). + health_check.enable_client_ssl: |- + - (Optional, Bool) Specifies whether to enable two-way authentication. + Defaults to false. + health_check.http_codes: |- + - (Optional, String) Specifies the response codes for determining a successful HTTP response. + The valid value ranges from 100 to 599 and the valid formats are as follows: + health_check.interval: |- + - (Required, Int) Specifies the interval between consecutive checks, in second. + The valid value ranges from 1 to 300. + health_check.method: |- + - (Optional, String) Specifies the request method for health check. + The valid values are GET and HEAD. + health_check.path: |- + - (Optional, String) Specifies the destination path for health checks. + Required if the protocol is HTTP or HTTPS. + health_check.port: |- + - (Optional, Int) Specifies the destination host port for health check. + The valid value ranges from 0 to 65,535. + health_check.protocol: |- + - (Required, String) Specifies the microservice for performing health check on backend servers. + The valid values are TCP, HTTP and HTTPS, defaults to TCP. + health_check.status: |- + - (Optional, Int) Specifies the status of health check. + The valid values are as follows: + health_check.threshold_abnormal: |- + - (Required, Int) Specifies the unhealthy threshold, which refers to the number of consecutive + failed checks required for a backend server to be considered unhealthy. + The valid value ranges from 1 to 10. + health_check.threshold_normal: |- + - (Required, Int) Specifies the healthy threshold, which refers to the number of consecutive + successful checks required for a backend server to be considered healthy. + The valid value ranges from 1 to 10. + health_check.timeout: |- + - (Required, Int) Specifies the timeout for determining whether a health check fails, in second. + The value must be less than the value of the time interval. + The valid value ranges from 1 to 30. + id: '- The ID of the channel.' + ip: . + lb_algorithm: |- + - (Required, Int) Specifies the distribution algorithm. + The valid values are as follows: + member: |- + - (Optional, List) Specifies the backend servers of the channel. + This parameter is required and only available if the type is 2. + The object structure is documented below. + member.1: (normal). + member.group_name: |- + - (Optional, String) Specifies the IP address each backend servers. + If omitted, means that all backend servers are both in one group. + member.host: '- (Optional, String) Specifies the IP address each backend servers.' + member.id: '- (Optional, String) Specifies the ECS ID for each backend servers.' + member.is_backup: |- + - (Optional, Bool) Specifies whether this member is the backup member. + Defaults to false. + member.member.host: |- + and member.id must be set if member_type is ecs. + The parameter member.host and member.id are alternative. + member.name: |- + - (Optional, String) Specifies the name of the backend server. + Required if the parameter member.id is set. + member.port: |- + - (Optional, Int) Specifies the port of the backend server. + The valid value ranges from 0 to 65,535. + If omitted, the default port of channel will be used. + member.status: |- + - (Optional, Int) Specifies the status of the backend server. + The valid values are as follows: + member.weight: |- + - (Optional, Int) Specifies the weight of current backend server. + The valid value ranges from 0 to 10,000, defaults to 0. + member_group: |- + - (Optional, List) Specifies the backend (server) groups of the channel. + The object structure is documented below. + member_group.description: '- (Optional, String) Specifies the description of the member group.' + member_group.microservice_port: |- + - (Optional, Int) Specifies the microservice port of the backend server group. + The valid value ranges from 0 to 65,535. + member_group.microservice_tags: '- (Optional, Map) Specifies the microservice tags of the backend server group.' + member_group.microservice_version: '- (Optional, String) Specifies the microservice version of the backend server group.' + member_group.name: |- + - (Required, String) Specifies the name of the member group. + The valid length is limited from 3 to 64, only chinese and english letters, digits, hyphens (-), underscores (_) + and dots (.) are allowed. + The name must start with a Chinese or English letter. + member_group.weight: '- (Optional, String) Specifies the weight of the current member group.' + member_type: |- + - (Optional, String) Specifies the member type of the channel. + The valid values are as follows: + microservice: |- + - (Optional, List) Specifies the configuration of the microservice. + The object structure is documented below. + microservice.cce_config: |- + - (Optional, List) Specifies the CCE microservice details. + The object structure is documented below. + microservice.cce_config.cluster_id: '- (Required, String) Specifies the CCE cluster ID.' + microservice.cce_config.label_key: '- (Required, String) Specifies the service label key.' + microservice.cce_config.label_value: '- (Required, String) Specifies the service label value.' + microservice.cce_config.namespace: '- (Required, String) Specifies the namespace, such as the default namespace for CCE cluster: default.' + microservice.cce_config.workload_type: '- (Required, String) Specifies the workload type.' + name: |- + - (Required, String) Specifies the channel name. + The valid length is limited from 3 to 64, only chinese and english letters, digits, hyphens -, underscores _ + and dots (.) are allowed. + The name must start with a Chinese or English letter. + port: |- + - (Required, Int) Specifies the default port for health check in channel. + The valid value ranges from 1 to 65,535. + region: '- The region where the channel is located.' + statefulset: ': Stateful load.' + status: '- The current status of the channel.' + type: |- + - (Optional, Int) Specifies the type of the channel. + The valid values are as follows: + importStatements: [] + opentelekomcloud_as_configuration_v1: + subCategory: Autoscaling + description: Manages a AS Configuration resource within OpenTelekomCloud. + name: opentelekomcloud_as_configuration_v1 + title: opentelekomcloud_as_configuration_v1 + examples: + - name: my_as_config + manifest: |- + { + "instance_config": [ + { + "disk": [ + { + "disk_type": "SYS", + "size": 40, + "volume_type": "SATA" + } + ], + "flavor": "${var.flavor}", + "image": "${var.image_id}", + "key_name": "${var.keyname}", + "user_data": "${file(\"userdata.txt\")}" + } + ], + "scaling_configuration_name": "my_as_config" + } + references: + instance_config.flavor: var.flavor + instance_config.image: var.image_id + instance_config.key_name: var.keyname + - name: my_as_config + manifest: |- + { + "instance_config": [ + { + "disk": [ + { + "disk_type": "SYS", + "size": 40, + "volume_type": "SATA" + }, + { + "disk_type": "DATA", + "kms_id": "${var.kms_id}", + "size": 100, + "volume_type": "SATA" + } + ], + "flavor": "${var.flavor}", + "image": "${var.image_id}", + "key_name": "${var.keyname}", + "user_data": "${file(\"userdata.txt\")}" + } + ], + "scaling_configuration_name": "my_as_config" + } + references: + instance_config.disk.kms_id: var.kms_id + instance_config.flavor: var.flavor + instance_config.image: var.image_id + instance_config.key_name: var.keyname + - name: my_as_config + manifest: |- + { + "instance_config": [ + { + "disk": [ + { + "disk_type": "SYS", + "size": 40, + "volume_type": "SATA" + } + ], + "flavor": "${var.flavor}", + "image": "${var.image_id}", + "key_name": "${var.keyname}", + "metadata": { + "some_key": "some_value" + }, + "user_data": "${file(\"userdata.txt\")}" + } + ], + "scaling_configuration_name": "my_as_config" + } + references: + instance_config.flavor: var.flavor + instance_config.image: var.image_id + instance_config.key_name: var.keyname + - name: my_as_config + manifest: |- + { + "instance_config": { + "instance_id": "4579f2f5-cbe8-425a-8f32-53dcb9d9053a", + "key_name": "${var.keyname}" + }, + "scaling_configuration_name": "my_as_config" + } + - name: my_as_config + manifest: |- + { + "instance_config": [ + { + "disk": [ + { + "disk_type": "SYS", + "size": 40, + "volume_type": "SATA" + } + ], + "flavor": "${var.flavor}", + "image": "${var.image_id}", + "key_name": "${var.keyname}", + "security_groups": [ + "${opentelekomcloud_compute_secgroup_v2.secgroup_1.id}" + ], + "user_data": "${file(\"userdata.txt\")}" + } + ], + "scaling_configuration_name": "my_as_config" + } + references: + instance_config.flavor: var.flavor + instance_config.image: var.image_id + instance_config.key_name: var.keyname + dependencies: + opentelekomcloud_compute_secgroup_v2.secgroup_1: |- + { + "description": "Security group for AS config tf test", + "name": "acc-test-sg-1" + } + argumentDocs: + DATA: ': indicates a data disk.' + SAS: ': high I/O disk type.' + SATA: ': common I/O disk type.' + SSD: ': ultra-high I/O disk type.' + SYS: ': indicates a system disk.' + bandwidth.charging_mode: '- (Required) The bandwidth charging mode. The system only supports traffic.' + bandwidth.share_type: '- (Required) The bandwidth sharing type. The system only supports PER.' + bandwidth.size: '- (Required) The bandwidth (Mbit/s). The value range is 1 to 500.' + co-p1: ': high I/O (performance-optimized I) disk type.' + disk.disk_type: '- (Required) Specifies a disk type. The options are as follows:' + disk.kms_id: '- (Optional) The Encryption KMS ID of the data disk.' + disk.size: |- + - (Required) The disk size. The unit is GB. The system disk size ranges from 4 to 32768 and must + be greater than or equal to the minimum size (min_disk value) of the system disk specified in the image. + The data disk size ranges from 10 to 32768. + disk.volume_type: '- (Required) Specifies the ECS system disk type. The disk type must match the available disk type.' + id: '- Specifies the AS configuration ID.' + instance_config: |- + - (Required) The information about instance configurations. The instance_config + dictionary data structure is documented below. + instance_config.disk: |- + - (Optional) The disk group information. System disks are mandatory and data disks are optional. + The dick structure is described below. + instance_config.flavor: '- (Optional) The flavor ID. By default, it tries to get from env by OS_FLAVOR_ID.' + instance_config.image: '- (Optional) The image ID. By default, it tries to get from env by OS_IMAGE_ID.' + instance_config.instance_id: |- + - (Optional) When using the existing instance specifications as the template to + create AS configurations, specify this argument. In this case, flavor, image, + and disk arguments do not take effect. If the instance_id argument is not specified, + flavor, image, and disk arguments are mandatory. + instance_config.key_name: '- (Required) The name of the SSH key pair used to log in to the instance.' + instance_config.metadata: |- + - (Optional) Metadata key/value pairs to make available from + within the instance. + instance_config.personality: |- + - (Optional) Customize the personality of an instance by + defining one or more files and their contents. The personality structure + is described below. + instance_config.public_ip: |- + - (Optional) The elastic IP address of the instance. The public_ip structure + is described below. + instance_config.region: '- See Argument Reference above.' + instance_config.security_groups: |- + - (Optional) An array of one or more security group IDs + to associate with the AS configuration. + instance_config.user_data: |- + - (Optional) The user data to provide when launching the instance. + The file content must be encoded with Base64. + personality.contents: '- (Required) The content of the injected file, which must be encoded with base64.' + personality.path: '- (Required) The absolute path of the destination file.' + public_ip.eip: |- + - (Required) The configuration parameter for creating an elastic IP address + that will be automatically assigned to the instance. The eip structure is described below. + public_ip.eip.bandwidth: '- (Required) The bandwidth information. The structure is described below.' + public_ip.eip.ip_type: '- (Required) The IP address type. The system only supports 5_bgp and 5_mailbgp.' + region: |- + - (Optional) The region in which to obtain the V1 AutoScaling client. If omitted, the + region argument of the provider is used. Changing this creates a new group. + scaling_configuration_name: |- + - (Required) The name of the AS configuration. The name can contain letters, + digits, underscores(_), and hyphens(-), and cannot exceed 64 characters. + uh-l1: ': ultra-high I/O (latency-optimized) disk type.' + importStatements: [] + opentelekomcloud_as_group_v1: + subCategory: Autoscaling + description: Manages a AS Group resource within OpenTelekomCloud. + name: opentelekomcloud_as_group_v1 + title: opentelekomcloud_as_group_v1 + examples: + - name: as_group + manifest: |- + { + "delete_instances": "yes", + "delete_publicip": true, + "desire_instance_number": 2, + "max_instance_number": 10, + "min_instance_number": 0, + "networks": [ + { + "id": "ad091b52-742f-469e-8f3c-fd81cadf0743" + } + ], + "scaling_configuration_id": "37e310f5-db9d-446e-9135-c625f9c2bbfc", + "scaling_group_name": "as_group", + "security_groups": [ + { + "id": "45e4c6de-6bf0-4843-8953-2babde3d4810" + } + ], + "tags": { + "muh": "kuh" + }, + "vpc_id": "1d8f7e7c-fe04-4cf5-85ac-08b478c290e9" + } + - name: as_group_only_remove_members + manifest: |- + { + "delete_instances": "no", + "delete_publicip": true, + "desire_instance_number": 2, + "max_instance_number": 10, + "min_instance_number": 0, + "networks": [ + { + "id": "ad091b52-742f-469e-8f3c-fd81cadf0743" + } + ], + "scaling_configuration_id": "37e310f5-db9d-446e-9135-c625f9c2bbfc", + "scaling_group_name": "as_group_only_remove_members", + "security_groups": [ + { + "id": "45e4c6de-6bf0-4843-8953-2babde3d4810" + } + ], + "vpc_id": "1d8f7e7c-fe04-4cf5-85ac-08b478c290e9" + } + - name: as_group_with_elb + manifest: |- + { + "delete_instances": "yes", + "delete_publicip": true, + "desire_instance_number": 2, + "lbaas_listeners": [ + { + "pool_id": "${opentelekomcloud_lb_pool_v2.pool_1.id}", + "protocol_port": "${opentelekomcloud_lb_listener_v2.as_listener.protocol_port}" + } + ], + "max_instance_number": 10, + "min_instance_number": 0, + "networks": [ + { + "id": "ad091b52-742f-469e-8f3c-fd81cadf0743" + } + ], + "scaling_configuration_id": "37e310f5-db9d-446e-9135-c625f9c2bbfc", + "scaling_group_name": "as_group_with_elb", + "security_groups": [ + { + "id": "45e4c6de-6bf0-4843-8953-2babde3d4810" + } + ], + "vpc_id": "1d8f7e7c-fe04-4cf5-85ac-08b478c290e9" + } + references: + lbaas_listeners.pool_id: opentelekomcloud_lb_pool_v2.pool_1.id + lbaas_listeners.protocol_port: opentelekomcloud_lb_listener_v2.as_listener.protocol_port + dependencies: + opentelekomcloud_lb_listener_v2.as_listener: |- + { + "description": "as test listener", + "loadbalancer_id": "cba48790-baf5-4446-adb3-02069a916e97", + "name": "as_listener", + "protocol": "TCP", + "protocol_port": 80 + } + opentelekomcloud_lb_pool_v2.pool_1: |- + { + "lb_method": "ROUND_ROBIN", + "listener_id": "${opentelekomcloud_lb_listener_v2.as_listener.id}", + "name": "pool_1", + "protocol": "HTTP" + } + argumentDocs: + available_zones: |- + - (Optional) Specifies the AZ information. The ECS + associated with a scaling action will be created in a specified AZ. + If you do not specify an AZ, the system automatically specifies one. + cool_down_time: |- + - (Optional) The cooling duration (in seconds). The value ranges + from 0 to 86400, and is 900 by default. + current_instance_number: '- Indicates the number of current instances in the AS group.' + delete_instances: |- + - (Required) Whether to delete the instances in the AS group + when deleting the AS group. The options are yes and no. + delete_publicip: |- + - (Required) Whether to delete the elastic IP address bound to the + instances of AS group when deleting the instances. The options are true and false. + desire_instance_number: |- + - (Optional) The expected number of instances. The default + value is the minimum number of instances. The value ranges from the minimum number of + instances to the maximum number of instances. + health_periodic_audit_grace_period: |- + - (Optional) The grace period for instance health check. + The unit is second and value range is 0-86400. The default value is 600. The health check grace + period starts after an instance is added to an AS group and is enabled. The AS group will start + checking the instance status only after the grace period ends. This parameter is valid only when + the instance health check method of the AS group is ELB_AUDIT. + health_periodic_audit_method: |- + - (Optional) The health check method for instances + in the AS group. The health check methods include ELB_AUDIT and NOVA_AUDIT. + If load balancing is configured, the default value of this parameter is ELB_AUDIT. + Otherwise, the default value is NOVA_AUDIT. + health_periodic_audit_time: |- + - (Optional) The health check period for instances. + The value can be 1, 5, 15, 60, or 180 in the unit of minutes. If this parameter + is not specified, the default value is 5. If the value is set to 0, health check + is performed every 10 seconds. + instance_terminate_policy: |- + - (Optional) The instance removal policy. The policy has + four options: OLD_CONFIG_OLD_INSTANCE (default), OLD_CONFIG_NEW_INSTANCE, + OLD_INSTANCE, and NEW_INSTANCE. + instances: '- The instances IDs of the AS group.' + lb_listener_id: |- + DEPRECATED - (Optional) The Classic LB listener IDs. The system + supports up to six Classic LB listeners, the IDs of which are separated using a comma (,). + This parameter is alternative to lbaas_listeners. + lbaas_listeners: |- + - (Optional) An array of one or more Enhanced Load Balancer. + The system supports the binding of up to six Enhanced Load Balancers. The field is + alternative to lb_listener_id. The lbaas_listeners object structure is + documented below. + lbaas_listeners.pool_id: '- (Required) Specifies the backend ECS group ID.' + lbaas_listeners.protocol_port: |- + - (Required) Specifies the backend protocol, which is the port on which + a backend ECS listens for traffic. The number of the port ranges from 1 to 65535. + lbaas_listeners.tags: '- (Optional) Tags key/value pairs to associate with the AutoScaling Group.' + lbaas_listeners.weight: |- + - (Optional) Specifies the weight, which determines the portion of requests a + backend ECS processes compared to other backend ECSs added to the same listener. The value + of this parameter ranges from 0 to 100. The default value is 1. + max_instance_number: |- + - (Optional) The maximum number of instances. + The default value is 0. + min_instance_number: |- + - (Optional) The minimum number of instances. + The default value is 0. + networks: |- + - (Required) An array of one or more network IDs. + The system supports up to five networks. The networks object structure + is documented below. + networks.id: '- (Required) The network UUID.' + notifications: |- + - (Optional) The notification mode. The system only supports EMAIL + mode which refers to notification by email. + scaling_configuration_id: |- + - (Optional) The configuration ID which defines + configurations of instances in the AS group. + scaling_group_name: |- + - (Required) The name of the scaling group. The name can contain letters, + digits, underscores(_), and hyphens(-),and cannot exceed 64 characters. + security_groups: |- + - (Optional) An array of security group IDs to associate with the group. + A maximum of one security group can be selected. The security_groups object structure is + documented below. + security_groups.id: '- (Required) The UUID of the security group.' + status: '- Indicates the status of the AS group.' + tags: '- See Argument Reference above.' + vpc_id: '- (Required) The VPC ID. Changing this creates a new group.' + importStatements: [] + opentelekomcloud_as_policy_v1: + subCategory: Autoscaling + description: Manages a AS Policy v1 resource within OpenTelekomCloud. + name: opentelekomcloud_as_policy_v1 + title: opentelekomcloud_as_policy_v1 + examples: + - name: hth_aspolicy + manifest: |- + { + "cool_down_time": 900, + "scaling_group_id": "4579f2f5-cbe8-425a-8f32-53dcb9d9053a", + "scaling_policy_action": [ + { + "instance_number": 1, + "operation": "ADD" + } + ], + "scaling_policy_name": "hth_aspolicy", + "scaling_policy_type": "RECURRENCE", + "scheduled_policy": [ + { + "end_time": "2017-12-30T12:00Z", + "launch_time": "07:00", + "recurrence_type": "Daily", + "start_time": "2017-11-30T12:00Z" + } + ] + } + - name: hth_aspolicy_1 + manifest: |- + { + "cool_down_time": 900, + "scaling_group_id": "4579f2f5-cbe8-425a-8f32-53dcb9d9053a", + "scaling_policy_action": [ + { + "instance_number": 1, + "operation": "REMOVE" + } + ], + "scaling_policy_name": "hth_aspolicy_1", + "scaling_policy_type": "SCHEDULED", + "scheduled_policy": [ + { + "launch_time": "2017-12-22T12:00Z" + } + ] + } + - name: hth_aspolicy_2 + manifest: |- + { + "alarm_id": "37e310f5-db9d-446e-9135-c625f9c2bbfc", + "cool_down_time": 900, + "scaling_group_id": "4579f2f5-cbe8-425a-8f32-53dcb9d9053a", + "scaling_policy_action": [ + { + "instance_number": 1, + "operation": "ADD" + } + ], + "scaling_policy_name": "hth_aspolicy_2", + "scaling_policy_type": "ALARM" + } + argumentDocs: + alarm_id: |- + - (Optional) The alarm rule ID. This argument is mandatory + when scaling_policy_type is set to ALARM. + cool_down_time: '- (Optional) The cooling duration (in seconds), and is 900 by default.' + scaling_group_id: '- (Required) The AS group ID. Changing this creates a new AS policy.' + scaling_policy_action: |- + - (Optional) The action of the AS policy. The scaling_policy_action + structure is documented below. + scaling_policy_action.instance_number: '- (Optional) The number of instances to be operated. The default number is 1.' + scaling_policy_action.operation: |- + - (Optional) The operation to be performed. The options include ADD (default), REMOVE, + and SET. + scaling_policy_action/instance_number: '- See Argument Reference above.' + scaling_policy_action/operation: '- See Argument Reference above.' + scaling_policy_name: |- + - (Required) The name of the AS policy. The name can contain letters, + digits, underscores(_), and hyphens(-),and cannot exceed 64 characters. + scaling_policy_type: |- + - (Required) The AS policy type. The values can be ALARM, SCHEDULED, + and RECURRENCE. + scheduled_policy: |- + - (Optional) The periodic or scheduled AS policy. This argument is mandatory + when scaling_policy_type is set to SCHEDULED or RECURRENCE. The scheduled_policy structure + is documented below. + scheduled_policy.end_time: |- + - (Optional) The end time of the scaling action triggered periodically. + The time format complies with UTC. This argument is mandatory when scaling_policy_type + is set to RECURRENCE. The time format is YYYY-MM-DDThh:mmZ. + scheduled_policy.launch_time: |- + - (Required) The time when the scaling action is triggered. If scaling_policy_type + is set to SCHEDULED, the time format is YYYY-MM-DDThh:mmZ. If scaling_policy_type is set to + RECURRENCE, the time format is hh:mm. + scheduled_policy.recurrence_type: |- + - (Optional) The periodic triggering type. This argument is mandatory when + scaling_policy_type is set to RECURRENCE. The options include Daily, Weekly, and Monthly. + scheduled_policy.recurrence_value: '- (Optional) The frequency at which scaling actions are triggered.' + scheduled_policy.start_time: |- + - (Optional) The start time of the scaling action triggered periodically. + The time format complies with UTC. The current time is used by default. The time + format is YYYY-MM-DDThh:mmZ. + scheduled_policy/end_time: '- See Argument Reference above.' + scheduled_policy/launch_time: '- See Argument Reference above.' + scheduled_policy/recurrence_type: '- See Argument Reference above.' + scheduled_policy/recurrence_value: '- See Argument Reference above.' + scheduled_policy/start_time: '- See Argument Reference above.' + importStatements: [] + opentelekomcloud_as_policy_v2: + subCategory: Autoscaling + description: Manages a AS Policy v2 resource within OpenTelekomCloud. + name: opentelekomcloud_as_policy_v2 + title: opentelekomcloud_as_policy_v2 + examples: + - name: policy_1 + manifest: |- + { + "scaling_policy_action": [ + { + "operation": "ADD", + "percentage": 15 + } + ], + "scaling_policy_name": "policy_create", + "scaling_policy_type": "RECURRENCE", + "scaling_resource_id": "${var.as_group}", + "scaling_resource_type": "SCALING_GROUP", + "scheduled_policy": [ + { + "end_time": "2040-12-31T10:30Z", + "launch_time": "10:30", + "recurrence_type": "Weekly", + "recurrence_value": "1,3,5" + } + ] + } + references: + scaling_resource_id: var.as_group + - name: policy_1 + manifest: |- + { + "alarm_id": "${var.alarm_id}", + "cool_down_time": 900, + "scaling_policy_action": [ + { + "operation": "ADD", + "size": 1 + } + ], + "scaling_policy_name": "policy_create", + "scaling_policy_type": "ALARM", + "scaling_resource_id": "${var.as_group}", + "scaling_resource_type": "SCALING_GROUP" + } + references: + alarm_id: var.alarm_id + scaling_resource_id: var.as_group + argumentDocs: + ADD: ': indicates adding instances.' + ALARM: |- + - Indicates that the scaling action is triggered by an alarm. A value is returned for + alarm_id, and no value is returned for scheduled_policy. + RECURRENCE: |- + - Indicates that the scaling action is triggered periodically. + Values are returned for scheduled_policy, recurrence_type, recurrence_value, + start_time, and end_time, and no value is returned for alarm_id. + REDUCE: ': indicates reducing instances.' + REMOVE: '/REDUCE: indicates removing or reducing instances.' + SCHEDULED: |- + - Indicates that the scaling action is triggered as scheduled. + A value is returned for scheduled_policy, and no value is returned for alarm_id, + recurrence_type, recurrence_value, start_time, or end_time. + SET: ': indicates setting the number of instances to a specified value.' + alarm_id: |- + - (Optional) Specifies the alarm rule ID. This parameter is mandatory + when scaling_policy_type is set to ALARM. + cool_down_time: '- (Optional) Specifies the cooldown period (in seconds).' + create_time: '- Specifies the time when an AS policy was created. The time format complies with UTC.' + metadata: '- Provides additional information. The metadata structure is documented below.' + metadata.bandwidth_share_type: '- Specifies the bandwidth sharing type in the bandwidth scaling policy.' + metadata.eip_address: '- Specifies the EIP for the bandwidth in the bandwidth scaling policy.' + metadata.eip_id: '- Specifies the EIP ID for the bandwidth in the bandwidth scaling policy.' + scaling_policy_action: |- + - (Optional) The action of the AS policy. The scaling_policy_action + structure is documented below. + scaling_policy_action.limits: '- (Optional) Specifies the operation restrictions.' + scaling_policy_action.operation: '- (Optional) The operation to be performed.' + scaling_policy_action.percentage: |- + - (Optional) Specifies the percentage of instances to be operated. + If operation is set to ADD, REMOVE, or REDUCE, the value of this parameter + is an integer from 1 to 20000. + scaling_policy_action.scaling_resource_type: 'is set to SCALING_GROUP, the following operations are supported:' + scaling_policy_action.size: |- + - (Optional) Specifies the operation size. The value is an integer from 0 to 300. + The default value is 1. This parameter can be set to 0 only when operation is set to SET. + scaling_policy_name: |- + - (Required) The name of the AS policy. The name can contain letters, + digits, underscores(_), and hyphens(-),and cannot exceed 64 characters. + scaling_policy_type: '- (Required) The AS policy type. The values can be:' + scaling_resource_id: '- (Required) The Scaling resource ID.' + scaling_resource_type: '- (Required) Specifies the scaling resource type. Valid values are:' + scheduled_policy: |- + - (Optional) Specifies the periodic or scheduled AS policy. + This parameter is mandatory when scaling_policy_type is set to SCHEDULED or RECURRENCE. + After this parameter is specified, the value of alarm_id does not take effect. + The scheduled_policy structure is documented below. + scheduled_policy.end_time: |- + - (Optional) The end time of the scaling action triggered periodically. + The time format complies with UTC. This argument is mandatory when scaling_policy_type + is set to RECURRENCE. The time format is YYYY-MM-DDThh:mmZ. + scheduled_policy.launch_time: |- + - (Required) The time when the scaling action is triggered. If scaling_policy_type + is set to SCHEDULED, the time format is YYYY-MM-DDThh:mmZ. If scaling_policy_type is set to + RECURRENCE, the time format is hh:mm. + scheduled_policy.recurrence_type: |- + - (Optional) The periodic triggering type. This argument is mandatory when + scaling_policy_type is set to RECURRENCE. The options include Daily, Weekly, and Monthly. + scheduled_policy.recurrence_value: '- (Optional) The frequency at which scaling actions are triggered.' + scheduled_policy.start_time: |- + - (Optional) The start time of the scaling action triggered periodically. + The time format complies with UTC. The current time is used by default. The time + format is YYYY-MM-DDThh:mmZ. + size: nor percentage is set, the default value of size is 1. + importStatements: [] + opentelekomcloud_blockstorage_volume_attach_v2: + subCategory: Elastic Volume Service (EVS) + description: Manages a BlockStorage volume attach resource within OpenTelekomCloud. + name: opentelekomcloud_blockstorage_volume_attach_v2 + title: opentelekomcloud_blockstorage_volume_attach_v2 + examples: + - name: va_1 + manifest: |- + { + "device": "auto", + "host_name": "devstack", + "initiator": "iqn.1993-08.org.debian:01:e9861fb1859", + "ip_address": "192.168.255.10", + "os_type": "linux2", + "platform": "x86_64", + "volume_id": "${opentelekomcloud_blockstorage_volume_v2.volume_1.id}" + } + references: + volume_id: opentelekomcloud_blockstorage_volume_v2.volume_1.id + dependencies: + opentelekomcloud_blockstorage_volume_v2.volume_1: |- + { + "name": "volume_1", + "size": 1 + } + argumentDocs: + attach_mode: |- + - (Optional) Specify whether to attach the volume as Read-Only + (ro) or Read-Write (rw). Only values of ro and rw are accepted. + If left unspecified, the Block Storage API will apply a default of rw. + data: |- + - This is a map of key/value pairs that contain the connection + information. You will want to pass this information to a provisioner + script to finalize the connection. See below for more information. + device: |- + - (Optional) The device to tell the Block Storage service this + volume will be attached as. This is purely for informational purposes. + You can specify auto or a device such as /dev/vdc. + driver_volume_type: '- The storage driver that the volume is based on.' + host_name: '- (Required) The host to attach the volume to.' + initiator: '- (Optional) The iSCSI initiator string to make the connection.' + ip_address: '- (Optional) The IP address of the host_name above.' + mount_point_base: '- A mount point base name for shared storage.' + multipath: '- (Optional) Whether to connect to this volume via multipath.' + os_type: '- (Optional) The iSCSI initiator OS type.' + platform: '- (Optional) The iSCSI initiator platform.' + volume_id: '- (Required) The ID of the Volume to attach to an Instance.' + wwnn: '- (Optional) A wwnn name. Used for Fibre Channel connections.' + wwpn: |- + - (Optional) An array of wwpn strings. Used for Fibre Channel + connections. + importStatements: [] + opentelekomcloud_blockstorage_volume_v2: + subCategory: Elastic Volume Service (EVS) + description: Manages a BlockStorage volume resource within OpenTelekomCloud. + name: opentelekomcloud_blockstorage_volume_v2 + title: opentelekomcloud_blockstorage_volume_v2 + examples: + - name: volume_1 + manifest: |- + { + "description": "first test volume", + "metadata": { + "__system__cmkid": "kms_id", + "__system__encrypted": "1" + }, + "name": "volume_1", + "size": 3, + "tags": { + "foo": "bar", + "key": "value" + } + } + argumentDocs: + __system__cmkid: '- (Optional) The ID of the kms key.' + __system__encrypted: |- + - The default value is set to '0', which means + the volume is not encrypted, the value '1' indicates volume is encrypted. + attachment: |- + - If a volume is attached to an instance, this attribute will + display the Attachment ID, Instance ID, and the Device as the Instance sees it. + availability_zone: |- + - (Optional) The availability zone for the volume. + Changing this creates a new volume. + cascade: '- (Optional, Default:false) Specifies to delete all snapshots associated with the EVS disk.' + consistency_group_id: '- (Optional) The consistency group to place the volume in.' + description: |- + - (Optional) A description of the volume. Changing this updates + the volume's description. + device_type: |- + - (Optional) The device type of volume to create. Valid options are VBD and SCSI. + Defaults to VBD. Changing this creates a new volume. + image_id: |- + - (Optional) The image ID from which to create the volume. + Changing this creates a new volume. + metadata: |- + - (Optional) Metadata key/value pairs to associate with the volume. + Changing this updates the existing volume metadata. + The EVS encryption capability with KMS key can be set with the following parameters: + name: |- + - (Optional) A unique name for the volume. Changing this updates the + volume's name. + size: |- + - (Required) The size of the volume to create (in gigabytes). Decreasing + this parameter creates a new volume. + snapshot_id: |- + - (Optional) The snapshot ID from which to create the volume. + Changing this creates a new volume. + source_replica: '- (Optional) The volume ID to replicate with.' + source_vol_id: |- + - (Optional) The volume ID from which to create the volume. + Changing this creates a new volume. + tags: |- + - (Optional) Tags key/value pairs to associate with the volume. + Changing this updates the existing volume tags. + volume_type: '- (Optional) Currently, the value can be SSD (ultra-high I/O disk type), SAS (high I/O disk type), SATA (common I/O disk type), co-p1 (Exclusive HPC/ SAP HANA: high I/O, performance optimized), or uh-l1 (Exclusive HPC/ SAP HANA: ultra-high-I/O, latency optimized). Read Note for uh-l1 and co-p1: OTC-API. Changing this creates a new volume.' + wwn: '- Specifies the unique identifier used for mounting the EVS disk.' + importStatements: [] + opentelekomcloud_cbr_policy_v3: + subCategory: Cloud Backup and Recovery (CBR) + description: Manages a CBR Policy resource within OpenTelekomCloud. + name: opentelekomcloud_cbr_policy_v3 + title: opentelekomcloud_cbr_policy_v3 + examples: + - name: policy + manifest: |- + { + "enabled": "false", + "name": "some-policy", + "operation_definition": [ + { + "day_backups": 1, + "max_backups": 10, + "month_backups": 4, + "timezone": "UTC+03:00", + "week_backups": 2, + "year_backups": 3 + } + ], + "operation_type": "backup", + "trigger_pattern": [ + "FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU;BYHOUR=14;BYMINUTE=00" + ] + } + argumentDocs: + enabled: '- (Optional) Whether to enable the policy. Default value is true.' + name: |- + - (Required) Specifies the policy name. The value consists of 1 to 64 characters + and can contain only letters, digits, underscores (_), and hyphens (-). + operation_definition: '- (Optional) Scheduling parameter. See reference below.' + operation_definition.day_backups: |- + - (Optional) Specifies the number of retained daily backups. The latest + backup of each day is saved in the long term. This parameter can be effective together + with the maximum number of retained backups specified by max_backups. The value ranges + from 0 to 100. If this parameter is configured, timezone is mandatory. + operation_definition.max_backups: |- + - (Optional) Maximum number of retained backups. The value can be -1 or ranges + from 0 to 99999. If the value is set to -1, the backups will not be cleared even though + the configured retained backup quantity is exceeded. If this parameter and retention_duration_days + are both left blank, the backups will be retained permanently. + operation_definition.month_backups: |- + - (Optional) Specifies the number of retained monthly backups. The latest + backup of each month is saved in the long term. This parameter can be effective together + with the maximum number of retained backups specified by max_backups. The value ranges from + 0 to 100. If this parameter is configured, timezone is mandatory. + operation_definition.retention_duration_days: |- + - (Optional) Duration of retaining a backup, in days. + The maximum value is 99999. -1 indicates that the backups will not be cleared based on + the retention duration. If this parameter and max_backups are left blank at the same time, + the backups will be retained permanently. + operation_definition.timezone: '- (Required) Time zone where the user is located, for example, UTC+00:00.' + operation_definition.week_backups: |- + - (Optional) Specifies the number of retained weekly backups. The latest + backup of each week is saved in the long term. This parameter can be effective together + with the maximum number of retained backups specified by max_backups. The value ranges + from 0 to 100. If this parameter is configured, timezone is mandatory. + operation_definition.year_backups: |- + - (Optional) Specifies the number of retained yearly backups. The latest + backup of each year is saved in the long term. This parameter can be effective together + with the maximum number of retained backups specified by max_backups. The value ranges + from 0 to 100. If this parameter is configured, timezone is mandatory. + operation_type: '- (Required) Policy type. Enumeration values: backup, replication.' + region: '- Specifies the region of the CBRv3 policy.' + trigger_pattern: |- + - (Required) Scheduling rule. In the replication policy, you are advised + to set one time point for one day. A maximum of 24 rules can be configured. The scheduling + rule complies with iCalendar RFC 2445, but it supports only parameters FREQ, BYDAY, BYHOUR, + BYMINUTE, and INTERVAL. FREQ can be set only to WEEKLY and DAILY. + importStatements: [] + opentelekomcloud_cbr_vault_v3: + subCategory: Cloud Backup and Recovery (CBR) + description: Manages a CBR Vault resource within OpenTelekomCloud. + name: opentelekomcloud_cbr_vault_v3 + title: opentelekomcloud_cbr_vault_v3 + examples: + - name: vault + manifest: |- + { + "billing": [ + { + "charging_mode": "post_paid", + "object_type": "disk", + "protect_type": "backup", + "size": 100 + } + ], + "description": "CBR vault for terraform provider test", + "name": "cbr-vault-test" + } + - name: vault + manifest: |- + { + "billing": [ + { + "charging_mode": "post_paid", + "object_type": "disk", + "protect_type": "backup", + "size": 100 + } + ], + "description": "CBR vault for terraform provider test", + "name": "cbr-vault-test", + "resource": [ + { + "exclude_volumes": [ + "${opentelekomcloud_ecs_instance_v1.instance_1.data_disks.1.id}" + ], + "id": "${opentelekomcloud_ecs_instance_v1.instance.id}", + "type": "OS::Nova::Server" + } + ] + } + references: + resource.id: opentelekomcloud_ecs_instance_v1.instance.id + - name: vault + manifest: |- + { + "billing": [ + { + "charging_mode": "post_paid", + "object_type": "disk", + "protect_type": "backup", + "size": 100 + } + ], + "description": "CBR vault for terraform provider test", + "name": "cbr-vault-test", + "resource": [ + { + "id": "${opentelekomcloud_ecs_instance_v1.instance.id}", + "include_volumes": [ + "${opentelekomcloud_ecs_instance_v1.instance_1.data_disks.1.id}" + ], + "type": "OS::Nova::Server" + } + ] + } + references: + resource.id: opentelekomcloud_ecs_instance_v1.instance.id + - name: vault + manifest: |- + { + "billing": [ + { + "charging_mode": "post_paid", + "object_type": "disk", + "protect_type": "backup", + "size": 100 + } + ], + "description": "CBR vault for terraform provider test", + "name": "cbr-vault-test", + "resource": [ + { + "id": "${opentelekomcloud_blockstorage_volume_v2.volume.id}", + "type": "OS::Cinder::Volume" + } + ] + } + references: + resource.id: opentelekomcloud_blockstorage_volume_v2.volume.id + dependencies: + opentelekomcloud_blockstorage_volume_v2.volume: |- + { + "name": "cbr-test-volume", + "size": 10, + "volume_type": "SSD" + } + - name: vault + manifest: |- + { + "billing": [ + { + "charging_mode": "post_paid", + "object_type": "turbo", + "protect_type": "backup", + "size": 1000 + } + ], + "description": "CBR vault for terraform provider test", + "name": "cbr-vault-test", + "resource": [ + { + "id": "${opentelekomcloud_sfs_turbo_share_v1.sfs-turbo.id}", + "type": "OS::Sfs::Turbo" + } + ] + } + references: + resource.id: opentelekomcloud_sfs_turbo_share_v1.sfs-turbo.id + dependencies: + opentelekomcloud_sfs_turbo_share_v1.sfs-turbo: |- + { + "availability_zone": "${var.az}", + "name": "sfs-turbo-share", + "security_group_id": "${var.sg_id}", + "share_proto": "NFS", + "size": 500, + "subnet_id": "${var.subnet_id}", + "vpc_id": "${var.vpc_id}" + } + - name: vault + manifest: |- + { + "backup_policy_id": "${opentelekomcloud_cbr_policy_v3.policy.id}", + "billing": [ + { + "charging_mode": "post_paid", + "object_type": "disk", + "protect_type": "backup", + "size": 100 + } + ], + "description": "CBR vault for terraform provider test", + "name": "cbr-vault-test" + } + references: + backup_policy_id: opentelekomcloud_cbr_policy_v3.policy.id + dependencies: + opentelekomcloud_cbr_policy_v3.policy: |- + { + "enabled": "false", + "name": "some-policy", + "operation_definition": [ + { + "day_backups": 1, + "max_backups": 10, + "month_backups": 4, + "timezone": "UTC+03:00", + "week_backups": 2, + "year_backups": 3 + } + ], + "operation_type": "backup", + "trigger_pattern": [ + "FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR,SA,SU;BYHOUR=14;BYMINUTE=00" + ] + } + - name: vault + manifest: |- + { + "auto_bind": true, + "billing": [ + { + "charging_mode": "post_paid", + "object_type": "server", + "protect_type": "backup", + "size": 10 + } + ], + "bind_rules": [ + { + "key": "foo", + "value": "bar" + } + ], + "description": "CBR vault for default backup policy", + "name": "cbr-vault-test" + } + argumentDocs: + allocated: '- Allocated capacity, in MB.' + auto_bind: '- (Optional) Whether automatic association is supported.' + auto_expand: |- + - (Optional) Whether to automatically expand the vault capacity. Only pay-per-use vaults support this + function. + backup_policy_id: |- + - (Optional) Backup policy ID. If the value of this parameter is empty, automatic backup is not + performed. + billing: '- Billing parameter information for creation. Billing fields:' + bind_rules: |- + - (Optional) Tag map, a rules for automatic association. You can only select tag keys and values from + the existing ones. If there are no tags available, go to the corresponding service to create one. + You can add a maximum of 5 tags for a search. If more than one tag is added, the backups containing one of the + specified tags will be returned. + charging_mode: |- + - Billing mode. Possible values are post_paid (pay-per-use) or pre_paid + (yearly/monthly packages). The value defaults to post_paid. + cloud_type: '- (Optional) Cloud platform. One of public (default), hybrid' + consistent_level: '- (Optional) Backup specifications. The default value is crash_consistent' + console_url: '- (Optional) Redirection URL.' + description: '- (Optional) User-defined vault description.' + enterprise_project_id: '- (Optional) Enterprise project ID. The default value is "0".' + exclude_volumes: '- (Optional) List of excluded volumes.' + extra_info: '- (Optional) Map of extra info.' + frozen_scene: '- Scenario when an account is frozen.' + id: '- ID of the resource to be backed up.' + include_volumes: '- (Optional) List of included volumes.' + is_auto_pay: |- + - (Optional) Whether the fee is automatically deducted from the customer's account balance after an + order is submitted. The non-automatic payment mode is used by default. + is_auto_renew: |- + - (Optional) Whether to automatically renew the subscription after expiration. By default, it is + not renewed. + name: '- Vault name.' + object_type: '- Object type. One of server, disk, turbo.' + order_id: '- Order ID.' + period_num: |- + - (Optional) Required duration for the package. This parameter is mandatory if + charging_mode is set to pre_paid. + period_type: |- + - (Optional) Package type. This parameter is mandatory if charging_mode is set to pre_paid. + Possible values are year (yearly) or month (monthly). + product_id: '- Product ID.' + protect_type: '- Operation type. One of backup, replication' + resource: '- (Optional) Associated resources. Multiple. Resource fields:' + size: '- Capacity, in GB. Minimum 1, maximum 10485760' + spec_code: '- Specification code.' + status: '- Vault status.' + storage_unit: '- Name of the bucket for the vault.' + tags: '- (Optional) Tag map.' + type: '- Type of the resource to be backed up. Possible values are OS::Nova::Server, OS::Cinder::Volume and OS::Sfs::Turbo.' + used: '- Used capacity, in MB.' + importStatements: [] + opentelekomcloud_cce_addon_v3: + subCategory: Cloud Container Engine (CCE) + description: Manages a CCE Addon resource within OpenTelekomCloud. + name: opentelekomcloud_cce_addon_v3 + title: opentelekomcloud_cce_addon_v3 + examples: + - name: addon + manifest: |- + { + "cluster_id": "${opentelekomcloud_cce_cluster_v3.cluster_1.id}", + "template_name": "metrics-server", + "template_version": "1.3.6", + "values": [ + { + "basic": { + "image_version": "v0.6.2", + "swr_addr": "100.125.7.25:20202", + "swr_user": "cce-addons" + }, + "custom": {} + } + ] + } + references: + cluster_id: opentelekomcloud_cce_cluster_v3.cluster_1.id + dependencies: + opentelekomcloud_cce_cluster_v3.cluster_1: |- + { + "cluster_type": "VirtualMachine", + "cluster_version": "v1.17.9-r0", + "container_network_type": "overlay_l2", + "flavor_id": "${var.flavor_id}", + "kubernetes_svc_ip_range": "10.247.0.0/16", + "name": "cce-cluster-1", + "subnet_id": "${var.subnet_id}", + "vpc_id": "${var.vpc_id}" + } + - name: autoscaler + manifest: |- + { + "cluster_id": "${opentelekomcloud_cce_cluster_v3.cluster_1.id}", + "template_name": "${data.opentelekomcloud_cce_addon_template_v3.autoscaler.addon_name}", + "template_version": "${data.opentelekomcloud_cce_addon_template_v3.autoscaler.addon_version}", + "values": [ + { + "basic": { + "cceEndpoint": "https://cce.${var.region_name}.otc.t-systems.com", + "ecsEndpoint": "https://ecs.${var.region_name}.otc.t-systems.com", + "region": "${var.region_name}", + "swr_addr": "${data.opentelekomcloud_cce_addon_template_v3.autoscaler.swr_addr}", + "swr_user": "${data.opentelekomcloud_cce_addon_template_v3.autoscaler.swr_user}" + }, + "custom": { + "cluster_id": "${opentelekomcloud_cce_cluster_v3.cluster_1.id}", + "coresTotal": 32000, + "expander": "priority", + "logLevel": 4, + "maxEmptyBulkDeleteFlag": 10, + "maxNodeProvisionTime": 15, + "maxNodesTotal": 1000, + "memoryTotal": 128000, + "scaleDownDelayAfterAdd": 10, + "scaleDownDelayAfterDelete": 11, + "scaleDownDelayAfterFailure": 3, + "scaleDownEnabled": true, + "scaleDownUnneededTime": 10, + "scaleDownUtilizationThreshold": 0.5, + "scaleUpCpuUtilizationThreshold": 1, + "scaleUpMemUtilizationThreshold": 1, + "scaleUpUnscheduledPodEnabled": true, + "scaleUpUtilizationEnabled": true, + "tenant_id": "${data.opentelekomcloud_identity_project_v3.this.id}", + "unremovableNodeRecheckTimeout": 5 + }, + "flavor": " {\n \"description\": \"Has only one instance\",\n \"name\": \"Single\",\n \"replicas\": 1,\n \"resources\": [\n {\n \"limitsCpu\": \"1000m\",\n \"limitsMem\": \"1000Mi\",\n \"name\": \"autoscaler\",\n \"requestsCpu\": \"500m\",\n \"requestsMem\": \"500Mi\"\n }\n ]\n }\n" + } + ] + } + references: + cluster_id: opentelekomcloud_cce_cluster_v3.cluster_1.id + template_name: data.opentelekomcloud_cce_addon_template_v3.autoscaler.addon_name + template_version: data.opentelekomcloud_cce_addon_template_v3.autoscaler.addon_version + dependencies: + opentelekomcloud_cce_cluster_v3.cluster_1: |- + { + "cluster_type": "VirtualMachine", + "cluster_version": "v1.25", + "container_network_type": "overlay_l2", + "flavor_id": "cce.s1.small", + "kubernetes_svc_ip_range": "10.247.0.0/16", + "name": "my_cluster", + "subnet_id": "${var.network_id}", + "vpc_id": "${var.vpc_id}" + } + - name: coredns + manifest: |- + { + "cluster_id": "${opentelekomcloud_cce_cluster_v3.cluster_1.id}", + "template_name": "coredns", + "template_version": "1.28.4", + "values": [ + { + "basic": { + "swr_addr": "100.125.7.25:20202", + "swr_user": "hwofficial" + }, + "custom": { + "stub_domains": "{\"test\":[\"10.10.40.10\"], \"test2\":[\"10.10.40.20\"]}", + "upstream_nameservers": "[\"8.8.8.8\",\"8.8.4.4\"]" + } + } + ] + } + references: + cluster_id: opentelekomcloud_cce_cluster_v3.cluster_1.id + dependencies: + opentelekomcloud_cce_cluster_v3.cluster_1: |- + { + "cluster_type": "VirtualMachine", + "cluster_version": "v1.27", + "container_network_type": "overlay_l2", + "flavor_id": "cce.s1.medium", + "kubernetes_svc_ip_range": "10.247.0.0/16", + "name": "my_cluster", + "no_addons": true, + "subnet_id": "${var.network_id}", + "vpc_id": "${var.vpc_id}" + } + argumentDocs: + basic: '- (Required, Map, ForceNew) Basic add-on information.' + cluster_id: '- (Required, String, ForceNew) ID of cluster to install the add-on on.' + custom: '- (Required, Map, ForceNew) Custom parameters of the add-on.' + description: '- Installed add-on description' + flavor: '- (Optional, String, ForceNew) Specifies the json string vary depending on the add-on.' + name: '- Installed add-on name.' + template_name: '- (Required, String, ForceNew) Name of the add-on template to be installed, for example, coredns.' + template_version: '- (Required, String, ForceNew) Version number of the add-on to be installed or upgraded, for example, v1.0.0.' + values: '- (Required, List, ForceNew) Parameters of the template to be installed or upgraded.' + importStatements: [] + opentelekomcloud_cce_cluster_v3: + subCategory: Cloud Container Engine (CCE) + description: Manages a CCE Cluster resource within OpenTelekomCloud. + name: opentelekomcloud_cce_cluster_v3 + title: opentelekomcloud_cce_cluster_v3 + examples: + - name: cluster_1 + manifest: |- + { + "authentication_mode": "rbac", + "cluster_type": "VirtualMachine", + "container_network_type": "overlay_l2", + "description": "Create cluster", + "flavor_id": "${var.flavor_id}", + "kube_proxy_mode": "ipvs", + "name": "cluster", + "subnet_id": "${var.subnet_id}", + "vpc_id": "${var.vpc_id}" + } + references: + flavor_id: var.flavor_id + subnet_id: var.subnet_id + vpc_id: var.vpc_id + - name: cluster_1 + manifest: |- + { + "cluster_type": "VirtualMachine", + "container_network_type": "eni", + "eni_subnet_cidr": "${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.cidr}", + "eni_subnet_id": "${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.subnet_id}", + "flavor_id": "cce.s1.small", + "ignore_addons": true, + "kubernetes_svc_ip_range": "10.247.0.0/16", + "name": "turbo", + "subnet_id": "${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.network_id}", + "vpc_id": "${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.vpc_id}" + } + references: + eni_subnet_cidr: data.opentelekomcloud_vpc_subnet_v1.shared_subnet.cidr + eni_subnet_id: data.opentelekomcloud_vpc_subnet_v1.shared_subnet.subnet_id + subnet_id: data.opentelekomcloud_vpc_subnet_v1.shared_subnet.network_id + vpc_id: data.opentelekomcloud_vpc_subnet_v1.shared_subnet.vpc_id + - name: cluster_1 + manifest: |- + { + "annotations": { + "cluster.install.addons.external/install": "[{\"addonTemplateName\":\"icagent\"}]" + }, + "authentication_mode": "rbac", + "cluster_type": "VirtualMachine", + "container_network_type": "overlay_l2", + "description": "Create cluster", + "flavor_id": "${var.flavor_id}", + "kube_proxy_mode": "ipvs", + "name": "cluster", + "subnet_id": "${var.subnet_id}", + "vpc_id": "${var.vpc_id}" + } + references: + flavor_id: var.flavor_id + subnet_id: var.subnet_id + vpc_id: var.vpc_id + - name: cluster_1 + manifest: |- + { + "authentication_mode": "rbac", + "cluster_type": "VirtualMachine", + "container_network_type": "overlay_l2", + "depends_on": [ + "${opentelekomcloud_identity_agency_v3.enable_cce_auto_creation}" + ], + "description": "Create cluster", + "flavor_id": "${var.flavor_id}", + "name": "cluster", + "subnet_id": "${var.subnet_id}", + "vpc_id": "${var.vpc_id}" + } + references: + flavor_id: var.flavor_id + subnet_id: var.subnet_id + vpc_id: var.vpc_id + dependencies: + opentelekomcloud_identity_agency_v3.enable_cce_auto_creation: |- + { + "delegated_domain_name": "op_svc_cce", + "description": "Created by Terraform to auto create cce", + "dynamic": { + "project_role": [ + { + "content": [ + { + "project": "${project_role.value}", + "roles": [ + "Tenant Administrator" + ] + } + ], + "for_each": "${var.projects}" + } + ] + }, + "name": "cce_admin_trust" + } + argumentDocs: + annotations: '- (Optional) Cluster annotation, key/value pair format. Changing this parameter will create a new cluster resource.' + authenticating_proxy: '- (Optional) Authenticating proxy configuration. Required if authentication_mode is set to authenticating_proxy.' + authenticating_proxy_ca: |- + - (Optional) CA root certificate provided in the authenticating_proxy mode. + Deprecated, use authenticating_proxy instead. + authentication_mode: |- + - (Optional) Authentication mode of the cluster, possible values are rbac and authenticating_proxy. + Defaults to rbac. Changing this parameter will create a new cluster resource. + billing_mode: '- (Optional) Charging mode of the cluster, which is 0 (on demand). Changing this parameter will create a new cluster resource.' + ca: '- X509 CA certificate configured in authenticating_proxy mode. The maximum size of the certificate is 1 MB.' + cce.s1.medium: '- medium-scale single cluster (up to 200 nodes).' + cce.s1.small: '- small-scale single cluster (up to 50 nodes).' + cce.s2.large: '- large-scale HA cluster (up to 1000 nodes).' + cce.s2.medium: '- medium-scale HA cluster (up to 200 nodes).' + cce.s2.small: '- small-scale HA cluster (up to 50 nodes).' + cce.s2.xlarge: '- ultra-large-scale, high availability cluster (<= 2,000 nodes).' + cert: |- + - Client certificate issued by the X509 CA certificate configured in authenticating_proxy mode. + This certificate is used for authentication from kube-apiserver to the extended API server. + certificate_clusters/certificate_authority_data: '- The certificate data.' + certificate_clusters/name: '- The cluster name.' + certificate_clusters/server: '- The server IP address.' + certificate_users/client_certificate_data: '- The client certificate data.' + certificate_users/client_key_data: '- The client key data.' + certificate_users/name: '- The user name.' + cluster_type: '- (Required) Cluster Type, possible values are VirtualMachine and BareMetal. Changing this parameter will create a new cluster resource.' + cluster_version: |- + - (Optional) For the cluster version, possible values are v1.27, v1.25, v1.23, v1.21. + If this parameter is not set, the cluster of the latest version is created by default. + Changing this parameter will create a new cluster resource. OTC-API + container_network_cidr: '- (Optional) Container network segment. Changing this parameter will create a new cluster resource.' + container_network_type: '- (Required) Container network type.' + create: '- Default is 30 minutes.' + delete: '- Default is 30 minutes.' + delete_all_network: |- + - (Optional) Specified whether to delete all associated network resources when deleting the CCE + cluster. valid values are true, try and false. Default is false. + delete_all_storage: |- + - (Optional) Specified whether to delete all associated storage resources when deleting the CCE + cluster. valid values are true, try and false. Default is false. + delete_efs: |- + - (Optional) Specified whether to unbind associated SFS Turbo file systems when deleting the CCE + cluster. valid values are true, try and false. Default is false. + delete_eni: |- + - (Optional) Specified whether to delete ENI ports when deleting the CCE + cluster. valid values are true, try and false. Default is false. + delete_evs: |- + - (Optional) Specified whether to delete associated EVS disks when deleting the CCE cluster. + valid values are true, try and false. Default is false. + delete_net: |- + - (Optional) Specified whether to delete cluster Service/ingress-related resources, such as ELB when deleting the CCE + cluster. valid values are true, try and false. Default is false. + delete_obs: |- + - (Optional) Specified whether to delete associated OBS buckets when deleting the CCE cluster. + valid values are true, try and false. Default is false. + delete_sfs: |- + - (Optional) Specified whether to delete associated SFS file systems when deleting the CCE + cluster. valid values are true, try and false. Default is false. + description: '- (Optional) Cluster description.' + eip: '- (Optional) EIP address of the cluster.' + enable_volume_encryption: '- (Optional) System and data disks encryption of master nodes. Changing this parameter will create a new cluster resource.' + eni_subnet_cidr: '- (Optional) Specifies the ENI network segment. Specified when creating a CCE Turbo cluster. Changing this parameter will create a new cluster resource.' + eni_subnet_id: '- - (Optional) Specifies the ENI subnet ID. Specified when creating a CCE Turbo cluster. Changing this parameter will create a new cluster resource.' + extend_param: |- + - (Optional) Extended parameter. Changing this parameter will create a new cluster resource. + List of cluster extended params. + external: '- The external network address.' + external_otc: '- The endpoint of the cluster to be accessed through API Gateway.' + flavor_id: '- (Required) Cluster specifications. Changing this parameter will create a new cluster resource.' + highway_subnet_id: '- (Optional) The ID of the high speed network used to create bare metal nodes. Changing this parameter will create a new cluster resource.' + id: '- ID of the cluster resource.' + ignore_addons: '- (Optional) Skip all cluster addons operations.' + ignore_certificate_clusters_data: '- (Optional) Skip sensitive cluster data.' + ignore_certificate_users_data: '- (Optional) Skip sensitive user data.' + installed_addons: '- List of installed addon IDs. Empty if ignore_addons is true.' + internal: '- The internal network address.' + iptables: |- + : Traditional kube-proxy uses iptables rules to implement service load balancing. + In this mode, too many iptables rules will be generated when many services are deployed. + In addition, non-incremental updates will cause a latency and even obvious performance issues + in the case of heavy service traffic. + ipvs: |- + : Optimized kube-proxy mode with higher throughput and faster speed. + This mode supports incremental updates and can keep connections uninterrupted during service updates. + It is suitable for large-sized clusters. + kube_proxy_mode: '- Service forwarding mode. Two modes are available:' + kubernetes_svc_ip_range: |- + - (Optional) Service CIDR block, or the IP address range which the kubernetes + clusterIp must fall within. This parameter is available only for clusters of v1.11.7 and later. + labels: '- (Optional) Cluster tag, key/value pair format. Changing this parameter will create a new cluster resource.' + multi_az: '- (Optional) Enable multiple AZs for the cluster, only when using HA flavors. Changing this parameter will create a new cluster resource.' + name: '- (Required) Cluster name. Changing this parameter will create a new cluster resource.' + no_addons: '- (Optional) Remove addons installed by the default after the cluster creation.' + overlay_l2: '- An overlay_l2 network built for containers by using Open vSwitch(OVS)' + private_key: |- + - 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_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.' + underlay_ipvlan: '- An underlay_ipvlan network built for bare metal servers by using ipvlan.' + vpc-router: '- An vpc-router network built for containers by using ipvlan and custom VPC routes.' + vpc_id: '- (Required) The ID of the VPC used to create the node. Changing this parameter will create a new cluster resource.' + importStatements: + - terraform import opentelekomcloud_cce_cluster_v3.cluster_1 4779ab1c-7c1a-44b1-a02e-93dfc361b32d + opentelekomcloud_cce_node_pool_v3: + subCategory: Cloud Container Engine (CCE) + description: Manages a CCE Cluster Node Pool resource within OpenTelekomCloud. + name: opentelekomcloud_cce_node_pool_v3 + title: opentelekomcloud_cce_node_pool_v3 + examples: + - name: node_pool_1 + manifest: |- + { + "agency_name": "test-agency", + "availability_zone": "${var.availability_zone}", + "cluster_id": "${var.cluster_id}", + "data_volumes": [ + { + "size": 100, + "volumetype": "SSD" + }, + { + "extend_params": { + "useType": "docker" + }, + "size": 100, + "volumetype": "SSD" + } + ], + "flavor": "s2.xlarge.2", + "initial_node_count": 2, + "key_pair": "${var.ssh_key}", + "max_node_count": 9, + "min_node_count": 2, + "name": "opentelekomcloud-cce-node-pool-test", + "os": "EulerOS 2.9", + "priority": 1, + "root_volume": [ + { + "size": 40, + "volumetype": "SSD" + } + ], + "runtime": "containerd", + "scale_down_cooldown_time": 100, + "scale_enable": true + } + references: + availability_zone: var.availability_zone + cluster_id: var.cluster_id + key_pair: var.ssh_key + - name: node_pool + manifest: |- + { + "availability_zone": "random", + "cluster_id": "${var.cluster_id}", + "data_volumes": [ + { + "size": 100, + "volumetype": "SSD" + } + ], + "docker_base_size": 32, + "flavor": "s2.large.2", + "initial_node_count": 1, + "key_pair": "${var.ssh_key}", + "max_pods": 16, + "name": "opentelekomcloud-cce-node-pool", + "os": "EulerOS 2.9", + "root_volume": [ + { + "size": 40, + "volumetype": "SSD" + } + ], + "storage": "${jsonencode(\n {\n \"storageSelectors\" : [\n {\n \"name\" : \"cceUse\",\n \"storageType\" : \"evs\",\n \"matchLabels\" : {\n \"size\" : \"100\",\n \"volumeType\" : \"SSD\",\n \"count\" : \"1\",\n \"metadataEncrypted\" : \"1\",\n \"metadataCmkid\" : var.kms_key_id\n }\n }\n ],\n \"storageGroups\" : [\n {\n \"name\" : \"vgpaas\",\n \"selectorNames\" : [\n \"cceUse\"\n ],\n \"cceManaged\" : true,\n \"virtualSpaces\" : [\n {\n \"name\" : \"runtime\",\n \"size\" : \"90%\"\n },\n {\n \"name\" : \"kubernetes\",\n \"size\" : \"10%\"\n }\n ]\n }\n ]\n })}" + } + references: + cluster_id: var.cluster_id + key_pair: var.ssh_key + argumentDocs: + agency_name: '- (Optional, String, ForceNew) IAM agency name. Changing this parameter will create a new resource.' + availability_zone: |- + - (Required, ForceNew, String) Specify the name of the available partition (AZ). If zone is not + specified than node_pool will be in randomly selected AZ. The default value is random. Changing + this parameter will create a new resource. + 'billing_mode ': '- Billing mode of a node.' + cluster_id: '- (Required, ForceNew, String) ID of the cluster. Changing this parameter will create a new resource.' + create: '- Default is 30 minutes.' + data_volumes: '- (Required, List, ForceNew) Represents the data disk to be created. Changing this parameter will create a new resource.' + delete: '- Default is 30 minutes.' + docker_base_size: |- + - (Optional, Int, ForceNew) Available disk space of a single Docker container on the node using the device mapper. + Changing this parameter will create a new node pool. + docker_lvm_config_override: |- + - (Optional, String, ForceNew) ConfigMap of the Docker data disk. + Changing this parameter will create a new node. + effect: '- (Optional, String) Available options are NoSchedule, PreferNoSchedule, and NoExecute.' + extend_param: |- + DEPRECATED - (Optional, String, ForceNew) Disk expansion parameters. + Please use alternative parameter extend_params. + extend_params: '- (Optional, Map, ForceNew) Disk expansion parameters. A list of strings which describes additional disk parameters.' + flavor: '- (Required, ForceNew, String) Specifies the flavor id. Changing this parameter will create a new resource.' + id: '- Specifies a resource ID in UUID format.' + initial_node_count: '- (Required, Int) Initial number of expected nodes in the node pool.' + k8s_tags: '- (Optional, Map) Tags of a Kubernetes node, key/value pair format.' + key: '- (Required, String) A key must contain 1 to 63 characters starting with a letter or digit. Only letters, digits, hyphens (-), underscores (_), and periods (.) are allowed. A DNS subdomain name can be used as the prefix of a key.' + key_pair: |- + - (Optional, ForceNew, String) Key pair name when logging in to select the key pair mode. + This parameter and password are alternative. Changing this parameter will create a new resource. + kms_id: '- (Optional, String, ForceNew) The Encryption KMS ID of the system volume. By default, it tries to get from env by OS_KMS_ID.' + max_node_count: '- (Optional, Int) Maximum number of nodes allowed if auto scaling is enabled.' + max_pods: |- + - (Optional, Int, ForceNew) The maximum number of instances a node is allowed to create. + Changing this parameter will create a new node pool. + min_node_count: '- (Optional, Int) Minimum number of nodes allowed if auto scaling is enabled.' + name: '- (Required, String) Node Pool Name.' + os: |- + - (Optional, ForceNew, String) Node OS. Changing this parameter will create a new resource. + Supported OS depends on kubernetes version of the cluster. + password: |- + - (Optional, ForceNew, String) Key pair name when logging in to select the key pair mode. + This parameter and password are alternative. Changing this parameter will create a new resource. + postinstall: |- + - (Optional, String, ForceNew) Script required after installation. The input value can be a Base64 encoded string or not. + Changing this parameter will create a new resource. + preinstall: |- + - (Optional, String, ForceNew) Script required before installation. The input value can be a Base64 encoded string or not. + Changing this parameter will create a new resource. + priority: '- (Optional, Int) Weight of a node pool. A node pool with a higher weight has a higher priority during scaling.' + root_volume: '- (Required, List, ForceNew) It corresponds to the system disk related configuration. Changing this parameter will create a new resource.' + runtime: |- + - (Optional, String, ForceNew) Container runtime. Changing this parameter will create a new resource. + Use with high-caution, may trigger resource recreation. Options are: + docker - Docker + 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.' + 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.' + storage: |- + - (Optional, String, ForceNew) Specifies the json string vary depending on CCE node pools storage options. + -> Please refer to the documentation + for actual fields. + subnet_id: '- (Optional, String, ForceNew) The ID of the subnet to which the NIC belongs. Changing this parameter will create a new resource.' + taints: '- (Optional, List) Taints to created nodes to configure anti-affinity.' + update: '- Default is 30 minutes.' + user_tags: '- (Optional, Map, ForceNew) Tag of a VM, key/value pair format. Changing this parameter will create a new resource.' + v1.13: or later support EulerOS 2.5. + v1.17: or later support EulerOS 2.5 and CentOS 7.7. + v1.21: or later support EulerOS 2.5, EulerOS 2.9, and CentOS 7.7. + v1.25: or later support EulerOS 2.5, EulerOS 2.9, CentOS 7.7 and Ubuntu 22.04. + value: '- (Required, String) A value must start with a letter or digit and can contain a maximum of 63 characters, including letters, digits, hyphens (-), underscores (_), and periods (.).' + volumetype: '- (Required, String, ForceNew) Disk type.' + importStatements: [] + opentelekomcloud_cce_node_v3: + subCategory: Cloud Container Engine (CCE) + description: Manages a CCE Cluster Node resource within OpenTelekomCloud. + name: opentelekomcloud_cce_node_v3 + title: opentelekomcloud_cce_node_v3 + examples: + - name: node_1 + manifest: |- + { + "agency_name": "test-agency", + "availability_zone": "${var.availability_zone}", + "bandwidth_size": 100, + "cluster_id": "${var.cluster_id}", + "data_volumes": [ + { + "size": 100, + "volumetype": "SATA" + }, + { + "extend_params": { + "useType": "docker" + }, + "size": 100, + "volumetype": "SSD" + } + ], + "flavor_id": "s2.large.2", + "key_pair": "${var.ssh_key}", + "name": "node1", + "os": "EulerOS 2.9", + "root_volume": [ + { + "size": 40, + "volumetype": "SATA" + } + ], + "runtime": "containerd" + } + references: + availability_zone: var.availability_zone + cluster_id: var.cluster_id + key_pair: var.ssh_key + argumentDocs: + agency_name: '- (Optional) IAM agency name. Changing this parameter will create a new resource.' + annotations: '- (Optional, ForceNew, Map) Node annotation, key/value pair format. Changing this parameter will create a new resource' + availability_zone: '- (Required, ForceNew, String) specify the name of the available partition (AZ). Changing this parameter will create a new resource.' + bandwidth_charge_mode: '- (Optional, String) Bandwidth billing type.' + bandwidth_size: '- (Optional, Int) Bandwidth size.' + billing_mode: '- (Optional, ForceNew, Int) Node''s billing mode: The value is 0 (on demand). Changing this parameter will create a new resource.' + cluster_id: '- (Required, ForceNew, String) ID of the cluster. Changing this parameter will create a new resource.' + create: '- Default is 10 minutes.' + data_volumes: '- (Required, ForceNew, List) Represents the data disk to be created. Changing this parameter will create a new resource.' + delete: '- Default is 10 minutes.' + diskType: ': disk type. Currently, only the evs, hdd, and ssd are supported.' + docker_base_size: |- + - (Optional, ForceNew, Int) Available disk space of a single Docker container on the node using the device mapper. + Changing this parameter will create a new node. + docker_lvm_config_override: |- + - (Optional, ForceNew, String) ConfigMap of the Docker data disk. + Changing this parameter will create a new node. + dockerThinpool: ': Docker space size, for example, vgpaas/60%VG.' + ecs_performance_type: '- (Optional, ForceNew, String) Classification of cloud server specifications. Changing this parameter will create a new cluster resource.' + effect: '- (Optional, String) Available options are NoSchedule, PreferNoSchedule, and NoExecute.' + eip_count: '- (Optional, Int) Number of elastic IPs to be dynamically created.' + eip_ids: '- (Optional, List) List of existing elastic IP IDs.' + extend_param: |- + DEPRECATED - (Optional, ForceNew, String) Disk expansion parameters. + Please use alternative parameter extend_params. + extend_param_charging_mode: '- (Optional, ForceNew, Int) Node charging mode, 0 is on-demand charging. Changing this parameter will create a new cluster resource.' + extend_params: '- (Optional, ForceNew, Map) Disk expansion parameters. A list of strings which describes additional disk parameters.' + flavor_id: '- (Required, ForceNew, String) Specifies the flavor id. Changing this parameter will create a new resource.' + iptype: '- (Optional, String) Elastic IP type.' + k8s_tags: '- (Optional, ForceNew, Map) Tags of a Kubernetes node, key/value pair format.' + key: '- (Required, String) A key must contain 1 to 63 characters starting with a letter or digit. Only letters, digits, hyphens (-), underscores (_), and periods (.) are allowed. A DNS subdomain name can be used as the prefix of a key.' + key_pair: '- (Required, ForceNew, String) Key pair name when logging in to select the key pair mode. Changing this parameter will create a new resource.' + kms_id: '- (Optional, ForceNew, String) The Encryption KMS ID of the system volume. By default, it tries to get from env by OS_KMS_ID.' + kubernetesLV: ': kubelet space size, for example, vgpaas/20%VG.' + labels: '- (Optional, ForceNew, Map) Node tag, key/value pair format. Changing this parameter will create a new resource.' + lvType: ': type of a logic volume. Currently, the value can be linear or striped.' + max_pods: '- (Optional, ForceNew, Int) The maximum number of instances a node is allowed to create. Changing this parameter will create a new node resource.' + name: '- (Optional, String) Node Name.' + order_id: |- + - (Optional, ForceNew, String) Order ID, mandatory when the node payment type is the automatic payment package period type. + Changing this parameter will create a new cluster resource. + os: '- (Optional, ForceNew, String) Node OS. Changing this parameter will create a new resource.' + postinstall: |- + - (Optional, ForceNew, String) Script required after installation. The input value can be a Base64 encoded string or not. + Changing this parameter will create a new resource. + preinstall: |- + - (Optional, ForceNew, String) Script required before installation. The input value can be a Base64 encoded string or not. + Changing this parameter will create a new resource. + private_ip: '- (Optional, ForceNew, String) Private IP of the CCE node. Changing this parameter will create a new resource.' + product_id: '- (Optional, ForceNew, String) The Product ID. Changing this parameter will create a new cluster resource.' + public_ip: '- Public IP of the CCE node.' + public_key: '- (Optional, ForceNew, String) The Public key. Changing this parameter will create a new cluster resource.' + root_volume: '- (Required, ForceNew, List) It corresponds to the system disk related configuration. Changing this parameter will create a new resource.' + runtime: |- + - (Optional, ForceNew, String) Container runtime. Changing this parameter will create a new resource. + Use with high-caution, may trigger resource recreation. Options are: + docker - Docker + containerd - Containerd + server_id: '- ID of the ECS where the node resides.' + sharetype: '- (Optional, String) Bandwidth sharing type.' + size: '- (Required, ForceNew, Int) Disk size in GB.' + status: '- Node status information.' + subnet_id: '- (Optional, ForceNew, String) The ID of the subnet to which the NIC belongs. Changing this parameter will create a new resource.' + tags: '- (Optional, Map) The field is alternative to labels, key/value pair format.' + taints: '- (Optional, ForceNew, List) Taints to created nodes to configure anti-affinity.' + userLV: ': size of the user space, for example, vgpaas/20%VG.' + userPath: ': mount path of the user space, for example, /home/wqt-test.' + v1.13: or later support EulerOS 2.5. + v1.17: or later support EulerOS 2.5 and CentOS 7.7. + v1.21: or later support EulerOS 2.5, EulerOS 2.9, and CentOS 7.7. + v1.25: or later support EulerOS 2.5, EulerOS 2.9, CentOS 7.7 and Ubuntu 22.04. + value: '- (Required, String) A value must start with a letter or digit and can contain a maximum of 63 characters, including letters, digits, hyphens (-), underscores (_), and periods (.).' + volumetype: '- (Required, ForceNew, String) Disk type.' + importStatements: [] + opentelekomcloud_ces_alarmrule: + subCategory: Cloud Eye (CES) + description: Manages a v1 CES Alarm Rule resource within OpenTelekomCloud. + name: opentelekomcloud_ces_alarmrule + title: opentelekomcloud_ces_alarmrule + examples: + - name: alarm_rule + manifest: |- + { + "alarm_actions": [ + { + "notification_list": [ + "${var.smn_topic_id}" + ], + "type": "notification" + } + ], + "alarm_name": "alarm_rule", + "condition": [ + { + "comparison_operator": "\u003e", + "count": 1, + "filter": "average", + "period": 300, + "unit": "B/s", + "value": 6 + } + ], + "metric": [ + { + "dimensions": [ + { + "name": "instance_id", + "value": "${var.server_id}" + } + ], + "metric_name": "network_outgoing_bytes_rate_inband", + "namespace": "SYS.ECS" + } + ] + } + references: + metric.dimensions.value: var.server_id + - name: alarmrule_1 + manifest: |- + { + "alarm_action_enabled": false, + "alarm_actions": [ + { + "notification_list": [ + "${var.smn_topic_id}" + ], + "type": "notification" + } + ], + "alarm_name": "alarm_rule1", + "alarm_type": "EVENT.SYS", + "condition": [ + { + "alarm_frequency": 300, + "comparison_operator": "\u003e", + "count": 1, + "filter": "average", + "period": 300, + "unit": "B/s", + "value": 6 + } + ], + "metric": [ + { + "metric_name": "backupFailed", + "namespace": "SYS.CBR" + } + ] + } + argumentDocs: + alarm: ': An alarm is generated;' + alarm_action_enabled: |- + - (Optional) Specifies whether to enable the action + to be triggered by an alarm. The default value is true. + alarm_actions: |- + - (Optional) Specifies the actions list triggered by an alarm. The + structure is described below. + alarm_actions.notification_list: |- + - (Required) Specifies the topic urn list of the target + notification objects. The maximum length is 5. The topic urn list can be + obtained from simple message notification (SMN) and in the following format: + urn:smn:([a-z]|[a-z]|[0-9]|\-){1,32}:([a-z]|[a-z]|[0-9]){32}:([a-z]|[a-z]|[0-9]|\-|\_){1,256}. + If type is set to notification, the value of notification_list cannot be + empty. If type is set to autoscaling, the value of notification_list must + be []. + alarm_actions.type: |- + - (Optional) Specifies the type of action triggered by an alarm. The + value can be notification or autoscaling. + alarm_description: '- (Optional) Alarm description. The value can be a string of 0 to 256 characters.' + alarm_enabled: |- + - (Optional) Specifies whether to enable the alarm. The default + value is true. + alarm_level: |- + - (Optional) Specifies the alarm severity. The value can be 1, 2, 3 or 4, + which indicates critical, major, minor, and informational. The default value is 2. + alarm_name: |- + - (Required) Specifies the name of an alarm rule. The value can + be a string of 1 to 128 characters that can consist of numbers, lowercase letters, + uppercase letters, underscores (_), or hyphens (-). + alarm_state: '- Specifies the alarm status. The value can be:' + alarm_type: |- + - (Optional) Specifies the alarm rule type. + EVENT.SYS: The alarm rule is created for system events. + EVENT.CUSTOM: The alarm rule is created for custom events. + autoscaling: ': indicates that a scaling action will be triggered.' + condition: |- + - (Required) Specifies the alarm triggering condition. The structure + is described below. + condition.alarm_frequency: |- + - (Optional) Specifies frequency for alarm triggering. If argument is not provided alarm will be triggered once. + 300: Cloud Eye triggers the alarm every 5 minutes. + 600: Cloud Eye triggers the alarm every 10 minutes. + 900: Cloud Eye triggers the alarm every 15 minutes. + 1800: Cloud Eye triggers the alarm every 30 minutes. + 3600: Cloud Eye triggers the alarm every hour. + 10800: Cloud Eye triggers the alarm every 3 hours. + 21600: Cloud Eye triggers the alarm every 6 hours. + 43200: Cloud Eye triggers the alarm every 12 hours. + 86400: Cloud Eye triggers the alarm every day. + condition.comparison_operator: |- + - (Required) Specifies the comparison condition of alarm + thresholds. The value can be >, =, <, >=, or <=. + condition.count: |- + - (Required) Specifies the number of consecutive occurrence times. + The value ranges from 1 to 5. + condition.filter: |- + - (Required) Specifies the data rollup methods. The value can be + max, min, average, sum, and variance. + condition.period: |- + - (Required) Specifies the alarm checking period in seconds. The + value can be 1, 300, 1200, 3600, 14400, and 86400. + condition.unit: '- (Optional) Specifies the data unit.' + condition.value: |- + - (Required) Specifies the alarm threshold. The value ranges from + 0 to Number.MAX_VALUE of 1.7976931348623157e+108. + dimensions.name: |- + - (Required) Specifies the dimension name. The value can be a string + of 1 to 32 characters that must start with a letter and can consists of uppercase + letters, lowercase letters, numbers, underscores (_), or hyphens (-). + dimensions.value: |- + - (Required) Specifies the dimension value. The value can be a string + of 1 to 64 characters that must start with a letter or a number and can consists + of uppercase letters, lowercase letters, numbers, underscores (_), or hyphens (-). + id: '- Specifies the alarm rule ID.' + insufficient_data: ': The required data is insufficient;' + metric: '- (Required) Specifies the alarm metrics. The structure is described below.' + metric.dimensions: |- + - (Optional) Specifies the list of metric dimensions. + If CES alarm_type is set to EVENT.SYS leaving this argument empty will enable monitoring for all service instances. + Otherwise, argument is required. Currently, the maximum length of the dimension list that are supported is 3. + The structure is described below. + metric.metric_name: |- + - (Required) Specifies the metric name. The value can be a string + of 1 to 64 characters that must start with a letter and can consists of uppercase + letters, lowercase letters, numbers, underscores (_) or slashes (/). + Available metrics. + metric.namespace: |- + - (Required) Specifies the namespace in service.item format. service.item + can be a string of 3 to 32 characters that must start with a letter and can + consists of uppercase letters, lowercase letters, numbers, or underscores (_). + notification: ': indicates that a notification will be sent to the user.' + ok: ': The alarm status is normal;' + ok_actions: |- + - (Optional) Specifies the actions list triggered by the clearing of + an alarm. The structure is described below. + ok_actions.notification_list: |- + - (Optional) Indicates the list of objects to be notified + if the alarm status changes. The maximum length is 5. + ok_actions.type: |- + - (Optional) specifies the type of action triggered by an alarm. the + value is notification. + update_time: |- + - Specifies the time when the alarm status changed. The value + is a UNIX timestamp and the unit is ms. + importStatements: [] + opentelekomcloud_compute_bms_server_v2: + subCategory: Bare Metal Server (BMS) + description: Manages a BMS Server resource within OpenTelekomCloud. + name: opentelekomcloud_compute_bms_server_v2 + title: opentelekomcloud_compute_bms_server_v2 + examples: + - name: basic + manifest: |- + { + "availability_zone": "${var.availability_zone}", + "flavor_id": "${var.flavor_id}", + "image_id": "${var.image_id}", + "key_pair": "${var.keypair_name}", + "metadata": { + "this": "that" + }, + "name": "basic", + "network": [ + { + "uuid": "${var.network_id}" + } + ], + "security_groups": [ + "default" + ] + } + references: + availability_zone: var.availability_zone + flavor_id: var.flavor_id + image_id: var.image_id + key_pair: var.keypair_name + network.uuid: var.network_id + - name: basic + manifest: |- + { + "availability_zone": "${var.availability_zone}", + "block_device": [ + { + "boot_index": 0, + "delete_on_termination": true, + "destination_type": "volume", + "device_name": "/dev/sda", + "source_type": "image", + "uuid": "${var.image_id}", + "volume_size": 100, + "volume_type": "SATA" + } + ], + "flavor_id": "${var.flavor_id}", + "key_pair": "${var.keypair_name}", + "metadata": { + "this": "that" + }, + "name": "basic", + "network": [ + { + "uuid": "${var.network_id}" + } + ], + "security_groups": [ + "default" + ] + } + references: + availability_zone: var.availability_zone + block_device.uuid: var.image_id + flavor_id: var.flavor_id + key_pair: var.keypair_name + network.uuid: var.network_id + argumentDocs: + admin_pass: |- + - (Optional) The administrative password to assign to the BMS server. + Changing this changes the root password on the existing server. + availability_zone: |- + - (Required) The availability zone in which to create + the BMS server. + config_drive: '- Whether to use the config_drive feature to configure the instance.' + flavor_id: |- + - (Optional; Required if flavor_name is empty) The flavor ID of + the desired flavor for the BMS server. Changing this resizes the existing BMS server. + flavor_name: |- + - (Optional; Required if flavor_id is empty) The name of the + desired flavor for the BMS server. Changing this resizes the existing BMS server. + host_status: '- The nova-compute status: UP, UNKNOWN, DOWN, MAINTENANCE and Null.' + id: '- The id of the BMS server.' + image_id: '- (Optional; Required if image_name is empty.) Changing this creates a new bms server.' + image_name: |- + - (Optional; Required if image_id is empty.) The name of the + desired image for the bms server. Changing this creates a new BMS server. + kernel_id: '- The UUID of the kernel image when the AMI image is used.' + key_pair: |- + - (Optional) The name of a key pair to put on the BMS server. The key + pair must already be created and associated with the tenant's account. + Changing this creates a new BMS server. + metadata: |- + - (Optional) Metadata key/value pairs to make available from + within the instance. Changing this updates the existing BMS server metadata. + name: '- (Required) The name of the BMS.' + network: |- + - (Optional) An array of one or more networks to attach to the + BMS instance. Changing this creates a new BMS server. + network.access_network: |- + - (Optional) Specifies if this network should be used for + provisioning access. Accepts true or false. Defaults to false. + network.fixed_ip_v4: |- + - (Optional) Specifies a fixed IPv4 address to be used on this + network. Changing this creates a new BMS server. + network.fixed_ip_v6: |- + - (Optional) Specifies a fixed IPv6 address to be used on this + network. Changing this creates a new BMS server. + network.name: |- + - (Required unless uuid or port is provided) The human-readable + name of the network. Changing this creates a new BMS server. + network.port: |- + - (Required unless uuid or name is provided) The port UUID of a + network to attach to the BMS server. Changing this creates a new server. + network.uuid: |- + - (Required unless port or name is provided) The network UUID to + attach to the BMS server. Changing this creates a new BMS server. + security_groups: |- + - (Optional) An array of one or more security group names + to associate with the BMS server. Changing this results in adding/removing + security groups from the existing BMS server. + stop_before_destroy: |- + - (Optional) Whether to try stop instance gracefully + before destroying it, thus giving chance for guest OS daemons to stop correctly. + If instance doesn't stop within timeout, it will be destroyed anyway. + tags: '- (Optional) Tags key/value pairs to associate with the instance.' + user_data: |- + - (Optional) The user data to provide when launching the instance. + Changing this creates a new BMS server. + user_id: '- The ID of the user to which the BMS belongs.' + importStatements: [] + opentelekomcloud_compute_bms_tags_v2: + subCategory: Bare Metal Server (BMS) + description: Manages a BMS Tags resource within OpenTelekomCloud. + name: opentelekomcloud_compute_bms_tags_v2 + title: opentelekomcloud_compute_bms_tags_v2 + examples: + - name: add_tags + manifest: |- + { + "server_id": "${var.bms_id}", + "tags": [ + "tags_type_baremetal" + ] + } + references: + server_id: var.bms_id + argumentDocs: + server_id: '- (Required) The unique id of bare metal server.' + tags: '- (Required) The tags of a BMS. Changing this parameter creates a new resource.' + importStatements: [] + opentelekomcloud_compute_floatingip_associate_v2: + subCategory: Elastic Cloud Server (ECS) + description: Manages an EIP Associate resource within OpenTelekomCloud. + name: opentelekomcloud_compute_floatingip_associate_v2 + title: opentelekomcloud_compute_floatingip_associate_v2 + examples: + - name: fip_1 + manifest: |- + { + "floating_ip": "${opentelekomcloud_networking_floatingip_v2.fip_1.address}", + "instance_id": "${opentelekomcloud_compute_instance_v2.instance_1.id}" + } + references: + floating_ip: opentelekomcloud_networking_floatingip_v2.fip_1.address + instance_id: opentelekomcloud_compute_instance_v2.instance_1.id + dependencies: + opentelekomcloud_compute_instance_v2.instance_1: |- + { + "flavor_id": 3, + "image_id": "ad091b52-742f-469e-8f3c-fd81cadf0743", + "key_pair": "my_key_pair_name", + "name": "instance_1", + "security_groups": [ + "default" + ] + } + opentelekomcloud_networking_floatingip_v2.fip_1: |- + { + "pool": "admin_external_net" + } + - name: fip_1 + manifest: |- + { + "fixed_ip": "${opentelekomcloud_compute_instance_v2.instance_1.network.1.fixed_ip_v4}", + "floating_ip": "${opentelekomcloud_networking_floatingip_v2.fip_1.address}", + "instance_id": "${opentelekomcloud_compute_instance_v2.instance_1.id}" + } + references: + fixed_ip: opentelekomcloud_compute_instance_v2.instance_1.network.1.fixed_ip_v4 + floating_ip: opentelekomcloud_networking_floatingip_v2.fip_1.address + instance_id: opentelekomcloud_compute_instance_v2.instance_1.id + dependencies: + opentelekomcloud_compute_instance_v2.instance_1: |- + { + "flavor_id": 3, + "image_id": "ad091b52-742f-469e-8f3c-fd81cadf0743", + "key_pair": "my_key_pair_name", + "name": "instance_1", + "network": [ + { + "name": "my_network" + }, + { + "name": "default" + } + ], + "security_groups": [ + "default" + ] + } + opentelekomcloud_networking_floatingip_v2.fip_1: |- + { + "pool": "admin_external_net" + } + argumentDocs: + fixed_ip: '- (Optional) The specific IP address to direct traffic to.' + floating_ip: '- (Required) The floating IP to associate.' + instance_id: '- (Required) The instance to associte the floating IP with.' + importStatements: [] + opentelekomcloud_compute_floatingip_v2: + subCategory: Elastic Cloud Server (ECS) + description: Manages an EIP resource within OpenTelekomCloud. + name: opentelekomcloud_compute_floatingip_v2 + title: opentelekomcloud_compute_floatingip_v2 + examples: + - name: floatip_1 + manifest: '{}' + argumentDocs: + address: '- The actual floating IP address itself.' + fixed_ip: '- The fixed IP address corresponding to the floating IP.' + instance_id: '- UUID of the compute instance associated with the floating IP.' + pool: |- + - (Optional) The name of the pool from which to obtain the floating + IP. Default value is admin_external_net. Changing this creates a new floating IP. + importStatements: [] + opentelekomcloud_compute_instance_v2: + subCategory: Elastic Cloud Server (ECS) + description: Manages an ECS Instance resource within OpenTelekomCloud. + name: opentelekomcloud_compute_instance_v2 + title: opentelekomcloud_compute_instance_v2 + examples: + - name: basic + manifest: |- + { + "flavor_id": "s2.large.4", + "image_id": "${var.image_id}", + "key_pair": "my_key_pair_name", + "metadata": { + "this": "that" + }, + "name": "basic", + "network": [ + { + "name": "my_network" + } + ], + "security_groups": [ + "default" + ], + "tags": { + "muh": "kuh" + } + } + references: + image_id: var.image_id + - name: myinstance + manifest: |- + { + "flavor_id": "s2.large.4", + "image_id": "${var.image_id}", + "key_pair": "my_key_pair_name", + "name": "myinstance", + "network": [ + { + "name": "my_network" + } + ], + "security_groups": [ + "default" + ] + } + references: + image_id: var.image_id + dependencies: + opentelekomcloud_blockstorage_volume_v2.myvol: |- + { + "name": "myvol", + "size": 4 + } + opentelekomcloud_compute_volume_attach_v2.attached: |- + { + "instance_id": "${opentelekomcloud_compute_instance_v2.myinstance.id}", + "volume_id": "${opentelekomcloud_blockstorage_volume_v2.myvol.id}" + } + - name: boot-from-volume + manifest: |- + { + "block_device": [ + { + "boot_index": 0, + "delete_on_termination": true, + "destination_type": "volume", + "source_type": "image", + "uuid": "${var.image_id}", + "volume_size": 5, + "volume_type": "SSD" + } + ], + "flavor_id": "s2.large.4", + "key_pair": "my_key_pair_name", + "name": "boot-from-volume", + "network": [ + { + "name": "my_network" + } + ], + "security_groups": [ + "default" + ] + } + references: + block_device.uuid: var.image_id + - name: boot-from-volume + manifest: |- + { + "block_device": [ + { + "boot_index": 0, + "delete_on_termination": true, + "destination_type": "volume", + "source_type": "volume", + "uuid": "${opentelekomcloud_blockstorage_volume_v2.myvol.id}" + } + ], + "flavor_id": "s2.large.4", + "key_pair": "my_key_pair_name", + "name": "bootfromvolume", + "network": [ + { + "name": "my_network" + } + ], + "security_groups": [ + "default" + ] + } + references: + block_device.uuid: opentelekomcloud_blockstorage_volume_v2.myvol.id + dependencies: + opentelekomcloud_blockstorage_volume_v2.myvol: |- + { + "image_id": "${var.image_id}", + "name": "myvol", + "size": 5 + } + - name: instance_1 + manifest: |- + { + "block_device": [ + { + "boot_index": 0, + "delete_on_termination": true, + "destination_type": "volume", + "source_type": "image", + "uuid": "${var.data_image_id}" + }, + { + "boot_index": 1, + "delete_on_termination": true, + "destination_type": "volume", + "source_type": "blank", + "volume_size": 1 + } + ], + "flavor_id": "s2.large.4", + "image_id": "${var.image_id}", + "key_pair": "my_key_pair_name", + "name": "instance_1", + "security_groups": [ + "default" + ] + } + references: + block_device.uuid: var.data_image_id + image_id: var.image_id + - name: instance_1 + manifest: |- + { + "block_device": [ + { + "boot_index": 0, + "delete_on_termination": true, + "destination_type": "volume", + "source_type": "image", + "uuid": "${var.data_image_id}" + }, + { + "boot_index": 1, + "delete_on_termination": true, + "destination_type": "volume", + "source_type": "volume", + "uuid": "${opentelekomcloud_blockstorage_volume_v2.volume_1.id}" + } + ], + "flavor_id": "s2.large.4", + "image_id": "${var.image_id}", + "key_pair": "my_key_pair_name", + "name": "instance_1", + "security_groups": [ + "default" + ] + } + references: + block_device.uuid: opentelekomcloud_blockstorage_volume_v2.volume_1.id + image_id: var.image_id + dependencies: + opentelekomcloud_blockstorage_volume_v2.volume_1: |- + { + "name": "volume_1", + "size": 1 + } + - name: multi-net + manifest: |- + { + "flavor_id": "s2.large.4", + "image_id": "${var.image_id}", + "key_pair": "my_key_pair_name", + "name": "multi-net", + "network": [ + { + "name": "my_first_network" + }, + { + "uuid": "${data.opentelekomcloud_vpc_subnet_v1.second_subnet.network_id}" + } + ], + "security_groups": [ + "default" + ] + } + references: + image_id: var.image_id + network.uuid: data.opentelekomcloud_vpc_subnet_v1.second_subnet.network_id + dependencies: + opentelekomcloud_compute_floatingip_associate_v2.myip: |- + { + "fixed_ip": "${opentelekomcloud_compute_instance_v2.multi-net.network.1.fixed_ip_v4}", + "floating_ip": "${opentelekomcloud_networking_floatingip_v2.myip.address}", + "instance_id": "${opentelekomcloud_compute_instance_v2.multi-net.id}" + } + opentelekomcloud_networking_floatingip_v2.myip: |- + { + "pool": "admin_external_net" + } + - name: multi-eph + manifest: |- + { + "block_device": [ + { + "boot_index": 0, + "delete_on_termination": true, + "destination_type": "volume", + "source_type": "image", + "uuid": "${var.data_image_id}" + }, + { + "boot_index": -1, + "delete_on_termination": true, + "destination_type": "volume", + "source_type": "blank", + "volume_size": 1 + }, + { + "boot_index": -1, + "delete_on_termination": true, + "destination_type": "volume", + "source_type": "blank", + "volume_size": 1 + } + ], + "flavor_id": "s2.large.4", + "image_id": "${var.image_id}", + "key_pair": "my_key_pair_name", + "name": "multi_eph", + "security_groups": [ + "default" + ] + } + references: + block_device.uuid: var.data_image_id + image_id: var.image_id + - name: instance_1 + manifest: |- + { + "flavor_id": "s2.large.4", + "image_id": "${var.image_id}", + "key_pair": "my_key_pair_name", + "name": "basic", + "network": [ + { + "name": "my_network" + } + ], + "security_groups": [ + "default" + ], + "user_data": "#cloud-config\nhostname: instance_1.example.com\nfqdn: instance_1.example.com" + } + references: + image_id: var.image_id + - name: foo + manifest: |- + { + "block_device": [ + { + "boot_index": 0, + "delete_on_termination": true, + "destination_type": "volume", + "source_type": "image", + "uuid": "${var.image_id}" + }, + { + "boot_index": -1, + "delete_on_termination": true, + "destination_type": "volume", + "source_type": "blank", + "volume_size": 1 + }, + { + "boot_index": -1, + "delete_on_termination": true, + "destination_type": "volume", + "source_type": "blank", + "volume_size": 1 + } + ], + "name": "terraform-test" + } + references: + block_device.uuid: var.image_id + - name: instance_1 + manifest: |- + { + "connection": [ + { + "host": "${opentelekomcloud_networking_port_v2.port_1.fixed_ip.0.ip_address}", + "private_key": "~/path/to/key", + "user": "root" + } + ], + "name": "instance_1", + "network": [ + { + "port": "${opentelekomcloud_networking_port_v2.port_1.id}" + } + ], + "provisioner": { + "remote-exec": [ + { + "inline": [ + "echo terraform executed \u003e /tmp/foo" + ] + } + ] + } + } + references: + connection.host: opentelekomcloud_networking_port_v2.port_1.fixed_ip.0.ip_address + network.port: opentelekomcloud_networking_port_v2.port_1.id + dependencies: + opentelekomcloud_networking_port_v2.port_1: |- + { + "admin_state_up": "true", + "name": "port_1", + "network_id": "0a1d0a27-cffa-4de3-92c5-9d3fd3f2e74d", + "security_group_ids": [ + "2f02d20a-8dca-49b7-b26f-b6ce9fddaf4f", + "ca1e5ed7-dae8-4605-987b-fadaeeb30461" + ] + } + - name: basic_instance + manifest: |- + { + "flavor_id": "${var.flavor_id}", + "image_id": "${var.image_id}", + "key_pair": "${var.key_pair}", + "name": "basic", + "network": [ + { + "name": "${var.network_name}" + } + ] + } + references: + flavor_id: var.flavor_id + image_id: var.image_id + key_pair: var.key_pair + network.name: var.network_name + - name: boot-from-volume + manifest: |- + { + "flavor_id": "${var.flavor_id}", + "image_id": "${var.image_id}", + "key_pair": "${var.key_pair}", + "name": "boot-from-volume", + "network": [ + { + "name": "${var.network_1_name}" + }, + { + "name": "${var.network_2_name}" + }, + { + "fixed_ip_v4": "${var.fixed_ip_v4}", + "name": "${var.network_1_name}" + } + ] + } + references: + flavor_id: var.flavor_id + image_id: var.image_id + key_pair: var.key_pair + network.fixed_ip_v4: var.fixed_ip_v4 + network.name: var.network_1_name + - name: instance_2 + manifest: |- + { + "block_device": [ + { + "boot_index": 0, + "delete_on_termination": true, + "destination_type": "volume", + "source_type": "image", + "uuid": "${var.image_id}" + } + ], + "flavor_id": "${var.flavor_id}", + "image_id": "${var.image_id}", + "key_pair": "${var.key_pair}", + "name": "instance_2", + "network": [ + { + "name": "${var.network_name}" + } + ] + } + references: + block_device.uuid: var.image_id + flavor_id: var.flavor_id + image_id: var.image_id + key_pair: var.key_pair + network.name: var.network_name + dependencies: + opentelekomcloud_blockstorage_volume_v2.volume_1: |- + { + "name": "${var.volume_name}", + "size": 1 + } + opentelekomcloud_compute_volume_attach_v2.va_1: |- + { + "instance_id": "${opentelekomcloud_compute_instance_v2.instance_2.id}", + "volume_id": "${opentelekomcloud_blockstorage_volume_v2.volume_1.id}" + } + argumentDocs: + access_ip_v4: '- The first detected Fixed IPv4 address or the Floating IP.' + access_ip_v6: '- The first detected Fixed IPv6 address.' + admin_pass: |- + - (Optional) The administrative password to assign to the server. Changing this changes the root password + on the existing server. + all_metadata: '- Contains all instance metadata, even metadata not set by Terraform.' + auto_recovery: '- (Optional) Configures or deletes automatic recovery of an instance. Defaults to true.' + availability_zone: |- + - (Optional) The availability zone in which to create the server. Changing this creates a new + server. + block_device: |- + - (Optional) Configuration of block devices. The block_device structure is documented below. Changing + this creates a new server. You can specify multiple block devices which will create an instance with multiple disks. + This configuration is very flexible, so please see the + following reference + for more information. + block_device.boot_index: '- (Optional) The boot index of the volume. It defaults to 0. Changing this creates a new server.' + block_device.delete_on_termination: |- + - (Optional) Delete the volume / block device upon termination of the instance. Defaults to + false. Changing this creates a new server. + block_device.destination_type: |- + - (Optional) The type that gets created. Currently only support "volume". Changing this creates a + new server. + block_device.source_type: |- + - (Required) The source type of the device. Must be one of + "blank", "image", "volume", or "snapshot". Changing this creates a new server. + block_device.uuid: |- + - (Required unless source_type is set to "blank" ) The UUID of the image, volume, or snapshot. Changing + this creates a new server. + block_device.volume_size: |- + - The size of the volume to create (in gigabytes). Required in the following combinations: source=image + and destination=volume, and source=blank and destination=volume. Changing this creates a new server. + block_device.volume_type: |- + - (Optional) Currently, the value can be SSD (ultra-I/O disk type), + SAS (high I/O disk type), or SATA (common I/O disk type) + OTC-API + config_drive: |- + - (Optional) Whether to use the config_drive feature to configure the instance. Changing this creates a + new server. + connection: 'information:' + description: '- (Optional) Server description.' + encrypted_password: |- + - The encrypted password of the server. This is only available if the server is a Windows server. + If privateKey == nil the encrypted password is returned and can be decrypted with: + echo '' | base64 -D | openssl rsautl -decrypt -inkey + flavor_id: |- + - (Optional; Required if flavor_name is empty) The flavor ID of the desired flavor for the server. + Changing this resizes the existing server. + flavor_name: |- + - (Optional; Required if flavor_id is empty) The name of the desired flavor for the server. Changing + this resizes the existing server. + force_delete: |- + - (Optional) Whether to force the OpenTelekomCloud instance to be forcefully deleted. This is useful + for environments that have reclaim/soft deletion enabled. + image_id: |- + - (Optional; Required if image_name is empty and not booting from a volume. Do not specify if booting + from a volume.) The image ID of the desired image for the server. Changing this creates a new server. + image_name: |- + - (Optional; Required if image_id is empty and not booting from a volume. Do not specify if booting + from a volume.) The name of the desired image for the server. Changing this creates a new server. + key_pair: |- + - (Optional) 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. + metadata: |- + - (Optional) Metadata key/value pairs to make available from within the instance. Changing this updates the + existing server metadata. + name: '- (Required) A unique name for the resource.' + network: |- + - (Optional) An array of one or more networks to attach to the instance. Required when there are multiple + networks defined for the tenant. The network object structure is documented below. Changing this creates a new server. + network.access_network: |- + - (Optional) Specifies if this network should be used for provisioning access. Accepts true or false. + Defaults to false. + network.fixed_ip_v4: |- + - (Optional) Specifies a fixed IPv4 address to be used on this network. Changing this creates a new + server. + network.fixed_ip_v6: |- + - (Optional) Specifies a fixed IPv6 address to be used on this network. Changing this creates a new + server. + network.name: |- + - (Required unless uuid or port is provided) The human-readable name of the network. Changing this creates + a new server. + network.port: |- + - (Required unless uuid or name is provided) The port UUID of a network to attach to the server. Changing + this creates a new server. + network.uuid: |- + - (Required unless port or name is provided) The network UUID to attach to the server. Changing this + creates a new server. + network/fixed_ip_v4: '- The Fixed IPv4 address of the Instance on that network.' + network/fixed_ip_v6: '- The Fixed IPv6 address of the Instance on that network.' + network/mac: '- The MAC address of the NIC on that network.' + network/name: '- See Argument Reference above.' + network/port: '- See Argument Reference above.' + network/uuid: '- See Argument Reference above.' + password: |- + - The password of the server. This is only available if the server is a Windows server. + If privateKey != nil the password is decrypted with the private key. + power_state: '- (Optional) Provide the VM state. Only active and shutoff are supported values.' + scheduler_hints: |- + - (Optional) Provide the Nova scheduler with hints on how the instance should be launched. The + available hints are described below. + scheduler_hints.build_near_host_ip: |- + - (Optional) An IP Address in CIDR form. The instance will be placed on a compute node that is in + the same subnet. + scheduler_hints.deh_id: '- (Optional) The ID of DeH. This parameter takes effect only when the value of tenancy is dedicated.' + scheduler_hints.different_host: |- + - (Optional) A list of instance UUIDs. The instance will be scheduled on a different host than all + other instances. + scheduler_hints.group: '- (Optional) A UUID of a Server Group. The instance will be placed into that group.' + scheduler_hints.query: '- (Optional) A conditional query that a compute node must pass in order to host an instance.' + scheduler_hints.same_host: '- (Optional) A list of instance UUIDs. The instance will be scheduled on the same host of those specified.' + scheduler_hints.target_cell: '- (Optional) The name of a cell to host the instance.' + scheduler_hints.tenancy: |- + - (Optional) The tenancy specifies whether the ECS is to be created on a Dedicated Host + (DeH) or in a shared pool. + security_groups: |- + - (Optional) An array of one or more security group names to associate with the server. Changing + this results in adding/removing security groups from the existing server. + ssh_private_key_path: |- + - (Optional) The path to the private key to use for SSH access. Required only if you want to + get the password from the windows instance. + stop_before_destroy: |- + - (Optional) Whether to try stop instance gracefully before destroying it, thus giving chance + for guest OS daemons to stop correctly. If instance doesn't stop within a timeout, it will be destroyed anyway. + tags: '- (Optional) Tags key/value pairs to associate with the instance.' + user_data: '- (Optional) The user data to provide when launching the instance. Changing this creates a new server.' + volume_attached/id: '- The volume id on that attachment.' + importStatements: [] + opentelekomcloud_compute_keypair_v2: + subCategory: Elastic Cloud Server (ECS) + description: Manages an ECS Key Management resource within OpenTelekomCloud. + name: opentelekomcloud_compute_keypair_v2 + title: opentelekomcloud_compute_keypair_v2 + examples: + - name: import-keypair + manifest: |- + { + "name": "imported-keypair", + "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAjpC1hwiOCCmKEWxJ4qzTTsJbKzndLotBCz5PcwtUnflmU+gHJtWMZKpuEGVi29h0A/+ydKek1O18k10Ff+4tyFjiHDQAnOfgWf7+b1yK+qDip3X1C0UPMbwHlTfSGWLGZqd9LvEFx9k3h/M+VtMvwR1lJ9LUyTAImnNjWG7TaIPmui30HvM2UiFEmqkr4ijq45MyX2+fLIePLRIF61p4whjHAQYufqyno3BS48icQb4p6iVEZPo4AE2o9oIyQvj2mx4dk5Y8CgSETOZTYDOR3rU2fZTRDRgPJDH9FWvQjF5tA0p3d9CoWWd2s6GKKbfoUIi8R/Db1BSPJwkqB" + } + - name: create-keypair + manifest: |- + { + "name": "new-keypair" + } + argumentDocs: + name: '- (Required) A unique name for the keypair. Changing this creates a new keypair.' + private_key: '- The generated private key when no public key is specified.' + public_key: |- + - (Optional) A pregenerated OpenSSH-formatted public key. + Changing this creates a new keypair. If a public key is not specified, then + a public/private key pair will be automatically generated. If a pair is + created, then destroying this resource means you will lose access to that + keypair forever. + shared: '- Indicates that keypair is shared (global) and not managed by Terraform.' + value_specs: '- (Optional) Map of additional options.' + importStatements: + - terraform import opentelekomcloud_compute_keypair_v2.my-keypair test-keypair + opentelekomcloud_compute_secgroup_v2: + subCategory: Elastic Cloud Server (ECS) + description: Manages an ECS Security Group Management resource within OpenTelekomCloud. + name: opentelekomcloud_compute_secgroup_v2 + title: opentelekomcloud_compute_secgroup_v2 + examples: + - name: secgroup_1 + manifest: |- + { + "description": "my security group", + "name": "my_secgroup", + "rule": [ + { + "cidr": "0.0.0.0/0", + "from_port": 22, + "ip_protocol": "tcp", + "to_port": 22 + }, + { + "cidr": "0.0.0.0/0", + "from_port": 80, + "ip_protocol": "tcp", + "to_port": 80 + } + ] + } + argumentDocs: + description: |- + - (Required) A description for the security group. Changing this + updates the description of an existing security group. + name: |- + - (Required) A unique name for the security group. Changing this + updates the name of an existing security group. + rule: |- + - (Optional) A rule describing how the security group operates. The + rule object structure is documented below. Changing this updates the + security group rules. As shown in the example above, multiple rule blocks + may be used. + rule.cidr: |- + - (Optional) Required if from_group_id or self is empty. The IP range + that will be the source of network traffic to the security group. Use 0.0.0.0/0 + to allow all IP addresses. Changing this creates a new security group rule. Cannot + be combined with from_group_id or self. + rule.from_group_id: |- + - (Optional) Required if cidr or self is empty. The ID of a + group from which to forward traffic to the parent group. Changing this creates a + new security group rule. Cannot be combined with cidr or self. + rule.from_port: |- + - (Required) An integer representing the lower bound of the port + range to open. Changing this creates a new security group rule. + rule.ip_protocol: |- + - (Required) The protocol type that will be allowed. Changing + this creates a new security group rule. + rule.self: |- + - (Optional) Required if cidr and from_group_id is empty. If true, + the security group itself will be added as a source to this ingress rule. Cannot + be combined with cidr or from_group_id. + rule.to_port: |- + - (Required) An integer representing the upper bound of the port + range to open. Changing this creates a new security group rule. + importStatements: [] + opentelekomcloud_compute_servergroup_v2: + subCategory: Elastic Cloud Server (ECS) + description: Manages an ECS Server Group Management resource within OpenTelekomCloud. + name: opentelekomcloud_compute_servergroup_v2 + title: opentelekomcloud_compute_servergroup_v2 + examples: + - name: test-sg + manifest: |- + { + "name": "my-sg", + "policies": [ + "anti-affinity" + ] + } + argumentDocs: + anti-affinity: |- + - All instances/servers launched in this group will be + hosted on different compute nodes. + id: '- ID of the server group.' + members: '- The instances that are part of this server group.' + name: |- + - (Required) A unique name for the server group. Changing this creates + a new server group. + policies: |- + - (Required) The set of policies for the server group. Only two + two policies are available right now, and both are mutually exclusive. See + the Policies section for more information. Changing this creates a new + server group. + value_specs: '- (Optional) Map of additional options.' + importStatements: [] + opentelekomcloud_compute_volume_attach_v2: + subCategory: Elastic Cloud Server (ECS) + description: Manages an ECS Disk Management resource within OpenTelekomCloud. + name: opentelekomcloud_compute_volume_attach_v2 + title: opentelekomcloud_compute_volume_attach_v2 + examples: + - name: va_1 + manifest: |- + { + "instance_id": "${opentelekomcloud_compute_instance_v2.instance_1.id}", + "volume_id": "${opentelekomcloud_blockstorage_volume_v2.volume_1.id}" + } + references: + instance_id: opentelekomcloud_compute_instance_v2.instance_1.id + volume_id: opentelekomcloud_blockstorage_volume_v2.volume_1.id + dependencies: + opentelekomcloud_blockstorage_volume_v2.volume_1: |- + { + "name": "volume_1", + "size": 1 + } + opentelekomcloud_compute_instance_v2.instance_1: |- + { + "name": "instance_1", + "security_groups": [ + "default" + ] + } + - name: attachments + manifest: |- + { + "count": 2, + "instance_id": "${opentelekomcloud_compute_instance_v2.instance_1.id}", + "volume_id": "${opentelekomcloud_blockstorage_volume_v2.volumes[count.index].id}" + } + references: + instance_id: opentelekomcloud_compute_instance_v2.instance_1.id + dependencies: + opentelekomcloud_blockstorage_volume_v2.volumes: |- + { + "count": 2, + "name": "${format(\"vol-%02d\", count.index + 1)}", + "size": 1 + } + opentelekomcloud_compute_instance_v2.instance_1: |- + { + "name": "instance_1", + "security_groups": [ + "default" + ] + } + argumentDocs: + device: '- (Optional) The device of the volume attachment (ex: /dev/vdc).' + instance_id: '- (Required) The ID of the Instance to attach the Volume to.' + volume_id: '- (Required) The ID of the Volume to attach to an Instance.' + importStatements: [] + opentelekomcloud_csbs_backup_policy_v1: + subCategory: Cloud Server Backup Service (CSBS) + description: Manages a CSBS Backup Policy resource within OpenTelekomCloud. + name: opentelekomcloud_csbs_backup_policy_v1 + title: opentelekomcloud_csbs_backup_policy_v1 + examples: + - name: backup_policy_v1 + manifest: |- + { + "name": "${var.name}", + "resource": [ + { + "id": "${var.id}", + "name": "${var.resource_name}", + "type": "OS::Nova::Server" + } + ], + "scheduled_operation": [ + { + "enabled": true, + "operation_type": "backup", + "trigger_pattern": "BEGIN:VCALENDAR\r\nBEGIN:VEVENT\r\nRRULE:FREQ=WEEKLY;BYDAY=TH;BYHOUR=12;BYMINUTE=27\r\nEND:VEVENT\r\nEND:VCALENDAR\r\n" + } + ] + } + references: + name: var.name + resource.id: var.id + resource.name: var.resource_name + argumentDocs: + common: '- (Optional) General backup policy parameters, which are blank by default.' + created_at: '- Backup creation time.' + description: '- (Optional) Backup policy description. The value consists of 0 to 255 characters and must not contain a greater-than sign (>) or less-than sign (<).' + id: '- Backup Policy ID.' + name: '- (Required) Specifies the name of backup policy. The value consists of 1 to 255 characters and can contain only letters, digits, underscores (_), and hyphens (-).' + provider_id: '- (Required) Specifies backup provider ID. Default value is fc4d5750-22e7-4798-8a46-f48f62c4c1da' + resource.id: '- (Required) Specifies the ID of the object to be backed up.' + resource.name: '- (Required) Specifies backup object name.' + resource.type: '- (Required) Entity object type of the backup object. If the type is VMs, the value is OS::Nova::Server.' + scheduled_operation: '- Backup plan information' + scheduled_operation.day_backups: |- + - (Optional) Specifies the maximum number of retained daily backups. + The latest backup of each day is saved in the long term. This parameter can be effective + together with the maximum number of retained backups specified by max_backups. + scheduled_operation.description: '- (Optional) Specifies Scheduling period description.The value consists of 0 to 255 characters and must not contain a greater-than sign (>) or less-than sign (<).' + scheduled_operation.enabled: '- (Optional) Specifies whether the scheduling period is enabled. Default value is true' + scheduled_operation.max_backups: '- (Optional) Specifies maximum number of backups that can be automatically created for a backup object.' + scheduled_operation.month_backups: |- + - (Optional) Specifies the maximum number of retained monthly backups. + The latest backup of each month is saved in the long term. This parameter can be effective + together with the maximum number of retained backups specified by max_backups. + scheduled_operation.name: '- (Optional) Specifies Scheduling period name.The value consists of 1 to 255 characters and can contain only letters, digits, underscores (_), and hyphens (-).' + scheduled_operation.operation_type: '- (Required) Specifies Operation type, which can be backup.' + scheduled_operation.permanent: '- (Optional) Specifies whether backups are permanently retained.' + scheduled_operation.retention_duration_days: '- (Optional) Specifies duration of retaining a backup, in days.' + scheduled_operation.timezone: '- (Optional) Time zone where the user is located, for example, UTC+08:00.' + scheduled_operation.trigger_pattern: '- (Required) Specifies Scheduling policy of the scheduler.' + scheduled_operation.week_backups: |- + - (Optional) Specifies the maximum number of retained weekly backups. + The latest backup of each week is saved in the long term. This parameter can be effective + together with the maximum number of retained backups specified by max_backups. + scheduled_operation.year_backups: |- + - (Optional) Specifies the maximum number of retained yearly backups. + The latest backup of each year is saved in the long term. This parameter can be effective + together with the maximum number of retained backups specified by max_backups. + status: '- Status of Backup Policy.' + tags.key: '- (Required) Tag key. It cannot be an empty string.' + tags.value: '- (Required) Tag value. It can be an empty string.' + trigger_id: '- Specifies Scheduler ID.' + trigger_name: '- Specifies Scheduler name.' + trigger_type: '- Specifies Scheduler type.' + importStatements: [] + opentelekomcloud_csbs_backup_v1: + subCategory: Cloud Server Backup Service (CSBS) + description: Manages a CSBS Backup resource within OpenTelekomCloud. + name: opentelekomcloud_csbs_backup_v1 + title: opentelekomcloud_csbs_backup_v1 + examples: + - name: backup_v1 + manifest: |- + { + "backup_name": "${var.backup_name}", + "resource_id": "${var.resource_id}", + "resource_type": "OS::Nova::Server" + } + references: + backup_name: var.backup_name + resource_id: var.resource_id + argumentDocs: + backup_name: '- (Optional) Name for the backup. The value consists of 1 to 255 characters and can contain only letters, digits, underscores (_), and hyphens (-). Changing backup_name creates a new backup.' + backup_record_id: '- Specifies backup record ID.' + description: '- (Optional) Backup description. The value consists of 0 to 255 characters and must not contain a greater-than sign (>) or less-than sign (<). Changing description creates a new backup.' + key: '- (Required) Tag key. It cannot be an empty string.Changing key creates a new backup.' + resource_id: '- (Required) ID of the target to which the backup is restored. Changing this creates a new backup.' + resource_type: '- (Optional) Type of the target to which the backup is restored. The default value is OS::Nova::Server for an ECS. Changing this creates a new backup.' + status: '- It specifies the status of backup.' + tags: '- (Optional) block supports the following arguments:' + value: '- (Required) Tag value. It can be an empty string.Changing value creates a new backup.' + vm_metadata.cloud_service_type: '- Specifies ECS type.' + vm_metadata.disk: '- Shows system disk size corresponding to the ECS specifications.' + vm_metadata.eip: '- Specifies elastic IP address of the ECS.' + vm_metadata.image_type: '- Specifies image type.' + vm_metadata.name: '- Name of backup data.' + vm_metadata.private_ip: '- It specifies internal IP address of the ECS.' + vm_metadata.ram: '- Specifies memory size of the ECS, in MB.' + vm_metadata.vcpus: '- Specifies CPU cores corresponding to the ECS.' + volume_backups.average_speed: '- Specifies the average speed.' + volume_backups.bootable: '- Specifies whether the disk is bootable.' + volume_backups.id: '- Specifies Cinder backup ID.' + volume_backups.image_type: '- It specifies backup. The default value is backup.' + volume_backups.incremental: '- Shows whether incremental backup is used.' + volume_backups.name: '- It gives EVS disk backup name.' + volume_backups.size: '- Specifies accumulated size (MB) of backups.' + volume_backups.snapshot_id: '- ID of snapshot.' + volume_backups.source_volume_id: '- It specifies source volume ID.' + volume_backups.source_volume_name: '- Specifies source volume name.' + volume_backups.source_volume_size: '- Shows source volume size in GB.' + volume_backups.space_saving_ratio: '- Specifies space saving rate.' + volume_backups.status: '- Status of backup Volume.' + importStatements: [] + opentelekomcloud_css_cluster_v1: + subCategory: Cloud Search Service (CSS) + description: Manages a CSS Cluster resource within OpenTelekomCloud. + name: opentelekomcloud_css_cluster_v1 + title: opentelekomcloud_css_cluster_v1 + examples: + - name: cluster + manifest: |- + { + "expect_node_num": 1, + "name": "terraform_test_cluster", + "node_config": [ + { + "availability_zone": "${var.availability_zone}", + "flavor": "css.medium.8", + "network_info": [ + { + "network_id": "${var.network_id}", + "security_group_id": "${data.opentelekomcloud_networking_secgroup_v2.secgroup.id}", + "vpc_id": "${var.vpc_id}" + } + ], + "volume": [ + { + "size": 40, + "volume_type": "COMMON" + } + ] + } + ] + } + references: + node_config.availability_zone: var.availability_zone + node_config.network_info.network_id: var.network_id + node_config.network_info.security_group_id: data.opentelekomcloud_networking_secgroup_v2.secgroup.id + node_config.network_info.vpc_id: var.vpc_id + - name: cluster + manifest: |- + { + "admin_pass": "QwertyUI!", + "datastore": [ + { + "type": "opensearch", + "version": "1.3.6" + } + ], + "enable_authority": true, + "enable_https": true, + "expect_node_num": 1, + "name": "terraform_test_cluster", + "node_config": [ + { + "availability_zone": "${var.availability_zone}", + "flavor": "css.medium.8", + "network_info": [ + { + "network_id": "${var.network_id}", + "security_group_id": "${data.opentelekomcloud_networking_secgroup_v2.secgroup.id}", + "vpc_id": "${var.vpc_id}" + } + ], + "volume": [ + { + "size": 40, + "volume_type": "COMMON" + } + ] + } + ] + } + references: + node_config.availability_zone: var.availability_zone + node_config.network_info.network_id: var.network_id + node_config.network_info.security_group_id: data.opentelekomcloud_networking_secgroup_v2.secgroup.id + node_config.network_info.vpc_id: var.vpc_id + argumentDocs: + admin_pass: |- + - (Optional) Password of the cluster user admin in security mode. + This parameter is mandatory only when enable_authority is set to true. + create: '- Default is 20 minutes.' + created: '- Time when a cluster is created. The format is ISO8601: CCYY-MM-DDThh:mm:ss.' + css.2xlarge.2: ': 80 GB to 1,600 GB' + css.2xlarge.4: ': 80 GB to 3,200 GB' + css.2xlarge.8: ': 80 GB to 5120 GB' + css.4xlarge.2: ': 100 GB to 3,200 GB' + css.4xlarge.4: ': 100 GB to 6,400 GB' + css.4xlarge.8: ': 160 GB to 10240 GB' + css.8xlarge.2: ': 320 GB to 10,240 GB' + css.8xlarge.4: ': 160 GB to 10,240 GB' + css.medium.8: ': 40 GB to 640 GB' + css.xlarge.2: ': 40 GB to 800 GB' + css.xlarge.4: ': 40 GB to 1,600 GB' + css.xlarge.8: ': 40 GB to 2560 GB' + datastore: |- + - (Optional) Type of the data search engine. Structure is documented below. + Changing this parameter will create a new resource. + datastore.type: '- Engine type. The default value is elasticsearch. Currently, the value can be elasticsearch or opensearch.' + datastore.version: |- + - Engine version. The value can be 7.6.2, 7.9.3, 7.10.2 or 1.3.6 for opensearch. + The default value is 7.6.2. + enable_authority: |- + - (Optional) Whether to enable authentication. + Authentication is disabled by default. When authentication is enabled, enable_https must be set to true. + Changing this parameter will create a new resource. + enable_https: |- + - (Optional) Whether communication encryption is performed on the cluster. + By default, communication encryption is enabled. + Value true indicates that communication encryption is performed on the cluster. + Value false indicates that communication encryption is not performed on the cluster. + Changing this parameter will create a new resource. + endpoint: '- Indicates the IP address and port number of the user used to access the VPC.' + expect_node_num: '- (Optional) Number of cluster instances. The value range is 1 to 32.' + name: |- + - (Required) Cluster name. It contains 4 to 32 characters. Only letters, digits, + hyphens (-), and underscores (_) are allowed. The value must start with a letter. + Changing this parameter will create a new resource. + network_info.network_id: |- + - (Required) Network ID. All instances in a cluster must have the same + networks and security groups. Changing this parameter will create a new resource. + network_info.security_group_id: |- + - (Required) Security group ID. All instances in a cluster must have the + same subnets and security groups. Changing this parameter will create a new resource. + network_info.vpc_id: |- + - (Required) VPC ID, which is used for configuring cluster network. + Changing this parameter will create a new resource. + node_config: |- + - (Required) Instance object. Structure is documented below. + Changing this parameter will create a new resource. + node_config.availability_zone: '- (Optional) Availability zone (AZ). Changing this parameter will create a new resource.' + node_config.flavor: '- (Required) Instance flavor name.' + node_config.network_info: |- + - (Required) Network information. Structure is documented below. + Changing this parameter will create a new resource. + node_config.volume: |- + - (Required) Information about the volume. Structure is documented below. + Changing this parameter will create a new resource. + nodes: '- List of node objects. Structure is documented below.' + nodes.id: '- Instance ID.' + nodes.name: '- Instance name.' + nodes.type: '- Supported type: ess (indicating the Elasticsearch node)' + tags: '- (Optional) Tags key/value pairs to associate with the cluster.' + update: '- Default is 30 minutes.' + updated: '- Last modification time of a cluster. The format is ISO8601: CCYY-MM-DDThh:mm:ss.' + volume.encryption_key: |- + - (Optional) Key ID. The Default Master Keys cannot be used to create + grants. Specifically, you cannot use Default Master Keys + whose aliases end with /default in KMS to create clusters. + After a cluster is created, do not delete the key used by the cluster. + Otherwise, the cluster will become unavailable. + Changing this parameter will create a new resource. + volume.size: '- (Required) Volume size, which must be a multiple of 4 and 10.' + volume.volume_type: |- + - (Required) COMMON: Common I/O. The SATA disk is used. HIGH: High I/O. + The SAS disk is used. ULTRAHIGH: Ultra-high I/O. The solid-state drive (SSD) is used. + Changing this parameter will create a new resource. + importStatements: [] + opentelekomcloud_css_snapshot_configuration_v1: + subCategory: Cloud Search Service (CSS) + description: Manages a CSS Snapshot resource within OpenTelekomCloud. + name: opentelekomcloud_css_snapshot_configuration_v1 + title: opentelekomcloud_css_snapshot_configuration_v1 + examples: + - name: config + manifest: |- + { + "cluster_id": "${opentelekomcloud_css_cluster_v1.cluster.id}", + "configuration": [ + { + "agency": "css_obs_agency", + "base_path": "css/snapshot", + "bucket": "${opentelekomcloud_obs_bucket.bucket.bucket}" + } + ], + "creation_policy": [ + { + "delete_auto": true, + "enable": true, + "keepday": 2, + "period": "00:00 GMT+03:00", + "prefix": "snapshot" + } + ] + } + references: + cluster_id: opentelekomcloud_css_cluster_v1.cluster.id + configuration.bucket: opentelekomcloud_obs_bucket.bucket.bucket + dependencies: + opentelekomcloud_css_cluster_v1.cluster: |- + { + "expect_node_num": 1, + "name": "terraform_test_cluster", + "node_config": [ + { + "availability_zone": "${var.availability_zone}", + "flavor": "css.medium.8", + "network_info": [ + { + "network_id": "${var.network_id}", + "security_group_id": "${data.opentelekomcloud_networking_secgroup_v2.secgroup.id}", + "vpc_id": "${var.vpc_id}" + } + ], + "volume": [ + { + "size": 40, + "volume_type": "COMMON" + } + ] + } + ] + } + opentelekomcloud_obs_bucket.bucket: |- + { + "bucket": "tf-snap-testing", + "force_destroy": true + } + argumentDocs: + automatic: |- + - (Optional) Use automatic configuration for CCS cluster screenshots. + Mutually exclusive with configuration/creation_policy. + cluster_id: '- (Required) ID of the CSS cluster.' + configuration: |- + - (Optional) The basic configurations of a cluster snapshot. Structure is documented below. + Mutually exclusive with automatic. + configuration.agency: '- (Required) The agency used by CSS to access OBS.' + configuration.base_path: '- (Required) Storage path of the snapshot in the OBS bucket.' + configuration.bucket: '- (Required) The bucket which will be used for storing snapshots.' + configuration.kms_id: '- (Options) Key ID used for snapshot encryption.' + creation_policy: |- + - (Optional) Parameters related to automatic snapshot creation. Structure is documented below. + Mutually exclusive with automatic. + creation_policy.delete_auto: |- + - (Optional) Whether to delete all automatically created snapshots when the automatic + snapshot creation policy is disabled. The default value is false, indicating that snapshots that have been + automatically created are not deleted when the automatic snapshot creation function is disabled. + If this parameter is set to true, all automatically created snapshots are deleted when the automatic snapshot + creation policy is disabled. + creation_policy.enable: |- + - (Required) Value true indicates that the automatic snapshot creation policy is enabled, + and value false indicates that the automatic snapshot creation policy is disabled. + creation_policy.keepday: |- + - (Required) Number of days that a snapshot can be retained. The value ranges from 1 to 90. + The system automatically deletes snapshots that have been retained for the allowed maximum duration on the half hour. + creation_policy.period: |- + - (Required) Time when a snapshot is created every day. Snapshots can only be created on the hour. + The time format is the time followed by the time zone, specifically, HH:mm z. + In the format, HH:mm refers to the hour time and z refers to the time zone, for example, + 00:00 GMT+08:00 and 01:00 GMT+08:00. + creation_policy.prefix: '- (Required) Prefix of the snapshot name that is automatically created.' + importStatements: [] + opentelekomcloud_cts_event_notification_v3: + subCategory: Cloud Trace Service (CTS) + description: Manages a CTS Event Notification resource within OpenTelekomCloud. + name: opentelekomcloud_cts_event_notification_v3 + title: opentelekomcloud_cts_event_notification_v3 + examples: + - name: notification_v3 + manifest: |- + { + "notification_name": "my_notification", + "operation_type": "complete", + "status": "enabled", + "topic_id": "${opentelekomcloud_smn_topic_v2.topic_1.id}" + } + references: + topic_id: opentelekomcloud_smn_topic_v2.topic_1.id + dependencies: + opentelekomcloud_smn_topic_v2.topic_1: |- + { + "name": "topic_1" + } + - name: notification_v3 + manifest: |- + { + "notification_name": "my_notification", + "operation_type": "complete" + } + dependencies: + opentelekomcloud_smn_topic_v2.topic_1: |- + { + "name": "topic_1" + } + - name: notification_v3 + manifest: |- + { + "notification_name": "test_user", + "notify_user_list": [ + { + "user_group": "user_group", + "user_list": [ + "user_one", + "user_two" + ] + } + ], + "operation_type": "customized", + "operations": [ + { + "resource_type": "vpc", + "service_type": "VPC", + "trace_names": [ + "deleteVpc", + "createVpc" + ] + }, + { + "resource_type": "evs", + "service_type": "EVS", + "trace_names": [ + "createVolume", + "deleteVolume" + ] + } + ], + "status": "enabled", + "topic_id": "${opentelekomcloud_smn_topic_v2.topic_1.id}" + } + references: + topic_id: opentelekomcloud_smn_topic_v2.topic_1.id + dependencies: + opentelekomcloud_smn_topic_v2.topic_1: |- + { + "name": "topic_1" + } + argumentDocs: + complete: '- Any operation will trigger notification.' + create_time: '- Specifies creation time of event notification rule.' + customized: '- Only selected operations will trigger notification.' + notification_id: '- Unique event notification id.' + notification_name: |- + - (Required) The name of event notification rule. Only letters, digits + and underscores (_) are allowed. + notification_type: '- Specifies the notification type. Current cts version supports only smn type.' + notify_user_list: |- + - (Optional) Specifies the list of users whose operations will trigger notifications. + Currently, up to 50 users in 10 user groups can be configured. Supported fields: + operation_type: '- (Required) The operation type of event rules.' + operations: |- + - (Optional) Specifies which operations are enabled in event notification rule. Can be only specified + when operation_type is set to customized. Supported fields: + project_id: '- Specifies project id of event notification rule.' + resource_type: '- (Required) Specifies the resource type of custom operation.' + service_type: |- + - (Required) Specifies the cloud service. Every service should be provided separately, the value + must be the acronym of a cloud service that has been connected with CTS. + status: '- (Optional) Specifies whether SMN topic is enabled or disabled.' + topic_id: '- (Optional) Specifies SMN topic URN that will be used for events notification.' + trace_names: '- (Required) Specifies the list with trace names of custom operation.' + user_group: '- (Required) Specifies the IAM user group.' + user_list: '- (Required) Specifies the list with IAM users which belong to user_group.' + importStatements: + - $ terraform import opentelekomcloud_cts_event_notification_v3.notification c1881895-cdcb-4d23-96cb-032e6a3ee667/test_event + opentelekomcloud_cts_tracker_v1: + subCategory: Cloud Trace Service (CTS) + description: Manages a CTS Tracker v1 resource within OpenTelekomCloud. + name: opentelekomcloud_cts_tracker_v1 + title: opentelekomcloud_cts_tracker_v1 + examples: + - name: tracker_v1 + manifest: |- + { + "bucket_name": "${var.bucket_name}", + "file_prefix_name": "yO8Q", + "is_lts_enabled": true + } + references: + bucket_name: var.bucket_name + argumentDocs: + bucket_name: '- (Required) The OBS bucket name for a tracker.' + file_prefix_name: '- (Optional) The prefix of a log that needs to be stored in an OBS bucket.' + is_lts_enabled: '- (Optional) Specifies whether to enable trace analysis.' + log_group_name: '- Specifies LTS log group name.' + log_topic_name: '- Specifies LTS log stream.' + region: '- Specifies the tracker region.' + status: '- Specifies current status of the tracker.' + tracker_name: '- The tracker name. Currently, only tracker system is available.' + importStatements: + - $ terraform import opentelekomcloud_cts_tracker_v1.tracker system + opentelekomcloud_cts_tracker_v3: + subCategory: Cloud Trace Service (CTS) + description: Manages a CTS Tracker v3 resource within OpenTelekomCloud. + name: opentelekomcloud_cts_tracker_v3 + title: opentelekomcloud_cts_tracker_v3 + examples: + - name: tracker_v3 + manifest: |- + { + "bucket_name": "${var.bucket_name}", + "file_prefix_name": "prefix", + "is_lts_enabled": true, + "status": "enabled" + } + references: + bucket_name: var.bucket_name + argumentDocs: + bucket_name: '- (Optional) The OBS bucket name for a tracker.' + compress_type: |- + - (Optional) Specifies the compression type. Default value is gzip. + The valid values are as follows: + detail: '- Specifies the cause of the abnormal status, and its value in case of errors.' + domain_id: '- Specifies domain id of the tracker.' + file_prefix_name: '- (Optional) The prefix of a log that needs to be stored in an OBS bucket.' + id: '- Specifies the tracker id.' + is_lts_enabled: '- (Optional) Specifies whether to enable trace analysis.' + is_obs_created: '- (Optional) Specifies whether the OBS bucket is automatically created by the tracker.' + is_sort_by_service: |- + - (Optional) Specifies whether to sort the path by cloud service. If this option is enabled, + the cloud service name is added to the transfer file path. Default: true. + log_group_name: '- Specifies LTS log group name.' + log_topic_name: '- Specifies LTS log stream.' + project_id: '- Specifies project id of the tracker.' + status: '- (Required) Specifies whether tracker is enabled or disabled.' + tracker_name: '- The tracker name. Currently, only tracker system is available.' + tracker_type: '- The tracker type. Currently, only tracker system is available.' + importStatements: + - $ terraform import opentelekomcloud_cts_tracker_v3.tracker system + opentelekomcloud_dc_endpoint_group_v2: + subCategory: Direct Connect (DCaaS) + description: Manages a Direct Connect Endpoint Group resource within OpenTelekomCloud. + name: opentelekomcloud_dc_endpoint_group_v2 + title: opentelekomcloud_dc_endpoint_group_v2 + examples: + - name: dc_endpoint_group + manifest: |- + { + "description": "first", + "endpoints": [ + "10.2.0.0/24", + "10.3.0.0/24" + ], + "name": "ep-1", + "project_id": "${data.opentelekomcloud_identity_project_v3.project_1.id}", + "type": "cidr" + } + references: + project_id: data.opentelekomcloud_identity_project_v3.project_1.id + argumentDocs: + description: (String, Optional, ForceNew) - Provides supplementary information about the Direct Connect endpoint group. + endpoints: (List, required, ForceNew) - Specifies the list of the endpoints in a Direct Connect endpoint group. + id: '- ID of the endpoint group.' + name: (String, Optional, ForceNew) - Specifies the name of the Direct Connect endpoint group. + project_id: (String, Required, ForceNew) - Specifies the project ID. + type: (String, Required, ForceNew) - Specifies the type of the Direct Connect endpoints. The value can only be cidr. + importStatements: [] + opentelekomcloud_dc_virtual_gateway_v2: + subCategory: Direct Connect (DCaaS) + description: Manages a Direct Connect Virtual Gateway resource within OpenTelekomCloud. + name: opentelekomcloud_dc_virtual_gateway_v2 + title: opentelekomcloud_dc_virtual_gateway_v2 + examples: + - name: vgw_1 + manifest: |- + { + "description": "acc test", + "local_ep_group": [ + { + "description": "first", + "endpoints": [ + "10.2.0.0/24", + "10.3.0.0/24" + ], + "name": "tf_eg_1" + } + ], + "local_ep_group_v6": [ + { + "description": "first", + "endpoints": [ + "2a07:8700:2:4::/64", + "2a07:8700:2:54::/64" + ], + "name": "tf_eg_2" + } + ], + "name": "%s", + "vpc_id": "${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.vpc_id}" + } + references: + vpc_id: data.opentelekomcloud_vpc_subnet_v1.shared_subnet.vpc_id + argumentDocs: + asn: (Int, Optional, ForceNew) - Specifies the BGP ASN of the virtual gateway. + description: (String, Optional) - Provides supplementary information about the virtual gateway. + device_id: (String, Optional) - Specifies the ID of the physical device used by the virtual gateway. + id: '- ID of the virtual gateway.' + local_ep_group: |- + (String, Optional, List) - Specifies the local endpoint group that records CIDR IPV4 blocks of the VPC subnets. + At least one of local_ep_group or local_ep_group_v6 should be specified. + The object structure is documented below. + local_ep_group_id: '- ID of the local IPV4 endpoint group that records CIDR blocks of the VPC subnets.' + local_ep_group_ipv6_id: '- ID of the local IPV6 endpoint group that records CIDR blocks of the VPC subnets.' + local_ep_group_v6: |- + (String, Optional, List) - Specifies the local endpoint group that records CIDR IPV6 blocks of the VPC subnets. + At least one of local_ep_group or local_ep_group_v6 should be specified. + The object structure is documented below. + local_group: 'block supports:' + local_group.description: (Str[ing, Optional) - Provides supplementary information about the Direct Connect endpoint group. + local_group.endpoints: (List, Required) - Specifies the list of the endpoints in a Direct Connect endpoint group. + local_group.name: (String, Optional) - Specifies the name of the Direct Connect endpoint group. + local_group.type: '(String, Required, ForceNew) - Specifies the type of the Direct Connect endpoints. The value can only be cidr. Default value: cidr.' + name: (String, Required) - Specifies the virtual gateway name.]() + project_id: (String, Optional) - Specifies the project ID. + redundant_device_id: (String, Optional) - Specifies the ID of the redundant physical device used by the virtual gateway. + status: '- Virtual gateway status.' + vpc_id: (String, Required, ForceNew) - Specifies the ID of the VPC to be accessed. + importStatements: [] + opentelekomcloud_dc_virtual_interface_v2: + subCategory: Direct Connect (DCaaS) + description: Manages a Direct Connect Virtual Interface resource within OpenTelekomCloud. + name: opentelekomcloud_dc_virtual_interface_v2 + title: opentelekomcloud_dc_virtual_interface_v2 + examples: + - name: vi_1 + manifest: |- + { + "bandwidth": 10, + "description": "description", + "direct_connect_id": "${var.direct_connect_id}", + "local_gateway_v4_ip": "180.1.1.1/24", + "name": "my_virtual_interface", + "remote_ep_group": [ + { + "description": "first", + "endpoints": [ + "100.20.0.0/24", + "100.30.0.0/24" + ], + "name": "tf_acc_reg_1", + "project_id": "${data.opentelekomcloud_identity_project_v3.project.id}" + } + ], + "remote_gateway_v4_ip": "180.1.1.2/24", + "route_mode": "static", + "service_type": "vpc", + "type": "private", + "virtual_gateway_id": "${opentelekomcloud_dc_virtual_gateway_v2.vgw_1.id}", + "vlan": 100 + } + references: + direct_connect_id: var.direct_connect_id + remote_ep_group.project_id: data.opentelekomcloud_identity_project_v3.project.id + virtual_gateway_id: opentelekomcloud_dc_virtual_gateway_v2.vgw_1.id + dependencies: + opentelekomcloud_dc_virtual_gateway_v2.vgw_1: |- + { + "description": "acc test", + "local_ep_group": [ + { + "description": "first", + "endpoints": [ + "10.2.0.0/24", + "10.3.0.0/24" + ], + "name": "tf_acc_eg_1" + } + ], + "name": "my_virtual_gateway", + "vpc_id": "${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.vpc_id}" + } + argumentDocs: + asn: (Int, Optional, ForceNew) - Specifies the AS number of the BGP peer. + bandwidth: (Int, Required) - Specifies the virtual interface bandwidth. + bgp_md5: (String, Optional, ForceNew) - Specifies the MD5 password of the BGP peer. + created_at: '- The creation time of the virtual interface.' + description: (String, Optional) - Provides supplementary information about the Direct Connect endpoint group. + direct_connect_id: (String, Required, ForceNew) - Specifies the connection ID. + enable_bfd: '- Bidirectional Forwarding Detection (BFD) function status.' + enable_nqa: '- Network Quality Analysis (NQA) function status.' + endpoints: (List, Required) - Specifies the list of the endpoints in a Direct Connect endpoint group. + id: '- ID of the virtual interface.' + lag_id: '- The ID of the link aggregation group (LAG) associated with the virtual interface.' + local_gateway_v4_ip: (String, Optional, ForceNew) - Specifies the IPv4 address of the local gateway. + name: (String, Required) - Specifies the virtual interface name. + project_id: (String, Optional, ForceNew) - Specifies the project ID. + remote_ep_group: |- + (String, Required, List) - Specifies the ID of the remote endpoint group that records the CIDR blocks used by the on-premises network. + The remote_ep_group block supports: + remote_ep_group_id: '- The ID of the remote endpoint group that records the CIDR blocks used by the on-premises network.' + remote_gateway_v4_ip: (String, Optional, ForceNew) - Specifies the IPv4 address of the remote gateway. + route_mode: (String, Required, ForceNew) - Specifies the routing mode. The value can be static or bgp. + service_type: (String, Required, ForceNew) - Specifies what is to be accessed over the connection. The value can only be vpc. + status: '- The current status of the virtual interface.' + type: (String, Required, ForceNew) - Specifies the virtual interface type. The value can only be private. + virtual_gateway_id: (String, Required, ForceNew) - Specifies the virtual gateway ID. + vlan: (Int, Required, ForceNew) - Specifies the VLAN used by the local gateway to communicate with the remote gateway. + importStatements: [] + opentelekomcloud_dcs_instance_v1: + subCategory: Distributed Cache Service (DCS) + description: Manages a DCS Instance v1 resource within OpenTelekomCloud. + name: opentelekomcloud_dcs_instance_v1 + title: opentelekomcloud_dcs_instance_v1 + examples: + - name: instance_1 + manifest: |- + { + "available_zones": [ + "${data.opentelekomcloud_dcs_az_v1.az_1.id}" + ], + "backup_policy": [ + { + "backup_at": [ + 1, + 2, + 4, + 6 + ], + "backup_type": "manual", + "begin_at": "00:00-01:00", + "period_type": "weekly", + "save_days": 1 + } + ], + "capacity": 2, + "engine": "Redis", + "engine_version": "3.0", + "name": "test_dcs_instance", + "password": "0TCTestP@ssw0rd", + "product_id": "${data.opentelekomcloud_dcs_product_v1.product_1.id}", + "security_group_id": "${opentelekomcloud_networking_secgroup_v2.secgroup_1.id}", + "subnet_id": "${var.network_id}", + "tags": { + "environment": "basic", + "managed_by": "terraform" + }, + "vpc_id": "${var.vpc_id}" + } + references: + product_id: data.opentelekomcloud_dcs_product_v1.product_1.id + security_group_id: opentelekomcloud_networking_secgroup_v2.secgroup_1.id + subnet_id: var.network_id + vpc_id: var.vpc_id + dependencies: + opentelekomcloud_networking_secgroup_v2.secgroup_1: |- + { + "description": "secgroup_1", + "name": "secgroup_1" + } + - name: instance_1 + manifest: |- + { + "available_zones": [ + "${data.opentelekomcloud_dcs_az_v1.az_1.id}" + ], + "capacity": 0.125, + "enable_whitelist": true, + "engine": "Redis", + "engine_version": "5.0", + "name": "test_dcs_instance_5.0", + "password": "0TCTestP@ssw0rd", + "product_id": "${data.opentelekomcloud_dcs_product_v1.product_1.id}", + "subnet_id": "${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.network_id}", + "vpc_id": "${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.vpc_id}", + "whitelist": [ + { + "group_name": "test-group-name", + "ip_list": [ + "10.10.10.1", + "10.10.10.2" + ] + }, + { + "group_name": "test-group-name-2", + "ip_list": [ + "10.10.10.11", + "10.10.10.3", + "10.10.10.4" + ] + } + ] + } + references: + product_id: data.opentelekomcloud_dcs_product_v1.product_1.id + subnet_id: data.opentelekomcloud_vpc_subnet_v1.shared_subnet.network_id + vpc_id: data.opentelekomcloud_vpc_subnet_v1.shared_subnet.vpc_id + argumentDocs: + "0.125": |- + , 0.25, + 0.5, 1, 2, 4, 8, 16, 32 and 64. + Cluster instance specifications support 4,8,16, 24, 32, 48, 64, 96, 128, 192, 256, + 384, 512, 768 and 1024. + "2": |- + , 4, 8, 16, 32 and 64. + Proxy cluster instance specifications support 64, 128, 256, 512, and 1024. + available_zones: |- + - (Required, ForceNew, List) IDs of the AZs where cache nodes reside. For details + on how to query AZs, see Querying AZ Information + or use opentelekomcloud_dcs_az_v1 data source: + backup_at: |- + - (Required, List) Day in a week on which backup starts. Range: 1–7. Where: 1 + indicates Monday; 7 indicates Sunday. + backup_policy: '- (Optional, List) Describes the backup configuration to be used with the instance.' + backup_type: |- + - (Optional, String) Backup type. Valid values are: auto automatic backup, + manual manual backup (default). + begin_at: |- + - (Required, String) Time at which backup starts. 00:00-01:00 indicates that backup + starts at 00:00:00. + capacity: '- (Required, ForceNew, Float) Indicates the Cache capacity. Unit: GB.' + configuration: |- + - (Optional, List) Describes the array of configuration items of the DCS instance. + Configured values can be found here. + created_at: '- Time at which the DCS instance is created. For example, 2017-03-31T12:24:46.297Z.' + dcs.cluster: ': indicates a DCS instance in cluster mode. Not available with version 6.0.' + dcs.master_standby: ': indicates a DCS instance in master/standby mode.' + dcs.single_node: ': indicates a DCS instance in single-node mode.' + description: |- + - (Optional, String) Indicates the description of an instance. It is a character + string containing not more than 1024 characters. + enable_whitelist: |- + - (Optional, Bool) Specifies whether to enable or disable whitelist. Only available when + engine_version is set to 4.0/5.0. Parameter have to be used together with whitelist. + engine: |- + - (Required, ForceNew, String) Indicates a cache engine. Only Redis is supported. Changing this + creates a new instance. + engine_version: |- + - (Required, ForceNew, String) Indicates the version of a cache engine, which can be 3.0/4.0/5.0/6.0. + Changing this creates a new instance. + group_name: '- (Required, String) Whitelist group name. A maximum of four groups can be created for each instance.' + internal_version: '- Internal DCS version.' + ip: '- Cache node''s IP address in the tenant''s VPC.' + ip_list: |- + - (Required, List) List of IP addresses in the whitelist group. A maximum of 20 IP addresses or IP address + ranges can be added to an instance. Separate multiple IP addresses or IP address ranges with commas (,). + IP address 0.0.0.0 and IP address range 0.0.0/0 are not supported. + maintain_begin: |- + - (Optional, String) Indicates the time at which a maintenance time window starts. + Format: HH:mm:ss. The start time and end time of a maintenance time window must indicate the time segment of + a supported maintenance time window. For details, see section + Querying Maintenance Time Windows. + The start time must be set to 22:00, 02:00, 06:00, 10:00, 14:00, or 18:00. + maintain_end: |- + - (Optional, String) Indicates the time at which a maintenance time window ends. + Format: HH:mm:ss. The start time and end time of a maintenance time window must indicate the time segment of + a supported maintenance time window. For details, see section + Querying Maintenance Time Windows. + 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. + max_memory: '- Overall memory size. Unit: MB.' + name: |- + - (Required, String) Indicates the name of an instance. An instance name starts with a letter, + consists of 4 to 64 characters, and supports only letters, digits, and hyphens (-). + no_password_access: |- + - An indicator of whether a DCS instance can be accessed in password-free mode. + true when password not set. + order_id: |- + - An order ID is generated only in the monthly or yearly billing mode. + In other billing modes, no value is returned for this parameter. + parameter_id: '- (Required, String) Configuration item ID.' + parameter_name: '- (Required, String) Configuration item name.' + parameter_value: '- (Required, String) Value of the configuration item.' + password: |- + - (Optional, ForceNew, String) Indicates the password of an instance. An instance password + must meet the following complexity requirements: Must be 8 to 32 characters long. + Must contain at least 3 of the following character types: lowercase letters, uppercase + letters, digits, and special characters: `~!@#$^&*()-_=+|{}:,<>./? + Changing this creates a new instance. + period_type: |- + - (Required, String) Interval at which backup is performed. + Currently, only weekly backup is supported. + port: '- Port of the cache node.' + private_ip: '- (Optional, String) IP address that is manually specified for a DCS instance.' + product_id: |- + - (Required, ForceNew, String) Product ID used to differentiate DCS instance types. + Changing this creates a new instance. + resource_spec_code: '- Resource specifications.' + save_days: '- (Optional, Int) Retention time. Unit: day. Range: 1–7.' + security_group_id: '- (Optional, String) Security group ID. This parameter is mandatory when engine_version is 3.0.' + security_group_name: '- Indicates the name of a security group.' + status: |- + - Cache instance status. One of CREATING, CREATEFAILED, RUNNING, ERROR, + RESTARTING, EXTENDING, RESTORING + subnet_id: '- (Required, ForceNew, String) Specifies the subnet Network ID. Changing this creates a new instance.' + subnet_name: '- Indicates the name of a subnet.' + tags: '- (Optional, Map) The key/value pairs to associate with the dcs instance.' + used_memory: '- Size of the used memory. Unit: MB.' + user_id: '- Indicates a user ID.' + user_name: '- Username.' + vpc_id: '- (Required, ForceNew, String) Specifies the VPC ID. Changing this creates a new instance.' + vpc_name: '- Indicates the name of a vpc.' + whitelist: |- + - (Optional, List) Describes the whitelist groups to be used with the instance. Only available when + engine_version is set to 4.0/5.0. Parameter have to be used together with enable_whitelist. + Resource fields: + importStatements: + - $ terraform import opentelekomcloud_dcs_instance_v1.instance instance_id + opentelekomcloud_dcs_instance_v2: + subCategory: Distributed Cache Service (DCS) + description: Manages a DCS Instance v2 resource within OpenTelekomCloud. + name: opentelekomcloud_dcs_instance_v2 + title: opentelekomcloud_dcs_instance_v2 + examples: + - name: instance_1 + manifest: |- + { + "availability_zones": [ + "eu-de-01" + ], + "backup_policy": [ + { + "backup_at": [ + 1, + 2, + 4, + 6 + ], + "backup_type": "manual", + "begin_at": "00:00-01:00", + "period_type": "weekly", + "save_days": 1 + } + ], + "capacity": 2, + "engine": "Redis", + "engine_version": "3.0", + "flavor": "dcs.master_standby", + "name": "test_dcs_instance", + "password": "0TCTestP@ssw0rd", + "security_group_id": "${opentelekomcloud_networking_secgroup_v2.secgroup_1.id}", + "subnet_id": "${var.network_id}", + "tags": { + "environment": "basic", + "managed_by": "terraform" + }, + "vpc_id": "${var.vpc_id}" + } + references: + security_group_id: opentelekomcloud_networking_secgroup_v2.secgroup_1.id + subnet_id: var.network_id + vpc_id: var.vpc_id + dependencies: + opentelekomcloud_networking_secgroup_v2.secgroup_1: |- + { + "description": "secgroup_1", + "name": "secgroup_1" + } + - name: instance_1 + manifest: |- + { + "availability_zones": [ + "${data.opentelekomcloud_compute_availability_zones_v2.zones.names[0]}" + ], + "capacity": 0.125, + "enable_whitelist": true, + "engine": "Redis", + "engine_version": "5.0", + "flavor": "redis.single.xu1.tiny.128", + "name": "test_dcs_instance_5.0", + "password": "0TCTestP@ssw0rd", + "subnet_id": "${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.network_id}", + "vpc_id": "${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.vpc_id}", + "whitelist": [ + { + "group_name": "test-group-name", + "ip_list": [ + "10.10.10.1", + "10.10.10.2" + ] + }, + { + "group_name": "test-group-name-2", + "ip_list": [ + "10.10.10.11", + "10.10.10.3", + "10.10.10.4" + ] + } + ] + } + references: + subnet_id: data.opentelekomcloud_vpc_subnet_v1.shared_subnet.network_id + vpc_id: data.opentelekomcloud_vpc_subnet_v1.shared_subnet.vpc_id + argumentDocs: + ERROR: ': The instance is not running properly.' + EXTENDING: ': The instance is being scaled up.' + FLUSHING: ': The DCS instance is being cleared.' + FROZEN: |- + : The instance has been frozen due to low balance. + You can unfreeze the instance by recharging your account in My Order. + RESTARTING: ': The instance is being restarted.' + RESTORING: ': The instance data is being restored.' + RUNNING: |- + : The instance is running properly. + Only instances in the Running state can provide in-memory cache service. + access_user: |- + - (Optional, String, ForceNew) Specifies the username used for accessing a DCS instance. + The username starts with a letter, consists of 1 to 64 characters, and supports only letters, digits, and + hyphens (-). Changing this creates a new instance. + auto: ': automatic backup.' + availability_zones: |- + - (Optional, List, ForceNew) The code of the AZ where the cache node resides. + Master/Standby, Proxy Cluster, and Redis Cluster DCS instances support cross-AZ deployment. + You can specify an AZ for the standby node. When specifying AZs for nodes, use commas (,) to separate AZs. + Changing this creates a new instance. + backup_policy: |- + - (Optional, List) Specifies the backup configuration to be used with the instance. + The structure is described below. + backup_policy.backup_at: |- + - (Required, List) Day in a week on which backup starts, the value ranges from 1 to 7. + Where: 1 indicates Monday; 7 indicates Sunday. + backup_policy.backup_type: '- (Optional, String) Backup type. Default value is auto. The valid values are as follows:' + backup_policy.begin_at: |- + - (Required, String) Time at which backup starts. + Format: hh24:00-hh24:00, "00:00-01:00" indicates that backup starts at 00:00:00. + backup_policy.period_type: |- + - (Optional, String) Interval at which backup is performed. Default value is weekly. + Currently, only weekly backup is supported. + backup_policy.save_days: |- + - (Optional, Int) Retention time. Unit: day, the value ranges from 1 to 7. + This parameter is required if the backup_type is auto. + bandwidth_info: |- + - Indicates the bandwidth information of the instance. + The bandwidth_info structure is documented below. + bandwidth_info.bandwidth: '- Indicates the bandwidth size, the unit is GB.' + bandwidth_info.begin_time: '- Indicates the begin time of temporary increase.' + bandwidth_info.current_time: '- Indicates the current time.' + bandwidth_info.end_time: '- Indicates the end time of temporary increase.' + bandwidth_info.expand_count: '- Indicates the number of increases.' + bandwidth_info.expand_effect_time: '- Indicates the interval between temporary increases, the unit is ms.' + bandwidth_info.expand_interval_time: '- Indicates the time interval to the next increase, the unit is ms.' + bandwidth_info.max_expand_count: '- Indicates the maximum number of increases.' + bandwidth_info.next_expand_time: '- Indicates the next increase time.' + bandwidth_info.task_running: '- Indicates whether the increase task is running.' + cache_mode: '- Indicates the instance type. The value can be single, ha, cluster or proxy.' + capacity: '- (Required, Float) Specifies the cache capacity. Unit: GB.' + cpu_type: '- Indicates the CPU type of the instance. The value can be x86_64 or aarch64.' + create: '- Default is 120 minutes.' + created_at: '- Indicates the time when the instance is created, in RFC3339 format.' + delete: '- Default is 15 minutes.' + deleted_nodes: |- + - (Optional, List) Specifies the ID of the replica to delete. This parameter is mandatory when + you delete replicas of a master/standby DCS Redis 4.0 or 5.0 instance. Currently, only one replica can be deleted + at a time. + description: |- + - (Optional, String) Specifies the description of an instance. + It is a string that contains a maximum of 1024 characters. + domain_name: '- Domain name of the instance. Usually, we use domain name and port to connect to the DCS instances.' + enable_whitelist: |- + - (Optional, Bool) Enable or disable the IP address whitelists. Defaults to true. + If the whitelist is disabled, all IP addresses connected to the VPC can access the instance. + engine: |- + - (Required, String, ForceNew) Specifies a cache engine. Options: Redis and Memcached. + Changing this creates a new instance. + engine_version: |- + - (Optional, String, ForceNew) Specifies the version of a cache engine. + It is mandatory when the engine is Redis, the value can be 3.0, 4.0, 5.0 or 6.0. + Changing this creates a new instance. + flavor: |- + - (Required, String) The flavor of the cache instance, which including the total memory, available memory, + maximum number of connections allowed, maximum/assured bandwidth and reference performance. + It also includes the modes of Redis instances. You can query the flavor as follows: + id: '- A resource ID in UUID format.' + launched_at: '- Indicates the time when the instance is started, in RFC3339 format.' + maintain_begin: '- (Optional, String) Time at which the maintenance time window starts. Defaults to 02:00:00.' + maintain_end: '- (Optional, String) Time at which the maintenance time window ends. Defaults to 06:00:00.' + manual: ': manual backup.' + max_memory: '- Total memory size. Unit: MB.' + name: |- + - (Required, String) Specifies the name of an instance. + The name must be 4 to 64 characters and start with a letter. + Only chinese, letters (case-insensitive), digits, underscores (_) ,and hyphens (-) are allowed. + parameters: |- + - (Optional, List) Specify an array of one or more parameters to be set to the DCS instance after + launched. You can check on console to see which parameters supported. + The parameters structure is documented below. + parameters.id: '- (Required, String) Specifies the ID of the configuration item.' + parameters.name: '- (Required, String) Specifies the name of the configuration item.' + parameters.value: '- (Required, String) Specifies the value of the configuration item.' + password: |- + - (Optional, String) Specifies the password of a DCS instance. + The password of a DCS instance must meet the following complexity requirements: + port: |- + - (Optional, Int) Port customization, which is supported only by Redis 4.0 and Redis 5.0 instances. + Redis instance defaults to 6379. Memcached instance does not use this argument. + private_ip: |- + - (Optional, String, ForceNew) The IP address of the DCS instance, + which can only be the currently available IP address the selected subnet. + You can specify an available IP for the Redis instance (except for the Redis Cluster type). + If omitted, the system will automatically allocate an available IP address to the Redis instance. + Changing this creates a new instance resource. + product_type: '- Indicates the product type of the instance. The value can be: generic or enterprise.' + readonly_domain_name: |- + - Indicates the read-only domain name of the instance. This parameter is available + only for master/standby instances. + region: '- Indicates the region in which DCS instance resource is created.' + rename_commands: |- + - (Optional, Map) Critical command renaming, which is supported only by Redis 4.0 and + Redis 5.0 instances but not by Redis 3.0 instance. + The valid commands that can be renamed are: command, keys, flushdb, flushall and hgetall. + replica_count: '- Indicates the number of replicas in the instance.' + reserved_ips: |- + - (Optional, List) Specifies IP addresses to retain. Mandatory during cluster scale-in. If this + parameter is not set, the system randomly deletes unnecessary shards. + security_group_id: |- + - (Optional, String) The ID of the security group which the instance belongs to. + This parameter is mandatory for Memcached and Redis 3.0 version. + security_group_name: '- The name of security group which the instance belongs to.' + sharding_count: '- Indicates the number of shards in a cluster instance.' + ssl_enable: '- (Optional, Bool) Specifies whether to enable the SSL. Value options: true, false.' + status: '- Cache instance status. The valid values are as follows:' + subnet_cidr: '- Indicates the subnet segment.' + subnet_id: |- + - (Required, String, ForceNew) The ID of subnet which the instance belongs to. + Changing this creates a new instance resource. + subnet_name: '- The name of subnet which the instance belongs to.' + tags: '- (Optional, Map) The key/value pairs to associate with the dcs instance.' + template_id: |- + - (Optional, String, ForceNew) The Parameter Template ID. + Changing this creates a new instance resource. + transparent_client_ip_enable: '- Indicates whether client IP pass-through is enabled.' + update: '- Default is 120 minutes.' + used_memory: '- Size of the used memory. Unit: MB.' + vpc_id: |- + - (Required, String, ForceNew) The ID of VPC which the instance belongs to. + Changing this creates a new instance resource. + vpc_name: '- The name of VPC which the instance belongs to.' + whitelist: |- + - (Optional, List) Specifies the IP addresses which can access the instance. + This parameter is valid for Redis 4.0 and 5.0 versions. The structure is described below. + whitelist.group_name: '- (Required, String) Specifies the name of IP address group.' + whitelist.ip_list: |- + - (Required, List) Specifies the list of IP address or CIDR which can be whitelisted for an instance. + The maximum is 20. + importStatements: [] + opentelekomcloud_dds_instance_v3: + subCategory: Document Database Service (DDS) + description: Manages a DDS Instance resource within OpenTelekomCloud. + name: opentelekomcloud_dds_instance_v3 + title: opentelekomcloud_dds_instance_v3 + examples: + - name: instance + manifest: |- + { + "availability_zone": "${var.availability_zone}", + "datastore": [ + { + "storage_engine": "wiredTiger", + "type": "DDS-Community", + "version": "3.4" + } + ], + "flavor": [ + { + "num": 1, + "size": 30, + "spec_code": "dds.mongodb.s2.medium.4.repset", + "storage": "ULTRAHIGH", + "type": "replica" + } + ], + "mode": "ReplicaSet", + "name": "dds-instance", + "password": "5ecuredPa55w0rd@", + "security_group_id": "${var.security_group_id}", + "subnet_id": "${var.subnet_id}", + "tags": { + "foo": "bar", + "new_test": "new_test2" + }, + "vpc_id": "${var.vpc_id}" + } + references: + availability_zone: var.availability_zone + security_group_id: var.security_group_id + subnet_id: var.subnet_id + vpc_id: var.vpc_id + - name: instance + manifest: |- + { + "availability_zone": "${var.availability_zone}", + "backup_strategy": [ + { + "keep_days": "8", + "start_time": "08:00-09:00" + } + ], + "datastore": [ + { + "storage_engine": "wiredTiger", + "type": "DDS-Community", + "version": "3.4" + } + ], + "flavor": [ + { + "num": 2, + "spec_code": "dds.mongodb.s2.medium.4.mongos", + "type": "mongos" + }, + { + "num": 2, + "size": 20, + "spec_code": "dds.mongodb.s2.medium.4.shard", + "storage": "ULTRAHIGH", + "type": "shard" + }, + { + "num": 1, + "size": 20, + "spec_code": "dds.mongodb.s2.large.2.config", + "storage": "ULTRAHIGH", + "type": "config" + } + ], + "mode": "Sharding", + "name": "dds-instance", + "password": "5ecuredPa55w0rd2@", + "security_group_id": "${var.security_group_id}", + "subnet_id": "${var.subnet_id}", + "vpc_id": "${var.vpc_id}" + } + references: + availability_zone: var.availability_zone + security_group_id: var.security_group_id + subnet_id: var.subnet_id + vpc_id: var.vpc_id + - name: instance + manifest: |- + { + "availability_zone": "${var.availability_zone}", + "datastore": [ + { + "storage_engine": "wiredTiger", + "type": "DDS-Community", + "version": "3.4" + } + ], + "flavor": [ + { + "num": 1, + "size": 30, + "spec_code": "dds.mongodb.s2.medium.4.single", + "storage": "ULTRAHIGH", + "type": "single" + } + ], + "mode": "Single", + "name": "dds-instance", + "password": "5ecuredPa55w0rd@", + "security_group_id": "${var.security_group_id}", + "subnet_id": "${var.subnet_id}", + "vpc_id": "${var.vpc_id}" + } + references: + availability_zone: var.availability_zone + security_group_id: var.security_group_id + subnet_id: var.subnet_id + vpc_id: var.vpc_id + argumentDocs: + "0": ', the automated backup policy is not set.' + HH: value must be 1 greater than the hh value. + availability_zone: |- + - (Required) Specifies the ID of the availability zone. Changing + this creates a new instance. + backup_strategy: |- + - (Optional) Specifies the advanced backup policy. The structure is + described below. Changing this creates a new instance. + backup_strategy .keep_days: |- + - (Optional) Specifies the number of days to retain the generated backup files. The + value range is from 0 to 732. + backup_strategy .start_time: |- + - (Required) Specifies the backup time window. Automated backups will be triggered + during the backup time window. The value cannot be empty. It must be a valid value in the + "hh:mm-HH:MM" format. The current time is in the UTC format. + cluster: |- + instance, the storage space of a shard node can be 10 to 1000 GB, and the config + storage space is 20 GB. This parameter is invalid for mongos nodes. Therefore, you do not need + to specify the storage space for mongos nodes. + config: ': The value is 1.' + create: '- Default is 30 minute.' + datastore: |- + - (Required) Specifies database information. The structure is described + below. Changing this creates a new instance. + datastore.storage_engine: |- + - (Optional) Specifies the storage engine. Currently, DDS supports the WiredTiger and RocksDB + storage engine. The values are wiredTiger, rocksDB. + WiredTiger engine supports versions 3.2, 3.4, 4.0 while RocksDB supports versions 4.2, 4.4 + datastore.type: |- + - (Required) Specifies the database type. DDS Community Edition is supported. + The value is DDS-Community. + datastore.version: |- + - (Required) Specifies the database version. + The values are 3.2, 3.4, 4.0, 4.2, 4.4. + db_username: '- Indicates the DB Administator name.' + delete: '- Default is 30 minute.' + disk_encryption_id: |- + - (Required) Specifies the disk encryption ID of the instance. + Changing this creates a new instance. + flavor: |- + - (Required) Specifies the flavors information. The structure is described below. + Changing this creates a new instance. + flavor.num: '- (Required) Specifies the node quantity. Valid value:' + flavor.size: '- (Optional) Specifies the disk size. The value must be a multiple of 10. The unit is GB.' + flavor.spec_code: '- (Required) Specifies the resource specification code.' + flavor.storage: '- (Optional) Specifies the disk type. Valid value: ULTRAHIGH which indicates the type SSD.' + flavor.type: '- (Required) Specifies the node type. Valid value:' + mm: and MM must be the same and must be set to any of the following 00, 15, 30, or 45. + mode: |- + - (Required) Specifies the mode of the database instance. Changing this creates + a new instance. + mongos: ', shard, or config.' + name: |- + - (Required) Specifies the DB instance name. The DB instance name of the same + type is unique in the same tenant. + nodes: '- Indicates the instance nodes information. Structure is documented below.' + nodes.id: '- Indicates the node ID.' + nodes.name: '- Indicates the node name.' + nodes.private_ip: |- + - Indicates the private IP address of a node. This parameter is valid only for + mongos nodes, replica set instances. + nodes.public_ip: |- + - Indicates the EIP that has been bound on a node. This parameter is valid only for + mongos nodes of cluster instances, primary nodes and secondary nodes of replica set instances. + nodes.role: '- Indicates the node role.' + nodes.status: '- Indicates the node status.' + nodes.type: '- Indicates the node type.' + password: '- (Required) Specifies the Administrator password of the database instance.' + pay_mode: '- Indicates the billing mode. 0: indicates the pay-per-use billing mode.' + port: '- Indicates the database port number. The port range is 2100 to 9500.' + region: |- + - (Optional) Specifies the region of the DDS instance. Changing this creates + a new instance. + replica: . + replica set: instance, the value ranges from 10 to 2000. + security_group_id: '- (Required) Specifies the security group ID of the DDS instance.' + shard: ': The value ranges from 2 to 16.' + single: . + ssl: |- + - (Optional) Specifies whether to enable or disable SSL. Defaults to true. + -> The instance will be restarted in the background when switching SSL. Please operate with caution. + status: '- Indicates the the DB instance status.' + subnet_id: '- (Required) Specifies the subnet Network ID. Changing this creates a new instance.' + tags: |- + - (Optional) Tags key/value pairs to associate with the volume. + Changing this updates the existing volume tags. + vpc_id: '- (Required) Specifies the VPC ID. Changing this creates a new instance.' + importStatements: + - terraform import opentelekomcloud_dds_instance_v3.instance_1 c1851195-cdcb-4d23-96cb-032e6a3ee667 + opentelekomcloud_deh_host_v1: + subCategory: Dedicated Host (DEH) + description: Manages a DEH Host resource within OpenTelekomCloud. + name: opentelekomcloud_deh_host_v1 + title: opentelekomcloud_deh_host_v1 + examples: + - name: deh_host + manifest: |- + { + "auto_placement": "on", + "availability_zone": "eu-de-02", + "host_type": "h1", + "name": "high_performance_deh" + } + argumentDocs: + auto_placement: '- (Optional) Allows a instance to be automatically placed onto the available Dedicated Hosts. The default value is on.' + availability_zone: '- (Required) The Availability Zone to which the Dedicated Host belongs. Changing this parameter creates a new resource.' + available_instance_capacities: '- The VM flavors placed on the Dedicated Host.' + available_memory: '- The size of available memory for the Dedicated Host.' + available_vcpus: '- The number of available vCPUs for the Dedicated Host.' + cores: '- The number of host physical cores.' + host_type: '- (Required) The Dedicated Host type. Expected values are h1, general and d1. Changing this parameter creates a new resource.' + host_type_name: '- The name of the Dedicated Host type.' + instance_total: '- The number of the placed VMs.' + instance_uuids: '- The VMs started on the Dedicated Host.' + memory: '- The size of host physical memory (MB).' + name: '- (Required) The name of the Dedicated Host.' + sockets: '- The number of host physical sockets.' + status: '- Specifies the Dedicated Host status.' + vcpus: '- The number of host vCPUs.' + importStatements: [] + opentelekomcloud_direct_connect_v2: + subCategory: Direct Connect (DCaaS) + description: Manages a Direct Connect resource within OpenTelekomCloud. + name: opentelekomcloud_direct_connect_v2 + title: opentelekomcloud_direct_connect_v2 + examples: + - name: direct_connect + manifest: |- + { + "admin_state_up": true, + "bandwidth": 100, + "location": "location", + "name": "direct_connect", + "port_type": "port_type", + "provider_name": "provider_name" + } + argumentDocs: + admin_state_up: (Boolean, ForceNew) - Specifies the administrative status of the connection. The value can be true or false. + applicant: (String) - This is a reserved field, which is not used currently. + apply_time: (String) - Specifies the time when the connection was requested. + bandwidth: (Number) - Specifies the bandwidth of the connection in Mbit/s. + building_line_product_id: (String) - This is a reserved field, which is not used currently. + cable_label: (String) - This is a reserved field, which is not used currently. + charge_mode: (String, ForceNew) - Specifies the billing mode. The value can only be port for operations connections. + create_time: (String) - Specifies the time when the connection is created. + delete_time: (String) - Specifies the time when the connection was deleted. + description: (String) - Provides supplementary information about the connection. + device_id: (String, ForceNew) - Specifies the gateway device ID of the connection. + email: (String) - This is a reserved field, which is not used currently. + hosting_id: (String, ForceNew) - Specifies the ID of the operations connection on which the hosted connection is created. + id: (String) - Specifies the connection ID. + interface_name: (String, ForceNew) - Specifies the name of the interface accessed by the connection. + lag_id: (String) - This is a reserved field, which is not used currently. + last_onestop_product_id: (String) - This is a reserved field, which is not used currently. + location: (String, ForceNew) - Specifies the connection access location. + mobile: (String) - This is a reserved field, which is not used currently. + name: (String) - Specifies the connection name. + onestop_product_id: (String) - This is a reserved field, which is not used currently. + order_id: (String, ForceNew) - Specifies the connection order ID, which is used to support duration-based billing and identify user orders. + peer_location: (String, ForceNew) - Specifies the physical location of the peer device accessed by the connection, specific to the street or data center name. + peer_port_type: (String) - This is a reserved field, which is not used currently. + peer_provider: (String) - This is a reserved field, which is not used currently. + period_num: (Number) - This is a reserved field, which is not used currently. + period_type: (Number) - This is a reserved field, which is not used currently. + port_type: (String, ForceNew) - Specifies the type of the port used by the connection. The value can be 1G, 10G, 40G, or 100G. + product_id: (String, ForceNew) - Specifies the product ID corresponding to the connection's order, which is used to custom billing policies such as duration-based packages. + provider_name: (String, ForceNew) - Specifies the carrier who provides the leased line. + provider_status: (String) - Specifies the status of the carrier's leased line. The value can be ACTIVE or DOWN. + reason: (String) - This is a reserved field, which is not used currently. + redundant_id: (String, ForceNew) - Specifies the ID of the redundant connection using the same gateway. + region_id: (String) - Specifies the region ID. + service_key: (String) - This is a reserved field, which is not used currently. + spec_code: (String) - This is a reserved field, which is not used currently. + status: |- + (String, ForceNew) - Specifies the connection status. + The value can be: ACTIVE, DOWN, BUILD, ERROR, PENDING_DELETE, DELETED, APPLY, DENY, PENDING_PAY, PAID, ORDERING, ACCEPT, or REJECTED. + tenant_id: (String, ForceNew) - Specifies the project ID. + type: (String, ForceNew) - Specifies the connection type. The value can only be hosted. + vgw_type: (String) - Specifies the type of the gateway. Currently, only the default type is supported. + vlan: (Number, ForceNew) - Specifies the VLAN ID of the connection. + importStatements: [] + opentelekomcloud_dis_app_v2: + subCategory: Data Ingestion Service (DIS) + description: Manages a DIS App resource within OpenTelekomCloud. + name: opentelekomcloud_dis_app_v2 + title: opentelekomcloud_dis_app_v2 + examples: + - name: app_1 + manifest: |- + { + "name": "app_name" + } + argumentDocs: + checkpoint_type: ': Type of the checkpoint.' + commit_checkpoint_stream_names: '- List of associated streams.' + created: '- Time when the app is created. The value is a timestamp.' + earliest_offset: ': Partition data earliest offset' + id: '- Unique identifier of the app.' + latest_offset: ': Partition data latest offset' + name: |- + - (Required) Name of the consumer application to be created + The application name contains 1 to 200 characters. Only letters, digits, hyphens (-), and underscores (_) are allowed. + partition_consuming_states: '- Associated partitions details.' + sequence_number: ': Partition Sequence Number' + status: ': Partition Status, can be:' + importStatements: + - terraform import opentelekomcloud_dis_app_v2.app_1 app_name + opentelekomcloud_dis_checkpoint_v2: + subCategory: Data Ingestion Service (DIS) + description: Manages a DIS Checkpoint resource within OpenTelekomCloud. + name: opentelekomcloud_dis_checkpoint_v2 + title: opentelekomcloud_dis_checkpoint_v2 + examples: + - name: checkpoint_1 + manifest: |- + { + "app_name": "${opentelekomcloud_dis_app_v2.app_1.name}", + "metadata": "my_first_checkpoint", + "partition_id": "0", + "sequence_number": "0", + "stream_name": "${opentelekomcloud_dis_stream_v2.stream_1.name}" + } + references: + app_name: opentelekomcloud_dis_app_v2.app_1.name + stream_name: opentelekomcloud_dis_stream_v2.stream_1.name + dependencies: + opentelekomcloud_dis_app_v2.app_1: |- + { + "name": "my_app" + } + opentelekomcloud_dis_stream_v2.stream_1: |- + { + "auto_scale_max_partition_count": 4, + "auto_scale_min_partition_count": 1, + "compression_format": "zip", + "data_type": "BLOB", + "name": "my_stream", + "partition_count": 3, + "retention_period": 24, + "stream_type": "COMMON", + "tags": { + "foo": "bar" + } + } + argumentDocs: + app_name: |- + - (Required) Name of the consumer application to be created + The application name contains 1 to 200 characters. Only letters, digits, hyphens (-), and underscores (_) are allowed. + checkpoint_type: |- + - (Required) Type of the checkpoint. LAST_READ: Only sequence numbers are recorded in databases. + Default value: LAST_READ + metadata: |- + - (Optional) Metadata information of the consumer application. + Maximum length: 1000 + partition_id: '- (Required) Partition ID of the stream The value can be in either of the following formats:' + sequence_number: |- + - (Required) Sequence number to be submitted, which is used to record the consumption + checkpoint of the stream. Ensure that the sequence number is within the valid range. + stream_name: |- + - (Required) Name of the stream. The stream name can contain 1 to 64 characters, + including letters, digits, underscores (_), and hyphens (-). + importStatements: [] + opentelekomcloud_dis_dump_task_v2: + subCategory: Data Ingestion Service (DIS) + description: Manages a DIS Dump Task resource within OpenTelekomCloud. + name: opentelekomcloud_dis_dump_task_v2 + title: opentelekomcloud_dis_dump_task_v2 + examples: + - name: task_1 + manifest: |- + { + "destination": "OBS", + "obs_destination_descriptor": [ + { + "agency_name": "dis_admin_agency", + "consumer_strategy": "LATEST", + "deliver_time_interval": 30, + "destination_file_type": "text", + "file_prefix": "_pf", + "obs_bucket_path": "${opentelekomcloud_obs_bucket.bucket.bucket}", + "partition_format": "yyyy/MM/dd/HH/mm", + "record_delimiter": "|", + "task_name": "my_task" + } + ], + "stream_name": "${opentelekomcloud_dis_stream_v2.stream_1.name}" + } + references: + obs_destination_descriptor.obs_bucket_path: opentelekomcloud_obs_bucket.bucket.bucket + stream_name: opentelekomcloud_dis_stream_v2.stream_1.name + dependencies: + opentelekomcloud_dis_app_v2.app_1: |- + { + "name": "my_app" + } + opentelekomcloud_dis_stream_v2.stream_1: |- + { + "auto_scale_max_partition_count": 4, + "auto_scale_min_partition_count": 1, + "compression_format": "zip", + "data_type": "BLOB", + "name": "my_stream", + "partition_count": 3, + "retention_period": 24, + "stream_type": "COMMON", + "tags": { + "foo": "bar" + } + } + opentelekomcloud_obs_bucket.bucket: |- + { + "acl": "private", + "bucket": "my-dis-bucket", + "storage_class": "STANDARD" + } + argumentDocs: + ABNORMAL: ': deleted' + DELETE: ': deleted' + ERROR: ': creating' + PAUSED: ': deleting' + RUNNING: ': deleted' + STARTING: ': running' + action: '- (Optional) Dump task operation. The value can only be start or stop.' + agency_name: |- + - (Required) Name of the agency created on IAM. DIS uses an agency to access your specified resources. + The parameters for creating an agency are as follows: + consumer_strategy: |- + - (Optional) Offset. + LATEST: Maximum offset, indicating that the latest data will be extracted. + TRIM_HORIZON: Minimum offset, indicating that the earliest data will be extracted. + created_at: '- Time when the dump task is created.' + deliver_time_interval: |- + - (Required) User-defined interval at which data is imported from the current DIS stream into OBS. + If no data is pushed to the DIS stream during the current interval, no dump file package will be generated. Value range: 30-900. + destination: |- + - (Required) Dump destination. Possible values: + OBS: Data is dumped to OBS. + destination_file_type: '- (Optional) Dump file format. Possible values: text' + file_prefix: |- + - (Optional) Directory to store files that will be dumped to OBS. + Different directory levels are separated by slashes (/) and cannot start with slashes. + hash_range: ': Possible value range of the hash key used by the partition.' + id: ': Unique identifier of the partition.' + last_transfer_timestamp: '- Latest dump time of the dump task.' + name: '- Name of the dump task.' + obs_bucket_path: '- (Required) Name of the OBS bucket used to store data from the DIS stream.' + obs_destination_descriptor: '- (Optional) Parameter list of OBS to which data in the DIS stream will be dumped.' + obs_processing_schema: |- + - (Optional) Dump time directory generated based on the timestamp + of the source data and the configured partition_format. + Directory structure of the object file written into OBS. + The directory structure is in the format of yyyy/MM/dd/HH/mm. + parent_partitions: ': Parent partition.' + partition_format: |- + - (Optional) Directory structure of the object file written into OBS. + The directory structure is in the format of yyyy/MM/dd/HH/mm (time at which the dump task was created). + Possible values: + partitions: '- List of partition dump details.' + record_delimiter: '- (Optional) Delimiter for the dump file, which is used to separate the user data that is written into the dump file.' + sequence_number_range: ': Sequence number range of the partition.' + status: '- Current status of the stream, can be:' + stream_name: '- (Required) Name of the stream.' + task_id: '- ID of the dump task.' + task_name: '- (Required) Name of the dump task. The task name consists of letters, digits, hyphens (-), and underscores (_). It must be a string of 1 to 64 characters.' + timestamp_format: |- + - (Required) OBS directory generated based on the timestamp format. + This parameter is mandatory when the timestamp type of the source data is String. + timestamp_name: '- (Required) Attribute name of the source data timestamp.' + timestamp_type: |- + - (Required) Type of the source data timestamp. + Possible values: + importStatements: [] + opentelekomcloud_dis_stream_v2: + subCategory: Data Ingestion Service (DIS) + description: Manages a DIS Stream resource within OpenTelekomCloud. + name: opentelekomcloud_dis_stream_v2 + title: opentelekomcloud_dis_stream_v2 + examples: + - name: stream_1 + manifest: |- + { + "auto_scale_max_partition_count": 4, + "auto_scale_min_partition_count": 1, + "compression_format": "zip", + "data_type": "BLOB", + "name": "MyStream", + "partition_count": 3, + "retention_period": 24, + "stream_type": "COMMON", + "tags": { + "foo": "bar" + } + } + argumentDocs: + ADVANCED: ': an advanced stream with a bandwidth of 5 MB/s' + COMMON: ': a common stream with a bandwidth of 1 MB/s' + CREATING: ': creating' + RUNNING: ': running' + TERMINATED: ': deleted' + TERMINATING: ': deleting' + auto_scale_max_partition_count: '- (Optional) Maximum number of partitions for automatic scale-up when auto-scaling is enabled.' + auto_scale_min_partition_count: |- + - (Optional) Minimum number of partitions for automatic scale-down + when auto-scaling is enabled. Minimum: 1. + compression_format: |- + - (Optional) Data compression type. The following types are available: + snappy, gzip, zip. Data is not compressed by default. + created: '- Time when the stream is created. The value is a timestamp.' + data_type: |- + - (Optional) Source data type. + BLOB: a collection of binary data stored as a single entity in a database management system. + Default value: BLOB. + hash_range: ': Possible value range of the hash key used by the partition.' + id: ': Unique identifier of the partition.' + name: |- + - (Required) Name of the stream. The stream name can contain 1 to 64 characters, + including letters, digits, underscores (_), and hyphens (-). + parent_partitions: ': Parent partition.' + partition_count: '- (Required) Number of partitions. Partitions are the base throughput unit of a DIS stream.' + partitions: '- Stream partitions details.' + readable_partition_count: '- Total number of readable partitions (including partitions in ACTIVE and DELETED state).' + retention_period: |- + - (Optional) Period of time for which data is retained in the stream. + Value range: 24-72 Unit: hour. If this parameter is left blank, the default value is used. + Maximum: 72 + Default: 24 + sequence_number_range: ': Sequence number range of the partition.' + status: '- Current status of the stream, can be:' + stream_id: '- Unique identifier of the stream.' + stream_type: '- (Optional) Stream type.' + tags: '- (Optional) Tags key/value pairs to associate with the instance.' + 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_instance_v1: + subCategory: Distributed Message Service (DMS) + description: Manages a DMS Instance v1 resource within OpenTelekomCloud. + name: opentelekomcloud_dms_instance_v1 + title: opentelekomcloud_dms_instance_v1 + examples: + - name: instance_1 + manifest: |- + { + "access_user": "${var.access_user}", + "available_zones": [ + "${data.opentelekomcloud_dms_az_v1.az_1.id}" + ], + "engine": "kafka", + "engine_version": "${data.opentelekomcloud_dms_product_v1.product_1.version}", + "name": "kafka-test", + "partition_num": "${data.opentelekomcloud_dms_product_v1.product_1.partition_num}", + "password": "${var.password}", + "product_id": "${data.opentelekomcloud_dms_product_v1.product_1.id}", + "security_group_id": "${opentelekomcloud_networking_secgroup_v2.secgroup_1.id}", + "specification": "${data.opentelekomcloud_dms_product_v1.product_1.bandwidth}", + "storage_space": "${data.opentelekomcloud_dms_product_v1.product_1.storage}", + "storage_spec_code": "${data.opentelekomcloud_dms_product_v1.product_1.storage_spec_code}", + "subnet_id": "${var.subnet_id}", + "vpc_id": "${var.vpc_id}" + } + references: + access_user: var.access_user + engine_version: data.opentelekomcloud_dms_product_v1.product_1.version + partition_num: data.opentelekomcloud_dms_product_v1.product_1.partition_num + password: var.password + product_id: data.opentelekomcloud_dms_product_v1.product_1.id + security_group_id: opentelekomcloud_networking_secgroup_v2.secgroup_1.id + specification: data.opentelekomcloud_dms_product_v1.product_1.bandwidth + storage_space: data.opentelekomcloud_dms_product_v1.product_1.storage + storage_spec_code: data.opentelekomcloud_dms_product_v1.product_1.storage_spec_code + subnet_id: var.subnet_id + vpc_id: var.vpc_id + dependencies: + opentelekomcloud_networking_secgroup_v2.secgroup_1: |- + { + "description": "secgroup_1", + "name": "secgroup_1" + } + argumentDocs: + "22:00": ', 02:00, 06:00, 10:00, 14:00, or 18:00.' + access_user: |- + - (Optional) Indicates a username. A username consists of 4 to 64 characters + and supports only letters, digits, and hyphens (-). + available_zones: |- + - (Required) 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. + connect_address: '- Indicates the IP address of an instance.' + created_at: |- + - Indicates the time when an instance is created. The time is in the format + of timestamp, that is, the offset milliseconds from 1970-01-01 00:00:00 UTC to the specified time. + description: |- + - (Optional) Indicates the description of an instance. It is a character + string containing not more than 1024 characters. + engine: '- (Required) Indicates a message engine. Only kafka is supported now.' + engine_version: |- + - (Required) Indicates the version of a message engine. + Only 2.3.0 is supported now. + instance_id: '- Indicates the ID of an instance.' + maintain_begin: |- + - (Optional) Indicates the time at which a maintenance time window starts. + Format: HH:mm. + maintain_end: |- + - (Optional) Indicates the time at which a maintenance time window ends. + Format: HH:mm. + name: |- + - (Required) Indicates the name of an instance. An instance name starts with a letter, + consists of 4 to 64 characters, and supports only letters, digits, and hyphens (-). + partition_num: |- + - (Optional) This parameter is mandatory when a kafka instance is created. + Indicates the maximum number of topics in a Kafka instance. + password: |- + - (Optional) Indicates the password of an instance. An instance 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 (~!@#$%^&*()-_=+\|[{}]:'",<.>/?). + port: '- Indicates the port number of an instance.' + produce_reject: ': New messages cannot be created' + product_id: '- (Required) Indicates a product ID.' + resource_spec_code: '- Indicates a resource specifications identifier.' + retention_policy: |- + - (Optional) Indicates the action to be taken when the memory usage reaches + the disk capacity threshold. The possible values are: + security_group_id: '- (Required) Indicates the ID of a security group.' + security_group_name: '- Indicates the name of a security group.' + specification: |- + - (Optional) This parameter is mandatory if the engine is kafka. + Indicates the baseline bandwidth of a Kafka instance, that is, the maximum amount + of data transferred per unit time. Unit: byte/s. Options: 100MB, 300MB, + 600MB, 1200MB. + status: '- Indicates the status of an instance. For details, see section Instance Status.' + storage_space: '- (Required) Indicates the message storage space. Value range:' + storage_spec_code: '- (Required) Indicates the storage I/O specification. Options for a Kafka instance:' + subnet_cidr: '- Indicates a subnet segment.' + subnet_id: '- (Required) Indicates the ID of the subnet (OpenStack network ID).' + subnet_name: '- Indicates the name of a subnet.' + time_base: ': The earliest messages are deleted.' + type: '- Indicates an instance type. Options: single and cluster.' + used_storage_space: '- Indicates the used message storage space. Unit: GB' + user_id: '- Indicates a user ID.' + user_name: "-\tIndicates a username." + vpc_id: '- (Required) Indicates the ID of a VPC (OpenStack router ID).' + importStatements: [] + opentelekomcloud_dms_instance_v2: + subCategory: Distributed Message Service (DMS) + description: Manages a DMS Instance v2 resource within OpenTelekomCloud. + name: opentelekomcloud_dms_instance_v2 + title: opentelekomcloud_dms_instance_v2 + examples: + - name: instance_1 + manifest: |- + { + "access_user": "${var.access_user}", + "available_zones": [ + "${data.opentelekomcloud_dms_az_v1.az_1.id}" + ], + "engine": "kafka", + "engine_version": "${data.opentelekomcloud_dms_product_v1.product_1.version}", + "name": "kafka-test", + "partition_num": "${data.opentelekomcloud_dms_product_v1.product_1.partition_num}", + "password": "${var.password}", + "product_id": "${data.opentelekomcloud_dms_product_v1.product_1.id}", + "security_group_id": "${opentelekomcloud_networking_secgroup_v2.secgroup_1.id}", + "specification": "${data.opentelekomcloud_dms_product_v1.product_1.bandwidth}", + "storage_space": "${data.opentelekomcloud_dms_product_v1.product_1.storage}", + "storage_spec_code": "${data.opentelekomcloud_dms_product_v1.product_1.storage_spec_code}", + "subnet_id": "${var.subnet_id}", + "vpc_id": "${var.vpc_id}" + } + references: + access_user: var.access_user + engine_version: data.opentelekomcloud_dms_product_v1.product_1.version + partition_num: data.opentelekomcloud_dms_product_v1.product_1.partition_num + password: var.password + product_id: data.opentelekomcloud_dms_product_v1.product_1.id + security_group_id: opentelekomcloud_networking_secgroup_v2.secgroup_1.id + specification: data.opentelekomcloud_dms_product_v1.product_1.bandwidth + storage_space: data.opentelekomcloud_dms_product_v1.product_1.storage + storage_spec_code: data.opentelekomcloud_dms_product_v1.product_1.storage_spec_code + subnet_id: var.subnet_id + vpc_id: var.vpc_id + dependencies: + opentelekomcloud_networking_secgroup_v2.secgroup_1: |- + { + "description": "secgroup_1", + "name": "secgroup_1" + } + - name: instance_1 + manifest: |- + { + "available_zones": [ + "${data.opentelekomcloud_dms_az_v1.az_1.id}" + ], + "enable_publicip": true, + "engine": "kafka", + "engine_version": "${data.opentelekomcloud_dms_product_v1.product_1.version}", + "name": "%s", + "product_id": "${data.opentelekomcloud_dms_product_v1.product_1.id}", + "publicip_id": [ + "${opentelekomcloud_networking_floatingip_v2.fip_1.id}", + "${opentelekomcloud_networking_floatingip_v2.fip_2.id}", + "${opentelekomcloud_networking_floatingip_v2.fip_3.id}" + ], + "security_group_id": "${resource.opentelekomcloud_networking_secgroup_v2.secgroup_1.id}", + "storage_space": "${data.opentelekomcloud_dms_product_v1.product_1.storage}", + "storage_spec_code": "${data.opentelekomcloud_dms_product_v1.product_1.storage_spec_code}", + "subnet_id": "${var.subnet_id}", + "vpc_id": "${var.vpc_id}" + } + references: + engine_version: data.opentelekomcloud_dms_product_v1.product_1.version + product_id: data.opentelekomcloud_dms_product_v1.product_1.id + security_group_id: resource.opentelekomcloud_networking_secgroup_v2.secgroup_1.id + storage_space: data.opentelekomcloud_dms_product_v1.product_1.storage + storage_spec_code: data.opentelekomcloud_dms_product_v1.product_1.storage_spec_code + subnet_id: var.subnet_id + vpc_id: var.vpc_id + dependencies: + opentelekomcloud_networking_floatingip_v2.fip_1: '{}' + opentelekomcloud_networking_floatingip_v2.fip_2: '{}' + opentelekomcloud_networking_floatingip_v2.fip_3: '{}' + opentelekomcloud_networking_secgroup_v2.secgroup_1: |- + { + "description": "secgroup_1", + "name": "secgroup_1" + } + argumentDocs: + '["0f2a51dc-93ce-42af","d967d49b-6659-4052","002872f4-82a4-4f6e-9a4e"]': . + "22:00": ', 02:00, 06:00, 10:00, 14:00, or 18:00.' + access_user: |- + - (Optional) Indicates a username. A username consists of 4 to 64 characters + and supports only letters, digits, and hyphens (-). + available_zones: |- + - (Required) 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. + connect_address: '- Indicates the IP address of an instance.' + created_at: |- + - Indicates the time when an instance is created. The time is in the format + of timestamp, that is, the offset milliseconds from 1970-01-01 00:00:00 UTC to the specified time. + description: |- + - (Optional) Indicates the description of an instance. It is a character + string containing not more than 1024 characters. + disk_encrypted_enable: '- (Optional) - Indicates whether disk encryption is enabled.' + disk_encrypted_key: '- (Optional) - Disk encryption key. If disk encryption is not enabled, this parameter is left blank.' + enable_publicip: '- (Optional) - Whether to enable public access. By default, public access is disabled.' + engine: '- (Required) Indicates a message engine. Only kafka is supported now.' + engine_version: |- + - (Required) Indicates the version of a message engine. + Options: 1.1.0, 2.3.0, 2.7. + "false": . + instance_id: '- Indicates the ID of an instance.' + maintain_begin: |- + - (Optional) Indicates the time at which a maintenance time window starts. + Format: HH:mm. + maintain_end: |- + - (Optional) Indicates the time at which a maintenance time window ends. + Format: HH:mm. + name: |- + - (Required) Indicates the name of an instance. An instance name starts with a letter, + consists of 4 to 64 characters, and supports only letters, digits, and hyphens (-). + node_num: '- Node quantity.' + partition_num: |- + - (Optional) This parameter is mandatory when a kafka instance is created. + Indicates the maximum number of topics in a Kafka instance. + password: |- + - (Optional) Indicates the password of an instance. An instance 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 (~!@#$%^&*()-_=+\|[{}]:'",<.>/?). + port: '- Indicates the port number of an instance.' + produce_reject: ': New messages cannot be created' + product_id: '- (Required) Indicates a product ID.' + public_access_enabled: |- + - Time when public access was enabled for an instance. + The value can be true, actived, closed, or false. + public_connect_address: '- Instance public access address. This parameter is available only when public access is enabled for the instance.' + publicip_id: '- (Optional) - List of public ip IDs to be bound to DMS instance nodes.' + resource_spec_code: '- Indicates a resource specifications identifier.' + retention_policy: |- + - (Optional) Indicates the action to be taken when the memory usage reaches + the disk capacity threshold. The possible values are: + security_group_id: '- (Required) Indicates the ID of a security group.' + security_group_name: '- Indicates the name of a security group.' + specification: |- + - (Optional) This parameter is mandatory if the engine is kafka. + Indicates the baseline bandwidth of a Kafka instance, that is, the maximum amount + of data transferred per unit time. Unit: byte/s. Options: 100MB, 300MB, + 600MB, 1200MB. + ssl_enable: |- + - Indicates whether security authentication is enabled. + Possible values: true, false. + status: '- Indicates the status of an instance. For details, see section Instance Status.' + storage_resource_id: '- Storage resource ID.' + storage_space: '- (Required) Indicates the message storage space. Value range:' + storage_spec_code: '- (Required) Indicates the storage I/O specification. Options for a Kafka instance:' + subnet_cidr: '- Indicates a subnet segment.' + subnet_id: '- (Required) Indicates the ID of the subnet (OpenStack network ID).' + subnet_name: '- Indicates the name of a subnet.' + tags: '- (Optional) Tags key/value pairs to associate with the instance.' + time_base: ': The earliest messages are deleted.' + total_storage_space: '- Total message storage space in GB.' + "true": ', false.' + type: '- Indicates an instance type. Options: single and cluster.' + used_storage_space: '- Indicates the used message storage space. Unit: GB' + user_id: '- Indicates a user ID.' + user_name: "-\tIndicates a username." + vpc_id: '- (Required) Indicates the ID of a VPC (OpenStack router ID).' + importStatements: [] + opentelekomcloud_dms_topic_v1: + subCategory: Distributed Message Service (DMS) + description: Manages a DMS Topic resource within OpenTelekomCloud. + name: opentelekomcloud_dms_topic_v1 + title: opentelekomcloud_dms_topic_v1 + examples: + - name: topic_1 + manifest: |- + { + "instance_id": "${resource.opentelekomcloud_dms_instance_v1.instance_1.id}", + "name": "topic-test", + "partition": 10, + "replication": 2, + "retention_time": 80, + "sync_replication": true + } + references: + instance_id: resource.opentelekomcloud_dms_instance_v1.instance_1.id + dependencies: + opentelekomcloud_dms_instance_v1.instance_1: |- + { + "access_user": "${var.access_user}", + "available_zones": [ + "${data.opentelekomcloud_dms_az_v1.az_1.id}" + ], + "engine": "kafka", + "engine_version": "${data.opentelekomcloud_dms_product_v1.product_1.version}", + "name": "kafka-test", + "partition_num": "${data.opentelekomcloud_dms_product_v1.product_1.partition_num}", + "password": "${var.password}", + "product_id": "${data.opentelekomcloud_dms_product_v1.product_1.id}", + "security_group_id": "${opentelekomcloud_networking_secgroup_v2.secgroup_1.id}", + "specification": "${data.opentelekomcloud_dms_product_v1.product_1.bandwidth}", + "storage_space": "${data.opentelekomcloud_dms_product_v1.product_1.storage}", + "storage_spec_code": "${data.opentelekomcloud_dms_product_v1.product_1.storage_spec_code}", + "subnet_id": "${var.subnet_id}", + "vpc_id": "${var.vpc_id}" + } + opentelekomcloud_networking_secgroup_v2.secgroup_1: |- + { + "description": "secgroup_1", + "name": "secgroup_1" + } + argumentDocs: + instance_id: '- (Required) Indicates the ID of primary DMS instance.' + max_partitions: '- Total partitions number.' + name: '- (Required) Indicates the name of a topic.' + partition: |- + - (Optional) Indicates the number of topic partitions, + which is used to set the number of concurrently consumed messages. + Value range: 1–20. Default value: 3. + remain_partitions: '- Number of remaining partitions.' + replication: |- + - (Optional) Indicates the number of replicas, + which is configured to ensure data reliability. + Value range: 1–3. Default value: 3. + retention_time: |- + - (Required) Indicates the retention period of a message. Its default value is 72. + Value range: 1–720. Default value: 72. Unit: hour. + size: '- The partition size of the topic.' + sync_message_flush: |- + - (Optional) Indicates whether to enable synchronous flushing. + Default value: false. Synchronous flushing compromises performance. + sync_replication: |- + - (Optional) Indicates whether to enable synchronous replication. + After this function is enabled, the acks parameter on the producer client must be set to –1. + Otherwise, this parameter does not take effect. + importStatements: [] + opentelekomcloud_dms_user_permission_v1: + subCategory: Distributed Message Service (DMS) + description: Manages a DMS User Permissions resource within OpenTelekomCloud. + name: opentelekomcloud_dms_user_permission_v1 + title: opentelekomcloud_dms_user_permission_v1 + examples: + - name: perm_1 + manifest: |- + { + "instance_id": "${opentelekomcloud_dms_instance_v2.instance_1.id}", + "policies": [ + { + "access_policy": "all", + "username": "${opentelekomcloud_dms_user_v2.user_1.id}" + }, + { + "access_policy": "sub", + "username": "${opentelekomcloud_dms_user_v2.user_2.id}" + } + ], + "topic_name": "test-topic" + } + references: + instance_id: opentelekomcloud_dms_instance_v2.instance_1.id + policies.username: opentelekomcloud_dms_user_v2.user_2.id + dependencies: + opentelekomcloud_dms_user_v2.user_1: |- + { + "instance_id": "${instance_id}", + "password": "Dmstest@123", + "username": "Test-user" + } + opentelekomcloud_dms_user_v2.user_2: |- + { + "instance_id": "${instance_id}", + "password": "Dmstest@123", + "username": "Test-user2" + } + argumentDocs: + access_policy: '- (Required) Permission type. Possible values:' + all: ': publish and subscribe permissions.' + instance_id: '- (Required) Indicates the ID of primary DMS instance.' + owner: '- Indicates whether the user is the one selected during topic creation.' + policies: |- + - (Required) Indicates policy configuration for the topic. + Supported fields: + pub: ': publish permissions.' + sub: ': subscribe permissions.' + topic_name: '- (Required) Indicates the name of a topic.' + topic_type: '- Indicates topic type. 0: common topic; 1: system (internal) topic.' + username: '- (Required) DMS instance user name.' + importStatements: [] + opentelekomcloud_dms_user_v2: + subCategory: Distributed Message Service (DMS) + description: Manages a DMS User resource within OpenTelekomCloud. + name: opentelekomcloud_dms_user_v2 + title: opentelekomcloud_dms_user_v2 + examples: + - name: user_1 + manifest: |- + { + "instance_id": "${instance_id}", + "password": "Dmstest@123@", + "username": "Test-user" + } + references: + instance_id: instance_id + argumentDocs: + creation_time: '- Specifies the time when a user was created.' + default_app: '- Specifies whether an application is the default application.' + instance_id: '- (Required) Indicates the ID of primary DMS instance.' + password: |- + - (Required) Indicates the password of an instance. An instance 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 (~!@#$%^&*()-_=+\|[{}]:'",<.>/?). + role: '- Specifies user role.' + username: |- + - (Required) Indicates a username. A username consists of 4 to 64 characters + and supports only letters, digits, and hyphens (-). + importStatements: [] + opentelekomcloud_dns_ptrrecord_v2: + subCategory: Domain Name Service (DNS) + description: Manages a DNS PTR Record resource within OpenTelekomCloud. + name: opentelekomcloud_dns_ptrrecord_v2 + title: opentelekomcloud_dns_ptrrecord_v2 + examples: + - name: ptr_1 + manifest: |- + { + "description": "An example PTR record", + "floatingip_id": "${opentelekomcloud_networking_floatingip_v2.fip_1.id}", + "name": "ptr.example.com.", + "tags": { + "foo": "bar" + }, + "ttl": 3000 + } + references: + floatingip_id: opentelekomcloud_networking_floatingip_v2.fip_1.id + dependencies: + opentelekomcloud_networking_floatingip_v2.fip_1: '{}' + argumentDocs: + address: '- The address of the FloatingIP/EIP.' + description: '- (Optional) Description of the PTR record.' + floatingip_id: '- (Required) The ID of the FloatingIP/EIP.' + id: '- The PTR record ID, which is in {region}:{floatingip_id} format.' + name: |- + - (Required) Domain name of the PTR record. A domain name is case insensitive. + Uppercase letters will also be converted into lowercase letters. + tags: '- (Optional) Tags key/value pairs to associate with the PTR record.' + ttl: |- + - (Optional) The time to live (TTL) of the record set (in seconds). The value + range is 300–2147483647. The default value is 300. + importStatements: [] + opentelekomcloud_dns_recordset_v2: + subCategory: Domain Name Service (DNS) + description: Manages a DNS Recordset resource within OpenTelekomCloud. + name: opentelekomcloud_dns_recordset_v2 + title: opentelekomcloud_dns_recordset_v2 + examples: + - name: rs_example_com + manifest: |- + { + "description": "An example record set", + "name": "rs.example.com.", + "records": [ + "10.0.0.1" + ], + "ttl": 3000, + "type": "A", + "zone_id": "${opentelekomcloud_dns_zone_v2.example_zone.id}" + } + references: + zone_id: opentelekomcloud_dns_zone_v2.example_zone.id + dependencies: + opentelekomcloud_dns_zone_v2.example_zone: |- + { + "description": "a zone", + "email": "email2@example.com", + "name": "example.com.", + "ttl": 6000, + "type": "public" + } + - name: rs_txt_example + manifest: |- + { + "description": "a record set", + "name": "%[1]s", + "records": [ + "v=spf1 include:my.example.try.com -all" + ], + "ttl": 300, + "type": "TXT", + "zone_id": "${opentelekomcloud_dns_zone_v2.zone_1.id}" + } + references: + zone_id: opentelekomcloud_dns_zone_v2.zone_1.id + dependencies: + opentelekomcloud_dns_zone_v2.example_zone: |- + { + "description": "a zone", + "email": "email2@example.com", + "name": "example.com.", + "ttl": 6000, + "type": "public" + } + argumentDocs: + description: '- (Optional) A description of the record set.' + name: '- (Required) The name of the record set. Changing this creates a new DNS record set.' + records: '- (Required) An array of DNS records.' + tags: '- (Optional) The key/value pairs to associate with the zone.' + ttl: '- (Optional) The time to live (TTL) of the record set.' + type: |- + - (Required) The type of record set. Examples: "A", "MX". + Changing this creates a new DNS record set. + value_specs: |- + - (Optional) Map of additional options. Changing this creates a + new record set. + zone_id: |- + - (Required) The ID of the zone in which to create the record set. + Changing this creates a new DNS record set. + importStatements: [] + opentelekomcloud_dns_zone_v2: + subCategory: Domain Name Service (DNS) + description: Manages a DNS Zones resource within OpenTelekomCloud. + name: opentelekomcloud_dns_zone_v2 + title: opentelekomcloud_dns_zone_v2 + examples: + - name: public_example_com + manifest: |- + { + "description": "An example for public zone", + "email": "public@example.com", + "name": "public.example.com.", + "tags": { + "foo": "bar", + "key": "value" + }, + "ttl": 3000, + "type": "public" + } + - name: private_example_com + manifest: |- + { + "description": "An example for private zone", + "email": "private@example.com", + "name": "private.example.com.", + "router": [ + { + "router_id": "${var.vpc_id}", + "router_region": "${var.region}" + } + ], + "tags": { + "foo": "bar", + "key": "value" + }, + "ttl": 3000, + "type": "private" + } + references: + router.router_id: var.vpc_id + router.router_region: var.region + - name: private_example_com + manifest: |- + { + "description": "An example for private zone", + "email": "private@example.com", + "name": "private.example.com.", + "router": [ + { + "router_id": "${var.vpc_id_1}", + "router_region": "${var.region}" + }, + { + "router_id": "${var.vpc_id_2}", + "router_region": "${var.region}" + } + ], + "tags": { + "foo": "bar", + "key": "value" + }, + "ttl": 3000, + "type": "private" + } + references: + router.router_id: var.vpc_id_2 + router.router_region: var.region + argumentDocs: + description: '- (Optional) A description of the zone.' + email: '- (Optional) The email contact for the zone record.' + masters: '- An array of master DNS servers.' + name: |- + - (Required) The name of the zone. Changing this creates a new DNS zone. + -> Note: The . at the end of the name. + router: |- + - (Optional) The Routers(VPCs) configuration for the private zone. + it is required when type is private. + router.router_id: '- (Required) The Router(VPC) ID. which VPC network will assicate with.' + router.router_region: '- (Required) The Region name for this private zone.' + tags: '- (Optional) The key/value pairs to associate with the zone.' + ttl: '- (Optional) The time to live (TTL) of the zone.' + type: |- + - (Optional) The type of zone. Can either be public or private. + Changing this creates a new zone. + value_specs: '- (Optional) Map of additional options. Changing this creates a new zone.' + importStatements: [] + opentelekomcloud_drs_task_v3: + subCategory: Data Replication Service (DRS) + description: Manages a DRS Task resource within OpenTelekomCloud. + name: opentelekomcloud_drs_task_v3 + title: opentelekomcloud_drs_task_v3 + examples: + - name: test + manifest: |- + { + "description": "TEST", + "destination_db": [ + { + "engine_type": "mysql", + "instance_id": "${opentelekomcloud_rds_instance_v3.mysql_2.id}", + "ip": "${opentelekomcloud_networking_floatingip_v2.fip_2.address}", + "password": "MySql_120521", + "port": 3306, + "subnet_id": "${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.id}", + "user": "root" + } + ], + "direction": "down", + "engine_type": "mysql", + "force_destroy": "true", + "migration_type": "FULL_TRANS", + "name": "test-drs-task", + "net_type": "eip", + "source_db": [ + { + "engine_type": "mysql", + "instance_id": "${opentelekomcloud_rds_instance_v3.mysql_1.id}", + "ip": "${opentelekomcloud_networking_floatingip_v2.fip_1.address}", + "password": "MySql_120521", + "port": "3306", + "subnet_id": "${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.id}", + "user": "root" + } + ], + "type": "migration" + } + references: + destination_db.instance_id: opentelekomcloud_rds_instance_v3.mysql_2.id + destination_db.ip: opentelekomcloud_networking_floatingip_v2.fip_2.address + destination_db.subnet_id: data.opentelekomcloud_vpc_subnet_v1.shared_subnet.id + source_db.instance_id: opentelekomcloud_rds_instance_v3.mysql_1.id + source_db.ip: opentelekomcloud_networking_floatingip_v2.fip_1.address + source_db.subnet_id: data.opentelekomcloud_vpc_subnet_v1.shared_subnet.id + dependencies: + opentelekomcloud_networking_floatingip_v2.fip_1: '{}' + opentelekomcloud_networking_floatingip_v2.fip_2: '{}' + opentelekomcloud_rds_instance_v3.mysql_1: '{}' + opentelekomcloud_rds_instance_v3.mysql_2: '{}' + argumentDocs: + create: '- Default is 30 minute.' + created_at: '- Create time. The format is ISO8601:YYYY-MM-DDThh:mm:ssZ' + db_info.engine_type: |- + - (Required, String, ForceNew) Specifies the engine type of database. Changing this parameter will + create a new resource. The options are as follows: mysql, mongodb, gaussdbv5. + db_info.instance_id: |- + - (Optional, String, ForceNew) Specifies the instance id of database when it is a RDS database. + Changing this parameter will create a new resource. + db_info.ip: '- (Required, String, ForceNew) Specifies the IP of database. Changing this parameter will create a new resource.' + db_info.name: |- + - (Optional, String, ForceNew) Specifies the name of database. + Changing this parameter will create a new resource. + db_info.password: |- + - (Required, String, ForceNew) Specifies the password of database. + Changing this parameter will create a new resource. + db_info.port: '- (Required, Int, ForceNew) Specifies the port of database. Changing this parameter will create a new resource.' + db_info.region: |- + - (Optional, String, ForceNew) Specifies the region which the database belongs when it is a RDS database. + Changing this parameter will create a new resource. + db_info.ssl_cert_check_sum: |- + - (Optional, String, ForceNew) Specifies the checksum of SSL certificate content. + It is mandatory when ssl_enabled is true. Changing this parameter will create a new resource. + db_info.ssl_cert_key: |- + - (Optional, String, ForceNew) Specifies the SSL certificate content, encrypted with base64. + It is mandatory when ssl_enabled is true. Changing this parameter will create a new resource. + db_info.ssl_cert_name: |- + - (Optional, String, ForceNew) Specifies SSL certificate name. + It is mandatory when ssl_enabled is true. Changing this parameter will create a new resource. + db_info.ssl_cert_password: |- + - (Optional, String, ForceNew) Specifies SSL certificate password. It is mandatory when + ssl_enabled is true and the certificate file suffix is .p12. Changing this parameter will create a new resource. + db_info.ssl_enabled: |- + - (Optional, Bool, ForceNew) Specifies whether to enable SSL connection. + Changing this parameter will create a new resource. + db_info.subnet_id: |- + - (Optional, String, ForceNew) Specifies subnet ID of database when it is a RDS database. + It is mandatory when direction is down. Changing this parameter will create a new resource. + db_info.user: |- + - (Required, String, ForceNew) Specifies the user name of database. + Changing this parameter will create a new resource. + delete: '- Default is 10 minute.' + description: |- + - (Optional, String) Specifies the description of the job, which contain a + maximum of 256 characters, and certain special characters (including !<>&'"\) are not allowed. + destination_db: |- + - (Required, List, ForceNew) Specifies the destination database configuration. + The db_info object structure of the destination_db is documented below. + Changing this parameter will create a new resource. + destination_db_readonly: |- + - (Optional, Bool, ForceNew) Specifies the destination DB instance as read-only helps + ensure the migration is successful. Once the migration is complete, the DB instance automatically changes to + Read/Write. The default value is true. Changing this parameter will create a new resource. + direction: |- + - (Required, String, ForceNew) Specifies the direction of data flow. + Changing this parameter will create a new resource. The options are as follows: + engine_type: |- + - (Required, String, ForceNew) Specifies the migration engine type. + Changing this parameter will create a new resource. The options are as follows: + expired_days: |- + - (Optional, Int, ForceNew) Specifies how many days after the task is abnormal, it will automatically + end. The value ranges from 14 to 100. the default value is 14. Changing this parameter will create a new resource. + force_destroy: |- + - (Optional, Bool) Specifies whether to forcibly destroy the job even if it is running. + The default value is false. + id: '- The resource ID in UUID format.' + limit_speed: |- + - (Optional, List, ForceNew) Specifies the migration speed by setting a time period. + The default is no speed limit. The maximum length is 3. Structure is documented below. + Changing this parameter will create a new resource. + limit_speed.end_time: |- + - (Required, String, ForceNew) Specifies the time to end speed limit, this time is UTC time. The input must + end at 59 minutes, the format is hh:mm, for example: 15:59. Changing this parameter will create a new resource. + limit_speed.speed: |- + - (Required, String, ForceNew) Specifies the transmission speed, the value range is 1 to 9999, unit: MB/s. + Changing this parameter will create a new resource. + limit_speed.start_time: |- + - (Required, String, ForceNew) Specifies the time to start speed limit, this time is UTC time. The start + time is the whole hour, if there is a minute, it will be ignored, the format is hh:mm, and the hour number + is two digits, for example: 01:00. Changing this parameter will create a new resource. + migrate_definer: |- + - (Optional, Bool, ForceNew) Specifies whether to migrate the definers of all source database + objects to the user of destination_db. The default value is true. + Changing this parameter will create a new resource. + migration_type: |- + - (Optional, String, ForceNew) Specifies migration type. + Changing this parameter will create a new resource. The options are as follows: + multi_write: |- + - (Optional, Bool, ForceNew) Specifies whether to enable multi write. It is mandatory when type + is cloudDataGuard. When the disaster recovery type is dual-active disaster recovery, set multi_write to true, + otherwise to false. The default value is false. Changing this parameter will create a new resource. + name: |- + - (Required, String) Specifies the job name. The name consists of 4 to 50 characters, starting with + a letter. Only letters, digits, underscores (_) and hyphens (-) are allowed. + net_type: |- + - (Optional, String, ForceNew) Specifies the network type. + Changing this parameter will create a new resource. The options are as follows: + private_ip: '- Private IP.' + public_ip: '- Public IP.' + region: '- The region in which to create the resource.' + source_db: |- + - (Required, List, ForceNew) Specifies the source database configuration. + The db_info object structure of the source_db is documented below. + Changing this parameter will create a new resource. + start_time: |- + - (Optional, String, ForceNew) Specifies the time to start the job. The time format + is yyyy-MM-dd HH:mm:ss. Start immediately by default. Changing this parameter will create a new resource. + status: '- Status.' + tags: |- + - (Optional, Map, ForceNew) Specifies the key/value pairs to associate with the DRS job. + Changing this parameter will create a new resource. + type: |- + - (Required, String, ForceNew) Specifies the job type. Changing this parameter will create a new + resource. The options are as follows: + importStatements: [] + opentelekomcloud_dws_cluster_v1: + subCategory: Data Warehouse Service (DWS) + description: Manages a DWS Cluster resource within OpenTelekomCloud. + name: opentelekomcloud_dws_cluster_v1 + title: opentelekomcloud_dws_cluster_v1 + examples: + - name: cluster_1 + manifest: |- + { + "availability_zone": "${var.availability_zone}", + "name": "my_dws_cluster", + "network_id": "${var.network_id}", + "node_type": "dws.m3.xlarge", + "number_of_node": 3, + "port": 8899, + "public_ip": [ + { + "public_bind_type": "auto_assign" + } + ], + "security_group_id": "${var.security_group_id}", + "user_name": "dbadmin", + "user_pwd": "#dbadmin123", + "vpc_id": "${var.vpc_id}" + } + references: + availability_zone: var.availability_zone + network_id: var.network_id + security_group_id: var.security_group_id + vpc_id: var.vpc_id + argumentDocs: + availability_zone: '- (Optional, String, ForceNew) AZ in a cluster.' + create: '- Default is 60 minute.' + created: '- Cluster creation time. The format is ISO8601:YYYY-MM-DDThh:mm:ssZ' + delete: '- Default is 60 minute.' + endpoints: '- View the private network connection information about the cluster. Structure is documented below.' + endpoints.connect_info: '- (Optional, String) Private network connection information.' + endpoints.jdbc_url: |- + - (Optional, String) + JDBC URL. The following is the default format: + jdbc:postgresql://< connect_info>/ + id: '- Cluster ID' + name: |- + - (Required, String, ForceNew) Cluster name, which must be unique and contains 4 to 64 characters, which + consist of letters, digits, hyphens(-), or underscores(_) only and must start with a letter. + network_id: '- (Required, String, ForceNew) Network ID, which is used for configuring cluster network.' + node_type: '- (Required, String, ForceNew) Node type.' + number_of_node: |- + - (Required, Int) Number of nodes in a cluster. The value ranges from 3 to 32. When expanding, + add at least 3 nodes. + port: '- (Optional, Int) Service port of a cluster (8000 to 10000). The default value is 8000.' + private_ip: '- List of private network IP address.' + public_endpoints: |- + - Public network connection information about the cluster. If the value is not specified, the + public network connection information is not used by default Structure is documented below. + public_endpoints.jdbc_url: |- + - (Optional, String) + JDBC URL. The following is the default format: + jdbc:postgresql://< public_connect_info>/ + public_endpoints.public_connect_info: |- + - (Optional, String) + Public network connection information. + public_ip: '- (Optional, List, ForceNew) A nested object resource Structure is documented below.' + public_ip.eip_id: '- (Optional, String, ForceNew) EIP ID.' + public_ip.keep_last_manual_snapshot: '- (Optional, int, ForceNew) The number of latest manual snapshots that need to be retained for a cluster.' + public_ip.number_of_cn: |- + - (Optional, int, ForceNew) Specifies the number of CN. If you use a large-scale cluster, deploy + multiple CNs. + public_ip.public_bind_type: |- + - (Optional, String, ForceNew) Binding type of an EIP. The value can be either of the following: + auto_assign not_use bind_existing The default value is not_use. + recent_event: '- The recent event number.' + security_group_id: |- + - (Required, String, ForceNew) ID of a security group. The ID is used for configuring cluster + network. + status: '- Cluster status, which can be one of the following: CREATING AVAILABLE UNAVAILABLE CREATION FAILED.' + sub_status: |- + - Sub-status of clusters in the AVAILABLE state. The value can be one of the following: NORMAL READONLY + REDISTRIBUTING REDISTRIBUTION-FAILURE UNBALANCED UNBALANCED | READONLY DEGRADED DEGRADED | READONLY DEGRADED | + UNBALANCED UNBALANCED | REDISTRIBUTING UNBALANCED | REDISTRIBUTION-FAILURE READONLY | REDISTRIBUTION-FAILURE + UNBALANCED | READONLY | REDISTRIBUTION-FAILURE DEGRADED | REDISTRIBUTION-FAILURE DEGRADED | UNBALANCED | + REDISTRIBUTION-FAILURE DEGRADED | UNBALANCED | READONLY | REDISTRIBUTION-FAILURE DEGRADED | UNBALANCED | READONLY + task_status: |- + - Cluster management task. The value can be one of the following: + RESTORING SNAPSHOTTING GROWING REBOOTING SETTING_CONFIGURATION CONFIGURING_EXT_DATASOURCE DELETING_EXT_DATASOURCE + REBOOT_FAILURE RESIZE_FAILURE + update: '- Default is 60 minute.' + updated: '- Last modification time of a cluster. The format is ISO8601:YYYY-MM-DDThh:mm:ssZ' + user_name: |- + - (Required, String, ForceNew) Administrator username for logging in to a data warehouse cluster The + administrator username must: Consist of lowercase letters, digits, or underscores. Start with a lowercase letter or + an underscore. Contain 1 to 63 characters. Cannot be a keyword of the DWS database. + user_pwd: |- + - (Required, String) Administrator password for logging in to a data warehouse cluster A password + must conform to the following rules: Contains 8 to 32 characters. Cannot be the same as the username or the username + written in reverse order. Contains three types of the following: + Lowercase letters Uppercase letters Digits Special characters + ~!@#%^&*()-_=+|[{}];:,<.>/? + version: '- Data warehouse version.' + vpc_id: '- (Required, String, ForceNew) VPC ID, which is used for configuring cluster network.' + importStatements: [] + opentelekomcloud_ecs_instance_v1: + subCategory: Elastic Cloud Server (ECS) + description: Manages a ECS Instance resource within OpenTelekomCloud. + name: opentelekomcloud_ecs_instance_v1 + title: opentelekomcloud_ecs_instance_v1 + examples: + - 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" + } + ], + "tags": { + "muh": "kuh" + }, + "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" + } + ], + "security_groups": [ + "${opentelekomcloud_compute_secgroup_v2.secgroup_1.id}" + ], + "vpc_id": "8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235" + } + dependencies: + opentelekomcloud_compute_secgroup_v2.secgroup_1: |- + { + "name": "ecs_secgroup" + } + - name: basic + manifest: |- + { + "availability_zone": "eu-de-01", + "data_disks": [ + { + "size": "10", + "type": "SATA" + }, + { + "size": "20", + "type": "SAS" + } + ], + "delete_disks_on_termination": true, + "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" + } + ], + "system_disk_size": 40, + "system_disk_type": "SAS", + "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" + } + ], + "vpc_id": "8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235" + } + dependencies: + opentelekomcloud_blockstorage_volume_v2.myvol: |- + { + "name": "myvol", + "size": 1 + } + opentelekomcloud_compute_volume_attach_v2.attached: |- + { + "instance_id": "${opentelekomcloud_ecs_instance_v1.basic.id}", + "volume_id": "${opentelekomcloud_blockstorage_volume_v2.myvol.id}" + } + - name: this + 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" + }, + { + "network_id": "2c0a74a9-4395-4e62-a17b-e3e86fbf66b7" + } + ], + "vpc_id": "8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235" + } + dependencies: + opentelekomcloud_networking_floatingip_associate_v2.this: |- + { + "floating_ip": "${opentelekomcloud_networking_floatingip_v2.this.address}", + "port_id": "${opentelekomcloud_ecs_instance_v1.this.nics.0.port_id}" + } + opentelekomcloud_networking_floatingip_v2.this: |- + { + "pool": "admin_external_net" + } + - name: basic + manifest: |- + { + "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" + } + ], + "user_data": "#cloud-config\nhostname: server_1.example.com\nfqdn: server_1.example.com", + "vpc_id": "8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235" + } + - name: ecs + manifest: |- + { + "auto_recovery": true, + "availability_zone": "${var.az}", + "data_disks": [ + { + "kms_id": "${var.key_disk_encryption}", + "size": 40, + "type": "SSD" + } + ], + "delete_disks_on_termination": true, + "flavor": "${var.flavor_name}", + "image_id": "${var.image_id}", + "name": "${var.host_name}", + "nics": [ + { + "ip_address": "${var.private_ip}", + "network_id": "${var.vpc_subnetwork_id}" + } + ], + "security_groups": [ + "${data.opentelekomcloud_networking_secgroup_v2.default.id}" + ], + "system_disk_kms_id": "${var.key_disk_encryption}", + "system_disk_size": "${var.disk_size}", + "system_disk_type": "${var.disk_type}", + "vpc_id": "${var.vpc_id}" + } + references: + availability_zone: var.az + data_disks.kms_id: var.key_disk_encryption + flavor: var.flavor_name + image_id: var.image_id + name: var.host_name + nics.ip_address: var.private_ip + nics.network_id: var.vpc_subnetwork_id + system_disk_kms_id: var.key_disk_encryption + system_disk_size: var.disk_size + system_disk_type: var.disk_type + vpc_id: var.vpc_id + argumentDocs: + ESSD: ': extreme SSD disk type.' + 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.' + availability_zone: |- + - (Required) 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 + 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 + creates a new server. + data_disks.size: |- + - (Required) 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. + 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. + 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. + 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.' + key_name: |- + - (Optional) 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.' + nics: |- + - (Required) 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 + 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.' + password: |- + - (Optional) 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 + 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_kms_id: |- + - (Optional) 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. + 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. + 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.' + uh-l1: ': ultra-high I/O(latency-optimized) disk type.' + user_data: |- + - (Optional) 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.' + importStatements: + - terraform import opentelekomcloud_ecs_instance_v1.instance_1 d90ce693-5ccf-4136-a0ed-152ce412b6b9 + opentelekomcloud_er_instance_v3: + subCategory: Enterprise Router (ER) + description: Manages an Enterprise Router Instance resource within OpenTelekomCloud. + name: opentelekomcloud_er_instance_v3 + title: opentelekomcloud_er_instance_v3 + examples: + - name: test + manifest: |- + { + "asn": 64512, + "availability_zones": "${var.availability_zones}", + "name": "${var.router_name}" + } + references: + availability_zones: var.availability_zones + name: var.router_name + argumentDocs: + asn: |- + - (Required, Int, ForceNew) The BGP AS number of the ER instance. + The valid value is range from 64,512 to 65534 or range from 4,200,000,000 to 4,294,967,294. + auto_accept_shared_attachments: |- + - (Optional, Bool) Whether to automatically accept the creation of shared + attachment. + The default value is false. + availability_zones: |- + - (Required, List) The availability zone list where the ER instance is located. + The maximum number of availability zone is two. Select two AZs to configure active-active deployment for high + availability which will ensure reliability and disaster recovery. + create: '- Default is 10 minutes.' + created_at: '- The creation time.' + default_association_route_table_id: '- The ID of the default association route table.' + default_propagation_route_table_id: '- The ID of the default propagation route table.' + delete: '- Default is 5 minutes.' + description: |- + - (Optional, String) The description of the ER instance. + The description contain a maximum of 255 characters, and the angle brackets (< and >) are not allowed. + enable_default_association: |- + - (Optional, Bool) Whether to enable the association of the default route table. + The default value is false. + enable_default_propagation: |- + - (Optional, Bool) Whether to enable the propagation of the default route table. + The default value is false. + id: '- The resource ID.' + name: |- + - (Required, String) The router name. + The name can contain 1 to 64 characters, only letters, digits, underscore (_) and hyphens (-) are allowed. + region: '- Specifies the region of the ER instance.' + status: '- Current status of the router.' + update: '- Default is 10 minutes.' + updated_at: '- The latest update time.' + importStatements: [] + opentelekomcloud_er_vpc_attachment_v3: + subCategory: Enterprise Router (ER) + description: Manages an Enterprise Router VPC Attachment resource within OpenTelekomCloud. + name: opentelekomcloud_er_vpc_attachment_v3 + title: opentelekomcloud_er_vpc_attachment_v3 + examples: + - name: test + manifest: |- + { + "auto_create_vpc_routes": true, + "description": "VPC attachment created by terraform", + "instance_id": "${var.instance_id}", + "name": "${var.attachment_name}", + "subnet_id": "${var.subnet_id}", + "vpc_id": "${var.vpc_id}" + } + references: + instance_id: var.instance_id + name: var.attachment_name + subnet_id: var.subnet_id + vpc_id: var.vpc_id + argumentDocs: + auto_create_vpc_routes: |- + - (Optional, Bool, ForceNew) Specifies whether to automatically configure routes for the VPC + which pointing to the ER instance. + The destination CIDRs of the routes are fixed as follows: + create: '- Default is 5 minutes.' + created_at: '- The creation time.' + delete: '- Default is 2 minutes.' + description: |- + - (Optional, String) Specifies the description of the VPC attachment. + The description contain a maximum of 255 characters, and the angle brackets (< and >) are not allowed. + id: '- The resource ID.' + instance_id: |- + - (Required, String, ForceNew) Specifies the ID of the ER instance to which the VPC attachment + belongs. + Changing this parameter will create a new resource. + name: |- + - (Required, String) Specifies the name of the VPC attachment. + The name can contain 1 to 64 characters, digits, underscore (_), hyphens (-) and + dots (.) allowed. + region: '- The region where the ER instance and the VPC attachment are.' + status: '- The current status of the VPC attachment.' + subnet_id: |- + - (Required, String, ForceNew) Specifies the ID of the VPC subnet to which the VPC attachment belongs. + Changing this parameter will create a new resource. + update: '- Default is 5 minutes.' + updated_at: '- The latest update time.' + vpc_id: |- + - (Required, String, ForceNew) Specifies the ID of the VPC to which the VPC attachment belongs. + Changing this parameter will create a new resource. + importStatements: [] + opentelekomcloud_evs_volume_v3: + subCategory: Elastic Volume Service (EVS) + description: Manages an EVS resource within OpenTelekomCloud. + name: opentelekomcloud_evs_volume_v3 + title: opentelekomcloud_evs_volume_v3 + examples: + - name: volume_1 + manifest: |- + { + "availability_zone": "eu-de-01", + "description": "first test volume", + "name": "volume_1", + "size": 20, + "tags": { + "foo": "bar", + "key": "value" + }, + "volume_type": "SATA" + } + - name: volume_1 + manifest: |- + { + "availability_zone": "eu-de-01", + "description": "first test volume", + "kms_id": "${var.kms_id}", + "name": "volume_1", + "size": 20, + "tags": { + "foo": "bar", + "key": "value" + }, + "volume_type": "SATA" + } + references: + kms_id: var.kms_id + argumentDocs: + attachment: |- + - If a volume is attached to an instance, this attribute will + display the Attachment ID, Instance ID, and the Device as the Instance sees it. + availability_zone: |- + - (Required) The availability zone for the volume. + Changing this creates a new volume. + backup_id: |- + - (Optional) The backup ID from which to create the volume. + Changing this creates a new volume. + cascade: '- (Optional) Specifies to delete all snapshots associated with the EVS disk. Default is false.' + description: '- (Optional) A description of the volume. Changing this updates the volume''s description.' + device_type: |- + - (Optional) The device type of volume to create. Valid options are VBD and SCSI. + Defaults to VBD. Changing this creates a new volume. + image_id: |- + - (Optional) The image ID from which to create the volume. + Changing this creates a new volume. + kms_id: |- + - (Optional) The Encryption KMS ID to create the volume. + Changing this creates a new volume. + multiattach: |- + - (Optional) Specifies whether the disk is shareable. The default value is false. + Changing this creates a new volume. + name: '- (Optional) A unique name for the volume. Changing this updates the volume''s name.' + size: |- + - (Optional) The size of the volume to create (in gigabytes). This parameter is mandatory when + you create an empty EVS disk or use an image or a snapshot to create an EVS disk. + Decreasing this value creates a new volume. + snapshot_id: |- + - (Optional) The snapshot ID from which to create the volume. + Changing this creates a new volume. + tags: |- + - (Optional) Tags key/value pairs to associate with the volume. + Changing this updates the existing volume tags. + volume_type: |- + - (Required) The type of volume to create. + Currently, the value can be SSD, SAS, SATA, co-p1, or uh-l1. + Changing this creates a new volume. + wwn: '- Specifies the unique identifier used for mounting the EVS disk.' + importStatements: [] + opentelekomcloud_fgs_async_invoke_config_v2: + subCategory: FunctionGraph + description: Manages an FGS Async Invoke Config resource within OpenTelekomCloud. + name: opentelekomcloud_fgs_async_invoke_config_v2 + title: opentelekomcloud_fgs_async_invoke_config_v2 + examples: + - name: test + manifest: |- + { + "function_urn": "${var.function_urn}", + "max_async_event_age_in_seconds": 3500, + "max_async_retry_attempts": 2, + "on_failure": [ + { + "destination": "SMN", + "param": "${jsonencode({\n topic_urn = var.topic_urn\n })}" + } + ], + "on_success": [ + { + "destination": "OBS", + "param": "${jsonencode({\n bucket = var.bucket_name\n prefix = \"/success\"\n expires = 5\n })}" + } + ] + } + references: + function_urn: var.function_urn + argumentDocs: + bucket: |- + (bucket name), prefix (object directory prefix) and expires (object + expiration time, the valid value ranges from 0 to 365. If the value is 0, the object will not expire.). + func_urn: (function URN). + function_urn: |- + - (Required, String, ForceNew) Specifies the function URN to which the asynchronous invocation belongs. + Changing this will create a new resource. + id: '- Specifies a resource ID in UUID format.' + max_async_event_age_in_seconds: '- (Required, Int) Specifies the maximum validity period of a message.' + max_async_retry_attempts: |- + - (Required, Int) Specifies the maximum number of retry attempts to be made if + asynchronous invocation fails. + on_failure: |- + - (Optional, List) Specifies the target to be invoked when a function fails to be executed due to a + system error or an internal error. + The object structure is documented below. + on_success: |- + - (Optional, List) Specifies the target to be invoked when a function is successfully executed. + The object structure is documented below. + on_success.destination: |- + - (Required, String) Specifies the object type. + The valid values are as follows: + on_success.param: '- (Required, String) Specifies the parameters (map object in JSON format) corresponding to the target service.' + region: '- Specifies the region in which the asynchronous invocation is configured.' + stream_name: . + topic_urn: . + importStatements: [] + opentelekomcloud_fgs_event_v2: + subCategory: FunctionGraph + description: Manages an FGS Event resource within OpenTelekomCloud. + name: opentelekomcloud_fgs_event_v2 + title: opentelekomcloud_fgs_event_v2 + examples: + - name: test + manifest: |- + { + "content": "${base64encode(var.event_content)}", + "function_urn": "${var.function_urn}", + "name": "${var.event_name}" + } + references: + function_urn: var.function_urn + name: var.event_name + argumentDocs: + content: |- + - (Required, String) Specifies the function event content. + The value is the base64 encoding of the JSON string. + function_urn: '- (Required, String, ForceNew) Specifies the URN of the function to which the event belongs.' + id: '- The resource ID in UUID format.' + name: |- + - (Required, String) Specifies the function event name. + The name can contain a maximum of 25, only letters, digits, underscores (_) and hyphens (-) are allowed. + region: '- The region in which function graph resource is created.' + updated_at: '- The latest update time of the function event.' + importStatements: [] + opentelekomcloud_fgs_function_v2: + subCategory: FunctionGraph + description: Manages an FGS Function resource within OpenTelekomCloud. + name: opentelekomcloud_fgs_function_v2 + title: opentelekomcloud_fgs_function_v2 + examples: + - name: test + manifest: |- + { + "agency": "${var.agency_name}", + "app": "default", + "code_type": "inline", + "description": "fuction test", + "func_code": "${base64encode(var.function_codes)}", + "handler": "test.handler", + "memory_size": 128, + "name": "${var.function_name}", + "runtime": "Python2.7", + "timeout": 3 + } + references: + agency: var.agency_name + name: var.function_name + - name: test + manifest: |- + { + "agency": "${var.agency_name}", + "app": "default", + "code_type": "inline", + "func_code": "# -*- coding:utf-8 -*-\nimport json\ndef handler (event, context):\n return {\n \"statusCode\": 200,\n \"isBase64Encoded\": False,\n \"body\": json.dumps(event),\n \"headers\": {\n \"Content-Type\": \"application/json\"\n }\n }\n", + "handler": "test.handler", + "memory_size": 128, + "name": "${var.function_name}", + "runtime": "Python2.7", + "timeout": 3 + } + references: + agency: var.agency_name + name: var.function_name + - name: by_swr_image + manifest: |- + { + "agency": "${var.agency_name}", + "app": "default", + "custom_image": [ + { + "url": "${var.image_url}" + } + ], + "handler": "-", + "memory_size": 128, + "name": "${var.function_name}", + "runtime": "Custom Image", + "timeout": 3 + } + references: + agency: var.agency_name + custom_image.url: var.image_url + name: var.function_name + - name: with_alias + manifest: |- + { + "app": "default", + "code_type": "inline", + "func_code": "${base64encode(var.function_codes)}", + "handler": "test.handler", + "memory_size": 128, + "name": "${var.function_name}", + "runtime": "Python2.7", + "timeout": 3, + "versions": [ + { + "aliases": [ + { + "name": "demo" + } + ], + "name": "latest" + } + ] + } + references: + name: var.function_name + - name: test + manifest: |- + { + "agency": "test", + "app": "default", + "code_type": "inline", + "description": "fuction test", + "func_code": "${base64encode(var.function_codes)}", + "handler": "test.handler", + "log_group_id": "${var.log_group_id}", + "log_group_name": "${var.log_group_name}", + "log_topic_id": "${var.log_topic_id}", + "log_topic_name": "${var.log_topic_name}", + "memory_size": 128, + "name": "${var.function_name}", + "runtime": "Python2.7", + "timeout": 3 + } + references: + log_group_id: var.log_group_id + log_group_name: var.log_group_name + log_topic_id: var.log_topic_id + log_topic_name: var.log_topic_name + name: var.function_name + - name: test + manifest: |- + { + "lifecycle": [ + { + "ignore_changes": [ + "${app}", + "${func_code}", + "${agency}", + "${tags}" + ] + } + ] + } + argumentDocs: + "-1": and means the number of instances is unlimited. + "0": means this function is disabled. + agency: |- + - (Optional, String) Specifies the agency. This parameter is mandatory if the function needs to access other + cloud services. + aliases.description: '- (Optional, String) Specifies the description of the version alias.' + aliases.name: '- (Required, String) Specifies the name of the version alias.' + app: '- (Required, String) Specifies the group to which the function belongs.' + app_agency: |- + - (Optional, String) Specifies the execution agency enables you to obtain a token or an AK/SK for + accessing other cloud services. + code_filename: |- + - (Optional, String) Specifies the name of a function file. + Required if the code_type is set to jar or zip. + code_type: '- (Optional, String) Specifies the function code type, which can be:' + code_url: |- + - (Optional, String) Specifies the code url. + Required if the code_type is set to obs. + create: '- Default is 10 minutes.' + custom_image: |- + - (Optional, List) Specifies the custom image configuration for creating function. + The custom_image structure is documented below. + custom_image.url: '- (Required, String) Specifies the URL of SWR image, the URL must start with swr..' + delete: '- Default is 10 minutes.' + depend_list: '- (Optional, List) Specifies the ID list of the dependencies.' + description: '- (Optional, String) Specifies the description of the function.' + dns_list: '- The private DNS configuration of the function network.' + encrypted_user_data: |- + - (Optional, String) Specifies the key/value information defined to be encrypted for the + function. + func_code: |- + - (Optional, String) Specifies the function code. + The code value can be encoded using Base64 or just with the text code. + Required if the code_type is set to inline, zip, or jar. + func_mounts: |- + - (Optional, List) Specifies the file system list. The func_mounts object structure is documented + below. + func_mounts.concurrency_num: |- + - (Optional, Int) Specifies the number of concurrent requests of the function. + The valid value ranges from 1 to 1,000, the default value is 1. + func_mounts.local_mount_path: '- (Required, String) Specifies the function access path.' + func_mounts.mount_resource: '- (Required, String) Specifies the ID of the mounted resource (corresponding cloud service).' + func_mounts.mount_share_path: '- (Required, String) Specifies the remote mount path. Example: 192.168.0.12:/data.' + func_mounts.mount_type: '- (Required, String) Specifies the mount type.' + func_mounts.v2: version of the function. + func_mounts/status: '- The status of file system.' + functiongraph_version: |- + - (Optional, String, ForceNew) Specifies the FunctionGraph version, default value is v2. + The valid values are as follows: + gpu_memory: |- + - (Optional, Int) Specifies the GPU memory size allocated to the function, in MByte (MB). + The valid value ranges form 1,024 to 16,384, the value must be a multiple of 1,024. + If not specified, the GPU function is disabled. + handler: '- (Required, String) Specifies the entry point of the function.' + id: '- The resource ID, consist of urn and current version, the format is :.' + initializer_handler: '- (Optional, String) Specifies the initializer of the function.' + initializer_timeout: |- + - (Optional, Int) Specifies the maximum duration the function can be initialized. Value range: + 1s to 300s. + log_group_id: '- (Optional, String) Specifies the ID of the LTS log group.' + log_group_name: '- (Optional, String) Specifies the name of the LTS log group.' + log_topic_id: '- (Optional, String) Specifies the ID of the LTS log stream.' + log_topic_name: '- (Optional, String) Specifies the name of the LTS stream.' + max_instance_num: |- + - (Optional, String) Specifies the maximum number of instances of the function. + The valid value ranges from -1 to 1,000, defaults to 400. + memory_size: '- (Required, Int) Specifies the memory size allocated to the function, in MByte (MB).' + mount_user_group_id: |- + - (Optional, Int) Specifies the user group ID, a non-0 integer from –1 to 65,534. + Defaults to -1. + mount_user_id: |- + - (Optional, Int) Specifies the user ID, a non-0 integer from –1 to 65,534. + Defaults to -1. + name: |- + - (Required, String, ForceNew) Specifies the name of the function. + Changing this will create a new resource. + network_id: '- (Optional, String) Specifies the network ID of subnet.' + region: '- The region in which function graph resource is created.' + reserved_instances: |- + - (Optional, List) Specifies the reserved instance policies of the function. + The reserved_instances structure is documented below. + reserved_instances.count: |- + - (Required, Int) Specifies the number of reserved instance. + The valid value ranges from 0 to 1,000. + If this parameter is set to 0, the reserved instance will not run. + reserved_instances.idle_mode: |- + - (Optional, Bool) Specifies whether to enable the idle mode. The default value is false. + If this parameter is enabled, reserved instances are initialized and the mode change needs some time to take effect. + You will still be billed at the price of reserved instances for non-idle mode in this period. + reserved_instances.latest: |- + version is 1.0 and reserved instances have been configured for this version, + no more instances can be configured for alias 1.0. + reserved_instances.qualifier_name: '- (Required, String) Specifies the version name or alias name.' + reserved_instances.qualifier_type: '- (Required, String) Specifies qualifier type of reserved instance. The valid values are as follows:' + reserved_instances.tactics_config: |- + - (Optional, List) Specifies the auto scaling policies for reserved instance. + The tactics_config structure is documented below. + runtime: |- + - (Required, String, ForceNew) Specifies the environment for executing the function. + The valid values are as follows: + tactics_config.cron_configs: |- + - (Optional, List) Specifies the list of scheduled policy configurations. + The cron_configs structure is documented below. + tactics_config.cron_configs.count: |- + - (Required, Int) Specifies the number of reserved instance to which the policy belongs. + The valid value ranges from 0 to 1,000. + tactics_config.cron_configs.cron: '- (Required, String) Specifies the cron expression.' + tactics_config.cron_configs.expired_time: '- (Required, Int) Specifies the expiration timestamp of the policy. The unit is s, e.g. 1740560074.' + tactics_config.cron_configs.name: |- + - (Required, String) Specifies the name of scheduled policy configuration. + The valid length is limited from 1 to 60 characters, only letters, digits, hyphens (-), and underscores (_) are allowed. + The name must start with a letter and ending with a letter or digit. + tactics_config.cron_configs.start_time: '- (Required, Int) Specifies the effective timestamp of policy. The unit is s, e.g. 1740560074.' + tags: '- (Optional, Map) Specifies the key/value pairs to associate with the function.' + timeout: |- + - (Required, Int) Specifies the timeout interval of the function, in seconds. + The value ranges from 3 to 900. + urn: '- Uniform Resource Name.' + user_data: '- (Optional, String) Specifies the Key/Value information defined for the function.' + v2: version of the function. + version: '- The version of the function.' + versions: |- + - (Optional, List) Specifies the versions management of the function. + The versions structure is documented below. + versions.aliases: |- + - (Optional, List) Specifies the aliases management for specified version. + The aliases structure is documented below. + versions.name: '- (Required, String) Specifies the version name.' + vpc_id: '- (Optional, String) Specifies the ID of VPC.' + importStatements: [] + opentelekomcloud_fgs_trigger_v2: + subCategory: FunctionGraph + description: Manages an FGS Trigger resource within OpenTelekomCloud. + name: opentelekomcloud_fgs_trigger_v2 + title: opentelekomcloud_fgs_trigger_v2 + examples: + - name: test + manifest: |- + { + "event_data": "${jsonencode({\n \"name\" : format(\"%s_rate\", var.trigger_name),\n \"schedule_type\" : \"Rate\",\n \"user_event\" : \"Created by terraform script\",\n \"schedule\" : \"3m\"\n })}", + "function_urn": "${var.function_urn}", + "type": "TIMER" + } + references: + function_urn: var.function_urn + - name: timer_cron + manifest: |- + { + "event_data": "${jsonencode({\n \"name\" : format(\"%s_cron\", var.trigger_name),\n \"schedule_type\" : \"Cron\",\n \"user_event\" : \"Created by terraform script\",\n \"schedule\" : \"@every 1h30m\"\n })}", + "function_urn": "${var.function_urn}", + "type": "TIMER" + } + references: + function_urn: var.function_urn + argumentDocs: + TIMER: |- + , DDS, DMS, KAFKA and + LTS. For more details, please refer to the documentation. + created_at: '- The creation time of the function trigger.' + delete: '- Default is 3 minutes.' + event_data: |- + - (Required, String) Specifies the detailed configuration of the function trigger event. + For various types of trigger parameter configurations, please refer to the + documentation. + function_urn: '- (Required, String, ForceNew) Specifies the function URN to which the function trigger belongs.' + id: '- resource ID in UUID format.' + region: '- The region where the function trigger is located.' + status: |- + - (Optional, String) Specifies the status of the function trigger. + The valid values are ACTIVE and DISABLED. + For DDS and Kafka triggers the default value is DISABLED, for other triggers= the default value is ACTIVE. + type: |- + - (Required, String, ForceNew) Specifies the type of the function trigger. + The valid values are TIMER, APIG, CTS, DDS, DEDICATEDGATEWAY, etc. + update: '- Default is 5 minutes.' + updated_at: '- The latest update time of the function trigger.' + importStatements: [] + opentelekomcloud_fw_firewall_group_v2: + subCategory: Virtual Private Cloud (VPC) + description: Manages a VPC Firewall Group resource within OpenTelekomCloud. + name: opentelekomcloud_fw_firewall_group_v2 + title: opentelekomcloud_fw_firewall_group_v2 + examples: + - name: firewall_group_1 + manifest: |- + { + "ingress_policy_id": "${opentelekomcloud_fw_policy_v2.policy_1.id}", + "name": "my-firewall-group" + } + references: + ingress_policy_id: opentelekomcloud_fw_policy_v2.policy_1.id + dependencies: + opentelekomcloud_fw_policy_v2.policy_1: |- + { + "name": "my-policy", + "rules": [ + "${opentelekomcloud_fw_rule_v2.rule_1.id}", + "${opentelekomcloud_fw_rule_v2.rule_2.id}" + ] + } + opentelekomcloud_fw_rule_v2.rule_1: |- + { + "action": "deny", + "description": "drop TELNET traffic", + "destination_port": "23", + "enabled": "true", + "name": "my-rule-1", + "protocol": "tcp" + } + opentelekomcloud_fw_rule_v2.rule_2: |- + { + "action": "deny", + "description": "drop NTP traffic", + "destination_port": "123", + "enabled": "false", + "name": "my-rule-2", + "protocol": "udp" + } + argumentDocs: + admin_state_up: |- + - (Optional) Administrative up/down status for the firewall group + (must be "true" or "false" if provided - defaults to "true"). + Changing this updates the admin_state_up of an existing firewall group. + description: |- + - (Required) A description for the firewall group. Changing this + updates the description of an existing firewall group. + egress_policy_id: |- + - The egress policy resource id for the firewall group. Changing + this updates the egress_policy_id of an existing firewall group. + ingress_policy_id: |- + - The ingress policy resource id for the firewall group. Changing + this updates the ingress_policy_id of an existing firewall group. + name: |- + - (Optional) A name for the firewall group. Changing this + updates the name of an existing firewall group. + policy_id: '- See Argument Reference above.' + ports: |- + - (Optional) Port(s) to associate this firewall group instance + with. Must be a list of strings. Changing this updates the associated routers + of an existing firewall group. + tenant_id: |- + - (Optional) The owner of the floating IP. Required if admin wants + to create a firewall group for another tenant. Changing this creates a new + firewall group. + value_specs: '- (Optional) Map of additional options.' + importStatements: [] + opentelekomcloud_fw_policy_v2: + subCategory: Virtual Private Cloud (VPC) + description: Manages a VPC Firewall Policy resource within OpenTelekomCloud. + name: opentelekomcloud_fw_policy_v2 + title: opentelekomcloud_fw_policy_v2 + examples: + - name: policy_1 + manifest: |- + { + "name": "my-policy", + "rules": [ + "${opentelekomcloud_fw_rule_v2.rule_1.id}", + "${opentelekomcloud_fw_rule_v2.rule_2.id}" + ] + } + dependencies: + opentelekomcloud_fw_rule_v2.rule_1: |- + { + "action": "deny", + "description": "drop TELNET traffic", + "destination_port": "23", + "enabled": "true", + "name": "my-rule-1", + "protocol": "tcp" + } + opentelekomcloud_fw_rule_v2.rule_2: |- + { + "action": "deny", + "description": "drop NTP traffic", + "destination_port": "123", + "enabled": "false", + "name": "my-rule-2", + "protocol": "udp" + } + argumentDocs: + audited: |- + - (Optional) Audit status of the firewall policy + (must be "true" or "false" if provided - defaults to "false"). + This status is set to "false" whenever the firewall policy or any of its + rules are changed. Changing this updates the audited status of an existing + firewall policy. + description: |- + - (Optional) A description for the firewall policy. Changing + this updates the description of an existing firewall policy. + name: |- + - (Optional) A name for the firewall policy. Changing this + updates the name of an existing firewall policy. + rules: |- + - (Optional) An array of one or more firewall rules that comprise + the policy. Changing this results in adding/removing rules from the + existing firewall policy. + shared: |- + - (Optional) Sharing status of the firewall policy (must be "true" + or "false" if provided). If this is "true" the policy is visible to, and + can be used in, firewalls in other tenants. Changing this updates the + shared status of an existing firewall policy. Only administrative users + can specify if the policy should be shared. + value_specs: '- (Optional) Map of additional options.' + importStatements: [] + opentelekomcloud_fw_rule_v2: + subCategory: Virtual Private Cloud (VPC) + description: Manages a VPC Firewall Rule resource within OpenTelekomCloud. + name: opentelekomcloud_fw_rule_v2 + title: opentelekomcloud_fw_rule_v2 + examples: + - name: rule_1 + manifest: |- + { + "action": "deny", + "description": "drop TELNET traffic", + "destination_port": "23", + "enabled": "true", + "name": "my_rule", + "protocol": "tcp" + } + - name: rule_1 + manifest: |- + { + "action": "deny", + "description": "Ipv6 deny", + "destination_ip_address": "2001:db8::", + "enabled": true, + "ip_version": 6, + "name": "rule_1", + "protocol": "tcp" + } + argumentDocs: + action: |- + - (Required) Action to be taken ( must be "allow" or "deny") when the + firewall rule matches. Changing this updates the action of an existing + firewall rule. + description: |- + - (Optional) A description for the firewall rule. Changing this + updates the description of an existing firewall rule. + destination_ip_address: |- + - (Optional) The destination IP address on which the + firewall rule operates. Changing this updates the destination_ip_address + of an existing firewall rule. + destination_port: |- + - (Optional) The destination port on which the firewall + rule operates. Changing this updates the destination_port of an existing + firewall rule. + enabled: |- + - (Optional) Enabled status for the firewall rule (must be "true" + or "false" if provided - defaults to "true"). Changing this updates the + enabled status of an existing firewall rule. + ip_version: |- + - (Optional) IP version, either 4 (default) or 6. Changing this + updates the ip_version of an existing firewall rule. + name: |- + - (Optional) A unique name for the firewall rule. Changing this + updates the name of an existing firewall rule. + protocol: |- + - (Required) The protocol type on which the firewall rule operates. + Valid values are: tcp, udp, icmp, and any. Changing this updates the + protocol of an existing firewall rule. + source_ip_address: |- + - (Optional) The source IP address on which the firewall + rule operates. Changing this updates the source_ip_address of an existing + firewall rule. + source_port: |- + - (Optional) The source port on which the firewall + rule operates. Changing this updates the source_port of an existing + firewall rule. + tenant_id: |- + - (Optional) The owner of the firewall rule. Required if admin + wants to create a firewall rule for another tenant. Changing this creates a + new firewall rule. + value_specs: '- (Optional) Map of additional options.' + importStatements: [] + opentelekomcloud_gaussdb_mysql_instance_v3: + subCategory: GaussDB(for MySQL) + description: Manages a GaussDB for MySql resource within OpenTelekomCloud. + name: opentelekomcloud_gaussdb_mysql_instance_v3 + title: opentelekomcloud_gaussdb_mysql_instance_v3 + examples: + - name: instance + manifest: |- + { + "availability_zone_mode": "multi", + "flavor": "gaussdb.mysql.xlarge.x86.8", + "master_availability_zone": "eu-de-01", + "name": "gaussdb_instance", + "password": "${var.password}", + "read_replicas": 1, + "security_group_id": "${var.secgroup_id}", + "subnet_id": "${var.subnet_id}", + "vpc_id": "${var.vpc_id}" + } + references: + password: var.password + security_group_id: var.secgroup_id + subnet_id: var.subnet_id + vpc_id: var.vpc_id + - name: instance + manifest: |- + { + "backup_strategy": [ + { + "keep_days": 7, + "start_time": "03:00-04:00" + } + ], + "flavor": "gaussdb.mysql.4xlarge.x86.4", + "name": "gaussdb_instance_1", + "password": "${var.password}", + "security_group_id": "${var.secgroup_id}", + "subnet_id": "${var.subnet_id}", + "vpc_id": "${var.vpc_id}" + } + references: + password: var.password + security_group_id: var.secgroup_id + subnet_id: var.subnet_id + vpc_id: var.vpc_id + - name: instance_1 + manifest: |- + { + "lifecycle": [ + { + "ignore_changes": [ + "${password}" + ] + } + ] + } + argumentDocs: + alias: '- Indicates the alias of the instance.' + availability_zone_mode: |- + - (Optional, String, ForceNew) Specifies the availability zone mode: "single" or "multi". + Defaults to "single". Changing this parameter will create a new resource. + backup_strategy: '- (Optional, List) Specifies the advanced backup policy. Structure is documented below.' + backup_strategy.keep_days: |- + - (Optional, Int) Specifies the number of days to retain the generated backup files. The value ranges from + 0 to 35. If this parameter is set to 0, the automated backup policy is not set. If this parameter is not transferred, + the automated backup policy is enabled by default. Backup files are stored for seven days by default. + backup_strategy.start_time: |- + - (Required, String) Specifies the backup time window. Automated backups will be triggered during the + backup time window. It must be a valid value in the "hh:mm-HH:MM" format. The current time is in the UTC format. The + HH value must be 1 greater than the hh value. The values of mm and MM must be the same and must be set to 00. Example + value: 08:00-09:00, 03:00-04:00. + charging_mode: '- Indicates the charging mode of the instance.' + configuration_id: '- (Optional, String, ForceNew) Specifies the configuration ID.' + configuration_name: '- (Optional, String, ForceNew) Specifies the configuration name.' + create: '- Default is 60 minutes.' + created: '- Indicates the created time of the DB instance.' + datastore: '- (Optional, List, ForceNew) Specifies the database information. Structure is documented below.' + datastore.engine: '- (Required, String, ForceNew) Specifies the database engine. Only "gaussdb-mysql" is supported now.' + datastore.version: '- (Required, String, ForceNew) Specifies the database version. Only "8.0" is supported now.' + db_user_name: '- Indicates the default username.' + dedicated_resource_id: |- + - (Optional, String, ForceNew) Specifies the dedicated resource ID. Changing this parameter + will create a new resource. + dedicated_resource_name: |- + - (Optional, String, ForceNew) Specifies the dedicated resource name. Changing this parameter + will create a new resource. + delete: '- Default is 30 minutes.' + flavor: '- (Required, String) Specifies the instance specifications.' + id: '- Indicates the DB instance ID.' + master_availability_zone: |- + - (Optional, String, ForceNew) Specifies the availability zone where the master node + resides. The parameter is required in multi availability zone mode. Changing this parameter will create a new + resource. + mode: '- Indicates the instance mode.' + name: |- + - (Required, String) Specifies the instance name, which can be the same as an existing instance name. The value + must be 4 to 64 characters in length and start with a letter. It is case-sensitive and can contain only letters, + digits, hyphens (-), and underscores (_). + node_count: '- Indicates the amount on nodes of the DB instance.' + nodes: '- Indicates the instance nodes information. Structure is documented below.' + nodes.az_code: '- Indicates the availability zone where the node resides.' + nodes.created: '- Indicates the created time of the DB node.' + nodes.flavor_ref: '- Indicates the specification code of DB node.' + nodes.id: '- Indicates the node ID.' + nodes.max_connections: '- Indicates the maximum number of connections of DB node.' + nodes.name: '- Indicates the node name.' + nodes.need_restart: '- Indicates whether the reboot of DB instance is needed for the parameter modifications to take effect.' + nodes.port: '- Indicates the database port.' + nodes.priority: '- Indicates the failover priority of the DB node.' + nodes.private_read_ip: '- Indicates the private IP address of a node.' + nodes.ram: '- Indicates the memory size in GB of the DB node.' + nodes.region_code: '- Indicates the region where the node resides.' + nodes.status: '- Indicates the node status.' + nodes.type: '- Indicates the node type: master or slave.' + nodes.updated: '- Indicates the updated time of the DB node.' + nodes.vcpus: '- Indicates the vCPUs number of DB node.' + password: |- + - (Required, String) Specifies the database password. The value must be 8 to 32 characters in length, + including uppercase and lowercase letters, digits, and special characters, such as ~!@#%^*-_=+? + port: '- Indicates the database port.' + private_write_ip: '- Indicates the private IP address of the DB instance.' + project_id: '- Indicates the id of the project.' + public_ip: '- Indicates the public IP address of the DB instance.' + read_replicas: '- (Optional, Int) Specifies the count of read replicas. Defaults to 1.' + region: |- + - (Optional, String, ForceNew) The region in which to create the GaussDB mysql instance resource. If omitted, + the provider-level region will be used. + security_group_id: |- + - (Optional, String, ForceNew) Specifies the security group ID. Required if the selected subnet + doesn't enable network ACL. + status: '- Indicates the DB instance status.' + subnet_id: '- (Required, String, ForceNew) Specifies the network ID of a subnet.' + time_zone: |- + - (Optional, String, ForceNew) Specifies the time zone. Defaults to "UTC+08:00". Changing this parameter + will create a new resource. + update: '- Default is 60 minutes.' + updated: '- Indicates the updated time of the DB instance.' + vpc_id: '- (Required, String, ForceNew) Specifies the VPC ID.' + importStatements: [] + opentelekomcloud_identity_agency_v3: + subCategory: Identity and Access Management (IAM) + description: Manages a IAM Cgency resource within OpenTelekomCloud. + name: opentelekomcloud_identity_agency_v3 + title: opentelekomcloud_identity_agency_v3 + examples: + - name: agency + manifest: |- + { + "delegated_domain_name": "***", + "description": "test agency", + "domain_roles": [ + "Anti-DDoS Administrator" + ], + "name": "test_agency", + "project_role": [ + { + "project": "eu-de", + "roles": [ + "KMS Administrator" + ] + } + ] + } + argumentDocs: + create_time: '- The time when the agency was created.' + delegated_domain_name: '- (Required) The name of delegated domain.' + description: |- + - (Optional) Provides supplementary information about the + agency. The value is a string of 0 to 255 characters. + domain_roles: |- + - (optional) An array of role names which stand for the + permissions to be granted to agency on domain. + duration: |- + - Validity period of an agency. The default value is null, + indicating that the agency is permanently valid. + expire_time: '- The expiration time of agency' + id: '- The agency ID.' + name: |- + - (Required) The name of agency. The name is a string of 1 to 64 + characters. + project_role: |- + - (Optional) An array of roles and projects which are used to + grant permissions to agency on project. The structure is documented below. + project_role.project: '- (Required) The name of project' + project_role.roles: '- (Required) An array of role names' + importStatements: + - terraform import opentelekomcloud_identity_agency_v3.this 1bc93b8b-37a4-4b50-92cc-daa4c89d4e4c + opentelekomcloud_identity_credential_v3: + subCategory: Identity and Access Management (IAM) + description: Manages a IAM Credential resource within OpenTelekomCloud. + name: opentelekomcloud_identity_credential_v3 + title: opentelekomcloud_identity_credential_v3 + examples: + - name: aksk + manifest: '{}' + - name: aksk + manifest: |- + { + "description": "Created by administrator", + "user_id": "${opentelekomcloud_identity_user_v3.user.id}" + } + references: + user_id: opentelekomcloud_identity_user_v3.user.id + dependencies: + opentelekomcloud_identity_user_v3.user: |- + { + "name": "user_1", + "password": "password123!" + } + argumentDocs: + access: '- Access key ID.' + create_time: '- Time of the access key creation.' + description: '- (Optional) Description of the access key.' + last_use_time: '- Time of the access key last usage.' + pgp_key: |- + - (Optional, String, ForceNew) Either a base-64 encoded PGP public key, or a keybase username in the form + keybase:some_person_that_exists. Changing this creates a new resource. + secret: |- + - Secret key ID. If pgp_key is not set, secret will be in plain text. + The encrypted secret, base64 encoded. The encrypted secret may be decrypted using the command + line, for example: terraform output encrypted_secret | base64 --decode | keybase pgp decrypt. + status: '- (Optional) Status of the access key to be changed to. The value can be active or inactive.' + user_id: '- (Optional) IAM user ID. If not set, will create AK/SK for yourself.' + importStatements: [] + opentelekomcloud_identity_group_membership_v3: + subCategory: Identity and Access Management (IAM) + description: Manages a IAM Group Membership resource within OpenTelekomCloud. + name: opentelekomcloud_identity_group_membership_v3 + title: opentelekomcloud_identity_group_membership_v3 + examples: + - name: membership_1 + manifest: |- + { + "group": "${opentelekomcloud_identity_group_v3.group_1.id}", + "users": [ + "${opentelekomcloud_identity_user_v3.user_1.id}", + "${opentelekomcloud_identity_user_v3.user_2.id}" + ] + } + references: + group: opentelekomcloud_identity_group_v3.group_1.id + dependencies: + opentelekomcloud_identity_group_v3.group_1: |- + { + "description": "This is a test group", + "name": "group1" + } + opentelekomcloud_identity_user_v3.user_1: |- + { + "enabled": true, + "name": "user1", + "password": "password12345!" + } + opentelekomcloud_identity_user_v3.user_2: |- + { + "enabled": true, + "name": "user2", + "password": "password12345!" + } + argumentDocs: + group: '- (Required) The group ID of this membership.' + users: '- (Required) A List of user IDs to associate to the group.' + importStatements: [] + opentelekomcloud_identity_group_v3: + subCategory: Identity and Access Management (IAM) + description: Manages a IAM Group resource within OpenTelekomCloud. + name: opentelekomcloud_identity_group_v3 + title: opentelekomcloud_identity_group_v3 + examples: + - name: group_1 + manifest: |- + { + "description": "This is a test group", + "name": "group_1" + } + argumentDocs: + description: '- (Optional) A description of the group.' + domain_id: '- (Optional) The domain this group belongs to.' + name: '- (Required) The name of the group.The length is less than or equal to 64 bytes.' + importStatements: [] + opentelekomcloud_identity_login_policy_v3: + subCategory: Identity and Access Management (IAM) + description: Manages a IAM Login Policy resource within OpenTelekomCloud. + name: opentelekomcloud_identity_login_policy_v3 + title: opentelekomcloud_identity_login_policy_v3 + examples: + - name: policy_1 + manifest: |- + { + "account_validity_period": 0, + "custom_info_for_login": "", + "lockout_duration": 15, + "login_failed_times": 3, + "period_with_login_failures": 60, + "session_timeout": 1395, + "show_recent_login_info": false + } + argumentDocs: + account_validity_period: = 0 + custom_info_for_login: = "" + id: '- The ID of account login policy, which is the same as the domain ID.' + lockout_duration: = 15 + login_failed_times: = 3 + period_with_login_failures: = 60 + session_timeout: = 1395 + show_recent_login_info: = false + importStatements: [] + opentelekomcloud_identity_mapping_v3: + subCategory: Identity and Access Management (IAM) + description: Manages a IAM Mapping resource within OpenTelekomCloud. + name: opentelekomcloud_identity_mapping_v3 + title: opentelekomcloud_identity_mapping_v3 + examples: + - name: mapping + manifest: |- + { + "mapping_id": "ACME", + "rules": " [\n {\n \"local\":[\n {\n \"user\":{\"name\":\"{0}\"}\n },\n {\n \"groups\":\"[\\\"admin\\\",\\\"manager\\\"]\"\n }\n ],\n \"remote\":[\n {\n \"type\":\"uid\"\n }\n ]\n }\n ]\n" + } + argumentDocs: + mapping_id: '- (Required) The ID of the mapping. Changing this creates a new mapping.' + rules: '- (Required) Rules used to map federated users to local users.' + importStatements: + - terraform import opentelekomcloud_identity_mapping_v3.mapping ACME + opentelekomcloud_identity_password_policy_v3: + subCategory: Identity and Access Management (IAM) + description: Manages a IAM Password Policy resource within OpenTelekomCloud. + name: opentelekomcloud_identity_password_policy_v3 + title: opentelekomcloud_identity_password_policy_v3 + examples: + - name: policy_1 + manifest: |- + { + "maximum_consecutive_identical_chars": 0, + "minimum_password_age": 0, + "minimum_password_length": 6, + "number_of_recent_passwords_disallowed": 0, + "password_not_username_or_invert": true, + "password_validity_period": 179 + } + argumentDocs: + id: '- The ID of account password policy, which is the same as the domain ID.' + maximum_consecutive_identical_chars: = 0 + maximum_password_length: '- The maximum number of characters that a password can contain.' + minimum_password_age: = 0 + minimum_password_length: = 8 + number_of_recent_passwords_disallowed: = 1 + password_not_username_or_invert: = true + password_validity_period: = 0 + importStatements: [] + opentelekomcloud_identity_project_v3: + subCategory: Identity and Access Management (IAM) + description: Manages a IAM Project resource within OpenTelekomCloud. + name: opentelekomcloud_identity_project_v3 + title: opentelekomcloud_identity_project_v3 + examples: + - name: project_1 + manifest: |- + { + "description": "This is a test project", + "name": "eu-de_project1" + } + argumentDocs: + description: '- (Optional) A description of the project.' + domain_id: |- + - (Optional) The domain this project belongs to. Changing this + creates a new Project. + name: |- + - (Required) The name of the project. it must start with + ID of an existing region and be less than or equal to 64 characters. + Example: eu-de_project1. + parent_id: |- + - (Optional) The parent of this project. Changing this creates + a new Project. + importStatements: [] + opentelekomcloud_identity_protection_policy_v3: + subCategory: Identity and Access Management (IAM) + description: Manages a IAM Protection Policy resource within OpenTelekomCloud. + name: opentelekomcloud_identity_protection_policy_v3 + title: opentelekomcloud_identity_protection_policy_v3 + examples: + - name: policy_1 + manifest: |- + { + "enable_operation_protection_policy": false + } + argumentDocs: + enable_operation_protection_policy: = false + id: '- The ID of account protection policy, which is the same as the domain ID.' + importStatements: [] + opentelekomcloud_identity_protocol_v3: + subCategory: Identity and Access Management (IAM) + description: Manages a IAM Protocol resource within OpenTelekomCloud. + name: opentelekomcloud_identity_protocol_v3 + title: opentelekomcloud_identity_protocol_v3 + examples: + - name: saml + manifest: |- + { + "mapping_id": "${opentelekomcloud_identity_mapping_v3.mapping.id}", + "protocol": "saml", + "provider_id": "${opentelekomcloud_identity_provider_v3.provider.id}" + } + references: + mapping_id: opentelekomcloud_identity_mapping_v3.mapping.id + provider_id: opentelekomcloud_identity_provider_v3.provider.id + dependencies: + opentelekomcloud_identity_mapping_v3.mapping: |- + { + "mapping_id": "ACME", + "rules": "${file(\"./rules.json\")}" + } + opentelekomcloud_identity_provider_v3.provider: |- + { + "description": "This is simple identity provider", + "enabled": true, + "name": "ACME" + } + - name: saml + manifest: |- + { + "access_config": [ + { + "access_type": "program_console", + "authorization_endpoint": "https://accounts.example.com/o/oauth2/v2/auth", + "client_id": "your_client_id", + "provider_url": "https://accounts.example.com", + "response_mode": "fragment", + "response_type": "id_token", + "scopes": [ + "openid" + ], + "signing_key": "${jsonencode(\n {\n keys = [\n {\n alg = \"RS256\"\n e = \"AQAB\"\n kid = \"...\"\n kty = \"RSA\"\n n = \"...\"\n use = \"sig\"\n },\n ]\n }\n )}" + } + ], + "mapping_id": "${opentelekomcloud_identity_mapping_v3.mapping.id}", + "protocol": "oidc", + "provider_id": "${opentelekomcloud_identity_provider_v3.provider.id}" + } + references: + mapping_id: opentelekomcloud_identity_mapping_v3.mapping.id + provider_id: opentelekomcloud_identity_provider_v3.provider.id + dependencies: + opentelekomcloud_identity_mapping_v3.mapping: |- + { + "mapping_id": "ACME", + "rules": "${file(\"./rules.json\")}" + } + opentelekomcloud_identity_provider_v3.provider: |- + { + "description": "This is simple identity provider", + "enabled": true, + "name": "ACME" + } + - name: saml + manifest: |- + { + "mapping_id": "${opentelekomcloud_identity_mapping_v3.mapping.id}", + "metadata": [ + { + "domain_id": "${var.domain_id}", + "metadata": "${file(\"saml-metadata.xml\")}" + } + ], + "protocol": "saml", + "provider_id": "${opentelekomcloud_identity_provider_v3.provider.id}" + } + references: + mapping_id: opentelekomcloud_identity_mapping_v3.mapping.id + metadata.domain_id: var.domain_id + provider_id: opentelekomcloud_identity_provider_v3.provider.id + dependencies: + opentelekomcloud_identity_mapping_v3.mapping: |- + { + "mapping_id": "ACME", + "rules": "${file(\"./rules.json\")}" + } + opentelekomcloud_identity_provider_v3.provider: |- + { + "description": "This is simple identity provider", + "enabled": true, + "name": "ACME" + } + argumentDocs: + access_config: |- + - (Optional, List) Specifies the description of the identity provider. + This field is required only if the protocol is set to oidc. + access_type: |- + - (Required) Specifies the access type of the identity provider. + Available options are: + authorization_endpoint: |- + - (Optional) Specifies the authorization endpoint of the OpenID Connect identity + provider. This field is required only if the access type is set to program_console. + client_id: '- (Required) Specifies the ID of a client registered with the OpenID Connect identity provider.' + domain_id: '- (Required) ID of the domain that a user belongs to.' + links: '- Resource links of an identity protocol, including identity_provider and self.' + mapping_id: '- (Required) ID of an identity mapping.' + metadata: '- (Optional) Metadata file configuration.' + program: ': programmatic access only.' + program_console: ': programmatic access and management console access.' + protocol: '- (Required) ID of a protocol. Changing this creates a new protocol.' + provider_id: '- (Required) ID of an identity provider. Changing this creates a new protocol.' + provider_url: |- + - (Required) Specifies the URL of the identity provider. + This field corresponds to the iss field in the ID token. + response_mode: |- + - (Optional) Response mode. + Valid values is form_post and fragment, default value is form_post. + This field is required only if the access type is set to program_console. + response_type: |- + - (Optional) Response type. Valid values is id_token, default value is id_token. + This field is required only if the access type is set to program_console. + scopes: |- + - (Optional) Specifies the scopes of authorization requests. It is an array of one or more scopes. + Valid values are openid, email, profile and other values defined by you. + This field is required only if the access type is set to program_console. + signing_key: |- + - (Required) Public key used to sign the ID token of the OpenID Connect identity provider. + This field is required only if the protocol is set to oidc. + xaccount_type: '- (Optional) Source of a domain. Blank by the default.' + importStatements: + - terraform import opentelekomcloud_identity_protocol_v3.protocol ACME/saml + opentelekomcloud_identity_provider: + subCategory: Identity and Access Management (IAM) + description: Manages a IAM Provider resource within OpenTelekomCloud. + name: opentelekomcloud_identity_provider + title: opentelekomcloud_identity_provider + examples: + - name: provider_1 + manifest: |- + { + "mapping_rules": "${jsonencode(\n [\n {\n \"local\" : [\n {\n \"user\" : {\n \"name\" : \"samltestid\"\n }\n }\n ],\n \"remote\" : [\n {\n \"type\" : \"uid\"\n }\n ]\n }\n ]\n )}", + "name": "example_com_provider_saml", + "protocol": "saml" + } + - name: provider_2 + manifest: |- + { + "access_config": [ + { + "access_type": "program_console", + "authorization_endpoint": "https://accounts.example.com/o/oauth2/v2/auth", + "client_id": "your_client_id", + "provider_url": "https://accounts.example.com", + "scopes": [ + "openid" + ], + "signing_key": "${jsonencode(\n {\n keys = [\n {\n alg = \"RS256\"\n e = \"AQAB\"\n kid = \"...\"\n kty = \"RSA\"\n n = \"...\"\n use = \"sig\"\n },\n ]\n }\n )}" + } + ], + "name": "example_com_provider_oidc", + "protocol": "oidc" + } + argumentDocs: + access_config: |- + - (Optional, List) Specifies the description of the identity provider. + This field is required only if the protocol is set to oidc. + access_config.access_type: |- + - (Required) Specifies the access type of the identity provider. + Available options are: + access_config.authorization_endpoint: |- + - (Optional) Specifies the authorization endpoint of the OpenID Connect identity + provider. This field is required only if the access type is set to program_console. + access_config.client_id: '- (Required) Specifies the ID of a client registered with the OpenID Connect identity provider.' + access_config.provider_url: |- + - (Required) Specifies the URL of the identity provider. + This field corresponds to the iss field in the ID token. + access_config.response_mode: |- + - (Optional) Response mode. + Valid values is form_post and fragment, default value is form_post. + This field is required only if the access type is set to program_console. + access_config.response_type: |- + - (Optional) Response type. Valid values is id_token, default value is id_token. + This field is required only if the access type is set to program_console. + access_config.scopes: |- + - (Optional) Specifies the scopes of authorization requests. It is an array of one or more scopes. + Valid values are openid, email, profile and other values defined by you. + This field is required only if the access type is set to program_console. + access_config.signing_key: |- + - (Required) Public key used to sign the ID token of the OpenID Connect identity provider. + This field is required only if the protocol is set to oidc. + conversion_rules: |- + - The identity conversion rules of the identity provider. + The structure is documented below. + conversion_rules.local: '- The federated user information on the cloud platform.' + conversion_rules.remote: '- The description of the identity provider.' + description: '- (Optional) Specifies the description of the identity provider.' + id: '- A resource ID in UUID format.' + links: '- Resource links of an identity mapping.' + local.group: '- The user group to which the federated user belongs on the cloud platform.' + local.groups: '- The user groups to which the federated user belongs on the cloud platform.' + local.username: '- The name of a federated user on the cloud platform.' + login_link: '- The login link of the identity provider.' + mapping_rules: |- + - (Optional) Rules used to map federated users to local users. + Details on mapping_rules are available in this link under rules section. + metadata: |- + - (Optional) Specifies the metadata of the IDP(Identity Provider) server. + This field is used to import a metadata file to IAM to implement federated identity authentication. + This field is required only if the protocol is set to saml. + The maximum length is 30,000 characters and it stores in the state with SHA1 algorithm. + name: |- + - (Required) Specifies the name of the identity provider to be registered. + The maximum length is 64 characters. Only letters, digits, underscores (_), and hyphens (-) are allowed. + The name is unique, it is recommended to include domain name information. + Changing this creates a new resource. + program: ': programmatic access only.' + program_console: ': programmatic access and management console access.' + protocol: |- + - (Required) Specifies the protocol of the identity provider. + Valid values are saml and oidc. + remote.attribute: '- The attribute in the IDP assertion.' + remote.condition: '- The condition of conversion rule.' + remote.value: '- The rule is matched only if the specified strings appear in the attribute type.' + status: '- (Optional) Enabled status for the identity provider. Default: true.' + importStatements: [] + opentelekomcloud_identity_provider_v3: + subCategory: Identity and Access Management (IAM) + description: Manages a IAM Provider v3 resource within OpenTelekomCloud. + name: opentelekomcloud_identity_provider_v3 + title: opentelekomcloud_identity_provider_v3 + examples: + - name: provider + manifest: |- + { + "description": "This is simple identity provider", + "enabled": true, + "name": "ACME" + } + argumentDocs: + description: '- (Optional) A description of the provider.' + enabled: '- (Optional) Whether an identity provider is enabled. Default value is false.' + name: '- (Required) The name (ID) of the provider. Changing this creates a new provider.' + importStatements: [] + opentelekomcloud_identity_role_assignment_v3: + subCategory: Identity and Access Management (IAM) + description: Manages a IAM Role Assignment resource within OpenTelekomCloud. + name: opentelekomcloud_identity_role_assignment_v3 + title: opentelekomcloud_identity_role_assignment_v3 + examples: + - name: role_assignment_1 + manifest: |- + { + "group_id": "${opentelekomcloud_identity_group_v3.group_1.id}", + "project_id": "${opentelekomcloud_identity_project_v3.project_1.id}", + "role_id": "${data.opentelekomcloud_identity_role_v3.role_1.id}" + } + references: + group_id: opentelekomcloud_identity_group_v3.group_1.id + project_id: opentelekomcloud_identity_project_v3.project_1.id + role_id: data.opentelekomcloud_identity_role_v3.role_1.id + dependencies: + opentelekomcloud_identity_group_v3.group_1: |- + { + "name": "group_1" + } + opentelekomcloud_identity_project_v3.project_1: |- + { + "name": "eu-de_project_1" + } + - name: role_assignment_1 + manifest: |- + { + "domain_id": "${var.domain_id}", + "group_id": "${opentelekomcloud_identity_group_v3.group_1.id}", + "role_id": "${data.opentelekomcloud_identity_role_v3.role_1.id}" + } + references: + domain_id: var.domain_id + group_id: opentelekomcloud_identity_group_v3.group_1.id + role_id: data.opentelekomcloud_identity_role_v3.role_1.id + dependencies: + opentelekomcloud_identity_group_v3.group_1: |- + { + "name": "group_1" + } + - name: role_assignment_1 + manifest: |- + { + "all_projects": true, + "domain_id": "${var.domain_id}", + "group_id": "${opentelekomcloud_identity_group_v3.group_1.id}", + "role_id": "${data.opentelekomcloud_identity_role_v3.role_1.id}" + } + references: + domain_id: var.domain_id + group_id: opentelekomcloud_identity_group_v3.group_1.id + role_id: data.opentelekomcloud_identity_role_v3.role_1.id + dependencies: + opentelekomcloud_identity_group_v3.group_1: |- + { + "name": "group_1" + } + argumentDocs: + all_projects: |- + - (Optional) Whether to assign role for all existing and future projects. + domain_id has to be specified if all_projects is set to true. + domain_id: '- (Optional; Required if project_id is empty) The domain to assign the role in.' + group_id: '- (Required) The group to assign the role to.' + project_id: '- (Optional; Required if domain_id is empty) The project to assign the role in.' + role_id: '- (Required) The role to assign.' + importStatements: [] + opentelekomcloud_identity_role_v3: + subCategory: Identity and Access Management (IAM) + description: Manages a IAM Role resource within OpenTelekomCloud. + name: opentelekomcloud_identity_role_v3 + title: opentelekomcloud_identity_role_v3 + examples: + - name: role + manifest: |- + { + "description": "role", + "display_layer": "domain", + "display_name": "custom_role", + "statement": [ + { + "action": [ + "obs:bucket:GetBucketAcl" + ], + "condition": " {\n \"StringStartWith\": {\n \"g:ProjectName\": [\n \"eu-de\"\n ]\n },\n \"StringNotEqualsIgnoreCase\": {\n \"g:ServiceName\": [\n \"iam\"\n ]\n }\n", + "effect": "Allow", + "resource": [ + "OBS:*:*:bucket:test-bucket" + ] + }, + { + "action": [ + "obs:bucket:HeadBucket", + "obs:bucket:ListBucketMultipartUploads", + "obs:bucket:ListBucket" + ], + "effect": "Allow" + } + ] + } + argumentDocs: + catalog: '- Directory where a role locates' + description: '- (Required) Description of a role. The value cannot exceed 256 characters.' + display_layer: '- (Required) Display layer of a role.' + display_name: '- (Required) Displayed name of a role. The value cannot exceed 64 characters.' + domain: '- A role is displayed at the domain layer.' + domain_id: '- ID of the domain to which a role belongs' + name: '- Name of a role' + project: '- A role is displayed at the project layer.' + statement: |- + - (Required) Statement: The Statement field contains the Effect and Action + elements. Effect indicates whether the policy allows or denies + access. Action indicates authorization items. The number of + statements cannot exceed 8. Structure is documented below. + statement.action: |- + - (Required) Permission set, which specifies the operation permissions on + resources. The number of permission sets cannot exceed 100. + Format: The value format is Service name:Resource type:Action, + for example, vpc:ports:create. Service name: indicates the + product name, such as ecs, evs, or vpc. Only lowercase letters + are allowed. Resource type and Action: The values are + case-insensitive, and the wildcard () are allowed. A wildcard + () can represent all or part of information about resource + types and actions for the specific service. + statement.condition: |- + - (Optional) The conditions for the permission to take effect. A maximum of 10 conditions are allowed. + Conditions should be provided as string as in example above. + statement.effect: |- + - (Required) The value can be Allow and Deny. If both Allow and Deny are + found in statements, the policy evaluation starts with Deny. + statement.resource: |- + - (Optional) The resources which will be granted/denied accesses. + Format: Service:*:*:resource:resource_path. + Examples: KMS:*:*:KeyId:your_key, OBS:*:*:bucket:your_bucket, OBS:*:*:object:your_object. + importStatements: [] + opentelekomcloud_identity_user_group_membership_v3: + subCategory: Identity and Access Management (IAM) + description: Manages a IAM User Group Membership resource within OpenTelekomCloud. + name: opentelekomcloud_identity_user_group_membership_v3 + title: opentelekomcloud_identity_user_group_membership_v3 + examples: + - name: membership_1 + manifest: |- + { + "groups": [ + "${opentelekomcloud_identity_group_v3.group_1.id}", + "${opentelekomcloud_identity_group_v3.group_2.id}" + ], + "user": "${opentelekomcloud_identity_user_v3.user_1.id}" + } + references: + user: opentelekomcloud_identity_user_v3.user_1.id + dependencies: + opentelekomcloud_identity_group_v3.group_1: |- + { + "name": "group-1" + } + opentelekomcloud_identity_group_v3.group_2: |- + { + "name": "group-2" + } + opentelekomcloud_identity_user_v3.user_1: |- + { + "enabled": true, + "name": "user-1", + "password": "password123@#" + } + argumentDocs: + groups: '- (Required) IDs of the groups for the user to be assigned to.' + user: '- (Required) ID of a user.' + importStatements: [] + opentelekomcloud_identity_user_v3: + subCategory: Identity and Access Management (IAM) + description: Manages a IAM User resource within OpenTelekomCloud. + name: opentelekomcloud_identity_user_v3 + title: opentelekomcloud_identity_user_v3 + examples: + - name: user_1 + manifest: |- + { + "name": "user_1", + "password": "password123!" + } + - name: user_1 + manifest: |- + { + "email": "test@acme.org", + "enabled": true, + "login_protection": [ + { + "enabled": true, + "verification_method": "email" + } + ], + "name": "user_protected", + "password": "password123@!", + "send_welcome_email": true + } + - name: user_1 + manifest: |- + { + "lifecycle": [ + { + "ignore_changes": [ + "${password}" + ] + } + ] + } + argumentDocs: + access_type: '- (Optional, String) Specifies the access type of the user. Available values are:' + country_code: '- (Optional, String) Specifies the country code. This parameter must be used together with phone.' + create_time: '- The time when the IAM user was created.' + description: '- (Optional, String) Specifies the description of the user.' + domain_id: '- The domain user belongs to.' + email: '- (Optional, String) Specifies the email address with a maximum of 255 characters.' + enabled: '- (Optional, Bool) Specifies whether the user is enabled or disabled. Valid values are true and false.' + id: '- The resource ID in UUID format.' + last_login: '- The time when the IAM user last login.' + login_protection: |- + - (Optional, List) Login protection configuration. + The login_protection block supports: + name: |- + - (Required, String) Specifies the name of the user. The user name consists of 5 to 32 characters. It can + contain only uppercase letters, lowercase letters, digits, spaces, and special characters (-_) and cannot start with a + digit. + password: |- + - (Optional, String) Specifies the password for the user with 6 to 32 characters. It must contain at least + two of the following character types: uppercase letters, lowercase letters, digits, and special characters. + password_strength: '- Indicates the password strength.' + phone: |- + - (Optional, String) Specifies the mobile number with a maximum of 32 digits. This parameter must be used + together with country_code. + pwd_reset: |- + - (Optional, Bool) Specifies whether the password should be reset. By default, the password is asked + to reset at the first login. + send_welcome_email: |- + - (Optional, Bool) Whether to send a Welcome Email or not. + Possible values are true and false. + verification_method: '- (Required, String) Login authentication method of the user. Options: sms, email, and vmfa.' + xuser_id: '- ID of the user in the external system.' + xuser_type: '- Type of the user in the external system.' + importStatements: [] + opentelekomcloud_images_image_access_accept_v2: + subCategory: Image Management Service (IMS) + description: Manages an Image Sharing Accept resource within OpenTelekomCloud. + name: opentelekomcloud_images_image_access_accept_v2 + title: opentelekomcloud_images_image_access_accept_v2 + examples: + - name: rancheros_member + manifest: |- + { + "image_id": "${data.opentelekomcloud_images_image_v2.rancheros.id}", + "member_id": "bed6b6cbb86a4e2d8dc2735c2f1000e4", + "status": "accepted" + } + references: + image_id: data.opentelekomcloud_images_image_v2.rancheros.id + argumentDocs: + created_at: '- Specifies the time when a shared image was created. The value is in UTC format.' + image_id: '- (Required) The proposed image ID.' + member_id: '- (Required) The member ID, e.g. the target project ID.' + schema: '- Specifies the sharing schema.' + status: '- (Required) The membership proposal status. Can either be accepted, rejected or pending.' + updated_at: '- Specifies the time when a shared image was updated. The value is in UTC format.' + importStatements: [] + opentelekomcloud_images_image_access_v2: + subCategory: Image Management Service (IMS) + description: Manages an Image Sharing resource within OpenTelekomCloud. + name: opentelekomcloud_images_image_access_v2 + title: opentelekomcloud_images_image_access_v2 + examples: + - name: rancheros_member + manifest: |- + { + "image_id": "${opentelekomcloud_images_image_v2.rancheros.id}", + "member_id": "bed6b6cbb86a4e2d8dc2735c2f1000e4" + } + references: + image_id: opentelekomcloud_images_image_v2.rancheros.id + dependencies: + opentelekomcloud_images_image_v2.rancheros: |- + { + "container_format": "bare", + "disk_format": "qcow2", + "image_source_url": "https://releases.rancher.com/os/latest/rancheros-openstack.img", + "name": "RancherOS" + } + - name: rancheros_member + manifest: |- + { + "image_id": "${opentelekomcloud_images_image_v2.rancheros.id}", + "member_id": "bed6b6cbb86a4e2d8dc2735c2f1000e4", + "status": "accepted" + } + references: + image_id: opentelekomcloud_images_image_v2.rancheros.id + dependencies: + opentelekomcloud_images_image_v2.rancheros: |- + { + "container_format": "bare", + "disk_format": "qcow2", + "image_source_url": "https://releases.rancher.com/os/latest/rancheros-openstack.img", + "name": "RancherOS" + } + argumentDocs: + created_at: '- Specifies the time when a shared image was created. The value is in UTC format.' + image_id: '- (Required) The proposed image ID.' + member_id: |- + - (Required) The member ID, e.g. the target project ID. Optional + for admin accounts. Defaults to the current scope project ID. + schema: '- Specifies the sharing schema.' + status: |- + - (Required) The member proposal status. Optional if admin wants to force the member + proposal acceptance. Can either be accepted, rejected or pending. Defaults to + pending. Forbidden for non-admin users. + updated_at: '- Specifies the time when a shared image was updated. The value is in UTC format.' + importStatements: [] + opentelekomcloud_images_image_v2: + subCategory: Image Management Service (IMS) + description: Manages an Image Management resource within OpenTelekomCloud. + name: opentelekomcloud_images_image_v2 + title: opentelekomcloud_images_image_v2 + examples: + - name: rancheros + manifest: |- + { + "container_format": "bare", + "disk_format": "qcow2", + "image_source_url": "https://releases.rancher.com/os/latest/rancheros-openstack.img", + "name": "RancherOS", + "tags": [ + "foo.bar", + "tag.value" + ] + } + argumentDocs: + checksum: '- The checksum of the data associated with the image.' + container_format: |- + - (Required) The container format. Must be one of + ami, ari, aki, bare, ovf. + created_at: '- The date the image was created.' + disk_format: |- + - (Required) The disk format. Must be one of + ami, ari, aki, vhd, vmdk, raw, qcow2, vdi, iso. + file: |- + - the trailing path after the glance + endpoint that represent the location of the image + or the path to retrieve it. + id: '- A unique ID assigned by Glance.' + image_cache_path: |- + - (Optional) This is the directory where the images will + be downloaded. Images will be stored with a filename corresponding to + the url's md5 hash. Defaults to "$HOME/.terraform/image_cache" + image_source_url: |- + - (Optional) This is the url of the raw image that will + be downloaded in the image_cache_path before being uploaded to Glance. + Glance is able to download image from internet but the gophercloud library + does not yet provide a way to do so. + Conflicts with local_file_path. + local_file_path: |- + - (Optional) This is the filepath of the raw image file + that will be uploaded to Glance. Conflicts with image_source_url. + metadata: |- + - The metadata associated with the image. + Image metadata allow for meaningfully define the image properties + and tags. See http://docs.openstack.org/developer/glance/metadefs-concepts.html. + min_disk_gb: |- + - (Optional) Amount of disk space (in GB) required to boot image. + Defaults to 0. + min_ram_mb: |- + - (Optional) Amount of ram (in MB) required to boot image. + Defauts to 0. + name: '- (Required) The name of the image.' + owner: '- The id of the opentelekomcloud user who owns the image.' + protected: |- + - (Optional) If true, image will not be deletable. + Defaults to false. + schema: |- + - The path to the JSON-schema that represent + the image or image + size_bytes: '- The size in bytes of the data associated with the image.' + status: |- + - The status of the image. It can be queued, active + or saving. + tags: |- + - (Optional) The tags of the image. It must be a list of strings. + At this time, it is not possible to delete all tags of an image. + update_at: '- The date the image was last updated.' + visibility: |- + - (Optional) The visibility of the image. Must be one of + "public", "private", "community", or "shared". The ability to set the + visibility depends upon the configuration of the OpenTelekomCloud cloud. + importStatements: [] + opentelekomcloud_ims_data_image_v2: + subCategory: Image Management Service (IMS) + description: Manages a IMS Data Image resource within OpenTelekomCloud. + name: opentelekomcloud_ims_data_image_v2 + title: opentelekomcloud_ims_data_image_v2 + examples: + - name: ims_test + manifest: |- + { + "description": "Create an image using an ECS.", + "name": "imt_test", + "tags": { + "foo": "bar", + "key": "value" + }, + "volume_id": "54a6c3a4-8511-4d01-818f-3fe5177cbb06" + } + - name: ims_test_file + manifest: |- + { + "description": "Create an image using a file in the OBS bucket.", + "image_url": "ims-image:centos70.qcow2", + "min_disk": 40, + "name": "ims_test_file", + "os_type": "Linux", + "tags": { + "foo": "bar1", + "key": "value" + } + } + argumentDocs: + cmk_id: |- + - (Optional) The master key used for encrypting an image. + Changing this creates a new image. + data_origin: '- The image resource. The pattern can be ''instance,instance_id'' or ''file,image_url''.' + description: '- (Optional) A description of the image. Changing this creates a new image.' + disk_format: '- The image file format. The value can be vhd, zvhd, raw, zvhd2, or qcow2.' + id: '- A unique ID assigned by IMS.' + image_size: '- The size(bytes) of the image file format.' + image_url: |- + - (Optional) The URL of the external image file in the OBS bucket. + This parameter is mandatory when you create a private image from an external file + uploaded to an OBS bucket. The format is OBS bucket name:Image file name. + Changing this creates a new image. + min_disk: |- + - (Optional) The minimum size of the system disk in the unit of GB. + This parameter is mandatory when you create a private image from an external file + uploaded to an OBS bucket. The value ranges from 1 GB to 1024 GB. + Changing this creates a new image. + name: '- (Required) The name of the image.' + os_type: |- + - (Optional) The OS type. It can only be Windows or Linux. + This parameter is valid when you create a private image from an external file + uploaded to an OBS bucket. Changing this creates a new image. + tags: '- (Optional) The tags of the image.' + visibility: '- Whether the image is visible to other tenants.' + volume_id: |- + - (Optional) The ID of the ECS atatched volume that needs to be converted into an image. + This parameter is mandatory when you create a privete image from an ECS. + Changing this creates a new image. + importStatements: [] + opentelekomcloud_ims_image_v2: + subCategory: Image Management Service (IMS) + description: Manages a IMS Image resource within OpenTelekomCloud. + name: opentelekomcloud_ims_image_v2 + title: opentelekomcloud_ims_image_v2 + examples: + - name: ims_test + manifest: |- + { + "description": "Create an image using an ECS.", + "instance_id": "54a6c3a4-8511-4d01-818f-3fe5177cbb06", + "name": "imt_test", + "tags": { + "foo": "bar", + "key": "value" + } + } + - name: ims_test_file + manifest: |- + { + "description": "Create an image using a file in the OBS bucket.", + "image_url": "ims-image:centos70.qcow2", + "min_disk": 40, + "name": "ims_test_file", + "tags": { + "foo": "bar1", + "key": "value" + } + } + - name: image_volume + manifest: |- + { + "description": "created by Terraform", + "name": "image_volume", + "os_version": "Debian GNU/Linux 10.0.0 64bit", + "tags": { + "foo": "bar", + "key": "value" + }, + "volume_id": "54a6c3a4-8511-4d01-818f-3fe5177cbb07" + } + argumentDocs: + cmk_id: |- + - (Optional) The master key used for encrypting an image. + Changing this creates a new image. + data_origin: '- The image resource. The pattern can be ''instance,instance_id'' or ''file,image_url''.' + description: '- (Optional) A description of the image. Changing this creates a new image.' + disk_format: '- The image file format. The value can be vhd, zvhd, raw, zvhd2, or qcow2.' + file: '- The URL for uploading and downloading the image file.' + id: '- A unique ID assigned by IMS.' + image_size: '- The size(bytes) of the image file format.' + image_url: |- + - (Optional) The URL of the external image file in the OBS bucket. + This parameter is mandatory when you create a private image from an external file + uploaded to an OBS bucket. The format is OBS bucket name:Image file name. + Changing this creates a new image. + instance_id: |- + - (Optional) The ID of the ECS that needs to be converted into an image. + This parameter is mandatory when you create a private image from an ECS. + Changing this creates a new image. + is_config: |- + - (Optional) If automatic configuration is required, set the value to true. + Otherwise, set the value to false. Changing this creates a new image. + max_ram: |- + - (Optional) The maximum memory of the image in the unit of MB. + Changing this creates a new image. + min_disk: |- + - (Optional) The minimum size of the system disk in the unit of GB. + This parameter is mandatory when you create a private image from an external file + uploaded to an OBS bucket. The value ranges from 1 GB to 1024 GB. + Changing this creates a new image. + min_ram: |- + - (Optional) The minimum memory of the image in the unit of MB. + The default value is 0, indicating that the memory is not restricted. + Changing this creates a new image. + name: '- (Required) The name of the image.' + os_version: |- + - (Optional) The OS version. + This parameter is valid when you create a private image from an external file. + This parameter is mandatory when you create a private image from a volume. + uploaded to an OBS bucket. Changing this creates a new image. + tags: '- (Optional) The tags of the image.' + type: |- + - (Optional) The image type. Must be one of ECS, FusionCompute, BMS, + Ironic or IsoImage. Changing this creates a new image. + visibility: '- Whether the image is visible to other tenants.' + volume_id: |- + - (Optional) Specifies the data disk ID. + This parameter is mandatory when you create a private image from a volume. + Changing this creates a new image. + importStatements: [] + opentelekomcloud_kms_grant_v1: + subCategory: Key Management Service (KMS) + description: Manages a KMS Grant resource within OpenTelekomCloud. + name: opentelekomcloud_kms_grant_v1 + title: opentelekomcloud_kms_grant_v1 + examples: + - name: grant_1 + manifest: |- + { + "grantee_principal": "${var.user_id}", + "key_id": "${var.kms_id}", + "name": "my_grant", + "operations": [ + "describe-key", + "create-datakey", + "encrypt-datakey" + ] + } + references: + grantee_principal: var.user_id + key_id: var.kms_id + argumentDocs: + creation_date: |- + - Creation time. The value is a timestamp expressed in the number of + seconds since 00:00:00 UTC on January 1, 1970. + grantee_principal: |- + - (Required) Indicates the ID of the authorized user. + Changing this creates new grant. + issuing_principal: '- Indicates the ID of the user who created the grant.' + key_id: '- (Required) Indicates the ID of the KMS. Changing this creates new grant.' + name: |- + - (Optional) Name of a grant which can be 1 to 255 characters in length + and matches the regular expression ^[a-zA-Z0-9:/_-]{1,255}$. + Changing this creates new grant. + operations: |- + - (Required) Permissions that can be granted. + The valid values are: create-datakey, create-datakey-without-plaintext, + encrypt-datakey, decrypt-datakey, describe-key, create-grant, retire-grant. + Changing this creates new grant. + retiring_principal: |- + - (Optional) Indicates the ID of the retiring user. + Changing this creates new grant. + importStatements: + - terraform import opentelekomcloud_kms_grant_v1.grant_1 4779ab1c-7c1a-44b1-a02e-93dfc361b32d/7056d636-ac60-4663-8a6c-82d3c32c1c64 + opentelekomcloud_kms_key_v1: + subCategory: Key Management Service (KMS) + description: Manages a KMS Key resource within OpenTelekomCloud. + name: opentelekomcloud_kms_key_v1 + title: opentelekomcloud_kms_key_v1 + examples: + - name: key_1 + manifest: |- + { + "is_enabled": true, + "key_alias": "key_1", + "key_description": "first test key", + "pending_days": "7", + "realm": "eu-de-01", + "tags": { + "muh": "kuh" + } + } + argumentDocs: + allow_cancel_deletion: |- + - (Optional) Specifies whether the key is enabled from Pending Deletion state. The value true indicates + that the key state Pending Deletion will be cancelled. + creation_date: '- Creation time (time stamp) of a key.' + default_key_flag: |- + - Identification of a Master Key. The value 1 indicates a Default + Master Key, and the value 0 indicates a key. + domain_id: '- ID of a user domain for the key.' + expiration_time: '- Expiration time.' + id: '- The globally unique identifier for the key.' + is_enabled: |- + - (Optional) Specifies whether the key is enabled. Defaults to true. + Changing this updates the state of existing key. + key_alias: |- + - (Required) The alias in which to create the key. It is required when + we create a new key. Changing this updates the alias of key. + key_description: |- + - (Optional) The description of the key as viewed in OpenTelekomCloud console. + Changing this updates the description of key. + origin: '- Origin of a key. The default value is kms.' + pending_days: |- + - (Optional) Duration in days after which the key is deleted + after destruction of the resource, must be between 7 and 1096 days. Defaults to 7. + It only is used when delete a key. + realm: '- (Optional) Region where a key resides. Changing this creates a new key.' + rotation_enabled: '- (Optional) Specifies whether the key is enabled for rotation.' + rotation_interval: |- + - (Optional) Rotation interval. The value is an integer ranging from 30 to 365. + Set the interval based on how often a CMK is used. + If it is frequently used, set a short interval; otherwise, set a long one. + rotation_number: '- Number of key rotations.' + scheduled_deletion_date: '- Scheduled deletion time (time stamp) of a key.' + tags: '- (Optional) Tags key/value pairs to associate with the AutoScaling Group.' + importStatements: [] + opentelekomcloud_lb_certificate_v2: + subCategory: Elastic Load Balancer (ELB) + description: Manages a ELB Certificate resource within OpenTelekomCloud. + name: opentelekomcloud_lb_certificate_v2 + title: opentelekomcloud_lb_certificate_v2 + examples: + - name: certificate_1 + manifest: |- + { + "certificate": "-----BEGIN CERTIFICATE-----\nMIIDpTCCAo2gAwIBAgIJAKdmmOBYnFvoMA0GCSqGSIb3DQEBCwUAMGkxCzAJBgNV\nBAYTAnh4MQswCQYDVQQIDAJ4eDELMAkGA1UEBwwCeHgxCzAJBgNVBAoMAnh4MQsw\nCQYDVQQLDAJ4eDELMAkGA1UEAwwCeHgxGTAXBgkqhkiG9w0BCQEWCnh4QDE2My5j\nb20wHhcNMTcxMjA0MDM0MjQ5WhcNMjAxMjAzMDM0MjQ5WjBpMQswCQYDVQQGEwJ4\neDELMAkGA1UECAwCeHgxCzAJBgNVBAcMAnh4MQswCQYDVQQKDAJ4eDELMAkGA1UE\nCwwCeHgxCzAJBgNVBAMMAnh4MRkwFwYJKoZIhvcNAQkBFgp4eEAxNjMuY29tMIIB\nIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN\n2s8tZ/6LC3X82fajpVsYqF1xqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYld\niE6Vp8HH5BSKaCWKVg8lGWg1UM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb\n3iyNBmiZ8aZhGw2pI1YwR+15MVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dz\nQ8z1JXWdg8/9Zx7Ktvgwu5PQM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5\nmf2DPkVgM08XAgaLJcLigwD513koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwID\nAQABo1AwTjAdBgNVHQ4EFgQUo5A2tIu+bcUfvGTD7wmEkhXKFjcwHwYDVR0jBBgw\nFoAUo5A2tIu+bcUfvGTD7wmEkhXKFjcwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0B\nAQsFAAOCAQEAWJ2rS6Mvlqk3GfEpboezx2J3X7l1z8Sxoqg6ntwB+rezvK3mc9H0\n83qcVeUcoH+0A0lSHyFN4FvRQL6X1hEheHarYwJK4agb231vb5erasuGO463eYEG\nr4SfTuOm7SyiV2xxbaBKrXJtpBp4WLL/s+LF+nklKjaOxkmxUX0sM4CTA7uFJypY\nc8Tdr8lDDNqoUtMD8BrUCJi+7lmMXRcC3Qi3oZJW76ja+kZA5mKVFPd1ATih8TbA\ni34R7EQDtFeiSvBdeKRsPp8c0KT8H1B4lXNkkCQs2WX5p4lm99+ZtLD4glw8x6Ic\ni1YhgnQbn5E0hz55OLu5jvOkKQjPCW+8Kg==\n-----END CERTIFICATE-----\n", + "description": "terraform test certificate", + "domain": "www.elb.com", + "name": "certificate_1", + "private_key": "-----BEGIN RSA PRIVATE KEY-----\nMIIEowIBAAKCAQEAwZ5UJULAjWr7p6FVwGRQRjFN2s8tZ/6LC3X82fajpVsYqF1x\nqEuUDndDXVD09E4u83MS6HO6a3bIVQDp6/klnYldiE6Vp8HH5BSKaCWKVg8lGWg1\nUM9wZFnlryi14KgmpIFmcu9nA8yV/6MZAe6RSDmb3iyNBmiZ8aZhGw2pI1YwR+15\nMVqFFGB+7ExkziROi7L8CFCyCezK2/oOOvQsH1dzQ8z1JXWdg8/9Zx7Ktvgwu5PQ\nM3cJtSHX6iBPOkMU8Z8TugLlTqQXKZOEgwajwvQ5mf2DPkVgM08XAgaLJcLigwD5\n13koAdtJd5v+9irw+5LAuO3JclqwTvwy7u/YwwIDAQABAoIBACU9S5fjD9/jTMXA\nDRs08A+gGgZUxLn0xk+NAPX3LyB1tfdkCaFB8BccLzO6h3KZuwQOBPv6jkdvEDbx\nNwyw3eA/9GJsIvKiHc0rejdvyPymaw9I8MA7NbXHaJrY7KpqDQyk6sx+aUTcy5jg\niMXLWdwXYHhJ/1HVOo603oZyiS6HZeYU089NDUcX+1SJi3e5Ke0gPVXEqCq1O11/\nrh24bMxnwZo4PKBWdcMBN5Zf/4ij9vrZE+fFzW7vGBO48A5lvZxWU2U5t/OZQRtN\n1uLOHmMFa0FIF2aWbTVfwdUWAFsvAOkHj9VV8BXOUwKOUuEktdkfAlvrxmsFrO/H\nyDeYYPkCgYEA/S55CBbR0sMXpSZ56uRn8JHApZJhgkgvYr+FqDlJq/e92nAzf01P\nRoEBUajwrnf1ycevN/SDfbtWzq2XJGqhWdJmtpO16b7KBsC6BdRcH6dnOYh31jgA\nvABMIP3wzI4zSVTyxRE8LDuboytF1mSCeV5tHYPQTZNwrplDnLQhywcCgYEAw8Yc\nUk/eiFr3hfH/ZohMfV5p82Qp7DNIGRzw8YtVG/3+vNXrAXW1VhugNhQY6L+zLtJC\naKn84ooup0m3YCg0hvINqJuvzfsuzQgtjTXyaE0cEwsjUusOmiuj09vVx/3U7siK\nHdjd2ICPCvQ6Q8tdi8jV320gMs05AtaBkZdsiWUCgYEAtLw4Kk4f+xTKDFsrLUNf\n75wcqhWVBiwBp7yQ7UX4EYsJPKZcHMRTk0EEcAbpyaJZE3I44vjp5ReXIHNLMfPs\nuvI34J4Rfot0LN3n7cFrAi2+wpNo+MOBwrNzpRmijGP2uKKrq4JiMjFbKV/6utGF\nUp7VxfwS904JYpqGaZctiIECgYA1A6nZtF0riY6ry/uAdXpZHL8ONNqRZtWoT0kD\n79otSVu5ISiRbaGcXsDExC52oKrSDAgFtbqQUiEOFg09UcXfoR6HwRkba2CiDwve\nyHQLQI5Qrdxz8Mk0gIrNrSM4FAmcW9vi9z4kCbQyoC5C+4gqeUlJRpDIkQBWP2Y4\n2ct/bQKBgHv8qCsQTZphOxc31BJPa2xVhuv18cEU3XLUrVfUZ/1f43JhLp7gynS2\nep++LKUi9D0VGXY8bqvfJjbECoCeu85vl8NpCXwe/LoVoIn+7KaVIZMwqoGMfgNl\nnEqm7HWkNxHhf8A6En/IjleuddS1sf9e/x+TJN1Xhnt9W6pe7Fk1\n-----END RSA PRIVATE KEY-----\n" + } + argumentDocs: + certificate: '- (Required) The public encrypted key of the Certificate, PEM format.' + create: '- Default is 10 minutes.' + create_time: '- Indicates the creation time.' + delete: '- Default is 5 minutes.' + description: '- (Optional) Human-readable description for the Certificate.' + domain: '- (Optional) The domain of the Certificate.' + expire_time: '- Indicates certificate expiration time.' + name: |- + - (Optional) Human-readable name for the Certificate. Does not have + to be unique. + private_key: |- + - (Optional) The private encrypted key of the Certificate, PEM format. + Required for certificates of type server. + region: |- + - (Optional) 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: |- + - (Optional) The type of certificate the container holds. Either server or client. + Defaults to server if not set. Changing this creates a new LB certificate. + update: '- Default is 10 minutes.' + update_time: '- Indicates the update time.' + importStatements: + - terraform import opentelekomcloud_lb_certificate_v2.certificate_1 7117d38e-4c8f-4624-a505-bd96b97d024c + opentelekomcloud_lb_certificate_v3: + subCategory: Dedicated Load Balancer (DLB) + description: Manages a LB Certificate resource within OpenTelekomCloud. + name: opentelekomcloud_lb_certificate_v3 + title: opentelekomcloud_lb_certificate_v3 + examples: + - name: certificate_1 + manifest: |- + { + "certificate": "-----BEGIN CERTIFICATE-----\nMIIB4TCCAYugAwIBAgIUPXCpWJCiy5mI79NIfenl5KNWPzkwDQYJKoZIhvcNAQEL\nBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\nGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yMTExMDIxMDM3MjBaFw0yMTEy\nMDIxMDM3MjBaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw\nHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwXDANBgkqhkiG9w0BAQEF\nAANLADBIAkEAu+qgVpV6mqbaGW1Qn6eDPzhwentQPPiXwG1665M9+gjW4pUQ0Rud\nBc0fkUU/O+Q0UMT8ZV/I2hSenCVyJoyPEwIDAQABo1MwUTAdBgNVHQ4EFgQUtItI\nIAXZDIEfuvCX7AY3s//wlI8wHwYDVR0jBBgwFoAUtItIIAXZDIEfuvCX7AY3s//w\nlI8wDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAANBAEkgP/JlpVKc4j+Z\nKRcMa7RAXYJqCbRxtpqRU7OOAhDmBnldtS5CTMoh1r7TOGMfM1Npa+kGV5QnjRzI\nFzFSymo=\n-----END CERTIFICATE-----\n", + "description": "terraform test certificate", + "domain": "www.elb.com", + "name": "certificate_1", + "private_key": "-----BEGIN RSA PRIVATE KEY-----\nMIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEAu+qgVpV6mqbaGW1Q\nn6eDPzhwentQPPiXwG1665M9+gjW4pUQ0RudBc0fkUU/O+Q0UMT8ZV/I2hSenCVy\nJoyPEwIDAQABAkAbyksEAv8qt9oxQHVX5xIF23bm5i2rlqf6kTZIeHIF89/NNJ2E\nsejiqFIWqPc5a00Scn+ymdCvjC25JVyup9cBAiEA4a+7WhPmgS54yNHjwkG2pflz\ncfH1V7qPqlBKIGLwZbMCIQDVKCsZ6eoNdQoLVmK0zii8XDCgL8HWMrm/bytbYM9B\nIQIgVdcAXKebEeF6IW/rwDQ8Y2644UsVdTPJdw8o0p6vLw8CIDqm191EiPt09fOS\nrIxVoc3ajCK3oV2ADa5IN6ToKX8hAiBPuNCCIYcZz0tAzWX7I1OYMI3UhJjtrESg\nmYFrsJ4gHw==\n-----END RSA PRIVATE KEY-----\n" + } + argumentDocs: + certificate: '- (Required) The public encrypted key of the Certificate, PEM format.' + createa_at: '- Indicates the creation time.' + description: '- (Optional) Provides supplementary information about the certificate.' + domain: '- (Optional) The domain of the Certificate.' + expire_time: '- Indicates the expiration time.' + name: |- + - (Optional) Specifies the certificate name. Only letters, + digits, underscores, and hyphens are allowed. + private_key: |- + - (Optional) The private encrypted key of the Certificate, PEM format. + Required for certificates of type server. + region: |- + - (Optional) The region in which to obtain the V3 ELB client. + An ELB 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: |- + - (Optional) The type of certificate the container holds. Either server or client. + Defaults to server if not set. Changing this creates a new LB certificate. + updated_at: '- Indicates the update time.' + importStatements: + - terraform import opentelekomcloud_lb_certificate_v3.certificate_1 7117d38e-4c8f-4624-a505-bd96b97d024c + opentelekomcloud_lb_ipgroup_v3: + subCategory: Dedicated Load Balancer (DLB) + description: Manages a LB IpGroup resource within OpenTelekomCloud. + name: opentelekomcloud_lb_ipgroup_v3 + title: opentelekomcloud_lb_ipgroup_v3 + examples: + - name: group_1 + manifest: |- + { + "description": "group description", + "ip_list": [ + { + "description": "one", + "ip": "192.168.50.10" + }, + { + "description": "two", + "ip": "192.168.100.10" + }, + { + "description": "three", + "ip": "192.168.150.10" + } + ], + "name": "group_1" + } + - name: group_1 + manifest: |- + { + "description": "group description", + "name": "group_1" + } + argumentDocs: + created_at: '- Indicates the creation time.' + description: '- (Optional, String) Provides supplementary information about the IP address group.' + ip_list: |- + - (Optional, List) Specifies the IP addresses or CIDR blocks in the IP address group. + Any IP address can be used if this block isn't specified. + ip_list.description: '- (Optional, String) Provides remarks about the IP address group.' + ip_list.ip: |- + - (Required, String) Specifies the IP addresses in the IP address group. + IPv6 is unsupported. The value cannot be an IPv6 address. + listeners: '- Lists the IDs of listeners with which the IP address group is associated.' + name: '- (Optional, String) Specifies the IP address group name.' + project_id: '- (Optional, String) Specifies the project ID of the IP address group.' + updated_at: '- Indicates the update time.' + importStatements: + - terraform import opentelekomcloud_lb_ipgroup_v3.group_1 7117d38e-4c8f-4624-a505-bd96b97d024c + opentelekomcloud_lb_l7policy_v2: + subCategory: Elastic Load Balancer (ELB) + description: Manages a ELB L7 Policy resource within OpenTelekomCloud. + name: opentelekomcloud_lb_l7policy_v2 + title: opentelekomcloud_lb_l7policy_v2 + examples: + - name: l7policy_1 + manifest: |- + { + "action": "REDIRECT_TO_POOL", + "description": "test l7 policy", + "listener_id": "${opentelekomcloud_lb_listener_v2.listener_1.id}", + "name": "test", + "position": 1, + "redirect_pool_id": "${opentelekomcloud_lb_pool_v2.pool_1.id}" + } + references: + listener_id: opentelekomcloud_lb_listener_v2.listener_1.id + redirect_pool_id: opentelekomcloud_lb_pool_v2.pool_1.id + dependencies: + opentelekomcloud_lb_listener_v2.listener_1: |- + { + "loadbalancer_id": "${opentelekomcloud_lb_loadbalancer_v2.loadbalancer_1.id}", + "name": "listener_1", + "protocol": "HTTP", + "protocol_port": 8080 + } + opentelekomcloud_lb_loadbalancer_v2.loadbalancer_1: |- + { + "name": "loadbalancer_1", + "vip_subnet_id": "SUBNET_ID" + } + opentelekomcloud_lb_pool_v2.pool_1: |- + { + "lb_method": "ROUND_ROBIN", + "loadbalancer_id": "${opentelekomcloud_lb_loadbalancer_v2.loadbalancer_1.id}", + "name": "pool_1", + "protocol": "HTTP" + } + argumentDocs: + action: |- + - (Required) The L7 Policy action - can either be REDIRECT_TO_POOL, + or REDIRECT_TO_LISTENER. Changing this creates a new L7 Policy. + admin_state_up: |- + - (Optional) The administrative state of the L7 Policy. + This value can only be true (UP). + description: '- (Optional) Human-readable description for the L7 Policy.' + id: '- The unique ID for the L7 policy.' + listener_id: |- + - (Required) The Listener on which the L7 Policy will be associated with. + Changing this creates a new L7 Policy. + name: |- + - (Optional) Human-readable name for the L7 Policy. Does not have + to be unique. + position: '- (Optional) The position of this policy on the listener. Positions start at 1. Changing this creates a new L7 Policy.' + redirect_listener_id: |- + - (Optional) Requests matching this policy will be redirected to the listener with this ID. + Only valid if action is REDIRECT_TO_LISTENER. + redirect_pool_id: |- + - (Optional) Requests matching this policy will be redirected to the pool with this ID. + Only valid if action is REDIRECT_TO_POOL. + region: |- + - (Optional) 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. + tenant_id: |- + - (Optional) 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. + importStatements: [] + opentelekomcloud_lb_l7rule_v2: + subCategory: Elastic Load Balancer (ELB) + description: Manages a ELB L7 Rule resource within OpenTelekomCloud. + name: opentelekomcloud_lb_l7rule_v2 + title: opentelekomcloud_lb_l7rule_v2 + examples: + - name: l7rule_1 + manifest: |- + { + "compare_type": "EQUAL_TO", + "l7policy_id": "${opentelekomcloud_lb_l7policy_v2.l7policy_1.id}", + "type": "PATH", + "value": "/api" + } + references: + l7policy_id: opentelekomcloud_lb_l7policy_v2.l7policy_1.id + dependencies: + opentelekomcloud_lb_l7policy_v2.l7policy_1: |- + { + "action": "REDIRECT_TO_URL", + "description": "test description", + "listener_id": "${opentelekomcloud_lb_listener_v2.listener_1.id}", + "name": "test", + "position": 1, + "redirect_url": "http://www.example.com" + } + opentelekomcloud_lb_listener_v2.listener_1: |- + { + "loadbalancer_id": "${opentelekomcloud_lb_loadbalancer_v2.loadbalancer_1.id}", + "name": "listener_1", + "protocol": "HTTP", + "protocol_port": 8080 + } + opentelekomcloud_lb_loadbalancer_v2.loadbalancer_1: |- + { + "name": "loadbalancer_1", + "vip_subnet_id": "SUBNET_ID" + } + opentelekomcloud_lb_pool_v2.pool_1: |- + { + "lb_method": "ROUND_ROBIN", + "loadbalancer_id": "${opentelekomcloud_lb_loadbalancer_v2.loadbalancer_1.id}", + "name": "pool_1", + "protocol": "HTTP" + } + argumentDocs: + admin_state_up: |- + - (Optional) The administrative state of the L7 Rule. + The value can only be true (UP). + compare_type: |- + - (Required) The comparison type for the L7 rule - can either be + STARTS_WITH, EQUAL_TO or REGEX + description: '- (Optional) Human-readable description for the L7 Rule.' + id: '- The unique ID for the L7 Rule.' + invert: '- See Argument Reference above.' + key: |- + - (Optional) 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. + l7policy_id: |- + - (Required) The ID of the L7 Policy to query. Changing this creates a new + L7 Rule. + listener_id: '- The ID of the Listener owning this resource.' + region: |- + - (Optional) 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. + tenant_id: |- + - (Optional) 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: '- (Required) The L7 Rule type - can either be HOST_NAME or PATH. Changing this creates a new L7 Rule.' + value: |- + - (Required) The value to use for the comparison. For example, the file type to + compare. + importStatements: [] + opentelekomcloud_lb_listener_v2: + subCategory: Elastic Load Balancer (ELB) + description: Manages a ELB Listener resource within OpenTelekomCloud. + name: opentelekomcloud_lb_listener_v2 + title: opentelekomcloud_lb_listener_v2 + examples: + - name: listener_1 + manifest: |- + { + "loadbalancer_id": "d9415786-5f1a-428b-b35f-2f1523e146d2", + "protocol": "HTTP", + "protocol_port": 8080, + "tags": { + "muh": "kuh" + } + } + - name: listener_1 + manifest: |- + { + "ip_group": [ + { + "enable": false, + "id": "${opentelekomcloud_lb_ipgroup_v3.group_1.id}" + } + ], + "loadbalancer_id": "${opentelekomcloud_lb_loadbalancer_v2.loadbalancer_1.id}", + "name": "listener_1_updated", + "protocol": "HTTP", + "protocol_port": 8080 + } + references: + ip_group.id: opentelekomcloud_lb_ipgroup_v3.group_1.id + loadbalancer_id: opentelekomcloud_lb_loadbalancer_v2.loadbalancer_1.id + dependencies: + opentelekomcloud_lb_ipgroup_v3.group_1: |- + { + "description": "some interesting description 1", + "ip_list": [ + { + "description": "first", + "ip": "192.168.10.10" + } + ], + "name": "group_1" + } + opentelekomcloud_lb_loadbalancer_v2.loadbalancer_1: |- + { + "name": "loadbalancer_1", + "vip_subnet_id": "${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.subnet_id}" + } + argumentDocs: + admin_state_up: |- + - (Optional) The administrative state of the Listener. + A valid value is true (UP) or false (DOWN). + client_ca_tls_container_ref: |- + (Optional) 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. + default_pool_id: |- + - (Optional) The ID of the default pool with which the + Listener is associated. Changing this creates a new Listener. + default_port_id: '- See Argument Reference above.' + default_tls_container_ref: |- + - (Optional) 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. + description: '- (Optional) Human-readable description for the Listener.' + enable: |- + - (Optional, Bool) Specifies whether to enable access control. + true: Access control will be enabled. + false (default): Access control will be disabled. + http2_enable: |- + - (Optional) true to enable HTTP/2 mode of ELB. + HTTP/2 is disabled by default if not set. + id: |- + - (Required, String) 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. + ip_group: '- (Optional, Map) Specifies the IP address group associated with the listener.' + loadbalancer_id: |- + - (Required) The load balancer on which to provision this + Listener. Changing this creates a new Listener. + name: |- + - (Optional) Human-readable name for the Listener. Does not have + to be unique. + protocol: |- + - (Required) The protocol - can either be TCP, HTTP, HTTPS or TERMINATED_HTTPS. + Changing this creates a new Listener. + protocol_port: |- + - (Required) The port on which to listen for client traffic. + Changing this creates a new Listener. + sni_container_refs: |- + - (Optional) 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. + tags: '- (Optional) Tags key/value pairs to associate with the loadbalancer listener.' + tenant_id: |- + - (Optional) 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. + tls_ciphers_policy: |- + - (Optional) 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. + transparent_client_ip_enable: |- + - (Optional) 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: |- + - (Optional, String) 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. + importStatements: + - terraform import opentelekomcloud_lb_listener_v2.listener_1 7117d38e-4c8f-4624-a505-bd96b97d024c + opentelekomcloud_lb_listener_v3: + subCategory: Dedicated Load Balancer (DLB) + description: Manages a LB Listener resource within OpenTelekomCloud. + name: opentelekomcloud_lb_listener_v3 + title: opentelekomcloud_lb_listener_v3 + examples: + - name: listener_1 + manifest: |- + { + "loadbalancer_id": "${var.loadbalancer_id}", + "protocol": "HTTP", + "protocol_port": 8080, + "tags": { + "muh": "kuh" + } + } + references: + loadbalancer_id: var.loadbalancer_id + - name: listener_1 + manifest: |- + { + "advanced_forwarding": true, + "description": "some interesting description", + "insert_headers": [ + { + "forwarded_host": true + } + ], + "ip_group": [ + { + "enable": true, + "id": "${opentelekomcloud_lb_ipgroup_v3.group_1.id}" + } + ], + "loadbalancer_id": "${opentelekomcloud_lb_loadbalancer_v3.loadbalancer_1.id}", + "name": "listener_1", + "protocol": "HTTP", + "protocol_port": 8080, + "sni_match_algo": "wildcard" + } + references: + ip_group.id: opentelekomcloud_lb_ipgroup_v3.group_1.id + loadbalancer_id: opentelekomcloud_lb_loadbalancer_v3.loadbalancer_1.id + dependencies: + opentelekomcloud_lb_ipgroup_v3.group_1: |- + { + "description": "some interesting description 2", + "ip_list": [ + { + "description": "one", + "ip": "192.168.10.11" + } + ], + "name": "group_2" + } + argumentDocs: + HTTP: and HTTPS listeners, the value ranges from 0 to 4000, and the default value is 60. + TCP: listeners, the value ranges from 10 to 4000, and the default value is 300. + UDP: |- + listeners, this parameter is not available. An error will be returned if you + configure this parameter for UDP listeners. + advanced_forwarding: |- + - (Optional, ForceNew, Bool) Specifies whether to enable advanced forwarding. + If advanced forwarding is enabled, more flexible forwarding policies and rules are supported. + The value can be true (enable advanced forwarding) or false (disable advanced forwarding), + and the default value is false. Changing this creates a new Listener. + client_ca_tls_container_ref: '- (Optional, String) Specifies the ID of the CA certificate used by the listener.' + client_timeout: |- + - (Optional, Int) Specifies the timeout duration for waiting for a request from a client, in seconds. + This parameter is available only for HTTP and HTTPS listeners. The value ranges from 1 to 300, and + the default value is 60. An error will be returned if you configure this parameter for TCP and UDP listeners. + created_at: '- Indicates the creation time.' + default_pool_id: |- + - (Optional, String) 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. + default_tls_container_ref: '- (Optional, String) Specifies the ID of the server certificate used by the listener.' + description: '- (Optional, String) Provides supplementary information about the listener.' + enable: |- + - (Optional, Bool) Specifies whether to enable access control. + true: Access control will be enabled. + false (default): Access control will be disabled. + forward_elb_ip: |- + - (Optional, Bool) Specifies whether to transparently transmit the load balancer EIP + to backend servers. If forward_elb_ip is set to true, the load balancer EIP will be stored in + the HTTP header and passed to backend servers. + forwarded_for_port: |- + - (Optional, Bool) Specifies whether to transparently transmit the source port of + the client to backend servers. If forwarded_for_port is set to true, the source port of the + client will be stored in the HTTP header and passed to backend servers. + forwarded_host: |- + - (Optional, Bool) Specifies whether to rewrite the X-Forwarded-Host header. + If forwarded_host is set to true, X-Forwarded-Host in the request header from the clients + can be set to Host in the request header sent from the load balancer to backend servers. + forwarded_port: |- + - (Optional, Bool) Specifies whether to transparently transmit the listening port of + the load balancer to backend servers. If forwarded_port is set to true, the listening port of + the load balancer will be stored in the HTTP header and passed to backend servers. + http2_enable: |- + - (Optional, Bool) Specifies whether to use HTTP/2. This parameter is available only for HTTPS + listeners. If you configure this parameter for other types of listeners, it will not take effect. Enable + HTTP/2 if you want the clients to use HTTP/2 to communicate with the load balancer. + However, connections between the load balancer and backend servers use HTTP/1.x by default. + id: |- + - (Required, String) 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. + insert_headers: '- (Optional, List) Specifies the HTTP header fields.' + ip_group: '- (Optional, List) Specifies the IP address group associated with the listener.' + keep_alive_timeout: '- (Optional, Int) Specifies the idle timeout duration, in seconds.' + loadbalancer_id: '- (Required, ForceNew, String) Specifies the ID of the load balancer that the listener is added to.' + member_retry_enable: |- + - (Optional, Bool) 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. + member_timeout: |- + - (Optional, Int) Specifies the timeout duration for waiting for a request from a + backend server, in seconds. This parameter is available only for HTTP and HTTPS listeners. + The value ranges from 1 to 300, and the default value is 60. An error will be returned if + you configure this parameter for TCP and UDP listeners. + name: '- (Optional, String) Specifies the listener name.' + protocol: |- + - (Required, ForceNew, String) The protocol - can either be TCP, HTTP, HTTPS or UDP. + Changing this creates a new Listener. + protocol_port: '- (Required, ForceNew, Int) Specifies the port used by the listener. Changing this creates a new Listener.' + security_policy_id: '- (Optional, String) Specifies the ID of the custom security policy.' + sni_container_refs: |- + - (Optional, List) 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. + sni_match_algo: |- + - (Optional, String) Specifies how wildcard domain name matches with the SNI certificates + used by the listener. + tags: '- (Optional, ForceNew, Map) Tags key/value pairs to associate with the loadbalancer listener.' + tls_ciphers_policy: |- + - (Optional, String) Specifies the security policy that will be used by the listener. + This parameter is available only for HTTPS listeners. An error will be returned if the protocol + of the listener is not HTTPS. Possible values are: tls-1-0, tls-1-1, tls-1-0-inherit, tls-1-2, + tls-1-2-strict, tls-1-2-fs, tls-1-0-with-1-3, tls-1-2-fs-with-1-3, hybrid-policy-1-0, tls-1-2-strict-no-cbc. + type: |- + - (Optional, String) 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. + updated_at: '- Indicates the update time.' + importStatements: + - terraform import opentelekomcloud_lb_listener_v3.listener_1 7117d38e-4c8f-4624-a505-bd96b97d024c + opentelekomcloud_lb_loadbalancer_v2: + subCategory: Elastic Load Balancer (ELB) + description: Manages a ELB Loadbalancer resource within OpenTelekomCloud. + name: opentelekomcloud_lb_loadbalancer_v2 + title: opentelekomcloud_lb_loadbalancer_v2 + examples: + - name: lb_1 + manifest: |- + { + "tags": { + "muh": "kuh" + }, + "vip_subnet_id": "d9415786-5f1a-428b-b35f-2f1523e146d2" + } + - name: lb_1 + manifest: |- + { + "vip_subnet_id": "${opentelekomcloud_vpc_subnet_v1.private.subnet_id}" + } + references: + vip_subnet_id: opentelekomcloud_vpc_subnet_v1.private.subnet_id + dependencies: + opentelekomcloud_vpc_subnet_v1.private: |- + { + "cidr": "${cidrsubnet(opentelekomcloud_vpc_v1.main.cidr, 8, 0)}", + "dns_list": [ + "1.1.1.1", + "8.8.8.8" + ], + "gateway_ip": "${cidrhost(cidrsubnet(opentelekomcloud_vpc_v1.main.cidr, 8, 0), 1)}", + "name": "${opentelekomcloud_vpc_v1.main.name}-private", + "vpc_id": "${opentelekomcloud_vpc_v1.main.id}" + } + opentelekomcloud_vpc_v1.main: |- + { + "cidr": "192.168.0.0/16", + "name": "test-vpc-1" + } + - name: lb_1 + manifest: |- + { + "name": "example-loadbalancer", + "vip_subnet_id": "d9415786-5f1a-428b-b35f-2f1523e146d2" + } + dependencies: + opentelekomcloud_networking_floatingip_associate_v2.associate: |- + { + "floating_ip": "${var.floating_ip_address}", + "port_id": "${opentelekomcloud_lb_loadbalancer_v2.lb_1.vip_port_id}" + } + argumentDocs: + admin_state_up: |- + - (Optional) The administrative state of the loadbalancer. + A valid value is only true (UP). + description: '- (Optional) Human-readable description for the loadbalancer.' + loadbalancer_provider: |- + - (Optional) The name of the provider. Changing this + creates a new loadbalancer. + name: |- + - (Optional) Human-readable name for the loadbalancer. Does not have + to be unique. + tags: '- (Optional) Tags key/value pairs to associate with the loadbalancer.' + tenant_id: |- + - (Optional) 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. + vip_address: |- + - (Optional) The ip address of the load balancer. + Changing this creates a new loadbalancer. + vip_port_id: '- The Port ID of the Load Balancer IP.' + vip_subnet_id: |- + - (Required) 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. + importStatements: [] + opentelekomcloud_lb_loadbalancer_v3: + subCategory: Dedicated Load Balancer (DLB) + description: Manages a LB Loadbalancer resource within OpenTelekomCloud. + name: opentelekomcloud_lb_loadbalancer_v3 + title: opentelekomcloud_lb_loadbalancer_v3 + examples: + - name: lb_1 + manifest: |- + { + "availability_zones": [ + "${var.az}" + ], + "network_ids": [ + "${var.network_id}" + ], + "router_id": "${var.router_id}", + "tags": { + "muh": "kuh" + } + } + references: + router_id: var.router_id + - name: lb_1 + manifest: |- + { + "availability_zones": [ + "${var.az}" + ], + "network_ids": [ + "${opentelekomcloud_vpc_subnet_v1.this.network_id}" + ], + "subnet_id": "${opentelekomcloud_vpc_subnet_v1.this.subnet_id}" + } + references: + subnet_id: opentelekomcloud_vpc_subnet_v1.this.subnet_id + dependencies: + opentelekomcloud_vpc_subnet_v1.this: |- + { + "cidr": "${cidrsubnet(opentelekomcloud_vpc_v1.this.cidr, 8, 0)}", + "dns_list": [ + "1.1.1.1", + "8.8.8.8" + ], + "gateway_ip": "${cidrhost(cidrsubnet(opentelekomcloud_vpc_v1.this.cidr, 8, 0), 1)}", + "name": "${opentelekomcloud_vpc_v1.this.name}-private", + "vpc_id": "${opentelekomcloud_vpc_v1.this.id}" + } + opentelekomcloud_vpc_v1.this: |- + { + "cidr": "192.168.0.0/16", + "name": "test-vpc-1" + } + - name: lb_1 + manifest: |- + { + "availability_zones": [ + "${var.az}" + ], + "name": "example-loadbalancer", + "network_ids": [ + "${var.network_id}" + ], + "public_ip": [ + { + "bandwidth_name": "lb-bandwidth", + "bandwidth_share_type": "PER", + "bandwidth_size": 10, + "ip_type": "5_bgp" + } + ], + "subnet_id": "${var.subnet_id}" + } + references: + subnet_id: var.subnet_id + - name: loadbalancer_1 + manifest: |- + { + "availability_zones": [ + "eu-de-01" + ], + "name": "loadbalancer_1", + "network_ids": [ + "${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.network_id}" + ], + "public_ip": [ + { + "id": "${opentelekomcloud_networking_floatingip_v2.fip_1.id}" + } + ], + "router_id": "${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.vpc_id}" + } + references: + public_ip.id: opentelekomcloud_networking_floatingip_v2.fip_1.id + router_id: data.opentelekomcloud_vpc_subnet_v1.shared_subnet.vpc_id + dependencies: + opentelekomcloud_networking_floatingip_v2.fip_1: '{}' + - name: loadbalancer_1 + manifest: |- + { + "availability_zones": [ + "eu-de-01" + ], + "name": "loadbalancer_1", + "network_ids": [ + "${opentelekomcloud_vpc_subnet_v1.this.network_id}" + ], + "public_ip": [ + { + "id": "${opentelekomcloud_vpc_eip_v1.fip_1.id}" + } + ], + "router_id": "${opentelekomcloud_vpc_subnet_v1.this.vpc_id}" + } + references: + public_ip.id: opentelekomcloud_vpc_eip_v1.fip_1.id + router_id: opentelekomcloud_vpc_subnet_v1.this.vpc_id + dependencies: + opentelekomcloud_vpc_eip_v1.fip_1: |- + { + "bandwidth": [ + { + "charge_mode": "traffic", + "name": "eip", + "share_type": "PER", + "size": 100 + } + ], + "publicip": [ + { + "type": "5_bgp" + } + ] + } + - name: loadbalancer_1 + manifest: |- + { + "availability_zones": [ + "eu-de-01" + ], + "name": "loadbalancer_1", + "network_ids": [ + "${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.network_id}" + ], + "public_ip": [ + { + "bandwidth_name": "lb_band", + "bandwidth_share_type": "PER", + "bandwidth_size": 10, + "ip_type": "5_bgp" + } + ], + "router_id": "${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.vpc_id}", + "tags": { + "kuh": "value-create", + "muh": "value-create" + } + } + references: + router_id: data.opentelekomcloud_vpc_subnet_v1.shared_subnet.vpc_id + dependencies: + opentelekomcloud_vpc_bandwidth_associate_v2.associate: |- + { + "bandwidth": "${opentelekomcloud_vpc_bandwidth_v2.bw.id}", + "floating_ips": [ + "${opentelekomcloud_lb_loadbalancer_v3.loadbalancer_1.public_ip.0.id}" + ] + } + opentelekomcloud_vpc_bandwidth_v2.bw: |- + { + "name": "lb_band", + "size": 20 + } + argumentDocs: + admin_state_up: '- (Optional) The administrative state of the LoadBalancer. A valid value is only true (UP).' + availability_zones: |- + - (Required) Specifies the availability zones where the LoadBalancer will be located. + Changing this creates a new LoadBalancer. + created_at: '- The time the LoadBalancer was created.' + description: '- (Optional) Provides supplementary information about the load balancer.' + ip_target_enable: '- (Optional) The value can be true (enabled) or false (disabled).' + l4_flavor: '- (Optional) The ID of the Layer-4 flavor.' + l7_flavor: '- (Optional) The ID of the Layer-7 flavor.' + name: '- (Optional) The LoadBalancer name.' + network_ids: '- (Required) Specifies the subnet Network ID.' + public_ip: |- + - (Optional) The elastic IP address of the instance. The public_ip structure + is described below. Changing this creates a new LoadBalancer. + public_ip.bandwidth_charge_mode: '- (Optional) Bandwidth billing type. Possible value is traffic.' + public_ip.bandwidth_name: '- (Optional) Bandwidth name. Required when creating a new EIP.' + public_ip.bandwidth_share_type: |- + - (Optional) Bandwidth sharing type. Possible values are: PER, WHOLE. + Required when creating a new EIP. + public_ip.bandwidth_size: '- (Optional) Bandwidth size. Required when creating a new EIP.' + public_ip.deletion_protection: |- + - (Optional) Specifies whether to enable deletion protection for the load balancer. + true: Enable deletion protection. + false (default): Disable deletion protection. + public_ip.id: '- (Optional) ID of an existing elastic IP. Required when using existing EIP.' + public_ip.ip_type: |- + - (Optional) Elastic IP type. The value can be 5_bgp or 5_mailbgp. + Required when creating a new EIP. + router_id: |- + - (Optional) ID of the router (or VPC) this LoadBalancer belongs to. Changing + this creates a new LoadBalancer. + subnet_id: '- (Optional) The ID of the subnet to which the LoadBalancer belongs. Required when using vip_address.' + updated_at: '- The time the LoadBalancer was last updated.' + vip_address: '- (Optional) The ip address of the LoadBalancer. Changing this creates a new LoadBalancer.' + vip_port_id: '- The Port ID of the Load Balancer IP.' + importStatements: [] + opentelekomcloud_lb_member_v2: + subCategory: Elastic Load Balancer (ELB) + description: Manages a ELB Member resource within OpenTelekomCloud. + name: opentelekomcloud_lb_member_v2 + title: opentelekomcloud_lb_member_v2 + examples: + - name: member1 + manifest: |- + { + "address": "192.168.199.23", + "pool_id": "${var.pool_id}", + "protocol_port": 8080, + "subnet_id": "${var.subnet_id}" + } + references: + pool_id: var.pool_id + subnet_id: var.subnet_id + argumentDocs: + address: |- + - (Required) The IP address of the member to receive traffic from + the load balancer. Changing this creates a new member. + admin_state_up: |- + - (Optional) The administrative state of the member. + A valid value is true (UP) or false (DOWN). + id: '- The unique ID for the member.' + name: '- (Optional) Human-readable name for the member.' + pool_id: |- + - (Required) The id of the pool that this member will be + assigned to. + protocol_port: |- + - (Required) The port on which to listen for client traffic. + Changing this creates a new member. + subnet_id: '- (Required) The subnet in which to access the member' + tenant_id: |- + - (Optional) 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. + weight: |- + - (Optional) 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 + importStatements: [] + opentelekomcloud_lb_member_v3: + subCategory: Dedicated Load Balancer (DLB) + description: Manages a LB Member resource within OpenTelekomCloud. + name: opentelekomcloud_lb_member_v3 + title: opentelekomcloud_lb_member_v3 + examples: + - name: member + manifest: |- + { + "address": "${cidrhost(var.subnet_cidr, 3)}", + "name": "member-1", + "pool_id": "${opentelekomcloud_lb_pool_v3.pool.id}", + "protocol_port": 8080 + } + references: + pool_id: opentelekomcloud_lb_pool_v3.pool.id + dependencies: + opentelekomcloud_lb_loadbalancer_v3.lb: |- + { + "availability_zones": [ + "${var.availability_zone}" + ], + "ip_target_enable": true, + "name": "loadbalancer_1", + "network_ids": [ + "${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.network_id}" + ], + "router_id": "${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.vpc_id}" + } + opentelekomcloud_lb_pool_v3.pool: |- + { + "lb_algorithm": "ROUND_ROBIN", + "loadbalancer_id": "${opentelekomcloud_lb_loadbalancer_v3.lb.id}", + "name": "pool_1", + "protocol": "TCP" + } + argumentDocs: + "0": ', the backend server will not accept new requests.' + IPv4: subnets are supported. + NO_MONITOR: ': No health check is configured for the backend server group to which the backend server belongs.' + OFFLINE: ': The cloud server used as the backend server is stopped or does not exist.' + ONLINE: ': The backend server is running normally.' + address: '- (Required) Specifies the IP address of the backend server.' + ip_version: '- Version of IP based on the address parameter. The value can be v4 or v6.' + lb_algorithm: |- + is set to SOURCE_IP for the backend server group that contains the + backend server. + member_id: '- ID of the pool member.' + name: '- (Optional) Specifies the backend server name. The value is a string of 0 to 255 characters.' + operating_status: '- Specifies the operating status of the backend server.' + project_id: '- (Optional) Specifies the project ID.' + protocol_port: |- + - (Required) Specifies the port used by the backend server to receive requests. The value should be a + valid port. + subnet_id: ', for example, 192.168.3.11.' + weight: '- (Optional) Specifies the weight of the backend server.' + importStatements: [] + opentelekomcloud_lb_monitor_v2: + subCategory: Elastic Load Balancer (ELB) + description: Manages a ELB Monitor resource within OpenTelekomCloud. + name: opentelekomcloud_lb_monitor_v2 + title: opentelekomcloud_lb_monitor_v2 + examples: + - name: monitor_1 + manifest: |- + { + "delay": 20, + "max_retries": 5, + "pool_id": "${opentelekomcloud_lb_pool_v2.pool_1.id}", + "timeout": 10, + "type": "HTTP", + "url_path": "/" + } + references: + pool_id: opentelekomcloud_lb_pool_v2.pool_1.id + argumentDocs: + admin_state_up: |- + - (Optional) The administrative state of the monitor. + A valid value is true (UP) or false (DOWN). + delay: '- (Required) The time, in seconds, between sending probes to members.' + domain_name: '- (Optional) The domain_name of the HTTP request during the health check.' + expected_codes: |- + - (Optional) 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". + http_method: |- + - (Optional) 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. + id: '- The unique ID for the monitor.' + max_retries: |- + - (Required) Number of permissible ping failures before + changing the member's status to INACTIVE. Must be a number between 1 and 10. + monitor_port: |- + - (Optional) 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. + name: '- (Optional) The Name of the Monitor.' + pool_id: '- (Required) The id of the pool that this monitor will be assigned to.' + tenant_id: |- + - (Optional) 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. + timeout: |- + - (Required) 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: |- + - (Required) 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. + url_path: |- + - (Optional) Required for HTTP types. URI path that will be + accessed if monitor type is HTTP. + importStatements: [] + opentelekomcloud_lb_monitor_v3: + subCategory: Dedicated Load Balancer (DLB) + description: Manages a LB Monitor resource within OpenTelekomCloud. + name: opentelekomcloud_lb_monitor_v3 + title: opentelekomcloud_lb_monitor_v3 + examples: + - name: monitor + manifest: |- + { + "delay": 3, + "max_retries": 5, + "max_retries_down": 1, + "monitor_port": 8080, + "pool_id": "${opentelekomcloud_lb_pool_v3.pool.id}", + "timeout": 30, + "type": "HTTP" + } + references: + pool_id: opentelekomcloud_lb_pool_v3.pool.id + dependencies: + opentelekomcloud_lb_loadbalancer_v3.lb: |- + { + "availability_zones": [ + "${var.availability_zone}" + ], + "name": "loadbalancer_1", + "network_ids": [ + "${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.network_id}" + ], + "router_id": "${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.vpc_id}" + } + opentelekomcloud_lb_pool_v3.pool: |- + { + "lb_algorithm": "ROUND_ROBIN", + "loadbalancer_id": "${opentelekomcloud_lb_loadbalancer_v3.lb.id}", + "protocol": "HTTP" + } + argumentDocs: + /: . + GET: ', HEAD, POST, PUT, DELETE, TRACE, OPTIONS, CONNECT, or PATCH.' + HTTP: . + TCP: ', UDP_CONNECT, HTTP, HTTPS, or PING.' + admin_state_up: |- + - (Optional) Specifies the administrative status of the health check. + true indicates that the health check is enabled, and false indicates that the health check is disabled. + delay: '- (Required) Specifies the interval between health checks, in seconds.' + domain_name: '- (Optional) Specifies the domain name that HTTP requests are sent to during the health check.' + expected_codes: |- + - (Optional) Specifies the expected HTTP status code. This parameter will take effect only + when type is set to HTTP. + http_method: '- (Optional) Specifies the HTTP method.' + id: '- Specifies the health check (monitor) ID.' + max_retries: |- + - (Required) Specifies the number of consecutive health checks when the health check result of a backend + server changes from OFFLINE to ONLINE. + max_retries_down: |- + - (Optional) Specifies the number of consecutive health checks when the health check result of a + backend server changes from ONLINE to OFFLINE. + monitor_port: |- + - (Optional) Specifies the port used for the health check. If this parameter is left blank, the port of + the backend server group will be used by default. + name: '- (Optional) Specifies the health check name.' + pool_id: |- + - (Required) Specifies the ID of the backend server group for which the health check is configured. + Changing this creates a new monitor. + project_id: '- (Optional) Specifies the project ID. Changing this creates a new monitor.' + timeout: |- + - (Required) Specifies the maximum time required for waiting for a response from the health check, in + seconds. + type: '- (Required) Specifies the health check protocol.' + url_path: '- (Optional) Specifies the HTTP request path for the health check.' + importStatements: + - terraform import opentelekomcloud_lb_monitor_v3.monitor b4ef7345-cf1a-41ca-8baa-941466a66853 + opentelekomcloud_lb_policy_v3: + subCategory: Dedicated Load Balancer (DLB) + description: Manages a LB Policy resource within OpenTelekomCloud. + name: opentelekomcloud_lb_policy_v3 + title: opentelekomcloud_lb_policy_v3 + examples: + - name: this + manifest: |- + { + "action": "REDIRECT_TO_POOL", + "listener_id": "${opentelekomcloud_lb_listener_v3.this.id}", + "position": 37, + "redirect_pool_id": "${opentelekomcloud_lb_pool_v3.this.id}" + } + references: + listener_id: opentelekomcloud_lb_listener_v3.this.id + redirect_pool_id: opentelekomcloud_lb_pool_v3.this.id + dependencies: + opentelekomcloud_lb_listener_v3.this: |- + { + "loadbalancer_id": "${opentelekomcloud_lb_loadbalancer_v3.this.id}", + "protocol": "HTTP", + "protocol_port": 8080 + } + opentelekomcloud_lb_loadbalancer_v3.this: |- + { + "availability_zones": [ + "${var.az}" + ], + "network_ids": [ + "${var.network_id}" + ], + "router_id": "${var.router_id}" + } + opentelekomcloud_lb_pool_v3.this: |- + { + "lb_algorithm": "ROUND_ROBIN", + "loadbalancer_id": "${opentelekomcloud_lb_loadbalancer_v3.this.id}", + "protocol": "HTTP" + } + - name: this + manifest: |- + { + "action": "FIXED_RESPONSE", + "fixed_response_config": [ + { + "content_type": "text/plain", + "message_body": "Fixed Response", + "status_code": "200" + } + ], + "listener_id": "${opentelekomcloud_lb_listener_v3.this.id}", + "position": 37, + "priority": 10 + } + references: + listener_id: opentelekomcloud_lb_listener_v3.this.id + dependencies: + opentelekomcloud_lb_listener_v3.this: |- + { + "advanced_forwarding": true, + "loadbalancer_id": "${opentelekomcloud_lb_loadbalancer_v3.this.id}", + "protocol": "HTTP", + "protocol_port": 8080 + } + opentelekomcloud_lb_loadbalancer_v3.this: |- + { + "availability_zones": [ + "${var.az}" + ], + "network_ids": [ + "${var.network_id}" + ], + "router_id": "${var.router_id}" + } + opentelekomcloud_lb_pool_v3.this: |- + { + "lb_algorithm": "ROUND_ROBIN", + "loadbalancer_id": "${opentelekomcloud_lb_loadbalancer_v3.this.id}", + "protocol": "HTTP" + } + - name: this + manifest: |- + { + "action": "REDIRECT_TO_URL", + "listener_id": "${opentelekomcloud_lb_listener_v3.this.id}", + "position": 37, + "priority": 10, + "redirect_url": "https://www.google.com:443", + "redirect_url_config": [ + { + "query": "name=my_name", + "status_code": "301" + } + ] + } + references: + listener_id: opentelekomcloud_lb_listener_v3.this.id + dependencies: + opentelekomcloud_lb_listener_v3.this: |- + { + "advanced_forwarding": true, + "loadbalancer_id": "${opentelekomcloud_lb_loadbalancer_v3.this.id}", + "protocol": "HTTP", + "protocol_port": 8080 + } + opentelekomcloud_lb_loadbalancer_v3.this: |- + { + "availability_zones": [ + "${var.az}" + ], + "network_ids": [ + "${var.network_id}" + ], + "router_id": "${var.router_id}" + } + opentelekomcloud_lb_pool_v3.this: |- + { + "lb_algorithm": "ROUND_ROBIN", + "loadbalancer_id": "${opentelekomcloud_lb_loadbalancer_v3.this.id}", + "protocol": "HTTP" + } + argumentDocs: + HOST_NAME: |- + , the value can contain letters, digits, hyphens -, and periods . + and must start with a letter or digit. If you want to use a wildcard domain name, enter an asterisk * + as the leftmost label of the domain name. + If type is set to PATH and compare_type to STARTS_WITH or EQUAL_TO, the value must start with + a slash / and can contain only letters, digits, and special characters _~';@^-%#&$.*+?,=!:|/()[]{}. + action: |- + - (Required) The Policy action - can either be REDIRECT_TO_POOL, + or REDIRECT_TO_LISTENER. Changing this creates a new Policy. + compare_type: |- + - (Required) - Specifies how requests are matched with the domain name or URL. + The values can be: EQUAL_TO, REGEX, STARTS_WITH. + content_type: '- (Optional) - Specifies the format of the response body.' + description: '- (Optional) Provides supplementary information about the forwarding policy.' + fixed_response_config: |- + - (Optional) Specifies the configuration of the page that will be returned. + This parameter will take effect when advanced_forwarding is set to true. + If this parameter is passed and advanced_forwarding is set to false, an error will be returned. + Not available in eu-nl. + host: |- + - (Optional) - Specifies the host name that requests are redirected to. + The value can contain only letters, digits, hyphens (-), and periods (.) and must start with a letter or digit. + The default value is ${host}, indicating that the host of the request will be used. + id: '- The unique ID for the policy.' + listener_id: |- + - (Required) The Listener on which the Policy will be associated with. + Changing this creates a new Policy. + message_body: '- (Optional) - Specifies the content of the response message body.' + name: '- (Optional) Specifies the forwarding policy name.' + path: |- + - (Optional) - Specifies the path that requests are redirected to. + The default value is ${path}, indicating that the path of the request will be used. + The value can contain only letters, digits, and special characters _~';@^- %#&$.*+?,=!:|/()[]{} + and must start with a slash (/). + pool_id: '- (Required) - Specifies the ID of the backend server group.' + port: |- + - (Optional) - Specifies the port that requests are redirected to. The default value is ${port}, + indicating that the port of the request will be used. + position: |- + - (Optional) The position of this policy on the listener. Positions start at 1. + Changing this creates a new Policy. + priority: |- + - (Optional) Specifies the forwarding policy priority. + A smaller value indicates a higher priority. The value must be unique for forwarding policies of the same listener. + This parameter will take effect only when advanced_forwarding is set to true. + If this parameter is passed and advanced_forwarding is set to false, an error will be returned. + This parameter is unsupported for shared load balancers and not available in eu-nl. + project_id: |- + - (Optional) 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. + protocol: |- + - (Optional) - Specifies the protocol for redirection. The value can be HTTP, HTTPS, + or ${protocol}. + The default value is ${protocol}, indicating that the protocol of the request will be used. + query: |- + - (Optional) - Specifies the query string set in the URL for redirection. + The default value is ${query}, indicating that the query string of the request will be used. + redirect_listener_id: |- + - (Optional) Requests matching this policy will be redirected to the listener with this ID. + Only valid if action is REDIRECT_TO_LISTENER. + redirect_pool_id: |- + - (Optional) Requests matching this policy will be redirected to the pool with this ID. + Only valid if action is REDIRECT_TO_POOL. + redirect_pools_config: |- + - (Optional) 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. + redirect_url: '- (Optional) Specifies the URL to which requests are forwarded.' + redirect_url_config: |- + - (Optional) Specifies the URL to which requests are forwarded. + For dedicated load balancers, This parameter will take effect when advanced_forwarding is set to true. + If it is passed when advanced_forwarding is set to false, an error will be returned. Not available in eu-nl. + rules: '- (Optional) Lists the forwarding rules in the forwarding policy.' + status: '- Specifies the provisioning status of the forwarding policy.' + status_code: |- + - (Required) Specifies the fixed HTTP status code configured in the forwarding rule. + The value can be any integer in the range of 200-299, 400-499, or 500-599. + type: '- (Required) Specifies the match content. The value can be one of the following: HOST_NAME, PATH.' + value: |- + - (Required) Specifies the value of the match item. For example, if a domain name is + used for matching, value is the domain name. + weight: '- (Required) - Specifies the weight of the backend server group. The value ranges from 0 to 100.' + importStatements: + - terraform import opentelekomcloud_lb_policy_v3.this 8a7a79c2-cf17-4e65-b2ae-ddc8bfcf6c74 + opentelekomcloud_lb_pool_v2: + subCategory: Elastic Load Balancer (ELB) + description: Manages a ELB Pool resource within OpenTelekomCloud. + name: opentelekomcloud_lb_pool_v2 + title: opentelekomcloud_lb_pool_v2 + examples: + - name: pool_1 + manifest: |- + { + "lb_method": "ROUND_ROBIN", + "listener_id": "d9415786-5f1a-428b-b35f-2f1523e146d2", + "persistence": [ + { + "cookie_name": "testCookie", + "type": "APP_COOKIE" + } + ], + "protocol": "HTTP" + } + argumentDocs: + admin_state_up: |- + - (Optional) The administrative state of the pool. + A valid value is true (UP) or false (DOWN). + cookie_name: |- + - (Optional; Required if type = APP_COOKIE) The name of the cookie if persistence mode is set + appropriately. + description: '- (Optional) Human-readable description for the pool.' + id: '- The unique ID for the pool.' + lb_method: |- + - (Required) The load balancing algorithm to + distribute traffic to the pool's members. Must be one of + ROUND_ROBIN, LEAST_CONNECTIONS, or SOURCE_IP. + listener_id: |- + - (Optional) The Listener on which the members of the pool + will be associated with. Changing this creates a new pool. + loadbalancer_id: |- + - (Optional) The load balancer on which to provision this + pool. Changing this creates a new pool. + name: '- (Optional) Human-readable name for the pool.' + persistence: |- + - (Optional) 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. + protocol: |- + - (Required) The protocol - can either be TCP, UDP or HTTP. + Changing this creates a new pool. + tenant_id: |- + - (Optional) 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: |- + - (Optional; Required if type != null) The type of persistence mode. The current specification + supports SOURCE_IP, HTTP_COOKIE, and APP_COOKIE. + importStatements: [] + opentelekomcloud_lb_pool_v3: + subCategory: Dedicated Load Balancer (DLB) + description: Manages a LB Pool resource within OpenTelekomCloud. + name: opentelekomcloud_lb_pool_v3 + title: opentelekomcloud_lb_pool_v3 + examples: + - name: pool + manifest: |- + { + "lb_algorithm": "ROUND_ROBIN", + "loadbalancer_id": "${opentelekomcloud_lb_loadbalancer_v3.lb.id}", + "name": "pool_1", + "protocol": "TCP", + "session_persistence": [ + { + "persistence_timeout": "30", + "type": "SOURCE_IP" + } + ] + } + references: + loadbalancer_id: opentelekomcloud_lb_loadbalancer_v3.lb.id + dependencies: + opentelekomcloud_lb_loadbalancer_v3.lb: |- + { + "availability_zones": [ + "${var.availability_zone}" + ], + "name": "loadbalancer_1", + "network_ids": [ + "${var.network_id}" + ], + "router_id": "${var.router_id}" + } + argumentDocs: + "1": to 60, and the default value is 1. + HTTP: listeners, the protocol of the backend server group must be HTTP. + HTTPS: listeners, the protocol of the backend server group must be HTTPS. + LEAST_CONNECTIONS: ': weighted least connections' + ROUND_ROBIN: ': weighted round-robin' + SOURCE_IP: ': source IP hash' + TCP: listeners, the protocol of the backend server group must be TCP. + UDP: listeners, the protocol of the backend server group must be UDP. + description: '- (Optional) Provides supplementary information about the backend server group.' + id: '- Specifies the backend server group ID.' + ip_version: '- Specifies the IP version supported by the backend server group.' + lb_algorithm: '- (Required) Specifies the load balancing algorithm used by the load balancer to route requests to backend servers.' + listener_id: '- (Optional) Specifies the ID of the listener associated with the backend server group.' + loadbalancer_id: '- (Optional) Specifies the ID of the associated load balancer.' + name: '- (Optional) Specifies the backend server group name.' + project_id: '- (Optional) Specifies the project ID.' + protocol: |- + - (Required) Specifies the protocol used by the backend server group to receive requests. + TCP, UDP, HTTP, HTTPS, and QUIC are supported. + session_persistence: '- (Optional) Specifies whether to enable sticky sessions.' + session_persistence.cookie_name: |- + - (Optional) Specifies the cookie name. This parameter will take effect only when type is set to APP_COOKIE. + The value can contain only letters, digits, hyphens (-), underscores (_), and periods (.). + session_persistence.member_deletion_protection: |- + - (Optional) Specifies whether to enable removal protection for the pool members. + true: Enable removal protection. + false (default): Disable removal protection. + session_persistence.persistence_timeout: |- + - (Optional) Specifies the stickiness duration, in minutes. + This parameter will not take effect when type is set to APP_COOKIE. + session_persistence.type: '- (Required) Specifies the sticky session type. The value can be SOURCE_IP, HTTP_COOKIE, or APP_COOKIE.' + session_persistence.vpc_id: '- (Optional) Specifies the ID of the VPC where the backend server group works.' + importStatements: [] + opentelekomcloud_lb_rule_v3: + subCategory: Dedicated Load Balancer (DLB) + description: Manages a LB Rule resource within OpenTelekomCloud. + name: opentelekomcloud_lb_rule_v3 + title: opentelekomcloud_lb_rule_v3 + examples: + - name: this + manifest: |- + { + "compare_type": "REGEX", + "policy_id": "${opentelekomcloud_lb_policy_v3.this.id}", + "type": "PATH", + "value": "^.+$" + } + references: + policy_id: opentelekomcloud_lb_policy_v3.this.id + dependencies: + opentelekomcloud_lb_listener_v3.this: |- + { + "loadbalancer_id": "${opentelekomcloud_lb_loadbalancer_v3.this.id}", + "protocol": "HTTP", + "protocol_port": 8080 + } + opentelekomcloud_lb_loadbalancer_v3.this: |- + { + "availability_zones": [ + "${var.az}" + ], + "network_ids": [ + "${var.network_id}" + ], + "router_id": "${var.router_id}" + } + opentelekomcloud_lb_policy_v3.this: |- + { + "action": "REDIRECT_TO_POOL", + "listener_id": "${opentelekomcloud_lb_listener_v3.this.id}", + "position": 37, + "redirect_pool_id": "${opentelekomcloud_lb_pool_v3.this.id}" + } + opentelekomcloud_lb_pool_v3.this: |- + { + "lb_algorithm": "ROUND_ROBIN", + "loadbalancer_id": "${opentelekomcloud_lb_loadbalancer_v3.this.id}", + "protocol": "HTTP" + } + argumentDocs: + compare_type: |- + - (Required) - Specifies how requests are matched with the domain name or URL. + The values can be: EQUAL_TO, REGEX, STARTS_WITH. + conditions: |- + - (Optional) Specifies the matching conditions of the forwarding rule. + This parameter is available only when advanced_forwarding is set to true. + Not available in eu-nl. + key: '- (Optional) Specifies the key of match item.' + policy_id: '- (Required) ID of the policy.' + project_id: |- + - (Optional) 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. + rule_id: '- ID of the policy rule.' + type: '- (Required) Specifies the match content. The value can be one of the following: HOST_NAME, PATH.' + value: |- + - (Required) Specifies the value of the match item. For example, if a domain name is + used for matching, value is the domain name. + importStatements: + - terraform import opentelekomcloud_lb_rule_v3.this 8a7a79c2-cf17-4e65-b2ae-ddc8bfcf6c74/1bb93b8b-37a4-4b50-92cc-daa4c89d4e4c + opentelekomcloud_lb_security_policy_v3: + subCategory: Dedicated Load Balancer (DLB) + description: Manages a LB Security Policy resource within OpenTelekomCloud. + name: opentelekomcloud_lb_security_policy_v3 + title: opentelekomcloud_lb_security_policy_v3 + examples: + - name: policy_1 + manifest: |- + { + "ciphers": [ + "ECDHE-ECDSA-AES128-SHA", + "ECDHE-RSA-AES128-SHA" + ], + "description": "This is security policy", + "name": "elb-security-policy", + "protocols": [ + "TLSv1", + "TLSv1.1" + ] + } + - name: policy_1 + manifest: |- + { + "ciphers": [ + "ECDHE-ECDSA-AES128-SHA", + "ECDHE-RSA-AES128-SHA" + ], + "name": "security-policy", + "protocols": [ + "TLSv1", + "TLSv1.1" + ] + } + dependencies: + opentelekomcloud_lb_certificate_v3.certificate_1: |- + { + "certificate": "${var.certificate}", + "name": "certificate_1", + "private_key": "${var.private_key}", + "type": "server" + } + opentelekomcloud_lb_listener_v3.listener_1: |- + { + "advanced_forwarding": true, + "default_tls_container_ref": "${opentelekomcloud_lb_certificate_v3.certificate_1.id}", + "description": "some interesting description", + "insert_headers": [ + { + "forwarded_host": true + } + ], + "loadbalancer_id": "${opentelekomcloud_lb_loadbalancer_v3.loadbalancer_1.id}", + "name": "listener_1", + "protocol": "HTTPS", + "protocol_port": 443, + "security_policy_id": "${opentelekomcloud_lb_security_policy_v3.policy_1.id}", + "sni_match_algo": "wildcard" + } + opentelekomcloud_lb_loadbalancer_v3.loadbalancer_1: |- + { + "availability_zones": [ + "${var.az}" + ], + "name": "loadbalancer_1", + "network_ids": [ + "${opentelekomcloud_vpc_subnet_v1.subnet_v1.network_id}" + ], + "router_id": "${opentelekomcloud_vpc_subnet_v1.subnet_v1.vpc_id}" + } + opentelekomcloud_vpc_subnet_v1.subnet_v1: |- + { + "cidr": "${var.subnet_cidr}", + "gateway_ip": "${var.subnet_gateway_ip}", + "name": "${var.subnet_name}", + "ntp_addresses": "10.100.0.33,10.100.0.34", + "vpc_id": "${opentelekomcloud_vpc_v1.vpc_v1.id}" + } + opentelekomcloud_vpc_v1.vpc_v1: |- + { + "cidr": "${var.vpc_cidr}", + "name": "${var.vpc_name}" + } + argumentDocs: + ECDHE-RSA-AES256-GCM-SHA384: |- + , ECDHE-RSA-AES128-GCM-SHA256,ECDHE-ECDSA-AES256-GCM-SHA384, + ECDHE-ECDSA-AES128-GCM-SHA256, AES128-GCM-SHA256, AES256-GCM-SHA384, ECDHE-ECDSA-AES128-SHA256, + ECDHE-RSA-AES128-SHA256, AES128-SHA256,AES256-SHA256, ECDHE-ECDSA-AES256-SHA384, ECDHE-RSA-AES256-SHA384, + ECDHE-ECDSA-AES128-SHA, ECDHE-RSA-AES128-SHA, ECDHE-RSA-AES256-SHA, ECDHE-ECDSA-AES256-SHA, + AES128-SHA, AES256-SHA, CAMELLIA128-SHA, DES-CBC3-SHA, CAMELLIA256-SHA, ECDHE-RSA-CHACHA20-POLY1305, + ECDHE-ECDSA-CHACHA20-POLY1305, TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256, + TLS_AES_128_CCM_SHA256, TLS_AES_128_CCM_8_SHA256. + TLSv1: ', TLSv1.1, TLSv1.2, and TLSv1.3.' + ciphers: '- (Required) Lists the cipher suites supported by the custom security policy.' + created_at: '- The time when the custom security policy was created.' + description: '- (Optional) Provides supplementary information about the security policy.' + id: '- The unique ID for the policy.' + listeners: '- The listeners that use the custom security policies.' + name: '- (Optional) Specifies the security policy name.' + project_id: '- The project ID of the custom security policy.' + protocols: '- (Required) Lists the TLS protocols supported by the custom security policy.' + updated_at: '- The time when the custom security policy was updated.' + importStatements: + - terraform import opentelekomcloud_lb_security_policy_v3.this 8a7a79c2-cf17-4e65-b2ae-ddc8bfcf6c74 + opentelekomcloud_lb_whitelist_v2: + subCategory: Elastic Load Balancer (ELB) + description: Manages a ELB Whitelist resource within OpenTelekomCloud. + name: opentelekomcloud_lb_whitelist_v2 + title: opentelekomcloud_lb_whitelist_v2 + examples: + - name: whitelist_1 + manifest: |- + { + "enable_whitelist": true, + "listener_id": "d9415786-5f1a-428b-b35f-2f1523e146d2", + "whitelist": "192.168.11.1,192.168.0.1/24,192.168.201.18/8" + } + argumentDocs: + enable_whitelist: '- (Optional) Specify whether to enable access control.' + id: '- The unique ID for the whitelist.' + listener_id: '- (Required) The Listener ID that the whitelist will be associated with. Changing this creates a new whitelist.' + tenant_id: |- + - (Optional) 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. + whitelist: |- + - (Optional) Specifies the IP addresses in the whitelist. Use commas(,) to separate + the multiple IP addresses. + importStatements: + - terraform import opentelekomcloud_lb_whitelist_v2.this 8a7a79c2-cf17-4e65-b2ae-ddc8bfcf6c74 + opentelekomcloud_logtank_group_v2: + subCategory: Log Tank Service (LTS) + description: Manages a LTS Log Group resource within OpenTelekomCloud. + name: opentelekomcloud_logtank_group_v2 + title: opentelekomcloud_logtank_group_v2 + examples: + - name: log_group1 + manifest: |- + { + "group_name": "log_group1", + "ttl_in_days": 7 + } + argumentDocs: + creation_time: '- Specifies the time when a log group was created.' + group_name: |- + - (Required) Specifies the log group name. + Changing this parameter will create a new resource. + id: '- The log group ID.' + ttl_in_days: |- + - (Required) Specifies the log retention time in days. + The value is fixed to 7 days. + importStatements: [] + opentelekomcloud_logtank_topic_v2: + subCategory: Log Tank Service (LTS) + description: Manages a LTS Log Topic resource within OpenTelekomCloud. + name: opentelekomcloud_logtank_topic_v2 + title: opentelekomcloud_logtank_topic_v2 + examples: + - name: test_topic + manifest: |- + { + "group_id": "${opentelekomcloud_logtank_group_v2.test_group.id}", + "topic_name": "test1" + } + references: + group_id: opentelekomcloud_logtank_group_v2.test_group.id + dependencies: + opentelekomcloud_logtank_group_v2.test_group: |- + { + "topic_name": "test_group" + } + argumentDocs: + creation_time: '- Specifies the time when a log group was created.' + group_id: |- + - (Required) Specifies the ID of a created log group. + Changing this parameter will create a new resource. + id: '- The log topic ID.' + topic_name: |- + - (Required) Specifies the log topic name. + Changing this parameter will create a new resource. + importStatements: [] + opentelekomcloud_logtank_transfer_v2: + subCategory: Log Tank Service (LTS) + description: Manages a LTS Log Transfer resource within OpenTelekomCloud. + name: opentelekomcloud_logtank_transfer_v2 + title: opentelekomcloud_logtank_transfer_v2 + examples: + - name: transfer + manifest: |- + { + "dir_prefix_name": "dir", + "log_group_id": "${opentelekomcloud_logtank_group_v2.testacc_group.id}", + "log_stream_ids": [ + "${opentelekomcloud_logtank_topic_v2.testacc_topic.id}", + "${opentelekomcloud_logtank_topic_v2.testacc_topic-2.id}" + ], + "obs_bucket_name": "${opentelekomcloud_obs_bucket.bucket.bucket}", + "period": 30, + "period_unit": "min", + "prefix_name": "prefix", + "storage_format": "JSON", + "switch_on": false + } + references: + log_group_id: opentelekomcloud_logtank_group_v2.testacc_group.id + obs_bucket_name: opentelekomcloud_obs_bucket.bucket.bucket + dependencies: + opentelekomcloud_logtank_group_v2.testacc_group: |- + { + "group_name": "test_group", + "ttl_in_days": 7 + } + opentelekomcloud_logtank_topic_v2.testacc_topic: |- + { + "group_id": "${opentelekomcloud_logtank_group_v2.testacc_group.id}", + "topic_name": "test-topic-1" + } + opentelekomcloud_logtank_topic_v2.testacc_topic-2: |- + { + "group_id": "${opentelekomcloud_logtank_group_v2.testacc_group.id}", + "topic_name": "test-topic-2" + } + opentelekomcloud_obs_bucket.bucket: |- + { + "acl": "private", + "bucket": "test-bucket", + "storage_class": "STANDARD" + } + argumentDocs: + create_time: '- Specifies the time when a log transfer was created.' + dir_prefix_name: '- (Optional) Indicates a custom path to store the log files.' + id: '- The log transfer ID.' + log_group_id: '- (Required) Specifies the ID of a log transfer.' + log_group_name: '- The name of log group.' + log_stream_ids: '- (Required) Specifies the log topics(streams) ids.' + log_transfer_mode: '- The log transfer mode. cycle indicates periodical transfer.' + log_transfer_type: '- The log transfer type.' + obs_bucket_name: '- (Required) Specifies the name of an OBS bucket.' + obs_encryption_enable: '- Specifies whether OBS bucket encryption is enabled.' + obs_encryption_id: '- Specifies the KMS key ID for an OBS transfer task.' + period: |- + - (Required) Indicates the length of the log transfer interval. + Possible values: 1, 2, 3, 5, 6, 12, and 30. + period_unit: |- + - (Required) Indicates the unit of the log transfer interval. + Possible values: min, hour. + prefix_name: '- (Optional) Indicates the file name prefix of the log files transferred to an OBS bucket.' + status: |- + - The log transfer status. + ENABLE/DISABLE indicates that log transfer is enabled/disabled. + EXCEPTION indicates that log transfer is abnormal. + storage_format: '- (Required) Indicates storage format for logs. Possible values are: RAW, JSON.' + switch_on: '- (Optional) Indicates whether the log transfer is enabled. Default: true.' + importStatements: [] + opentelekomcloud_mrs_cluster_v1: + subCategory: MapReduce Service (MRS) + description: Manages a MRS Cluster resource within OpenTelekomCloud. + name: opentelekomcloud_mrs_cluster_v1 + title: opentelekomcloud_mrs_cluster_v1 + examples: + - name: this + manifest: |- + { + "available_zone_id": "${var.az}", + "billing_type": 12, + "bootstrap_scripts": [ + { + "active_master": true, + "before_component_start": true, + "fail_action": "continue", + "name": "Modify os config", + "nodes": [ + "master", + "core", + "task" + ], + "parameters": "param1 param2", + "uri": "s3a://bootstrap/modify_os_config.sh" + } + ], + "cluster_admin_secret": "Qwerty!123", + "cluster_name": "mrs-cluster", + "cluster_type": 0, + "cluster_version": "MRS 2.1.0", + "component_list": [ + { + "component_name": "Presto" + }, + { + "component_name": "Hadoop" + }, + { + "component_name": "Spark" + }, + { + "component_name": "HBase" + }, + { + "component_name": "Hive" + }, + { + "component_name": "Hue" + }, + { + "component_name": "Loader" + }, + { + "component_name": "Tez" + }, + { + "component_name": "Flink" + } + ], + "core_node_num": 3, + "core_node_size": "c3.xlarge.4.linux.mrs", + "master_node_num": 2, + "master_node_size": "c3.xlarge.4.linux.mrs", + "node_public_cert_name": "%s", + "safe_mode": 1, + "subnet_id": "${var.network_id}", + "tags": { + "foo": "bar", + "key": "value" + }, + "volume_size": 100, + "volume_type": "SATA", + "vpc_id": "${var.vpc_id}" + } + references: + available_zone_id: var.az + subnet_id: var.network_id + vpc_id: var.vpc_id + argumentDocs: + add_jobs: |- + - (Optional) You can submit a job when you create a cluster to + save time and use MRS easily. Only one job can be added. + arguments: |- + - (Optional) Key parameter for program execution. The parameter + is specified by the function of the user's program. MRS is only responsible + for loading the parameter. The parameter contains a maximum of 2047 characters, + excluding special characters such as ;|&>'<$, and can be empty. + available_zone_id: |- + - (Required) ID of an available zone. Obtain the value + from Regions and Endpoints. + available_zone_name: '- Name of an availability zone.' + billing_type: '- (Required) The value is 12, indicating on-demand payment.' + bootstrap_scripts: |- + - (Optional) Bootstrap action scripts. For details, see + bootstrap_scripts block below. + bootstrap_scripts.active_master: '- (Optional) Whether the bootstrap action script runs only on active Master nodes.' + bootstrap_scripts.before_component_start: |- + - (Optional) Time when the bootstrap action script is executed. Currently, the script + can be executed before and after the component is started. + bootstrap_scripts.fail_action: |- + - (Required) Whether to continue to execute subsequent scripts and create a cluster after the + bootstrap action script fails to be executed. continue: Continue to execute subsequent scripts. + errorout: Stop the action. + bootstrap_scripts.name: '- (Required) Name of a bootstrap action script.' + bootstrap_scripts.nodes: '- (Required) Type of node where the bootstrap action script is executed, including master, core, and task.' + bootstrap_scripts.parameters: '- (Optional) Bootstrap action script parameters.' + bootstrap_scripts.uri: |- + - (Required) Path of the shell script. Set this parameter to an OBS bucket path + or a local VM path. + charging_start_time: '- Time when charging starts.' + cluster_admin_secret: |- + - (Optional) Indicates the password of the MRS Manager + administrator. The password must contain 8 to 32 characters. Must contain + at least two types of the following: Lowercase letters, Uppercase letters, + Digits, Special characters ~!@#$%^&*()-_=+\|[{}];:'",<.>/? and spaces. + cluster_id: '- Cluster ID.' + cluster_name: |- + - (Required) Cluster name, which is globally unique and contains + only 1 to 64 letters, digits, hyphens (-), and underscores (_). + cluster_state: |- + - Cluster status. Valid values include: existing history: starting, + running, terminated, failed, abnormal, terminating, rebooting, + shutdown, frozen, scaling-out, scaling-in, scaling-error. + cluster_type: |- + - (Optional) Type of clusters 0: analysis cluster, 1: streaming + cluster The default value is 0. + cluster_version: |- + - (Optional) Version of the clusters Currently, MRS 1.6.3, + MRS 1.7.0, MRS 1.9.2, MRS 2.1.0, MRS 3.0.2 are supported. The latest + version of MRS is used by default. + componen_desc: '- Component description.' + component_id: '- Component ID.' + component_list: '- (Required) Service component list.' + component_name: '- (Required) Component name.' + component_version: '- Component version.' + core_data_volume_count: |- + - (Optional) Number of data disks of the Core node. + Value range: 1 to 10. + core_data_volume_size: |- + - (Optional) Data disk size of the Core node. + Value range: 100 GB to 32000 GB. + core_data_volume_type: |- + - (Optional) Data disk storage type of the Core node, + supporting SATA, SAS and SSD. SATA: Common I/O, SAS: High I/O, SSD: Ultra-high I/O. + core_node_num: |- + - (Required) Number of Core nodes Value range: 1 to 500. A + maximum of 500 Core nodes are supported by default. If more than 500 Core nodes + are required, contact technical support engineers or invoke background APIs + to modify the database. + core_node_product_id: '- Product ID of a Core node.' + core_node_size: |- + - (Required) Instance specification of a Core node Configuration + method of this parameter is identical to that of master_node_size. + core_node_spec_id: '- Specification ID of a Core node.' + create: '- Default is 30 minutes.' + create_at: '- Cluster creation time.' + delete: '- Default is 5 minutes.' + deployment_id: '- Deployment ID of a cluster.' + duration: '- Cluster subscription duration.' + error_info: '- Error information.' + external_alternate_ip: '- Backup external IP address.' + external_ip: '- External IP address.' + externalIp: '- Internal IP address.' + fee: '- Cluster creation fee, which is automatically calculated.' + file_action: '- (Optional) Data import and export import export' + hadoop_version: '- Hadoop version.' + hive_script_path: |- + - (Optional) SQL program path. This parameter is needed + by Spark Script and Hive Script jobs only and must meet the following requirements: + Contains a maximum of 1023 characters, excluding special characters such as + ;|&><'$. The address cannot be empty or full of spaces. Starts with / or s3a://. + Ends with .sql. sql is case-insensitive. + hql: '- (Optional) HiveQL statement.' + input: |- + - (Optional) Path for inputting data, which must start with / or s3a://. + A correct OBS path is required. The parameter contains a maximum of 1023 characters, + excluding special characters such as ;|&>'<$, and can be empty. + instance_id: '- Instance ID.' + jar_path: |- + - (Required) Path of the .jar file or .sql file for program execution + The parameter must meet the following requirements: Contains a maximum of 1023 + characters, excluding special characters such as ;|&><'$. The address cannot + be empty or full of spaces. Starts with / or s3a://. Spark Script must end with + .sql while MapReduce and Spark Jar must end with .jar. sql and jar are case-insensitive. + job_log: |- + - (Optional) Path for storing job logs that record job running status. + This path must start with / or s3a://. A correct OBS path is required. The parameter + contains a maximum of 1023 characters, excluding special characters such as + ;|&>'<$, and can be empty. + job_name: |- + - (Required) It contains only 1 to 64 letters, digits, + hyphens (-), and underscores (_). + job_type: |- + - (Required) Type. 1: MapReduce, 2: Spark, 3: Hive Script, + 4: HiveQL (not supported currently), 5: DistCp, importing and exporting data (not + supported in this API currently), 6: Spark Script, 7: Spark SQL, submitting Spark + SQL statements (not supported in this API currently). + log_collection: |- + - (Optional) Indicates whether logs are collected when cluster + installation fails. 0: not collected. 1: collected. The default value is 0. If + log_collection is set to 1, OBS buckets will be created to collect the MRS logs. + These buckets will be charged. + master_data_volume_count: |- + - (Optional) Number of data disks of the Master node. + The value can be set to 1 only. + master_data_volume_size: |- + - (Optional) Data disk size of the Master node. + Value range: 100 GB to 32000 GB. + master_data_volume_type: |- + - (Optional) Data disk storage type of the Master node, + supporting SATA, SAS and SSD. SATA: Common I/O, SAS: High I/O, SSD: Ultra-high I/O. + master_node_ip: '- IP address of a Master node.' + master_node_num: '- (Required) Number of Master nodes.' + master_node_product_id: '- Product ID of a Master node.' + master_node_size: |- + - (Required) Best match based on several years of commissioning + experience. MRS supports specifications of hosts, and host specifications are + determined by CPUs, memory, and disks space. Master nodes support h1.2xlarge.linux.mrs + h1.4xlarge.linux.mrs, h1.8xlarge.linux.mrs, s1.4xlarge.linux.mrs, + and s1.8xlarge.linux.mrs. Core nodes of a streaming cluster support all specifications + c2.2xlarge.linux.mrs, c2.4xlarge.linux.mrs, s1.xlarge.linux.mrs, s1.4xlarge.linux.mrs, + s1.8xlarge.linux.mrs, d1.xlarge.linux.mrs, d1.2xlarge.linux.mrs, d1.4xlarge.linux.mrs, + d1.8xlarge.linux.mrs, h1.2xlarge.linux.mrs, h1.4xlarge.linux.mrs and h1.8xlarge.linux.mrs. + Task nodes support c2.2xlarge.linux.mrs, c2.4xlarge.linux.mrs, s1.xlarge.linux.mrs, + s1.4xlarge.linux.mrs, s1.8xlarge.linux.mrs, h1.2xlarge.linux.mrs, h1.4xlarge.linux.mrs, + and h1.8xlarge.linux.mrs. + master_node_spec_id: '- Specification ID of a Master node.' + node_public_cert_name: |- + - (Required) Name of a key pair You can use a key + to log in to the Master node in the cluster. + order_id: '- Order ID for creating clusters.' + output: |- + - (Optional) Path for outputting data, which must start with / or + s3a://. A correct OBS path is required. If the path does not exist, the system + automatically creates it. The parameter contains a maximum of 1023 characters, + excluding special characters such as ;|&>'<$, and can be empty. + private_ip_first: '- Primary private IP address.' + remark: '- Remarks of a cluster.' + safe_mode: |- + - (Required) MRS cluster running mode 0: common mode. The value + indicates that the Kerberos authentication is disabled. Users can use all functions + provided by the cluster. 1: safe mode. The value indicates that the Kerberos + authentication is enabled. Common users cannot use the file management or job + management functions of an MRS cluster and cannot view cluster resource usage + or the job records of Hadoop and Spark. To use these functions, the users must + obtain the relevant permissions from the MRS Manager administrator. The request + has the cluster_admin_secret parameter only when safe_mode is set to 1. + security_groups_id: '- Security group ID.' + shutdown_cluster: |- + - (Optional) Whether to delete the cluster after the jobs + are complete. true: Yes, false: No. + slave_security_groups_id: '- Standby security group ID.' + submit_job_once_cluster_run: |- + - (Required) Possible values are: true a job is submitted when a + cluster is created and false a job is submitted separately. + subnet_id: |- + - (Required) Subnet ID Obtain the subnet ID from the management + console as follows: Register an account and log in to the management console. + Click Virtual Private Cloud and select Virtual Private Cloud from the left list. + On the Virtual Private Cloud page, obtain the subnet ID from the list. + tags: '- (Optional) Tags key/value pairs to associate with the cluster.' + tenant_id: '- Project ID.' + update_at: '- Cluster update time.' + vnc: '- URI address for remote login of the elastic cloud server.' + volume_size: |- + - (Optional) Data disk storage space of a Core node Users can + add disks to expand storage capacity when creating a cluster. There are the + following scenarios: Separation of data storage and computing: Data is stored + in the OBS system. Costs of clusters are relatively low but computing performance + is poor. The clusters can be deleted at any time. It is recommended when data + computing is not frequently performed. Integration of data storage and computing: + Data is stored in the HDFS system. Costs of clusters are relatively high but + computing performance is good. The clusters cannot be deleted in a short term. + It is recommended when data computing is frequently performed. Value range: + 100 GB to 32000 GB. + volume_type: |- + - (Optional) Type of disks SATA, SAS and SSD are supported. SATA: + common I/O, SAS: High I/O, SSD: Ultra-high I/O. + vpc_id: |- + - (Required) ID of the VPC where the subnet locates Obtain the VPC + ID from the management console as follows: Register an account and log in to + the management console. Click Virtual Private Cloud and select Virtual Private + Cloud from the left list. On the Virtual Private Cloud page, obtain the VPC + ID from the list. + importStatements: + - terraform import opentelekomcloud_mrs_cluster_v1.cluster_1 4729ab1c-7c1a-4411-a02e-93dfc361b32d + opentelekomcloud_mrs_job_v1: + subCategory: MapReduce Service (MRS) + description: Manages a MRS Job resource within OpenTelekomCloud. + name: opentelekomcloud_mrs_job_v1 + title: opentelekomcloud_mrs_job_v1 + examples: + - name: job1 + manifest: |- + { + "arguments": "wordcount", + "cluster_id": "ef43d2ff-1ecf-4f13-bd0c-0004c429a058", + "input": "s3a://wordcount/input/", + "jar_path": "s3a://wordcount/program/hadoop-mapreduce-examples-2.7.5.jar", + "job_log": "s3a://wordcount/log/", + "job_name": "test_mapreduce_job1", + "job_type": 1, + "output": "s3a://wordcount/output/" + } + argumentDocs: + arguments: |- + - (Optional) Key parameter for program execution. The parameter + is specified by the function of the user's program. MRS is only responsible + for loading the parameter. The parameter contains a maximum of 2047 characters, + excluding special characters such as ;|&>'<$, and can be empty. + cluster_id: '- (Required) Cluster ID' + hive_script_path: |- + - (Optional) SQL program path This parameter is needed + by Spark Script and Hive Script jobs only and must meet the following requirements: + Contains a maximum of 1023 characters, excluding special characters such as + ;|&><'$. The address cannot be empty or full of spaces. Starts with / or s3a://. + Ends with .sql. sql is case-insensitive. + input: |- + - (Optional) Path for inputting data, which must start with / or s3a://. + A correct OBS path is required. The parameter contains a maximum of 1023 characters, + excluding special characters such as ;|&>'<$, and can be empty. + is_protected: |- + - (Optional) Whether a job is protected true false The current + version does not support this function. + is_public: |- + - (Optional) Whether a job is public true false The current version + does not support this function. + jar_path: |- + - (Required) Path of the .jar package or .sql file for program + execution The parameter must meet the following requirements: Contains a maximum + of 1023 characters, excluding special characters such as ;|&><'$. The address + cannot be empty or full of spaces. Starts with / or s3a://. Spark Script must + end with .sql; while MapReduce and Spark Jar must end with .jar. sql and jar + are case-insensitive. + job_log: |- + - (Optional) Path for storing job logs that record job running status. + This path must start with / or s3a://. A correct OBS path is required. The parameter + contains a maximum of 1023 characters, excluding special characters such as + ;|&>'<$, and can be empty. + job_name: |- + - (Required) Job name Contains only 1 to 64 letters, digits, hyphens + (-), and underscores (_). + job_type: '- (Required) Job type' + output: |- + - (Optional) Path for outputting data, which must start with / or + s3a://. A correct OBS path is required. If the path does not exist, the system + automatically creates it. The parameter contains a maximum of 1023 characters, + excluding special characters such as ;|&>'<$, and can be empty. + importStatements: [] + opentelekomcloud_nat_dnat_rule_v2: + subCategory: NAT + description: Manages a NAT DNAT Rule resource within OpenTelekomCloud. + name: opentelekomcloud_nat_dnat_rule_v2 + title: opentelekomcloud_nat_dnat_rule_v2 + examples: + - name: dnat_1 + manifest: |- + { + "external_service_port": 242, + "floating_ip_id": "${var.floating_ip_id}", + "internal_service_port": 993, + "nat_gateway_id": "${var.nat_gw_id}", + "private_ip": "${var.private_id}", + "protocol": "tcp" + } + references: + floating_ip_id: var.floating_ip_id + nat_gateway_id: var.nat_gw_id + private_ip: var.private_id + argumentDocs: + created_at: '- DNAT rule creation time.' + external_service_port: |- + - (Required) Specifies port used by ECSs or + BMSs to provide services for external systems. Changing this creates a new DNAT rule. + floating_ip_address: '- The actual floating IP address.' + floating_ip_id: |- + - (Required) Specifies the ID of the floating IP address. + Changing this creates a new resource. + internal_service_port: |- + - (Required) Specifies port used by ECSs or BMSs + to provide services for external systems. Changing this creates a new resource. + nat_gateway_id: |- + - (Required) ID of the NAT gateway this DNAT rule belongs to. + Changing this creates a new DNAT rule. + port_id: |- + - (Optional) Specifies the port ID of an ECS or a BMS. + This parameter and private_ip are alternative. Changing this creates a + new DNAT rule. + private_ip: |- + - (Optional) Specifies the private IP address of a + user, for example, the IP address of a VPC for dedicated connection. + This parameter and port_id are alternative. Changing this creates a new DNAT rule. + protocol: |- + - (Required) Specifies the protocol type. Currently, + tcp, udp, and any are supported. Changing this creates a new DNAT rule. + status: '- DNAT rule status.' + importStatements: [] + opentelekomcloud_nat_gateway_v2: + subCategory: NAT + description: Manages a NAT Gateway resource within OpenTelekomCloud. + name: opentelekomcloud_nat_gateway_v2 + title: opentelekomcloud_nat_gateway_v2 + examples: + - name: this + manifest: |- + { + "description": "NAT GW created by terraform", + "internal_network_id": "${var.internal_network_id}", + "name": "tf_nat", + "router_id": "${var.router_id}", + "spec": "0", + "tags": { + "muh": "kuh" + } + } + references: + internal_network_id: var.internal_network_id + router_id: var.router_id + argumentDocs: + description: '- (Optional) The description of the NAT Gateway.' + internal_network_id: |- + - (Required) ID of the network this NAT Gateway connects to. + Changing this creates a new NAT Gateway. + name: '- (Required) The name of the NAT Gateway.' + router_id: |- + - (Required) ID of the router (or VPC) this NAT Gateway belongs to. Changing + this creates a new NAT Gateway. + spec: '- (Required) The specification of the NAT Gateway, valid values are "0","1", "2", "3", "4".' + tags: '- (Optional) Tags key/value pairs to associate with the NAT Gateway.' + tenant_id: |- + - (Optional) The target tenant ID in which to allocate the NAT + Gateway. Changing this creates a new NAT Gateway. + importStatements: [] + opentelekomcloud_nat_snat_rule_v2: + subCategory: NAT + description: Manages a NAT SNAT Rule resource within OpenTelekomCloud. + name: opentelekomcloud_nat_snat_rule_v2 + title: opentelekomcloud_nat_snat_rule_v2 + examples: + - name: snat_1 + manifest: |- + { + "cidr": "192.168.0.0/24", + "floating_ip_id": "${opentelekomcloud_networking_floatingip_v2.fip_1.id}", + "nat_gateway_id": "${opentelekomcloud_nat_gateway_v2.nat_1.id}", + "source_type": 0 + } + references: + floating_ip_id: opentelekomcloud_networking_floatingip_v2.fip_1.id + nat_gateway_id: opentelekomcloud_nat_gateway_v2.nat_1.id + dependencies: + opentelekomcloud_nat_gateway_v2.nat_1: |- + { + "description": "test for terraform", + "internal_network_id": "${var.network_id}", + "name": "nat_1", + "router_id": "${var.vpc_id}", + "spec": "1" + } + opentelekomcloud_networking_floatingip_v2.fip_1: '{}' + argumentDocs: + cidr: |- + - (Optional) Specifies CIDR, which can be in the format of a network segment or + a host IP address. This parameter and network_id are alternative. If the value of + source_type is 0, the CIDR block must be a subset of the VPC subnet CIDR block. If + the value of source_type is 1, the CIDR block must be a CIDR block of Direct Connect + and cannot conflict with the VPC CIDR blocks. Changing this creates a new snat rule. + floating_ip_id: |- + - (Required) ID of the floating ip this snat rule connects to. + Changing this creates a new snat rule. + nat_gateway_id: |- + - (Required) ID of the nat gateway this snat rule belongs to. + Changing this creates a new snat rule. + network_id: |- + - (Optional) ID of the network this snat rule connects to. This parameter + and cidr are alternative. Changing this creates a new snat rule. + source_type: |- + - (Optional) 0: Either network_id or cidr can be specified in a VPC. 1: + Only cidr can be specified over a dedicated network. Changing this creates a new snat rule. + importStatements: [] + opentelekomcloud_networking_floatingip_associate_v2: + subCategory: Virtual Private Cloud (VPC) + description: Manages a VPC Floating IP Association resource within OpenTelekomCloud. + name: opentelekomcloud_networking_floatingip_associate_v2 + title: opentelekomcloud_networking_floatingip_associate_v2 + examples: + - name: fip_1 + manifest: |- + { + "floating_ip": "1.2.3.4", + "port_id": "${opentelekomcloud_networking_port_v2.port_1.id}" + } + references: + port_id: opentelekomcloud_networking_port_v2.port_1.id + dependencies: + opentelekomcloud_networking_port_v2.port_1: |- + { + "network_id": "a5bbd213-e1d3-49b6-aed1-9df60ea94b9a" + } + - name: this + manifest: |- + { + "floating_ip": "${opentelekomcloud_networking_floatingip_v2.this.address}", + "port_id": "${opentelekomcloud_compute_instance_v2.this.network.0.port}" + } + references: + floating_ip: opentelekomcloud_networking_floatingip_v2.this.address + port_id: opentelekomcloud_compute_instance_v2.this.network.0.port + dependencies: + opentelekomcloud_compute_instance_v2.this: |- + { + "flavor_id": "s2.large.4", + "image_id": "${var.image_id}", + "key_pair": "${var.keypair}", + "name": "example-instance", + "network": [ + { + "name": "${var.network_name}" + } + ], + "security_groups": [ + "default" + ] + } + opentelekomcloud_networking_floatingip_v2.this: |- + { + "pool": "admin_external_net" + } + argumentDocs: + floating_ip: '- (Required) IP Address of an existing floating IP.' + port_id: |- + - (Required) ID of an existing port with at least one IP address to + associate with this floating IP. + importStatements: [] + opentelekomcloud_networking_floatingip_v2: + subCategory: Virtual Private Cloud (VPC) + description: Manages a VPC Floating IP resource within OpenTelekomCloud. + name: opentelekomcloud_networking_floatingip_v2 + title: opentelekomcloud_networking_floatingip_v2 + examples: + - name: floatip_1 + manifest: '{}' + argumentDocs: + address: '- The actual floating IP address itself.' + fixed_ip: |- + - Fixed IP of the port to associate with this floating IP. Required if + the port has multiple fixed IPs. + pool: |- + - (Optional) The name of the pool from which to obtain the floating + IP. Default value is admin_external_net. Changing this creates a new floating IP. + port_id: |- + - (Optional) ID of an existing port with at least one IP address to + associate with this floating IP. + tenant_id: |- + - (Optional) The target tenant ID in which to allocate the floating + IP, if you specify this together with a port_id, make sure the target port + belongs to the same tenant. Changing this creates a new floating IP (which + may or may not have a different address). + value_specs: '- (Optional) Map of additional options.' + importStatements: [] + opentelekomcloud_networking_network_v2: + subCategory: Virtual Private Cloud (VPC) + description: Manages a VPC Network resource within OpenTelekomCloud. + name: opentelekomcloud_networking_network_v2 + title: opentelekomcloud_networking_network_v2 + examples: + - name: network_1 + manifest: |- + { + "admin_state_up": "true", + "name": "network_1" + } + dependencies: + opentelekomcloud_compute_instance_v2.instance_1: |- + { + "name": "instance_1", + "network": [ + { + "port": "${opentelekomcloud_networking_port_v2.port_1.id}" + } + ], + "security_groups": [ + "${opentelekomcloud_compute_secgroup_v2.secgroup_1.name}" + ] + } + opentelekomcloud_compute_secgroup_v2.secgroup_1: |- + { + "description": "a security group", + "name": "secgroup_1", + "rule": [ + { + "cidr": "0.0.0.0/0", + "from_port": 22, + "ip_protocol": "tcp", + "to_port": 22 + } + ] + } + opentelekomcloud_networking_port_v2.port_1: |- + { + "admin_state_up": "true", + "fixed_ip": [ + { + "ip_address": "192.168.199.10", + "subnet_id": "${opentelekomcloud_networking_subnet_v2.subnet_1.id}" + } + ], + "name": "port_1", + "network_id": "${opentelekomcloud_networking_network_v2.network_1.id}", + "security_group_ids": [ + "${opentelekomcloud_compute_secgroup_v2.secgroup_1.id}" + ] + } + opentelekomcloud_networking_subnet_v2.subnet_1: |- + { + "cidr": "192.168.199.0/24", + "ip_version": 4, + "name": "subnet_1", + "network_id": "${opentelekomcloud_networking_network_v2.network_1.id}" + } + argumentDocs: + admin_state_up: |- + - (Optional) The administrative state of the network. + Acceptable values are "true" and "false". Changing this value updates the + state of the existing network. + name: |- + - (Optional) The name of the network. Changing this updates the name of + the existing network. + segments: '- (Optional) An array of one or more provider segment objects.' + segments.network_type: '- The type of physical network.' + segments.physical_network: '- The physical network where this network is implemented.' + segments.segmentation_id: '- An isolated segment on the physical network.' + shared: |- + - (Optional) Specifies whether the network resource can be accessed + by any tenant or not. Changing this updates the sharing capabilities of the + existing network. Shared SNAT only available in eu-de region. + tenant_id: |- + - (Optional) The owner of the network. Required if admin wants to + create a network for another tenant. Changing this creates a new network. + value_specs: '- (Optional) Map of additional options.' + importStatements: [] + opentelekomcloud_networking_port_secgroup_associate_v2: + subCategory: Virtual Private Cloud (VPC) + description: Manages a VPC Port's Security Groups resource within OpenTelekomCloud. + name: opentelekomcloud_networking_port_secgroup_associate_v2 + title: opentelekomcloud_networking_port_secgroup_associate_v2 + examples: + - name: port_1 + manifest: |- + { + "port_id": "${data.opentelekomcloud_networking_port_v2.system_port.id}", + "security_group_ids": [ + "${data.opentelekomcloud_networking_secgroup_v2.secgroup.id}" + ] + } + references: + port_id: data.opentelekomcloud_networking_port_v2.system_port.id + argumentDocs: + all_security_group_ids: |- + - The collection of Security Group IDs on the port + which have been explicitly and implicitly added. + force: |- + - (Optional) Whether to replace or append the list of security + groups, specified in the security_group_ids. Defaults to false. + port_id: '- (Required) An UUID of the port to apply security groups to.' + region: |- + - (Optional) The region in which to obtain the V2 networking client. + A networking client is needed to manage a port. If omitted, the + region argument of the provider is used. Changing this creates a new + resource. + security_group_ids: |- + - (Required) A list of security group IDs to apply to + the port. The security groups must be specified by ID and not name (as + opposed to how they are configured with the Compute Instance). + importStatements: [] + opentelekomcloud_networking_port_v2: + subCategory: Virtual Private Cloud (VPC) + description: Manages a VPC Port resource within OpenTelekomCloud. + name: opentelekomcloud_networking_port_v2 + title: opentelekomcloud_networking_port_v2 + examples: + - name: port_1 + manifest: |- + { + "admin_state_up": "true", + "fixed_ip": [ + { + "ip_address": "192.168.199.23", + "subnet_id": "${opentelekomcloud_networking_subnet_v2.subnet_1.id}" + } + ], + "name": "port_1", + "network_id": "${opentelekomcloud_networking_network_v2.network_1.id}" + } + references: + fixed_ip.subnet_id: opentelekomcloud_networking_subnet_v2.subnet_1.id + network_id: opentelekomcloud_networking_network_v2.network_1.id + dependencies: + opentelekomcloud_networking_network_v2.network_1: |- + { + "admin_state_up": "true", + "name": "network_1" + } + opentelekomcloud_networking_subnet_v2.subnet_1: |- + { + "cidr": "192.168.199.0/24", + "ip_version": 4, + "name": "subnet_1", + "network_id": "${opentelekomcloud_networking_network_v2.network_1.id}" + } + argumentDocs: + admin_state_up: |- + - (Optional, Bool) Administrative up/down status for the port + (must be "true" or "false" if provided). Changing this updates the + admin_state_up of an existing port. + all fixed_ips: '- The collection of Fixed IP addresses on the port in the order returned by the Network v2 API.' + allowed_address_pairs: |- + - (Optional, Map) An IP/MAC Address pair of additional IP + addresses that can be active on this port. The structure is described below. + The allowed_address_pairs block supports: + allowed_address_pairs.ip_address: '- (Required, String) The additional IP address.' + allowed_address_pairs.mac_address: '- (Optional, String) The additional MAC address.' + device_id: |- + - (Optional, String, ForceNew) The ID of the device attached to the port. Changing this + creates a new port. + device_owner: |- + - (Optional. String, ForceNew) The device owner of the Port. Changing this creates + a new port. + extra_dhcp_option: |- + - (Optional, Map) Specifies the extended DHCP option. This is an extended attribute. + The extra_dhcp_option block supports: + extra_dhcp_option.name: '- (Required, String) Specifies the option name.' + extra_dhcp_option.value: '- (Required, String) Specifies the option value.' + fixed_ip: |- + - (Optional, List) An array of desired IPs for this port. The structure is + described below. A single fixed_ip entry is allowed for a port. + The fixed_ip block supports: + fixed_ip.ip_address: |- + - (Optional, String) IP address desired in the subnet for this port. If + you don't specify ip_address, an available IP address from the specified + subnet will be allocated to this port. + fixed_ip.subnet_id: |- + - (Required, String) Subnet in which to allocate IP address for + this port. + mac_address: |- + - (Optional, String, ForceNew) Specify a specific MAC address for the port. Changing + this creates a new port. + name: |- + - (Optional, String) A unique name for the port. Changing this + updates the name of an existing port. + network_id: |- + - (Required, String, ForceNew) The ID of the network to attach the port to. Changing + this creates a new port. + no_security_groups: |- + - (Optional, Bool) If set to true, then no security groups + are applied to the port. If set to false and no security_group_ids are specified, + then the port will yield to the default behavior of the Networking service, + which is to usually apply the "default" security group. + port_security_enabled: |- + - (Optional, Bool) Whether to explicitly enable or disable + port security on the port. Port Security is usually enabled by default, so + omitting argument will usually result in a value of true. Setting this + explicitly to false will disable port security. In order to disable port + security, the port must not have any security groups. Valid values are true + and false. + security_group_ids: |- + - (Optional, List) A list of security group IDs to apply to the + port. The security groups must be specified by ID and not name (as opposed + to how they are configured with the Compute Instance). + tenant_id: |- + - (Optional, String, ForceNew) The owner of the Port. Required if admin wants + to create a port for another tenant. Changing this creates a new port. + value_specs: '- (Optional, Map) Map of additional options.' + importStatements: [] + opentelekomcloud_networking_router_interface_v2: + subCategory: Virtual Private Cloud (VPC) + description: Manages a VPC Router Interface resource within OpenTelekomCloud. + name: opentelekomcloud_networking_router_interface_v2 + title: opentelekomcloud_networking_router_interface_v2 + examples: + - name: router_interface_1 + manifest: |- + { + "router_id": "${opentelekomcloud_networking_router_v2.router_1.id}", + "subnet_id": "${opentelekomcloud_networking_subnet_v2.subnet_1.id}" + } + references: + router_id: opentelekomcloud_networking_router_v2.router_1.id + subnet_id: opentelekomcloud_networking_subnet_v2.subnet_1.id + dependencies: + opentelekomcloud_networking_network_v2.network_1: |- + { + "admin_state_up": "true", + "name": "tf_test_network" + } + opentelekomcloud_networking_router_v2.router_1: |- + { + "external_gateway": "f67f0d72-0ddf-11e4-9d95-e1f29f417e2f", + "name": "my_router" + } + opentelekomcloud_networking_subnet_v2.subnet_1: |- + { + "cidr": "192.168.199.0/24", + "ip_version": 4, + "network_id": "${opentelekomcloud_networking_network_v2.network_1.id}" + } + argumentDocs: + port_id: |- + - ID of the port this interface connects to. Changing + this creates a new router interface. + router_id: |- + - (Required) ID of the router this interface belongs to. Changing + this creates a new router interface. + subnet_id: |- + - ID of the subnet this interface connects to. Changing + this creates a new router interface. + importStatements: [] + opentelekomcloud_networking_router_route_v2: + subCategory: Virtual Private Cloud (VPC) + description: Manages a VPC Router Route resource within OpenTelekomCloud. + name: opentelekomcloud_networking_router_route_v2 + title: opentelekomcloud_networking_router_route_v2 + examples: + - name: router_route_1 + manifest: |- + { + "depends_on": [ + "opentelekomcloud_networking_router_interface_v2.int_1" + ], + "destination_cidr": "10.0.1.0/24", + "next_hop": "192.168.199.254", + "router_id": "${opentelekomcloud_networking_router_v2.router_1.id}" + } + references: + router_id: opentelekomcloud_networking_router_v2.router_1.id + dependencies: + opentelekomcloud_networking_network_v2.network_1: |- + { + "admin_state_up": "true", + "name": "network_1" + } + opentelekomcloud_networking_router_interface_v2.int_1: |- + { + "router_id": "${opentelekomcloud_networking_router_v2.router_1.id}", + "subnet_id": "${opentelekomcloud_networking_subnet_v2.subnet_1.id}" + } + opentelekomcloud_networking_router_v2.router_1: |- + { + "admin_state_up": "true", + "name": "router_1" + } + opentelekomcloud_networking_subnet_v2.subnet_1: |- + { + "cidr": "192.168.199.0/24", + "ip_version": 4, + "network_id": "${opentelekomcloud_networking_network_v2.network_1.id}" + } + argumentDocs: + destination_cidr: |- + - (Required) CIDR block to match on the packet’s destination IP. Changing + this creates a new routing entry. + next_hop: |- + - (Required) IP address of the next hop gateway. Changing + this creates a new routing entry. + router_id: |- + - (Required) ID of the router this routing entry belongs to. Changing + this creates a new routing entry. + importStatements: [] + opentelekomcloud_networking_router_v2: + subCategory: Virtual Private Cloud (VPC) + description: Manages a VPC Router resource within OpenTelekomCloud. + name: opentelekomcloud_networking_router_v2 + title: opentelekomcloud_networking_router_v2 + examples: + - name: router_1 + manifest: |- + { + "external_gateway": "f67f0d72-0ddf-11e4-9d95-e1f29f417e2f", + "name": "my_router" + } + - name: router_1 + manifest: |- + { + "admin_state_up": true, + "distributed": false, + "enable_snat": true, + "external_gateway": "${data.opentelekomcloud_networking_network_v2.admin_external_net.id}", + "name": "my_router" + } + references: + external_gateway: data.opentelekomcloud_networking_network_v2.admin_external_net.id + argumentDocs: + admin_state_up: |- + - (Optional) Administrative up/down status for the router + (must be true or false if provided). Changing this updates the + admin_state_up of an existing router. + distributed: |- + - (Optional) Indicates whether or not to create a + distributed router. The default policy setting in Neutron restricts + usage of this property to administrative users only. + enable_snat: |- + - (Optional) Enable Source NAT for the router. Valid values are + true or false. An external_gateway has to be set in order to set this + property. Changing this updates the enable_snat of the router. + external_gateway: |- + - (Optional) The network UUID of an external gateway for + the router. A router with an external gateway is required if any compute + instances or load balancers will be using floating IPs. Changing this + updates the external_gateway of an existing router. + id: '- ID of the router.' + name: |- + - (Optional) A unique name for the router. Changing this + updates the name of an existing router. + tenant_id: |- + - (Optional) The owner of the floating IP. Required if admin wants + to create a router for another tenant. Changing this creates a new router. + value_specs: '- (Optional) Map of additional driver-specific options.' + importStatements: [] + opentelekomcloud_networking_secgroup_rule_v2: + subCategory: Virtual Private Cloud (VPC) + description: Manages a VPC Security Group Rule resource within OpenTelekomCloud. + name: opentelekomcloud_networking_secgroup_rule_v2 + title: opentelekomcloud_networking_secgroup_rule_v2 + examples: + - name: secgroup_rule_1 + manifest: |- + { + "direction": "ingress", + "ethertype": "IPv4", + "port_range_max": 22, + "port_range_min": 22, + "protocol": "tcp", + "remote_ip_prefix": "0.0.0.0/0", + "security_group_id": "${opentelekomcloud_networking_secgroup_v2.secgroup_1.id}" + } + references: + security_group_id: opentelekomcloud_networking_secgroup_v2.secgroup_1.id + dependencies: + opentelekomcloud_networking_secgroup_v2.secgroup_1: |- + { + "description": "My neutron security group", + "name": "secgroup_1" + } + - name: secgroup_rule_icmp_echo_reply + manifest: |- + { + "direction": "ingress", + "ethertype": "IPv4", + "port_range_max": 0, + "port_range_min": 0, + "protocol": "icmp", + "remote_ip_prefix": "0.0.0.0/0", + "security_group_id": "${opentelekomcloud_networking_secgroup_v2.secgroup_1.id}" + } + references: + security_group_id: opentelekomcloud_networking_secgroup_v2.secgroup_1.id + dependencies: + opentelekomcloud_networking_secgroup_v2.secgroup_1: |- + { + "description": "My neutron security group", + "name": "secgroup_1" + } + - name: secgroup_rule_icmp_any + manifest: |- + { + "direction": "ingress", + "ethertype": "IPv4", + "port_range_max": 255, + "port_range_min": 0, + "protocol": "icmp", + "remote_ip_prefix": "0.0.0.0/0", + "security_group_id": "${opentelekomcloud_networking_secgroup_v2.secgroup_1.id}" + } + references: + security_group_id: opentelekomcloud_networking_secgroup_v2.secgroup_1.id + dependencies: + opentelekomcloud_networking_secgroup_v2.secgroup_1: |- + { + "description": "My neutron security group", + "name": "secgroup_1" + } + - name: secgroup_rule_v6 + manifest: |- + { + "direction": "ingress", + "ethertype": "IPv6", + "port_range_max": 8080, + "port_range_min": 8080, + "protocol": "tcp", + "remote_group_id": "${opentelekomcloud_networking_secgroup_v2.secgroup_1.id}", + "security_group_id": "${opentelekomcloud_networking_secgroup_v2.secgroup_2.id}" + } + references: + remote_group_id: opentelekomcloud_networking_secgroup_v2.secgroup_1.id + security_group_id: opentelekomcloud_networking_secgroup_v2.secgroup_2.id + dependencies: + opentelekomcloud_networking_secgroup_v2.secgroup_1: |- + { + "description": "My neutron security group", + "name": "secgroup_1" + } + argumentDocs: + description: '- (Optional) A description of the rule. Changing this creates a new security group rule.' + direction: |- + - (Required) The direction of the rule, valid values are ingress + or egress. Changing this creates a new security group rule. + ethertype: |- + - (Required) The layer 3 protocol type, valid values are IPv4 + or IPv6. Changing this creates a new security group rule. + port_range_max: = 255 + port_range_min: = 0 + protocol: |- + - (Optional) The layer 4 protocol type, valid values are following. Changing this creates a new security group rule. + This is required if you want to specify a port range. + remote_group_id: |- + - (Optional) The remote group id, the value needs to be an + OpenTelekomCloud ID of a security group in the same tenant. Changing this creates + a new security group rule. + remote_ip_prefix: |- + - (Optional) The remote CIDR, the value needs to be a valid + CIDR (i.e. 192.168.0.0/16). Changing this creates a new security group rule. + security_group_id: |- + - (Required) The security group id the rule should belong + to, the value needs to be an OpenTelekomCloud ID of a security group in the same + tenant. Changing this creates a new security group rule. + tcp: |- + , udp, icmp, ah, dccp, egp, esp, gre, igmp, ipv6-encap, + ipv6-frag, ipv6-icmp, ipv6-nonxt, ipv6-opts, ipv6-route, ospf, + pgm, rsvp, sctp, udplite, vrrp + tenant_id: |- + - (Optional) The owner of the security group. Required if admin + wants to create a port for another tenant. Changing this creates a new + security group rule. + importStatements: [] + opentelekomcloud_networking_secgroup_v2: + subCategory: Virtual Private Cloud (VPC) + description: Manages a VPC Security Group resource within OpenTelekomCloud. + name: opentelekomcloud_networking_secgroup_v2 + title: opentelekomcloud_networking_secgroup_v2 + examples: + - name: secgroup_1 + manifest: |- + { + "description": "My neutron security group", + "name": "secgroup_1" + } + argumentDocs: + delete_default_rules: |- + - (Optional) Whether or not to delete the default + egress security rules. This is false by default. + description: '- (Optional) A unique name for the security group.' + name: '- (Required) A unique name for the security group.' + tenant_id: |- + - (Optional) The owner of the security group. Required if admin + wants to create a port for another tenant. Changing this creates a new + security group. + importStatements: [] + opentelekomcloud_networking_subnet_v2: + subCategory: Virtual Private Cloud (VPC) + description: Manages a VPC Subnet resource within OpenTelekomCloud. + name: opentelekomcloud_networking_subnet_v2 + title: opentelekomcloud_networking_subnet_v2 + examples: + - name: subnet_1 + manifest: |- + { + "cidr": "192.168.199.0/24", + "network_id": "${opentelekomcloud_networking_network_v2.network_1.id}" + } + references: + network_id: opentelekomcloud_networking_network_v2.network_1.id + dependencies: + opentelekomcloud_networking_network_v2.network_1: |- + { + "admin_state_up": "true", + "name": "tf_test_network" + } + argumentDocs: + allocation_pools: |- + - (Optional) An array of sub-ranges of CIDR available for + dynamic allocation to ports. The allocation_pool object structure is + documented below. Changing this creates a new subnet. + allocation_pools.end: '- (Required) The ending address.' + allocation_pools.start: '- (Required) The starting address.' + cidr: |- + - (Required) CIDR representing IP range for this subnet, based on IP + version. Changing this creates a new subnet. + dns_nameservers: |- + - (Optional) An array of DNS name server names used by hosts + in this subnet. Changing this updates the DNS name servers for the existing + subnet. Default value is ["100.125.4.25", "100.125.129.199"] + enable_dhcp: |- + - (Optional) The administrative state of the network. + Acceptable values are "true" and "false". Changing this value enables or + disables the DHCP capabilities of the existing subnet. Defaults to true. + gateway_ip: |- + - (Optional) Default gateway used by devices in this subnet. + Leaving this blank and not setting no_gateway will cause a default + gateway of .1 to be used. Changing this updates the gateway IP of the + existing subnet. + host_routes: |- + - (Optional) An array of routes that should be used by devices + with IPs from this subnet (not including local subnet route). The host_route + object structure is documented below. Changing this updates the host routes + for the existing subnet. + host_routes.destination_cidr: '- (Required) The destination CIDR.' + host_routes.next_hop: '- (Required) The next hop in the route.' + ip_version: |- + - (Optional) IP version, either 4 (default) or 6. Changing this creates a + new subnet. + name: |- + - (Optional) The name of the subnet. Changing this updates the name of + the existing subnet. + network_id: |- + - (Required) The UUID of the parent network. Changing this + creates a new subnet. + no_gateway: |- + - (Optional) Do not set a gateway IP on this subnet. Changing + this removes or adds a default gateway IP of the existing subnet. + tenant_id: |- + - (Optional) The owner of the subnet. Required if admin wants to + create a subnet for another tenant. Changing this creates a new subnet. + value_specs: '- (Optional) Map of additional options.' + importStatements: [] + opentelekomcloud_networking_vip_associate_v2: + subCategory: Virtual Private Cloud (VPC) + description: Manages a VPC VIP Associate resource within OpenTelekomCloud. + name: opentelekomcloud_networking_vip_associate_v2 + title: opentelekomcloud_networking_vip_associate_v2 + examples: + - name: vip_associate_1 + manifest: |- + { + "port_ids": [ + "${opentelekomcloud_networking_port_v2.port_1.id}", + "${opentelekomcloud_networking_port_v2.port_2.id}" + ], + "vip_id": "${opentelekomcloud_networking_vip_v2.vip_1.id}" + } + references: + vip_id: opentelekomcloud_networking_vip_v2.vip_1.id + dependencies: + opentelekomcloud_compute_instance_v2.instance_1: |- + { + "name": "instance_1", + "network": [ + { + "port": "${opentelekomcloud_networking_port_v2.port_1.id}" + } + ], + "security_groups": [ + "default" + ] + } + opentelekomcloud_compute_instance_v2.instance_2: |- + { + "name": "instance_2", + "network": [ + { + "port": "${opentelekomcloud_networking_port_v2.port_1.id}" + } + ], + "security_groups": [ + "default" + ] + } + opentelekomcloud_networking_network_v2.network_1: |- + { + "admin_state_up": "true", + "name": "network_1" + } + opentelekomcloud_networking_port_v2.port_1: |- + { + "admin_state_up": "true", + "fixed_ip": [ + { + "subnet_id": "${opentelekomcloud_networking_subnet_v2.subnet_1.id}" + } + ], + "name": "port_1", + "network_id": "${opentelekomcloud_networking_network_v2.network_1.id}" + } + opentelekomcloud_networking_port_v2.port_2: |- + { + "admin_state_up": "true", + "fixed_ip": [ + { + "subnet_id": "${opentelekomcloud_networking_subnet_v2.subnet_1.id}" + } + ], + "name": "port_2", + "network_id": "${opentelekomcloud_networking_network_v2.network_1.id}" + } + opentelekomcloud_networking_router_interface_v2.router_interface_1: |- + { + "router_id": "${opentelekomcloud_networking_router_v2.router_1.id}", + "subnet_id": "${opentelekomcloud_networking_subnet_v2.subnet_1.id}" + } + opentelekomcloud_networking_router_v2.router_1: |- + { + "external_gateway": "0a2228f2-7f8a-45f1-8e09-9039e1d09975", + "name": "router_1" + } + opentelekomcloud_networking_subnet_v2.subnet_1: |- + { + "cidr": "192.168.199.0/24", + "ip_version": 4, + "name": "subnet_1", + "network_id": "${opentelekomcloud_networking_network_v2.network_1.id}" + } + opentelekomcloud_networking_vip_v2.vip_1: |- + { + "network_id": "${opentelekomcloud_networking_network_v2.network_1.id}", + "subnet_id": "${opentelekomcloud_networking_subnet_v2.subnet_1.id}" + } + - name: vip_associate_1 + manifest: |- + { + "port_ids": [ + "${opentelekomcloud_networking_port_v2.port_1.id}", + "${opentelekomcloud_networking_port_v2.port_2.id}" + ], + "vip_id": "${opentelekomcloud_networking_vip_v2.vip_1.id}" + } + references: + vip_id: opentelekomcloud_networking_vip_v2.vip_1.id + dependencies: + opentelekomcloud_compute_instance_v2.instance_1: |- + { + "image_id": "${data.opentelekomcloud_images_image_v2.latest_image.id}", + "name": "instance_vip_ass_1", + "network": [ + { + "port": "${opentelekomcloud_networking_port_v2.port_1.id}" + } + ], + "security_groups": [ + "default" + ] + } + opentelekomcloud_compute_instance_v2.instance_2: |- + { + "image_id": "${data.opentelekomcloud_images_image_v2.latest_image.id}", + "name": "instance_vip_ass_2", + "network": [ + { + "port": "${opentelekomcloud_networking_port_v2.port_2.id}" + } + ], + "security_groups": [ + "default" + ] + } + opentelekomcloud_networking_floatingip_associate_v2.vip_eip_associate_1: |- + { + "floating_ip": "${opentelekomcloud_vpc_eip_v1.vip_eip_1.publicip.0.ip_address}", + "port_id": "${opentelekomcloud_networking_vip_v2.vip_1.id}" + } + opentelekomcloud_networking_port_v2.port_1: |- + { + "admin_state_up": "true", + "fixed_ip": [ + { + "subnet_id": "${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.subnet_id}" + } + ], + "name": "port_1", + "network_id": "${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.network_id}" + } + opentelekomcloud_networking_port_v2.port_2: |- + { + "admin_state_up": "true", + "fixed_ip": [ + { + "subnet_id": "${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.subnet_id}" + } + ], + "name": "port_2", + "network_id": "${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.network_id}" + } + opentelekomcloud_networking_vip_v2.vip_1: |- + { + "network_id": "${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.network_id}", + "subnet_id": "${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.subnet_id}" + } + opentelekomcloud_vpc_eip_v1.vip_eip_1: |- + { + "bandwidth": [ + { + "charge_mode": "traffic", + "name": "eip-bandwidth-vip", + "share_type": "PER", + "size": 10 + } + ], + "publicip": [ + { + "name": "eip-vip", + "type": "5_bgp" + } + ] + } + argumentDocs: + port_ids: |- + - (Required) An array of one or more IDs of the ports to attach the vip to. + Changing this creates a new vip associate. + vip_id: |- + - (Required) The ID of vip to attach the port to. + Changing this creates a new vip associate. + vip_ip_address: '- The IP address in the subnet for this vip.' + vip_subnet_id: '- The ID of the subnet this vip connects to.' + importStatements: [] + opentelekomcloud_networking_vip_v2: + subCategory: Virtual Private Cloud (VPC) + description: Manages a VPC VIP resource within OpenTelekomCloud. + name: opentelekomcloud_networking_vip_v2 + title: opentelekomcloud_networking_vip_v2 + examples: + - name: vip_1 + manifest: |- + { + "network_id": "${opentelekomcloud_networking_network_v2.network_1.id}", + "subnet_id": "${opentelekomcloud_networking_subnet_v2.subnet_1.id}" + } + references: + network_id: opentelekomcloud_networking_network_v2.network_1.id + subnet_id: opentelekomcloud_networking_subnet_v2.subnet_1.id + dependencies: + opentelekomcloud_networking_network_v2.network_1: |- + { + "admin_state_up": "true", + "name": "network_1" + } + opentelekomcloud_networking_router_interface_v2.router_interface_1: |- + { + "router_id": "${opentelekomcloud_networking_router_v2.router_1.id}", + "subnet_id": "${opentelekomcloud_networking_subnet_v2.subnet_1.id}" + } + opentelekomcloud_networking_router_v2.router_1: |- + { + "external_gateway": "0a2228f2-7f8a-45f1-8e09-9039e1d09975", + "name": "router_1" + } + opentelekomcloud_networking_subnet_v2.subnet_1: |- + { + "cidr": "192.168.199.0/24", + "ip_version": 4, + "name": "subnet_1", + "network_id": "${opentelekomcloud_networking_network_v2.network_1.id}" + } + argumentDocs: + device_owner: '- The device owner of the vip.' + id: '- The ID of the vip.' + ip_address: |- + - (Optional) IP address desired in the subnet for this vip. + If you don't specify ip_address, an available IP address from + the specified subnet will be allocated to this vip. + name: '- (Optional) A unique name for the vip.' + network_id: |- + - (Required) The ID of the network to attach the vip to. + Changing this creates a new vip. + status: '- The status of vip.' + subnet_id: |- + - (Required) Subnet in which to allocate IP address for this vip. + Changing this creates a new vip. + tenant_id: '- The tenant ID of the vip.' + importStatements: [] + opentelekomcloud_obs_bucket: + subCategory: Object Storage Service (OBS) + description: Manages a OBS Bucket resource within OpenTelekomCloud. + name: opentelekomcloud_obs_bucket + title: opentelekomcloud_obs_bucket + examples: + - name: b + manifest: |- + { + "acl": "private", + "bucket": "my-tf-test-bucket", + "tags": { + "Env": "Test", + "foo": "bar" + } + } + - name: b + manifest: |- + { + "bucket": "my-tf-test-bucket", + "parallel_fs": true + } + - name: b + manifest: |- + { + "acl": "private", + "bucket": "my-tf-test-bucket", + "versioning": true + } + - name: b + manifest: |- + { + "acl": "private", + "bucket": "my-tf-test-bucket", + "versioning": false + } + - name: b + manifest: |- + { + "bucket": "my-tf-test-bucket", + "versioning": true, + "worm_policy": [ + { + "years": 1 + } + ] + } + - name: log_bucket + manifest: |- + { + "acl": "log-delivery-write", + "bucket": "my-tf-log-bucket" + } + - name: b + manifest: |- + { + "acl": "private", + "bucket": "my-tf-test-bucket", + "logging": [ + { + "target_bucket": "${opentelekomcloud_obs_bucket.log_bucket.id}", + "target_prefix": "log/" + } + ] + } + references: + logging.target_bucket: opentelekomcloud_obs_bucket.log_bucket.id + - name: b + manifest: |- + { + "acl": "public-read", + "bucket": "obs-website-test.hashicorp.com", + "website": [ + { + "error_document": "error.html", + "index_document": "index.html", + "routing_rules": "[{\n \"Condition\": {\n \"KeyPrefixEquals\": \"docs/\"\n },\n \"Redirect\": {\n \"ReplaceKeyPrefixWith\": \"documents/\"\n }\n}]\n" + } + ] + } + - name: b + manifest: |- + { + "acl": "public-read", + "bucket": "obs-website-test.hashicorp.com", + "cors_rule": [ + { + "allowed_headers": [ + "*" + ], + "allowed_methods": [ + "PUT", + "POST" + ], + "allowed_origins": [ + "https://obs-website-test.hashicorp.com" + ], + "expose_headers": [ + "ETag" + ], + "max_age_seconds": 3000 + } + ] + } + - name: bucket + manifest: |- + { + "acl": "public-read", + "bucket": "my-bucket", + "server_side_encryption": [ + { + "algorithm": "kms", + "kms_key_id": "${var.kms_master_key_id}" + } + ], + "storage_class": "WARM" + } + references: + server_side_encryption.kms_key_id: var.kms_master_key_id + - name: this + manifest: |- + { + "acl": "private", + "bucket": "${var.bucket_name}", + "server_side_encryption": [ + { + "algorithm": "kms", + "kms_key_id": "${opentelekomcloud_kms_key_v1.this.id}" + } + ] + } + references: + bucket: var.bucket_name + server_side_encryption.kms_key_id: opentelekomcloud_kms_key_v1.this.id + dependencies: + opentelekomcloud_identity_group_v3.this: |- + { + "description": "${var.user_group_desc}", + "name": "${var.user_group_name}" + } + opentelekomcloud_identity_role_assignment_v3.this_kms: |- + { + "all_projects": true, + "domain_id": "${var.domain_id}", + "group_id": "${opentelekomcloud_identity_group_v3.this.id}", + "role_id": "${opentelekomcloud_identity_role_v3.this_kms.id}" + } + opentelekomcloud_identity_role_assignment_v3.this_obs: |- + { + "all_projects": true, + "domain_id": "${var.domain_id}", + "group_id": "${opentelekomcloud_identity_group_v3.this.id}", + "role_id": "${opentelekomcloud_identity_role_v3.this_obs.id}" + } + opentelekomcloud_identity_role_v3.this_kms: |- + { + "description": "${var.role_kms_desc}", + "display_layer": "project", + "display_name": "${var.role_kms_display_name}", + "statement": [ + { + "action": [ + "kms:cmk:list", + "kms:cmk:get" + ], + "effect": "Allow" + }, + { + "action": [ + "kms:cmk:generate", + "kms:dek:create", + "kms:cmk:crypto", + "kms:dek:crypto" + ], + "effect": "Allow", + "resource": [ + "KMS:*:*:KeyId:${opentelekomcloud_kms_key_v1.this.id}" + ] + } + ] + } + opentelekomcloud_identity_role_v3.this_obs: |- + { + "description": "${var.role_obs_desc}", + "display_layer": "domain", + "display_name": "${var.role_obs_display_name}", + "statement": [ + { + "action": [ + "obs:object:DeleteObject", + "obs:object:PutObject", + "obs:object:GetObject", + "obs:bucket:ListBucket", + "obs:bucket:GetEncryptionConfiguration" + ], + "effect": "Allow", + "resource": [ + "OBS:*:*:bucket:${opentelekomcloud_obs_bucket.this.id}", + "OBS:*:*:object:*" + ] + } + ] + } + opentelekomcloud_identity_user_v3.this: |- + { + "access_type": "programmatic", + "description": "${var.user_desc}", + "lifecycle": [ + { + "ignore_changes": [ + "${pwd_reset}" + ] + } + ], + "name": "${var.user_name}" + } + opentelekomcloud_kms_key_v1.this: |- + { + "is_enabled": true, + "key_alias": "${var.kms_alias}", + "key_description": "${var.kms_desc}", + "pending_days": "7", + "realm": "${var.region}" + } + - name: bucket + manifest: |- + { + "acl": "private", + "bucket": "my-bucket", + "lifecycle_rule": [ + { + "enabled": true, + "expiration": [ + { + "days": 365 + } + ], + "name": "log", + "prefix": "log/", + "transition": [ + { + "days": 60, + "storage_class": "WARM" + }, + { + "days": 180, + "storage_class": "COLD" + } + ] + }, + { + "enabled": true, + "name": "tmp", + "noncurrent_version_expiration": [ + { + "days": 180 + } + ], + "noncurrent_version_transition": [ + { + "days": 30, + "storage_class": "WARM" + }, + { + "days": 60, + "storage_class": "COLD" + } + ], + "prefix": "tmp/" + } + ], + "versioning": true + } + - name: bucket + manifest: |- + { + "acl": "private", + "bucket": "tf-test-bucket-%[1]d", + "depends_on": [ + "${opentelekomcloud_smn_topic_attribute_v2.policy}" + ], + "event_notifications": [ + { + "events": [ + "ObjectCreated:*", + "ObjectRemoved:*" + ], + "filter_rule": [ + { + "name": "prefix", + "value": "smn" + }, + { + "name": "suffix", + "value": ".jpg" + } + ], + "topic": "${opentelekomcloud_smn_topic_v2.topic.id}" + } + ] + } + references: + event_notifications.topic: opentelekomcloud_smn_topic_v2.topic.id + dependencies: + opentelekomcloud_smn_topic_attribute_v2.policy: |- + { + "attribute_name": "access_policy", + "topic_attribute": "{\n \"Version\": \"2016-09-07\",\n \"Id\": \"__default_policy_ID\",\n \"Statement\": [\n {\n \"Sid\": \"__service_pub_0\",\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": [\n \"obs\",\n \"s3\"\n ]\n },\n \"Action\": [\n \"SMN:Publish\",\n \"SMN:QueryTopicDetail\"\n ],\n \"Resource\": \"${opentelekomcloud_smn_topic_v2.topic.id}\"\n }\n ]\n}\n", + "topic_urn": "${opentelekomcloud_smn_topic_v2.topic.id}" + } + opentelekomcloud_smn_topic_v2.topic: |- + { + "display_name": "The display name of topic_1", + "name": "obs-notifications" + } + - name: b + manifest: |- + { + "bucket": "my-tf-test-bucket", + "user_domain_names": [ + "${var.domain_1}", + "${var.domain_2}", + "${var.domain_3}" + ] + } + argumentDocs: + acl: |- + - (Optional) Specifies the ACL policy for a bucket. The predefined common policies are as follows: + private, public-read, public-read-write and log-delivery-write. Defaults to private. + algorithm: '- (Required) The algorithm used for SSE. Only kms is supported.' + allowed_headers: |- + - (Optional) Specifies the allowed header of cross-origin requests. + Only CORS requests matching the allowed header are valid. + allowed_methods: |- + - (Required) Specifies the acceptable operation type of buckets and objects. + The methods include GET, PUT, POST, DELETE or HEAD. + allowed_origins: |- + - (Required) Requests from this origin can access the bucket. Multiple matching rules are allowed. + One rule occupies one line, and allows one wildcard character (*) at most. + bucket: |- + - (Required) Specifies the name of the bucket. Changing this parameter will create a new resource. + A bucket must be named according to the globally applied DNS naming regulations as follows: + bucket_domain_name: '- The bucket domain name. Will be of format bucketname.obs.region.otc.t-systems.com.' + bucket_version: '- The OBS version of the bucket.' + cors_rule: '- (Optional) A rule of Cross-Origin Resource Sharing (documented below).' + days: |- + - (Optional) Default protection period, in days. + The value is from 1 to 36500. + enabled: '- (Required) Specifies lifecycle rule status.' + error_document: |- + - (Optional) Specifies the error page returned when an error occurs during static website access. + Only HTML, JPG, PNG, BMP, and WEBP files under the root directory are supported. + event_notifications: '- (Optional) A configuration of bucket event notifications (documented below).' + events: '- (Required) Type of events that need to be notified.' + expiration: |- + - (Optional) Specifies a period when objects that have been last updated are automatically + deleted. (documented below). + expose_headers: |- + - (Optional) Specifies the exposed header in CORS responses, providing additional + information for clients. + filter_rule: '- (Optional) Filtering rules. The rules filter objects based on the prefixes and suffixes of object names.' + force_destroy: |- + - (Optional) A boolean that indicates all objects should be deleted from the bucket so that the + bucket can be destroyed without error. Default to false. + id: '- (Optional) Unique ID of the event notification. If the user does not specify an ID, the system assigns an ID automatically.' + index_document: |- + - (Required, unless using redirect_all_requests_to) Specifies the default homepage of the + static website, only HTML web pages are supported. OBS only allows files such as index.html in the root + directory of a bucket to function as the default homepage. That is to say, do not set the default homepage + with a multi-level directory structure (for example, /page/index.html). + kms_key_id: '- (Required) The ID of KMS key used for the encryption.' + lifecycle_rule: '- (Optional) A configuration of object lifecycle management (documented below).' + logging: '- (Optional) A settings of bucket logging (documented below).' + max_age_seconds: |- + - (Optional) Specifies the duration that your browser can cache CORS responses, + expressed in seconds. The default value is 100. + name: '- (Required) Unique identifier for lifecycle rules. The Rule Name contains a maximum of 255 characters.' + noncurrent_version_expiration: |- + - (Optional) Specifies a period when noncurrent object versions are + automatically deleted. (documented below). + noncurrent_version_transition: |- + - (Optional) Specifies a period when noncurrent object versions are + automatically transitioned to WARM or COLD storage class (documented below). + parallel_fs: '- (Optional) Whether enable a bucket as a parallel file system.' + prefix: |- + - (Optional) Object key prefix identifying one or more objects to which the rule applies. + If omitted, all objects in the bucket will be managed by the lifecycle rule. The prefix cannot start + or end with a slash (/), cannot have consecutive slashes (/), and cannot contain the following + special characters: :*?"<>|. + redirect_all_requests_to: |- + - (Optional) A hostname to redirect all website requests for this bucket to. + Hostname can optionally be prefixed with a protocol (http:// or https://) to use when redirecting + requests. The default is the protocol that is used in the original request. + region: |- + - (Optional) If specified, the region this bucket should reside in. Otherwise, + the region used by the provider. + routing_rules: |- + - (Optional) A JSON or XML format containing routing rules describing redirect + behavior and when redirects are applied. Each rule contains a Condition and a Redirect + as shown in the following table: + server_side_encryption: '- (Optional) A configuration of server side encryption (documented below).' + storage_class: |- + - (Optional) Specifies the storage class of the bucket. OBS provides three storage classes: + STANDARD, WARM (Infrequent Access) and COLD (Archive). Defaults to STANDARD. + tags: '- (Optional) A mapping of tags to assign to the bucket. Each tag is represented by one key-value pair.' + target_bucket: |- + - (Required) The name of the bucket that will receive the log objects. + The acl policy of the target bucket should be log-delivery-write. + target_prefix: '- (Optional) To specify a key prefix for log objects.' + topic: '- (Required) URN of the event notification topic. After detecting a specific event, OBS sends a message to the topic.' + transition: |- + - (Optional) Specifies a period when objects that have been last updated are automatically + transitioned to WARM or COLD storage class (documented below). + user_domain_names: |- + - (Optional) Specifies the user domain names. The restriction requirements for this field + are as follows: + value: |- + - (Optional) Specifies keywords of object names so that objects can be filtered based on the prefixes or suffixes. + The value contains a maximum of 1024 characters. + versioning: |- + - (Optional) Set to true to enable versioning. Once you version-enable a bucket, it can never return to an + unversioned state. You can, however, suspend versioning on that bucket. If omitted, during bucket + creation it will be in Disabled state. + website: '- (Optional) A website object (documented below).' + worm_policy: |- + - (Optional) A settings of bucket default WORM policy and a retention period (documented below). + worm_policy requires versioning to be enabled. + years: |- + - (Optional) Default protection period, in years. In a leap year, only 365 days are calculated. + The value is from 1 to 100. + importStatements: + - terraform import opentelekomcloud_obs_bucket.bucket bucket-name + opentelekomcloud_obs_bucket_inventory: + subCategory: Object Storage Service (OBS) + description: Manages a OBS Bucket Inventory resource within OpenTelekomCloud. + name: opentelekomcloud_obs_bucket_inventory + title: opentelekomcloud_obs_bucket_inventory + examples: + - name: inventory + manifest: |- + { + "bucket": "${opentelekomcloud_obs_bucket.bucket.bucket}", + "configuration_id": "test-id", + "destination": [ + { + "bucket": "${opentelekomcloud_obs_bucket.bucket.bucket}", + "format": "CSV", + "prefix": "test-" + } + ], + "filter_prefix": "test-filter-prefix", + "frequency": "Weekly", + "included_object_versions": "Current", + "is_enabled": true + } + references: + bucket: opentelekomcloud_obs_bucket.bucket.bucket + destination.bucket: opentelekomcloud_obs_bucket.bucket.bucket + dependencies: + opentelekomcloud_obs_bucket.bucket: |- + { + "bucket": "my-tf-test-bucket" + } + argumentDocs: + bucket: '- (Required, ForceNew, String) Name of the bucket for saving inventories.' + configuration_id: |- + - (Required, ForceNew, String) ID of the inventory configuration. Valid characters: letters, digits, hyphens (-), + periods (.) and underscores (_). + destination: |- + - (Required, List) Destination bucket settings of an inventory. + The structure is documented below. + destination.bucket: '- (Required, String) Name of the bucket for saving inventories.' + destination.format: '- (Required, String) Inventory format. Only the CSV format is supported.' + destination.prefix: '- (Optional, String) The name prefix of inventory files. If no prefix is configured, the names of inventory files will start with the BucketInventory by default.' + filter_prefix: '- (Optional, String) Filtering by name prefix. Only objects with the specified name prefix are included in the inventory.' + frequency: |- + - (Required, String) Intervals when inventories are generated. + An inventory is generated within one hour after it is configured for the first time. Then it is generated at the specified intervals. + Possible values: + included_object_versions: |- + - (Required, String) Indicates whether versions of objects are included in an inventory. + Possible values: + is_enabled: '- (Required, Bool) Indicates whether the rule is enabled. If this parameter is set to true, the inventory is generated.' + region: '- Specifies the bucket region.' + importStatements: [] + opentelekomcloud_obs_bucket_object: + subCategory: Object Storage Service (OBS) + description: Manages a OBS Bucket Object resource within OpenTelekomCloud. + name: opentelekomcloud_obs_bucket_object + title: opentelekomcloud_obs_bucket_object + examples: + - name: object + manifest: |- + { + "bucket": "your_bucket_name", + "content": "some object content", + "content_type": "application/xml", + "key": "new_key_from_content" + } + - name: object + manifest: |- + { + "bucket": "${opentelekomcloud_obs_bucket.examplebucket.bucket}", + "key": "new_key_from_file", + "source": "index.html" + } + references: + bucket: opentelekomcloud_obs_bucket.examplebucket.bucket + dependencies: + opentelekomcloud_obs_bucket.examplebucket: |- + { + "acl": "private", + "bucket": "examplebuckettftest" + } + - name: examplebucket_object + manifest: |- + { + "bucket": "your_bucket_name", + "encryption": true, + "key": "someobject", + "source": "index.html" + } + argumentDocs: + acl: '- (Optional) The ACL policy to apply. Defaults to private.' + bucket: '- (Required) The name of the bucket to put the file in.' + content: '- (Optional) The literal content being uploaded to the bucket.' + content_type: |- + - (Optional) A standard MIME type describing the format of the object data, e.g. application/octet-stream. + All Valid MIME Types are valid for this input. + encryption: '- (Optional) Whether enable server-side encryption of the object in SSE-KMS mode.' + etag: |- + - (Optional) Specifies the unique identifier of the object content. It can be used to trigger updates. + The only meaningful value is md5(file("path_to_file")). + id: '- the key of the resource supplied above.' + key: '- (Required) The name of the object once it is in the bucket.' + size: '- the size of the object in bytes.' + source: '- (Optional) The path to the source file being uploaded to the bucket.' + sse_kms_key_id: '- (Optional) The ID of the kms key. If omitted, the default master key will be used.' + storage_class: '- (Optioanl) Specifies the storage class of the object. Defaults to STANDARD.' + version_id: '- A unique version ID value for the object, if bucket versioning is enabled.' + importStatements: [] + opentelekomcloud_obs_bucket_policy: + subCategory: Object Storage Service (OBS) + description: Manages a OBS Bucket Policy resource within OpenTelekomCloud. + name: opentelekomcloud_obs_bucket_policy + title: opentelekomcloud_obs_bucket_policy + examples: + - name: policy + manifest: |- + { + "bucket": "${opentelekomcloud_obs_bucket.bucket.id}", + "policy": "{\n \"Statement\": [{\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"ID\": [\"*\"]\n },\n \"Action\": [\n \"GetObject\",\n \"PutObject\"\n ],\n \"Resource\": [\n \"${opentelekomcloud_obs_bucket.bucket.bucket}/*\"\n ]\n }]\n}\n" + } + references: + bucket: opentelekomcloud_obs_bucket.bucket.id + dependencies: + opentelekomcloud_obs_bucket.bucket: |- + { + "bucket": "my-tf-test-bucket" + } + argumentDocs: + bucket: '- (Required) The name of the bucket to which to apply the policy.' + policy: '- (Required) The text of the policy.' + importStatements: [] + opentelekomcloud_obs_bucket_replication: + subCategory: Object Storage Service (OBS) + description: Manages a OBS Bucket Replication resource within OpenTelekomCloud. + name: opentelekomcloud_obs_bucket_replication + title: opentelekomcloud_obs_bucket_replication + examples: + - name: test + manifest: |- + { + "agency": "${var.agency}", + "bucket": "${var.bucket}", + "destination_bucket": "${var.destination_bucket}" + } + references: + agency: var.agency + bucket: var.bucket + destination_bucket: var.destination_bucket + - name: test + manifest: |- + { + "agency": "${var.agency}", + "bucket": "${var.bucket}", + "destination_bucket": "${var.destination_bucket}", + "rule": [ + { + "prefix": "log" + }, + { + "delete_data": true, + "enabled": true, + "history_enabled": false, + "prefix": "imgs/", + "storage_class": "COLD" + } + ] + } + references: + agency: var.agency + bucket: var.bucket + destination_bucket: var.destination_bucket + argumentDocs: + agency: '- (Required) Specifies the IAM agency name applied to the cross-region replication.' + bucket: '- (Required, ForceNew) Specifies the name of the source bucket.' + destination_bucket: '- (Required) Specifies the name of the destination bucket.' + id: '- The name of the bucket.' + region: |- + - (Optional, ForceNew) Specifies the region in which to create the resource. + If omitted, the provider-level region will be used. + rule: |- + - (Optional) Specifies the configurations of object cross-region replication management. + The structure is documented below. + rule.delete_data: |- + - (Optional) Specifies cross-region replication object deletion operations status. Defaults to false. + If the value is true, object deletion for the source bucket will be replicated to the destination bucket. + rule.enabled: '- (Optional) Specifies cross-region replication rule status. Defaults to true.' + rule.history_enabled: |- + - (Optional) Specifies cross-region replication history rule status. Defaults to false. + If the value is true, historical objects meeting this rule are copied. + rule.prefix: |- + - (Optional) Specifies the prefix of an object key name, applicable to one or more objects. + The maximum length of a prefix is 1024 characters. + Duplicated prefixes are not supported. If omitted, all objects in the bucket will be managed by the lifecycle rule. + To copy a folder, end the prefix with a slash (/), for example, imgs/. + rule.storage_class: |- + - (Optional) Specifies the storage class for replicated objects. Valid values are STANDARD, + WARM (Infrequent Access) and COLD (Archive). + If omitted, the storage class of object copies is the same as that of objects in the source bucket. + rule/id: '- The ID of a rule in UUID format.' + importStatements: [] + opentelekomcloud_rds_backup_v3: + subCategory: Relational Database Service (RDS) + description: Manages an RDS Backup resource within OpenTelekomCloud. + name: opentelekomcloud_rds_backup_v3 + title: opentelekomcloud_rds_backup_v3 + examples: + - name: test + manifest: |- + { + "description": "manual", + "instance_id": "${opentelekomcloud_rds_instance_v3.instance.id}", + "name": "rds-backup-test-01" + } + references: + instance_id: opentelekomcloud_rds_instance_v3.instance.id + dependencies: + opentelekomcloud_rds_instance_v3.instance: |- + { + "datastore": "percona", + "engine": "mysql", + "flavor_ref": "rds.mysql.s1.large", + "name": "test-instance" + } + argumentDocs: + begin_time: |- + - Indicates the backup start time in the "yyyy-mm-ddThh:mm:ssZ" format, + where "T" indicates the start time of the time field, and "Z" indicates the time zone offset. + databases: |- + - (Optional) Specifies a list of self-built Microsoft SQL Server databases that are partially backed up. + (Only Microsoft SQL Server support partial backups.) + description: |- + - (Optional) Specifies the backup description. + It contains a maximum of 256 characters and cannot contain the following special characters: >!<"&'= + id: '- The ID of the backup.' + instance_id: '- (Required) The ID of the RDS instance to which the backup belongs.' + name: '- (Required) The name of the backup.' + status: |- + - Indicates the backup status. Value: + - BUILDING: Backup in progress + - COMPLETED: Backup completed + - FAILED: Backup failed + - DELETING: Backup being deleted + type: |- + - Indicates the backup type. Value: + - auto: automated full backup + - manual: manual full backup + - fragment: differential full backup + - incremental: automated incremental backup + importStatements: [] + opentelekomcloud_rds_instance_v1: + subCategory: Relational Database Service (RDS) + description: Manages an RDS Instance v1 resource within OpenTelekomCloud. + name: opentelekomcloud_rds_instance_v1 + title: opentelekomcloud_rds_instance_v1 + examples: + - name: instance + manifest: |- + { + "availabilityzone": "eu-de-01", + "backupstrategy": [ + { + "keepdays": 4, + "starttime": "04:00:00" + } + ], + "datastore": [ + { + "type": "PostgreSQL", + "version": "9.5.5" + } + ], + "dbport": "8635", + "dbrtpd": "P@ssw0rd1!9851", + "depends_on": [ + "opentelekomcloud_compute_secgroup_v2.secgrp_rds" + ], + "flavorref": "${data.opentelekomcloud_rds_flavors_v1.flavor.id}", + "ha": [ + { + "enable": true, + "replicationmode": "async" + } + ], + "name": "rds-instance", + "nics": [ + { + "subnetid": "b65f8d25-c533-47e2-8601-cfaa265a3e3e" + } + ], + "securitygroup": [ + { + "id": "${opentelekomcloud_compute_secgroup_v2.secgrp_rds.id}" + } + ], + "tag": { + "foo": "bar", + "key": "value" + }, + "volume": [ + { + "size": 200, + "type": "COMMON" + } + ], + "vpc": "c1095fe7-03df-4205-ad2d-6f4c181d436e" + } + references: + flavorref: data.opentelekomcloud_rds_flavors_v1.flavor.id + securitygroup.id: opentelekomcloud_compute_secgroup_v2.secgrp_rds.id + dependencies: + opentelekomcloud_compute_secgroup_v2.secgrp_rds: |- + { + "description": "Rds Security Group", + "name": "secgrp-rds-instance" + } + - name: instance + manifest: |- + { + "availabilityzone": "eu-de-01", + "backupstrategy": [ + { + "keepdays": 4, + "starttime": "04:00:00" + } + ], + "datastore": [ + { + "type": "SQLServer", + "version": "2014 SP2 SE" + } + ], + "dbport": "8635", + "dbrtpd": "P@ssw0rd1!9851", + "depends_on": [ + "opentelekomcloud_compute_secgroup_v2.secgrp_rds" + ], + "flavorref": "${data.opentelekomcloud_rds_flavors_v1.flavor.id}", + "name": "rds-instance", + "nics": [ + { + "subnetid": "b65f8d25-c533-47e2-8601-cfaa265a3e3e" + } + ], + "securitygroup": [ + { + "id": "${opentelekomcloud_compute_secgroup_v2.secgrp_rds.id}" + } + ], + "volume": [ + { + "size": 200, + "type": "COMMON" + } + ], + "vpc": "c1095fe7-03df-4205-ad2d-6f4c181d436e" + } + references: + flavorref: data.opentelekomcloud_rds_flavors_v1.flavor.id + securitygroup.id: opentelekomcloud_compute_secgroup_v2.secgrp_rds.id + dependencies: + opentelekomcloud_compute_secgroup_v2.secgrp_rds: |- + { + "description": "Rds Security Group", + "name": "secgrp-rds-instance" + } + - name: instance + manifest: |- + { + "availabilityzone": "eu-de-01", + "backupstrategy": [ + { + "keepdays": 4, + "starttime": "04:00:00" + } + ], + "datastore": [ + { + "type": "MySQL", + "version": "5.6.33" + } + ], + "dbport": "8635", + "dbrtpd": "P@ssw0rd1!9851", + "depends_on": [ + "opentelekomcloud_compute_secgroup_v2.secgrp_rds" + ], + "flavorref": "${data.opentelekomcloud_rds_flavors_v1.flavor.id}", + "ha": [ + { + "enable": true, + "replicationmode": "async" + } + ], + "name": "rds-instance", + "nics": [ + { + "subnetid": "b65f8d25-c533-47e2-8601-cfaa265a3e3e" + } + ], + "securitygroup": [ + { + "id": "${opentelekomcloud_compute_secgroup_v2.secgrp_rds.id}" + } + ], + "volume": [ + { + "size": 200, + "type": "COMMON" + } + ], + "vpc": "c1095fe7-03df-4205-ad2d-6f4c181d436e" + } + references: + flavorref: data.opentelekomcloud_rds_flavors_v1.flavor.id + securitygroup.id: opentelekomcloud_compute_secgroup_v2.secgrp_rds.id + dependencies: + opentelekomcloud_compute_secgroup_v2.secgrp_rds: |- + { + "description": "Rds Security Group", + "name": "secgrp-rds-instance" + } + argumentDocs: + availabilityzone: '- (Required) Specifies the ID of the AZ.' + backupstrategy: |- + - (Optional) Specifies the advanced backup policy. The structure + is described below. + backupstrategy .keepdays: |- + - (Optional) Specifies the number of days to retain the generated backup files. + Its value range is 0 to 35. If this parameter is not specified or set to 0, the + automated backup policy is disabled. + backupstrategy .starttime: |- + - (Optional) Indicates the backup start time that has been set. + The backup task will be triggered within one hour after the backup start time. + Valid value: The value cannot be empty. It must use the hh:mm:ss format and + must be valid. The current time is the UTC time. + created: '- Indicates the creation time in the following format: yyyy-mm-dd Thh:mm:ssZ.' + datastore: |- + - (Required) Specifies database information. The structure is + described below. + datastore.type: |- + - (Required) Specifies the DB engine. Currently, MySQL, PostgreSQL, and + Microsoft SQL Server are supported. The value is MySQL, PostgreSQL, or SQLServer. + datastore.version: '- (Required) Specifies the DB instance version.' + dbport: '- (Optional) Specifies the database port number.' + dbrtpd: '- (Required) Specifies the password for user root of the database.' + flavorref: |- + - (Required) Specifies the specification ID (flavors.id in the + response message in Obtaining All DB Instance Specifications). If you want + to enable ha for the rds instance, a flavor with ha speccode is required. + ha: |- + - (Optional) Specifies the parameters configured on HA and is used when + creating HA DB instances. The structure is described below. NOTICE: + RDS for Microsoft SQL Server does not support creating HA DB instances and + this parameter is not involved. + ha.enable: |- + - (Optional) Specifies the configured parameters on the HA. + Valid value: The value is true or false. The value true indicates creating + HA DB instances. The value false indicates creating a single DB instance. + ha.replicationmode: |- + - (Optional) Specifies the replication mode for the standby DB instance. + The value cannot be empty. + For MySQL, the value is async or semisync. + For PostgreSQL, the value is async or sync. + hostname: '- Indicates the instance connection address. It is a blank string.' + name: |- + - (Required) Specifies the DB instance name. The DB instance name of + the same type is unique in the same tenant. The changes of the instance name + will be suppressed in HA scenario. + nics: |- + - (Required) Specifies the nics information. For details about how + to obtain this parameter value, see section "Subnet" in the Virtual Private + Cloud API Reference. The structure is described below. + nics.subnetId: '- (Required) Specifies the subnet ID obtained from the VPC.' + securitygroup: |- + - (Required) Specifies the security group which the RDS DB + instance belongs to. The structure is described below. + securitygroup .id: '- (Required) Specifies the ID obtained from the securitygroup.' + status: '- Indicates the DB instance status.' + tag: '- (Optional) Tags key/value pairs to associate with the instance.' + type: '- Indicates the DB instance type, which can be master or readreplica.' + updated: '- Indicates the update time in the following format: yyyy-mm-dd Thh:mm:ssZ.' + volume: |- + - (Required) Specifies the volume information. The structure is described + below. + volume.size: |- + - (Required) Specifies the volume size. + Its value must be a multiple of 10 and the value range is 100 GB to 2000 GB. + volume.type: |- + - (Required) Specifies the volume type. Valid value: + It must be COMMON (SATA) or ULTRAHIGH (SSD) and is case-sensitive. + vpc: |- + - (Required) Specifies the VPC ID. For details about how to obtain this + parameter value, see section "Virtual Private Cloud" in the Virtual Private + Cloud API Reference. + importStatements: [] + opentelekomcloud_rds_instance_v3: + subCategory: Relational Database Service (RDS) + description: Manages an RDS Instance v3 resource within OpenTelekomCloud. + name: opentelekomcloud_rds_instance_v3 + title: opentelekomcloud_rds_instance_v3 + examples: + - name: instance + manifest: |- + { + "availability_zone": [ + "${var.availability_zone}" + ], + "backup_strategy": [ + { + "keep_days": 1, + "start_time": "08:00-09:00" + } + ], + "db": [ + { + "password": "P@ssw0rd1!9851", + "port": "8635", + "type": "PostgreSQL", + "version": "9.5" + } + ], + "flavor": "rds.pg.c2.medium", + "name": "terraform_test_rds_instance", + "security_group_id": "${opentelekomcloud_networking_secgroup_v2.secgroup.id}", + "subnet_id": "${var.subnet_id}", + "tags": { + "foo": "bar", + "key": "value" + }, + "volume": [ + { + "size": 100, + "type": "COMMON" + } + ], + "vpc_id": "${var.vpc_id}" + } + references: + security_group_id: opentelekomcloud_networking_secgroup_v2.secgroup.id + subnet_id: var.subnet_id + vpc_id: var.vpc_id + dependencies: + opentelekomcloud_networking_secgroup_v2.secgroup: |- + { + "description": "terraform security group acceptance test", + "name": "terraform_test_security_group" + } + - name: instance + manifest: |- + { + "availability_zone": [ + "${var.availability_zone_1}", + "${var.availability_zone_2}" + ], + "backup_strategy": [ + { + "keep_days": 1, + "start_time": "08:00-09:00" + } + ], + "db": [ + { + "password": "P@ssw0rd1!9851", + "port": "8635", + "type": "PostgreSQL", + "version": "9.5" + } + ], + "flavor": "rds.pg.s1.medium.ha", + "ha_replication_mode": "async", + "name": "terraform_test_rds_instance", + "security_group_id": "${opentelekomcloud_networking_secgroup_v2.secgroup.id}", + "subnet_id": "${var.subnet_id}", + "tags": { + "foo": "bar", + "key": "value" + }, + "volume": [ + { + "size": 100, + "type": "COMMON" + } + ], + "vpc_id": "${var.vpc_id}" + } + references: + security_group_id: opentelekomcloud_networking_secgroup_v2.secgroup.id + subnet_id: var.subnet_id + vpc_id: var.vpc_id + dependencies: + opentelekomcloud_networking_secgroup_v2.secgroup: |- + { + "description": "terraform security group acceptance test", + "name": "terraform_test_security_group" + } + - name: instance + manifest: |- + { + "availability_zone": [ + "${var.availability_zone_1}", + "${var.availability_zone_2}" + ], + "backup_strategy": [ + { + "keep_days": 1, + "start_time": "08:00-09:00" + } + ], + "db": [ + { + "password": "Telekom!120521", + "port": "8635", + "type": "PostgreSQL", + "version": "9.5" + } + ], + "flavor": "rds.pg.s1.medium.ha", + "ha_replication_mode": "async", + "name": "terraform_test_rds_instance", + "public_ips": [ + "${opentelekomcloud_compute_floatingip_v2.ip.address}" + ], + "security_group_id": "${opentelekomcloud_networking_secgroup_v2.secgroup.id}", + "subnet_id": "${var.subnet_id}", + "tags": { + "foo": "bar", + "key": "value" + }, + "volume": [ + { + "size": 100, + "type": "COMMON" + } + ], + "vpc_id": "${var.vpc_id}" + } + references: + security_group_id: opentelekomcloud_networking_secgroup_v2.secgroup.id + subnet_id: var.subnet_id + vpc_id: var.vpc_id + dependencies: + opentelekomcloud_compute_floatingip_v2.ip: '{}' + opentelekomcloud_networking_secgroup_v2.secgroup: |- + { + "description": "terraform security group acceptance test", + "name": "terraform_test_security_group" + } + - name: instance + manifest: |- + { + "availability_zone": [ + "${var.availability_zone}" + ], + "backup_strategy": [ + { + "keep_days": 1, + "start_time": "08:00-09:00" + } + ], + "db": [ + { + "password": "P@ssw0rd1!9851", + "port": "8635", + "type": "PostgreSQL", + "version": "9.5" + } + ], + "flavor": "rds.pg.c2.medium", + "name": "terraform_test_rds_instance", + "security_group_id": "${opentelekomcloud_networking_secgroup_v2.secgroup.id}", + "subnet_id": "${var.subnet_id}", + "volume": [ + { + "disk_encryption_id": "${opentelekomcloud_kms_key_v1.key.id}", + "size": 100, + "type": "COMMON" + } + ], + "vpc_id": "${var.vpc_id}" + } + references: + security_group_id: opentelekomcloud_networking_secgroup_v2.secgroup.id + subnet_id: var.subnet_id + volume.disk_encryption_id: opentelekomcloud_kms_key_v1.key.id + vpc_id: var.vpc_id + dependencies: + opentelekomcloud_kms_key_v1.key: |- + { + "is_enabled": true, + "key_alias": "key_1", + "key_description": "first test key" + } + opentelekomcloud_networking_secgroup_v2.secgroup: |- + { + "description": "terraform security group acceptance test", + "name": "terraform_test_security_group" + } + - name: instance + manifest: |- + { + "availability_zone": [ + "${var.availability_zone}" + ], + "db": [ + { + "password": "Postgres!120521", + "port": "8635", + "type": "PostgreSQL", + "version": "10" + } + ], + "flavor": "rds.pg.c2.medium", + "name": "tf_rds_instance_%s", + "parameters": { + "max_connections": "37" + }, + "security_group_id": "${opentelekomcloud_networking_secgroup_v2.sg.id}", + "subnet_id": "${var.subnet_id}", + "volume": [ + { + "size": 40, + "type": "COMMON" + } + ], + "vpc_id": "${var.vpc_id}" + } + references: + security_group_id: opentelekomcloud_networking_secgroup_v2.sg.id + subnet_id: var.subnet_id + vpc_id: var.vpc_id + dependencies: + opentelekomcloud_networking_secgroup_v2.sg: |- + { + "name": "sg-rds-test" + } + opentelekomcloud_rds_parametergroup_v3.pg: |- + { + "datastore": [ + { + "type": "postgresql", + "version": "10" + } + ], + "name": "pg-rds-test", + "values": { + "autocommit": "OFF" + } + } + - name: from_backup + manifest: |- + { + "availability_zone": "${opentelekomcloud_rds_instance_v3.instance.availability_zone}", + "backup_strategy": [ + { + "keep_days": 1, + "start_time": "08:00-09:00" + } + ], + "db": [ + { + "password": "Postgres!120521", + "port": "8635", + "type": "PostgreSQL", + "version": "10" + } + ], + "flavor": "rds.pg.c2.medium", + "name": "instance-restored", + "restore_point": [ + { + "backup_id": "${data.opentelekomcloud_rds_backup_v3.backup.id}", + "instance_id": "${data.opentelekomcloud_rds_backup_v3.backup.instance_id}" + } + ], + "security_group_id": "${var.security_group_id}", + "subnet_id": "${var.os_network_id}", + "volume": [ + { + "size": 40, + "type": "COMMON" + } + ], + "vpc_id": "${var.os_router_id}" + } + references: + availability_zone: opentelekomcloud_rds_instance_v3.instance.availability_zone + restore_point.backup_id: data.opentelekomcloud_rds_backup_v3.backup.id + restore_point.instance_id: data.opentelekomcloud_rds_backup_v3.backup.instance_id + security_group_id: var.security_group_id + subnet_id: var.os_network_id + vpc_id: var.os_router_id + - name: instance + manifest: |- + { + "availability_zone": "${opentelekomcloud_rds_instance_v3.instance.availability_zone}", + "backup_strategy": [ + { + "keep_days": 1, + "start_time": "08:00-09:00" + } + ], + "db": [ + { + "password": "MySql!112822", + "port": "8635", + "type": "MySQL", + "version": "8.0" + } + ], + "flavor": "rds.mysql.c2.medium", + "name": "tf_rds_instance_%s", + "param_group_id": "${opentelekomcloud_rds_parametergroup_v3.pg_1.id}", + "security_group_id": "${data.opentelekomcloud_networking_secgroup_v2.default_secgroup.id}", + "subnet_id": "${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.network_id}", + "tags": { + "kuh": "value-create", + "muh": "value-create" + }, + "volume": [ + { + "size": 40, + "type": "COMMON" + } + ], + "vpc_id": "${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.vpc_id}" + } + references: + availability_zone: opentelekomcloud_rds_instance_v3.instance.availability_zone + param_group_id: opentelekomcloud_rds_parametergroup_v3.pg_1.id + security_group_id: data.opentelekomcloud_networking_secgroup_v2.default_secgroup.id + subnet_id: data.opentelekomcloud_vpc_subnet_v1.shared_subnet.network_id + vpc_id: data.opentelekomcloud_vpc_subnet_v1.shared_subnet.vpc_id + dependencies: + opentelekomcloud_rds_parametergroup_v3.pg_1: |- + { + "datastore": [ + { + "type": "mysql", + "version": "8.0" + } + ], + "description": "time zone template", + "name": "pg_tmz", + "values": { + "time_zone": "Africa/Casablanca" + } + } + - name: instance_1 + manifest: |- + { + "lifecycle": [ + { + "ignore_changes": [ + "db", + "availability_zone" + ] + } + ] + } + argumentDocs: + availability_zone: '- (Required, ForceNew) Specifies the AZ name. Changing this parameter will create a new resource.' + availability_zones: '- Indicates the instance AZs.' + backup: |- + - Indicates using backup files for restoration. + In this mode backup_id is mandatory. + backup_strategy: '- (Optional) Specifies the advanced backup policy. Structure is documented below.' + backup_strategy.keep_days: |- + - (Optional) Specifies the retention days for specific backup files. The value + range is from 0 to 732. If this parameter is not specified or set + to 0, the automated backup policy is disabled. NOTICE: + Primary/standby DB instances of Microsoft SQL Server do not + support disabling the automated backup policy. + backup_strategy.start_time: |- + - (Required) Specifies the backup time window. Automated backups will be + triggered during the backup time window. It must be a valid value in the "hh:mm-HH:MM" + format. The current time is in the UTC format. The HH value must + be 1 greater than the hh value. The values of mm and MM must be + the same and must be set to any of the following: 00, 15, 30, or + 45. Example value: 08:15-09:15 23:00-00:00. + create: '- Default is 30 minute.' + created: '- Indicates the creation time.' + db: '- (Required, ForceNew) Specifies the database information. Structure is documented below. Changing this parameter will create a new resource.' + db.password: |- + - (Required, ForceNew) Specifies the database password. The value cannot be + empty and should contain 8 to 32 characters, including uppercase + and lowercase letters, digits, and the following special + characters: ~!@#%^*-_=+? You are advised to enter a strong + password to improve security, preventing security risks such as + brute force cracking. Changing this parameter will create a new resource. + db.port: |- + - (Optional) Specifies the database port information. The MySQL database port + ranges from 1024 to 65535 (excluding 12017 and 33071, which are + occupied by the RDS system and cannot be used). The PostgreSQL + database port ranges from 2100 to 9500. The Microsoft SQL Server + database port can be 1433 or ranges from 2100 to 9500, excluding + 5355 and 5985. If this parameter is not set, the default value is + as follows: For MySQL, the default value is 3306. For PostgreSQL, + the default value is 5432. For Microsoft SQL Server, the default + value is 1433. Changing this parameter will create a new resource. + db.type: '- (Required, ForceNew) Specifies the DB engine. Value: MySQL, PostgreSQL, SQLServer. Changing this parameter will create a new resource.' + db.user_name: '- Indicates the default user name of database.' + db.version: |- + - (Required, ForceNew) Specifies the database version. MySQL databases support MySQL 5.6 + and above. PostgreSQL databases support PostgreSQL 9.5 and above. Microsoft SQL Server + databases support 2014 SE, 2016 SE, and above. + Changing this parameter will create a new resource. + flavor: |- + - (Required) Specifies the specification code. + Use data source opentelekomcloud_rds_flavors_v3 to get a list of available flavor names. + Examples could be rds.pg.c2.medium or rds.pg.c2.medium.ha for HA clusters. + ha_replication_mode: |- + - (Optional, ForceNew) Specifies the replication mode for the standby DB instance. For MySQL, the value + is async or semisync. For PostgreSQL, the value is async or sync. For Microsoft SQL Server, the value is sync. + Parameter is required for HA clusters. + lower_case_table_names: |- + - (Optional, ForceNew) Specifies the case-sensitive state of the database table name, + the default value is "1". Changing this parameter will create a new resource. + name: |- + - (Required, ForceNew) Specifies the DB instance name. The DB instance name of the same type + must be unique for the same tenant. The value must be 4 to 64 + characters in length and start with a letter. It is case-sensitive + and can contain only letters, digits, hyphens (-), and underscores + (_). Changing this parameter will create a new resource. + nodes: '- Indicates the instance nodes information. Structure is documented below.' + nodes.availability_zone: '- Indicates the AZ.' + nodes.id: '- Indicates the node ID.' + nodes.name: '- Indicates the node name.' + nodes.role: '- Indicates the node type. The value can be master or slave, indicating the primary node or standby node respectively.' + nodes.status: '- Indicates the node status.' + param_group_id: '- (Optional) Specifies the parameter group ID.' + parameters: |- + - (Optional) Map of additional configuration parameters. Values should be strings. Parameters set here + overrides values from configuration template (parameter group). + private_ips: |- + - Indicates the private IP address list. It is a blank string until an + ECS is created. + public_ips: |- + - (Optional) Specifies floating IP to be assigned to the instance. + This should be a list with single element only. + restore_from_backup: |- + - (Optional) Specifies whether to restore database to an instance described in current resource. + Structure is documented below. + restore_from_backup.backup_id: |- + - (Optional) Specifies the ID of the backup used to restore data. + This parameter must be specified when the backup file is used for restoration. + restore_from_backup.restore_time: |- + - (Optional) Specifies the time point of data restoration in the UNIX timestamp. + The unit is millisecond and the time zone is UTC. + restore_from_backup.source_instance_id: '- (Required) Specifies the source instance ID.' + restore_from_backup.type: '- (Required) Specifies the restoration mode. The values can be:' + restore_point: |- + - (Optional, ForceNew) Specifies the restoration information. By selecting this option a new RDS + instance will be created from separate instance backup. Structure is documented below. + restore_point.backup_id: '- (Optional, ForceNew) Specifies the ID of the backup used to restore data.' + restore_point.instance_id: '- (Required, ForceNew) Specifies the original DB instance ID.' + restore_point.restore_time: |- + - (Optional, ForceNew) Specifies the time point of data restoration in the UNIX timestamp. + The unit is millisecond and the time zone is UTC. + restored_backup_id: |- + - Indicates the backup ID in cases when instance was restored by using + restore_from_backup block. + security_group_id: |- + - (Required) Specifies the security group which the RDS DB instance belongs to. + Changing this parameter will create a new resource. + ssl_enable: '- (Optional) Specifies whether SSL should be enabled for MySql instances.' + subnet_id: '- (Required, ForceNew) Specifies the subnet id. Changing this parameter will create a new resource.' + tag: |- + - (Optional) Tags key/value pairs to associate with the instance. Deprecated, please use + the tags instead. + tags: '- (Optional) Tags key/value pairs to associate with the instance.' + timestamp: |- + - Indicates the point-in-time restoration mode. + In this mode restore_time is mandatory. + volume: '- (Required, ForceNew) Specifies the volume information. Structure is documented below.' + volume.disk_encryption_id: '- (Optional, ForceNew) Specifies the key ID for disk encryption. Changing this parameter will create a new resource.' + volume.limit_size: '- (Optional, Int) Specifies the upper limit of automatic expansion of storage, in GB.' + volume.size: |- + - (Required) Specifies the volume size. Its value range is from 40 GB to 4000 + GB. The value must be a multiple of 10. Changing this resize the volume. + volume.trigger_threshold: |- + - (Optional, Int) Specifies the threshold to trigger automatic expansion. + If the available storage drops to this threshold or 10 GB, the automatic expansion is triggered. + The valid values are as follows: + volume.type: |- + - (Required, ForceNew) Specifies the volume type. Its value can be any of the following + and is case-sensitive: COMMON: indicates the SATA type. + ULTRAHIGH: indicates the SSD type. Changing this parameter will create a new resource. + vpc_id: '- (Required, ForceNew) Specifies the VPC ID. Changing this parameter will create a new resource.' + importStatements: [] + opentelekomcloud_rds_parametergroup_v3: + subCategory: Relational Database Service (RDS) + description: Manages an RDS Parameter Group resource within OpenTelekomCloud. + name: opentelekomcloud_rds_parametergroup_v3 + title: opentelekomcloud_rds_parametergroup_v3 + examples: + - name: pg_1 + manifest: |- + { + "datastore": [ + { + "type": "mysql", + "version": "5.6" + } + ], + "description": "some description here", + "name": "pg_1", + "values": { + "autocommit": "OFF", + "max_connections": "10" + } + } + argumentDocs: + "5.6": ', 5.7, 8.0. Example value: 5.7.' + "9.5": ', 9.6, 10 and 11. Example value: 9.5.' + 2014 SE: ', 2016 SE, and 2016 EE. Example value: 2014_SE.' + configuration_parameters: '- Indicates the parameter configuration defined by users based on the default parameters groups.' + created: '- Indicates the creation time in the following format: yyyy-MM-ddTHH:mm:ssZ.' + datastore: '- (Required) Database object. The database object structure is documented below. Changing this creates a new parameter group.' + datastore.type: |- + - (Required) Specifies the DB engine. Currently, MySQL, PostgreSQL and MS SQLServer are supported. + The value is case-insensitive and can be mysql, postgresql or sqlserver. + datastore.version: '- (Required) Specifies the database version.' + description: |- + - (Optional) The parameter group description. It contains a maximum of 256 characters + and cannot contain the following special characters: >!<"&'= the value is left blank by default. + id: '- ID of the parameter group.' + name: '- (Required) The parameter group name. It contains a maximum of 64 characters.' + readonly: '- Indicates whether the parameter is read-only.' + restart_required: '- Indicates whether a restart is required.' + type: '- Indicates the parameter type.' + updated: '- Indicates the update time in the following format: yyyy-MM-ddTHH:mm:ssZ.' + value: '- Indicates the parameter value.' + value_range: '- Indicates the parameter value range.' + values: '- (Optional) Parameter group values key/value pairs defined by users based on the default parameter groups.' + importStatements: [] + opentelekomcloud_rds_read_replica_v3: + subCategory: Relational Database Service (RDS) + description: Manages an RDS Read Replica resource within OpenTelekomCloud. + name: opentelekomcloud_rds_read_replica_v3 + title: opentelekomcloud_rds_read_replica_v3 + examples: + - name: replica + manifest: |- + { + "availability_zone": "${var.az_replica}", + "flavor_ref": "${opentelekomcloud_rds_instance_v3.instance.flavor}.rr", + "name": "test-replica", + "replica_of_id": "${opentelekomcloud_rds_instance_v3.instance.id}", + "volume": [ + { + "type": "COMMON" + } + ] + } + references: + availability_zone: var.az_replica + replica_of_id: opentelekomcloud_rds_instance_v3.instance.id + dependencies: + opentelekomcloud_rds_instance_v3.instance: |- + { + "availability_zone": "${var.az_main}", + "backup_strategy": [ + { + "keep_days": 1, + "start_time": "08:00-09:00" + } + ], + "db": [ + { + "password": "${var.db_password}", + "port": "8635", + "type": "PostgreSQL", + "version": "10" + } + ], + "flavor": "rds.pg.c2.medium", + "name": "test-instance", + "security_group_id": "${var.sg_id}", + "subnet_id": "${var.os_network_id}", + "tag": { + "created": "terraform" + }, + "volume": [ + { + "size": 40, + "type": "ULTRAHIGH" + } + ], + "vpc_id": "${var.os_router_id}" + } + argumentDocs: + COMMON: ': indicates the SATA type.' + ULTRAHIGH: ': indicates the SSD type.' + db: '- Indicates the database information. Structure is documented below.' + db.port: '- Indicates the database port information.' + db.type: '- Indicates the DB engine. Value: MySQL, PostgreSQL, SQLServer' + db.user_name: '- Indicates the default user name of database.' + db.version: '- Indicates the database version.' + flavor: '- Specifies the specification code. Read replica flavors ends with .rr.' + id: '- ID of the read replica instance.' + name: |- + - Specifies the DB replica instance name. The DB instance name of the same type must be unique for the same + tenant. The value must be 4 to 64 characters in length and start with a letter. It is case-sensitive and can + contain only letters, digits, hyphens (-), and underscores (_). Changing this parameter will create a new + resource. + private_ips: '- Indicates the private IP address list.' + public_ips: |- + - (Optional) Specifies floating IP to be assigned to the instance. + This should be a list with single element only. + region: |- + - (Optional) Specifies the region of the replica instance. Changing this parameter will create a new + resource. + replica_of_id: '- Specifies ID of the replicated instance. Changing this parameter will create a new resource.' + security_group_id: '- Indicates the security group which the replica instance belongs to.' + subnet_id: '- Indicates the subnet id (OpenStack network ID).' + volume: '- Specifies the volume information. Structure is documented below.' + volume.disk_encryption_id: |- + - (Optional) Specifies the key ID for disk encryption. Changing this parameter will create a new + resource. + volume.size: '- Indicates the volume size. Same as replicated instance disk size.' + volume.type: |- + - Specifies the volume type. Changing this parameter will create a new resource. Its value can be any of the + following and is case-sensitive. + vpc_id: '- Indicates the VPC ID (OpenStack router ID).' + importStatements: [] + opentelekomcloud_rts_software_config_v1: + subCategory: Resource Template Service (RTS) + description: Manages an RTS Config resource within OpenTelekomCloud. + name: opentelekomcloud_rts_software_config_v1 + title: opentelekomcloud_rts_software_config_v1 + examples: + - name: myconfig + manifest: |- + { + "name": "${var.config_name}" + } + references: + name: var.config_name + argumentDocs: + config: '- (Optional) The software configuration code.' + group: '- (Optional) The namespace that groups this software configuration by when it is delivered to a server.' + id: '- The id of the software config.' + input_values: '- (Optional) A list of software configuration inputs.' + name: '- (Required) The name of the software configuration.' + options: '- (Optional) The software configuration options.' + output_values: '- (Optional) A list of software configuration outputs.' + importStatements: [] + opentelekomcloud_rts_software_deployment_v1: + subCategory: Resource Template Service (RTS) + description: Manages an RTS Deployment resource within OpenTelekomCloud. + name: opentelekomcloud_rts_software_deployment_v1 + title: opentelekomcloud_rts_software_deployment_v1 + examples: + - name: mydeployment + manifest: |- + { + "config_id": "${var.config_id}", + "server_id": "${var.server_id}" + } + references: + config_id: var.config_id + server_id: var.server_id + argumentDocs: + action: '- (Optional) The stack action that triggers this deployment resource.' + config_id: '- (Required) The id of the software configuration resource running on an instance.' + id: '- The id of the software deployment.' + input_values: '- (Optional) The input data stored in the form of a key-value pair.' + output_values: '- (Optional) The output data stored in the form of a key-value pair.' + server_id: '- (Required) The id of the instance.' + status: '- (Optional) The current status of deployment resources.' + status_reason: '- (Optional) The cause of the current deployment resource status.' + tenant_id: '- (Optional) The id of the authenticated tenant who can perform operations on the deployment resources.' + importStatements: [] + opentelekomcloud_rts_stack_v1: + subCategory: Resource Template Service (RTS) + description: Manages an RTS Stack resource within OpenTelekomCloud. + name: opentelekomcloud_rts_stack_v1 + title: opentelekomcloud_rts_stack_v1 + examples: + - name: mystack + manifest: |- + { + "disable_rollback": true, + "name": "${var.name}", + "parameters": { + "image_id": "${var.image_id}", + "instance_type": "${var.instance_type}", + "network_id": "${var.network_id}" + }, + "template_body": " {\n \"heat_template_version\": \"2016-04-08\",\n \"description\": \"Simple template to deploy\",\n \"parameters\": {\n \"image_id\": {\n \"type\": \"string\",\n \"description\": \"Image to be used for compute instance\",\n \"label\": \"Image ID\"\n },\n \"network_id\": {\n \"type\": \"string\",\n \"description\": \"The Network to be used\",\n \"label\": \"Network UUID\"\n },\n \"instance_type\": {\n \"type\": \"string\",\n \"description\": \"Type of instance (Flavor) to be used\",\n \"label\": \"Instance Type\"\n }\n },\n \"resources\": {\n \"my_instance\": {\n \"type\": \"OS::Nova::Server\",\n \"properties\": {\n \"image\": {\n \"get_param\": \"image_id\"\n },\n \"flavor\": {\n \"get_param\": \"instance_type\"\n },\n \"networks\": [{\n \"network\": {\n \"get_param\": \"network_id\"\n }\n }]\n }\n }\n },\n \"outputs\": {\n \"InstanceIP\": {\n \"description\": \"Instance IP\",\n \"value\": { \"get_attr\": [\"my_instance\", \"first_address\"] }\n }\n }\n }\n", + "timeout_mins": 60 + } + references: + name: var.name + argumentDocs: + capabilities: '- List of stack capabilities for stack.' + disable_rollback: '- (Optional) Set to true to disable rollback of the stack if stack creation failed.' + environment: '- (Optional) Tthe environment information about the stack.' + files: '- (Optional) Files used in the environment.' + name: '- (Required) A unique name for the stack. The value must meet the regular expression rule (^[a-zA-Z][a-zA-Z0-9_.-]{0,254}$). Changing this creates a new stack.' + notification_topics: '- List of notification topics for stack.' + outputs: '- A map of outputs from the stack.' + parameters: '- (Optional) A list of Parameter structures that specify input parameters for the stack.' + status: '- Specifies the stack status.' + template_body: '- (Optional; Required if template_url is empty) Structure containing the template body. The template content must use the yaml syntax.' + template_url: '- (Optional; Required if template_body is empty) Location of a file containing the template body.' + timeout_mins: '- (Optional) Specifies the timeout duration.' + importStatements: [] + opentelekomcloud_s3_bucket: + subCategory: Object Storage Service (S3) + description: Manages an S3 Bucket resource within OpenTelekomCloud. + name: opentelekomcloud_s3_bucket + title: opentelekomcloud_s3_bucket + examples: + - name: bucket + manifest: |- + { + "acl": "private", + "bucket": "my-tf-test-bucket", + "tags": { + "Environment": "Dev", + "Name": "My bucket" + } + } + - name: bucket + manifest: |- + { + "acl": "public-read", + "bucket": "s3-website-test.hashicorp.com", + "policy": "${file(\"policy.json\")}", + "website": [ + { + "error_document": "error.html", + "index_document": "index.html", + "routing_rules": "[{\n \"Condition\": {\n \"KeyPrefixEquals\": \"docs/\"\n },\n \"Redirect\": {\n \"ReplaceKeyPrefixWith\": \"documents/\"\n }\n}]\n" + } + ] + } + - name: bucket + manifest: |- + { + "acl": "public-read", + "bucket": "s3-website-test.hashicorp.com", + "cors_rule": [ + { + "allowed_headers": [ + "*" + ], + "allowed_methods": [ + "PUT", + "POST" + ], + "allowed_origins": [ + "https://s3-website-test.hashicorp.com" + ], + "expose_headers": [ + "ETag" + ], + "max_age_seconds": 3000 + } + ] + } + - name: bucket + manifest: |- + { + "acl": "private", + "bucket": "my-tf-test-bucket", + "versioning": [ + { + "enabled": true + } + ] + } + - name: log_bucket + manifest: |- + { + "acl": "log-delivery-write", + "bucket": "my-tf-log-bucket" + } + - name: b + manifest: |- + { + "acl": "private", + "bucket": "my-tf-test-bucket", + "logging": [ + { + "target_bucket": "${opentelekomcloud_s3_bucket.log_bucket.id}", + "target_prefix": "log/" + } + ] + } + references: + logging.target_bucket: opentelekomcloud_s3_bucket.log_bucket.id + - name: bucket + manifest: |- + { + "acl": "private", + "bucket": "my-bucket", + "lifecycle_rule": [ + { + "enabled": true, + "expiration": [ + { + "days": 90 + } + ], + "id": "log", + "prefix": "log/" + }, + { + "enabled": true, + "expiration": [ + { + "date": "2016-01-12" + } + ], + "id": "tmp", + "prefix": "tmp/" + } + ] + } + - name: versioning_bucket + manifest: |- + { + "acl": "private", + "bucket": "my-versioning-bucket", + "lifecycle_rule": [ + { + "enabled": true, + "prefix": "config/" + } + ], + "versioning": [ + { + "enabled": true + } + ] + } + argumentDocs: + abort_incomplete_multipart_upload_days: |- + - (Optional) Specifies the number of days after initiating + a multipart upload when the multipart upload must be completed. + acl: |- + - (Optional) The canned ACL + to apply. Defaults to private. + allowed_headers: '- (Optional) Specifies which headers are allowed.' + allowed_methods: '- (Required) Specifies which methods are allowed. Can be GET, PUT, POST, DELETE or HEAD.' + allowed_origins: '- (Required) Specifies which origins are allowed.' + arn: '- The ARN of the bucket. Will be of format arn:aws:s3:::bucketname.' + bucket: |- + - (Optional, Forces new resource) The name of the bucket. If omitted, Terraform will assign a + random, unique name. + bucket_domain_name: '- The bucket domain name. Will be of format bucketname.s3.amazonaws.com.' + bucket_prefix: |- + - (Optional, Forces new resource) Creates a unique bucket name beginning with the specified prefix. + Conflicts with bucket. + cors_rule: '- (Optional) A rule of Cross-Origin Resource Sharing (documented below).' + date: '- (Optional) Specifies the date after which you want the corresponding action to take effect.' + days: '- (Optional) Specifies the number of days after object creation when the specific rule action takes effect.' + enabled: |- + - (Optional) Enable versioning. Once you version-enable a bucket, it can never return to an unversioned state. + You can, however, suspend versioning on that bucket. If omitted, during bucket creation it will be in Disabled state. + error_document: '- (Optional) An absolute path to the document to return in case of a 4XX error.' + expiration: '- (Optional) Specifies a period in the object''s expire (documented below).' + expired_object_delete_marker: |- + - (Optional) On a versioned bucket (versioning-enabled or versioning-suspended bucket), + you can add this element in the lifecycle configuration to direct Amazon S3 to delete expired object delete markers. + expose_headers: '- (Optional) Specifies expose header in the response.' + force_destroy: |- + - (Optional, Default:false) A boolean that indicates all objects should be deleted from the bucket + so that the bucket can be destroyed without error. These objects are not recoverable. + hosted_zone_id: |- + - The Route 53 Hosted Zone ID + for this bucket's region. + id: '- (Optional) Unique identifier for the rule.' + index_document: |- + - (Required, unless using redirect_all_requests_to) Amazon S3 returns this index document when + requests are made to the root domain or any of the subfolders. + lifecycle_rule: |- + - (Optional) A configuration of object lifecycle management + (documented below). The website object supports the following: + logging: '- (Optional) A settings of bucket logging (documented below).' + max_age_seconds: '- (Optional) Specifies time in seconds that browser can cache the response for a preflight request.' + mfa_delete: |- + - (Optional) Enable MFA delete for either Change the versioning state of your bucket or + Permanently delete an object version. Default is false. + noncurrent_version_expiration: '- (Optional) Specifies when noncurrent object versions expire (documented below).' + policy: |- + - (Optional) A valid bucket policy + JSON document. + prefix: '- (Optional) Object key prefix identifying one or more objects to which the rule applies.' + redirect_all_requests_to: |- + - (Optional) A hostname to redirect all website requests for this bucket to. + Hostname can optionally be prefixed with a protocol (http:// or https://) to use when redirecting + requests. The default is the protocol that is used in the original request. + routing_rules: |- + - (Optional) A json array containing routing rules + describing redirect behavior and when redirects are applied. + tags: '- (Optional) A mapping of tags to assign to the bucket.' + target_bucket: '- (Required) The name of the bucket that will receive the log objects.' + target_prefix: '- (Optional) To specify a key prefix for log objects.' + versioning: '- (Optional) A state of versioning (documented below)' + website: '- (Optional) A website object (documented below).' + website_domain: |- + - The domain of the website endpoint, if the bucket is configured with a website. If not, + this will be an empty string. This is used to create Route 53 alias records. + website_endpoint: '- The website endpoint, if the bucket is configured with a website. If not, this will be an empty string.' + importStatements: + - terraform import opentelekomcloud_s3_bucket.bucket bucket-name + opentelekomcloud_s3_bucket_object: + subCategory: Object Storage Service (S3) + description: Manages an S3 Bucket Object resource within OpenTelekomCloud. + name: opentelekomcloud_s3_bucket_object + title: opentelekomcloud_s3_bucket_object + examples: + - name: object + manifest: |- + { + "bucket": "your_bucket_name", + "etag": "${md5(file(\"path/to/file\"))}", + "key": "new_object_key", + "source": "path/to/file" + } + dependencies: + opentelekomcloud_s3_bucket.examplebucket: |- + { + "acl": "private", + "bucket": "examplebuckettftest" + } + - name: examplebucket_object + manifest: |- + { + "bucket": "${opentelekomcloud_s3_bucket.examplebucket.bucket}", + "key": "someobject", + "source": "index.html" + } + references: + bucket: opentelekomcloud_s3_bucket.examplebucket.bucket + dependencies: + opentelekomcloud_s3_bucket.examplebucket: |- + { + "acl": "private", + "bucket": "examplebuckettftest" + } + - name: examplebucket_object + manifest: |- + { + "bucket": "${opentelekomcloud_s3_bucket.examplebucket.bucket}", + "key": "someobject", + "server_side_encryption": "aws:kms", + "source": "index.html" + } + references: + bucket: opentelekomcloud_s3_bucket.examplebucket.bucket + dependencies: + opentelekomcloud_s3_bucket.examplebucket: |- + { + "acl": "private", + "bucket": "examplebuckettftest" + } + argumentDocs: + acl: '- (Optional) The canned ACL to apply. Defaults to "private".' + bucket: '- (Required) The name of the bucket to put the file in.' + cache_control: |- + - (Optional) Specifies caching behavior along the request/reply chain. + Read w3c cache_control for further details. + content: '- (Required unless source given) The literal content being uploaded to the bucket.' + content_disposition: |- + - (Optional) Specifies presentational information for the object. + Read wc3 content_disposition for further information. + content_encoding: '- (Optional) Specifies what content encodings have been applied to the object and thus what decoding mechanisms must be applied to obtain the media-type referenced by the Content-Type header field. Read w3c content encoding for further information.' + content_language: '- (Optional) The language the content is in e.g. en-US or en-GB.' + content_type: '- (Optional) A standard MIME type describing the format of the object data, e.g. application/octet-stream. All Valid MIME Types are valid for this input.' + etag: |- + - (Optional) Used to trigger updates. The only meaningful value is ${md5(file("path/to/file"))}. + This attribute is not compatible with kms_key_id. + id: '- the key of the resource supplied above' + key: '- (Required) The name of the object once it is in the bucket.' + server_side_encryption: '- (Optional) Specifies server-side encryption of the object in S3. Valid values are "AES256" and "aws:kms".' + source: '- (Required) The path to the source file being uploaded to the bucket.' + version_id: '- A unique version ID value for the object, if bucket versioning is enabled.' + website_redirect: '- (Optional) Specifies a target URL for website redirect.' + importStatements: [] + opentelekomcloud_s3_bucket_policy: + subCategory: Object Storage Service (S3) + description: Manages an S3 Bucket Policy resource within OpenTelekomCloud. + name: opentelekomcloud_s3_bucket_policy + title: opentelekomcloud_s3_bucket_policy + examples: + - name: b + manifest: |- + { + "bucket": "${opentelekomcloud_s3_bucket.b.id}", + "policy": " {\n \"Id\": \"MYBUCKETPOLICY\",\n \"Statement\": [\n {\n \"Sid\": \"IPAllow\",\n \"Effect\": \"Deny\",\n \"Principal\": \"*\",\n \"Action\": \"s3:*\",\n \"Resource\": \"arn:aws:s3:::${opentelekomcloud_s3_bucket.b.bucket}/*\",\n \"Condition\": {\n \"IpAddress\": {\"aws:SourceIp\": \"8.8.8.8/32\"}\n }\n }\n ]}\n" + } + references: + bucket: opentelekomcloud_s3_bucket.b.id + dependencies: + opentelekomcloud_s3_bucket.b: |- + { + "bucket": "my-tf-test-bucket" + } + argumentDocs: + bucket: '- (Required) The name of the bucket to which to apply the policy.' + policy: '- (Required) The text of the policy.' + importStatements: [] + opentelekomcloud_sdrs_protected_instance_v1: + subCategory: Storage Disaster Recovery Service (SDRS) + description: Manages an SDRS Protected Instance resource within OpenTelekomCloud. + name: opentelekomcloud_sdrs_protected_instance_v1 + title: opentelekomcloud_sdrs_protected_instance_v1 + examples: + - name: instance_1 + manifest: |- + { + "delete_target_server": true, + "description": "some interesting description", + "group_id": "${opentelekomcloud_sdrs_protectiongroup_v1.group_1.id}", + "name": "instance_create", + "server_id": "${opentelekomcloud_ecs_instance_v1.instance_1.id}", + "tags": { + "kuh": "value-create", + "muh": "value-create" + } + } + references: + group_id: opentelekomcloud_sdrs_protectiongroup_v1.group_1.id + server_id: opentelekomcloud_ecs_instance_v1.instance_1.id + dependencies: + opentelekomcloud_ecs_instance_v1.instance_1: |- + { + "availability_zone": "eu-de-01", + "flavor": "${var.flavor}", + "image_id": "${var.image_id}", + "name": "server_1", + "nics": [ + { + "network_id": "${var.network_id}" + } + ], + "vpc_id": "${var.vpc_id}" + } + opentelekomcloud_sdrs_protectiongroup_v1.group_1: |- + { + "domain_id": "${var.domain_id}", + "dr_type": "migration", + "name": "group_1", + "source_availability_zone": "eu-de-01", + "source_vpc_id": "${var.vpc_id}", + "target_availability_zone": "eu-de-02" + } + argumentDocs: + created_at: '- Specifies the time when a protected instance was created.' + delete_target_eip: '- (Optional) Specifies whether to delete the EIP of the DR site server. The default value is false.' + delete_target_server: '- (Optional) Specifies whether to delete the DR site server. The default value is false.' + description: '- (Optional) The description of a protected instance. Changing this creates a new instance. Changing this will create a new resource.' + group_id: '- (Required) Specifies the ID of the protection group where a protected instance is added. Changing this will create a new resource.' + id: '- ID of the protected instance.' + ip_address: |- + - (Optional) Specifies the IP address of the primary NIC on the DR site server. + This parameter is valid only when subnet_id is specified. Changing this will create a new resource. + name: '- (Required) The name of a protected instance.' + priority_station: '- Specifies the current production site AZ of the protection group containing the protected instance.' + server_id: '- (Required) Specifies the ID of the protected ECS instance. Changing this will create a new resource.' + source: ': indicates that the current production site AZ is the source_availability_zone value.' + subnet_id: '- (Optional) Specifies the network ID of the subnet. Changing this will create a new resource.' + tags: '- (Optional) Tags key/value pairs to associate with the instance.' + target: ': indicates that the current production site AZ is the target_availability_zone value.' + target_id: '- Specifies the DR site server ID.' + updated_at: '- Specifies the time when a protected instance was updated.' + importStatements: + - terraform import opentelekomcloud_sdrs_protected_instance_v1.instance_1 7117d38e-4c8f-4624-a505-bd96b97d024c + opentelekomcloud_sdrs_protectiongroup_v1: + subCategory: Storage Disaster Recovery Service (SDRS) + description: Manages an SDRS Protection Group resource within OpenTelekomCloud. + name: opentelekomcloud_sdrs_protectiongroup_v1 + title: opentelekomcloud_sdrs_protectiongroup_v1 + examples: + - name: group_1 + manifest: |- + { + "description": "test description", + "domain_id": "${data.opentelekomcloud_sdrs_domain_v1.dom_1.id}", + "dr_type": "migration", + "name": "group_1", + "source_availability_zone": "eu-de-01", + "source_vpc_id": "${var.vpc_id}", + "target_availability_zone": "eu-de-02" + } + references: + domain_id: data.opentelekomcloud_sdrs_domain_v1.dom_1.id + source_vpc_id: var.vpc_id + argumentDocs: + description: '- (Optional) The description of a protection group. Changing this creates a new group.' + domain_id: |- + - (Required) Specifies the ID of an active-active domain. Changing this creates a new group. + An active-active domain id can be extracted from data/opentelekomcloud_sdrs_domain_v1 and shouldn't be confused + with tenant domain. + dr_type: |- + - (Optional) Specifies the deployment model. The default value is migration indicating migration within a VPC. + Changing this creates a new group. + id: '- ID of the protection group.' + name: '- (Required) The name of a protection group.' + source_availability_zone: '- (Required) Specifies the source AZ of a protection group. Changing this creates a new group.' + source_vpc_id: '- (Required) Specifies the ID of the source VPC. Changing this creates a new group.' + target_availability_zone: '- (Required) Specifies the target AZ of a protection group. Changing this creates a new group.' + importStatements: [] + opentelekomcloud_sdrs_replication_attach_v1: + subCategory: Storage Disaster Recovery Service (SDRS) + description: Manages an SDRS Replication Pair Attachment resource within OpenTelekomCloud. + name: opentelekomcloud_sdrs_replication_attach_v1 + title: opentelekomcloud_sdrs_replication_attach_v1 + examples: + - name: attach_1 + manifest: |- + { + "device": "/dev/vdb", + "instance_id": "${opentelekomcloud_sdrs_protected_instance_v1.instance_1.id}", + "replication_id": "${opentelekomcloud_sdrs_replication_pair_v1.pair_1.id}" + } + references: + instance_id: opentelekomcloud_sdrs_protected_instance_v1.instance_1.id + replication_id: opentelekomcloud_sdrs_replication_pair_v1.pair_1.id + dependencies: + opentelekomcloud_ecs_instance_v1.instance_1: |- + { + "availability_zone": "eu-de-02", + "flavor": "s3.medium.1", + "image_id": "${var.image_id}", + "name": "server_1", + "nics": [ + { + "network_id": "${var.network_id}" + } + ], + "vpc_id": "${var.vpc_id}" + } + opentelekomcloud_evs_volume_v3.volume_1: |- + { + "availability_zone": "eu-de-02", + "description": "first test volume", + "name": "volume_1", + "size": 12, + "volume_type": "SATA" + } + opentelekomcloud_sdrs_protected_instance_v1.instance_1: |- + { + "delete_target_server": true, + "group_id": "${opentelekomcloud_sdrs_protectiongroup_v1.group_1.id}", + "name": "instance_create", + "server_id": "${opentelekomcloud_ecs_instance_v1.instance_1.id}" + } + opentelekomcloud_sdrs_protectiongroup_v1.group_1: |- + { + "domain_id": "${data.opentelekomcloud_sdrs_domain_v1.domain_1.id}", + "dr_type": "migration", + "name": "group_1", + "source_availability_zone": "eu-de-02", + "source_vpc_id": "${var.vpc_id}", + "target_availability_zone": "eu-de-01" + } + opentelekomcloud_sdrs_replication_pair_v1.pair_1: |- + { + "delete_target_volume": true, + "group_id": "${opentelekomcloud_sdrs_protectiongroup_v1.group_1.id}", + "name": "replication_1", + "volume_id": "${opentelekomcloud_evs_volume_v3.volume_1.id}" + } + argumentDocs: + create: '- Default is 10 minutes.' + delete: '- Default is 10 minutes.' + device: |- + - (Required, String, ForceNew) Specifies the disk device name of a replication pair. There are several + restrictions on this field as follows: + id: '- The resource ID.' + instance_id: '- (Required, String, ForceNew) Specifies the ID of a protected instance.' + region: '- The attachment region.' + replication_id: '- (Required, String, ForceNew) Specifies the ID of a replication pair.' + status: '- The status of the SDRS protected instance.' + importStatements: [] + opentelekomcloud_sdrs_replication_pair_v1: + subCategory: Storage Disaster Recovery Service (SDRS) + description: Manages an SDRS Replication Pair resource within OpenTelekomCloud. + name: opentelekomcloud_sdrs_replication_pair_v1 + title: opentelekomcloud_sdrs_replication_pair_v1 + examples: + - name: pair_1 + manifest: |- + { + "delete_target_volume": true, + "description": "description", + "group_id": "${opentelekomcloud_sdrs_protectiongroup_v1.group_1.id}", + "name": "replication_1", + "volume_id": "${opentelekomcloud_evs_volume_v3.volume_1.id}" + } + references: + group_id: opentelekomcloud_sdrs_protectiongroup_v1.group_1.id + volume_id: opentelekomcloud_evs_volume_v3.volume_1.id + dependencies: + opentelekomcloud_evs_volume_v3.volume_1: |- + { + "availability_zone": "eu-de-02", + "description": "first test volume", + "name": "volume_1", + "size": 12, + "volume_type": "SATA" + } + opentelekomcloud_sdrs_protectiongroup_v1.group_1: |- + { + "description": "test description", + "domain_id": "${data.opentelekomcloud_sdrs_domain_v1.dom_1.id}", + "dr_type": "migration", + "name": "group_1", + "source_availability_zone": "eu-de-01", + "source_vpc_id": "${var.vpc_id}", + "target_availability_zone": "eu-de-02" + } + argumentDocs: + delete_target_volume: |- + - (Optional, Bool) Specifies whether to delete the disaster recovery site disk. + The default value is false. + description: |- + - (Optional, String, ForceNew) Specifies the description of a replication pair. The value can contain + a maximum of 64 characters and angle brackets (<) and (>) are not allowed. + fault_level: '- The fault level of a replication pair.' + group_id: '- (Required, String, ForceNew) Specifies the ID of a protection group.' + id: '- The resource ID.' + name: |- + - (Required, String) Specifies the name of a replication pair. The name can contain a maximum of 64 characters. + The value can contain only letters (a to z and A to Z), digits (0 to 9), dots (.), underscores (_), and hyphens (-). + region: '- The resource region.' + replication_model: |- + - The replication mode of a replication pair. The default value is hypermetro, + indicating synchronous replication. + status: '- The status of a replication pair.' + target_volume_id: '- The ID of the disk in the protection availability zone.' + volume_id: |- + - (Required, String, ForceNew) Specifies the ID of the production site disk. + When the provider is successfully invoked, the disaster recovery site disk will be automatically created. + importStatements: [] + opentelekomcloud_sfs_file_system_v2: + subCategory: Scalable File Service (SFS) + description: Manages an SFS File System resource within OpenTelekomCloud. + name: opentelekomcloud_sfs_file_system_v2 + title: opentelekomcloud_sfs_file_system_v2 + examples: + - name: share-file + manifest: |- + { + "description": "${var.share_description}", + "name": "${var.share_name}", + "share_proto": "NFS", + "size": 50, + "tags": { + "muh": "kuh" + } + } + references: + description: var.share_description + name: var.share_name + argumentDocs: + access_level: |- + - (Optional) The access level of the shared file system. Changing this will create + a new access rule. Deprecated, please use the opentelekomcloud_sfs_share_access_rule_v2 + resource instead. + access_rule_status: '- The status of the share access rule.' + access_to: |- + - (Optional) The access that the back end grants or denies. Changing this will + create new access rule. Deprecated, please use the opentelekomcloud_sfs_share_access_rule_v2 + resource instead. + access_type: |- + - (Optional) The type of the share access rule. Changing this will create a new + access rule. Deprecated, please use the opentelekomcloud_sfs_share_access_rule_v2 resource instead. + availability_zone: |- + - (Optional) The availability zone name. Changing this parameter will create + a new resource. + description: '- (Optional) Describes the shared file system.' + export_location: '- The address for accessing the shared file system.' + host: '- The host name of the shared file system.' + id: '- The UUID of the shared file system.' + is_public: '- (Optional) The level of visibility for the shared file system.' + metadata: |- + - (Optional) Metadata key/value pairs as a dictionary of strings. Changing this will + create a new resource. + name: '- (Optional) The name of the shared file system.' + region: |- + - (Optional) The region in which to obtain the V2 SFS client. If omitted, the + region argument of the provider is used. Changing this creates a new share. + share_access_id: '- The UUID of the share access rule.' + share_proto: '- (Optional) The protocol for sharing file systems. The default value is NFS.' + share_type: |- + - The storage service type assigned for the shared file system, such as + high-performance storage (composed of SSDs) and large-capacity storage (composed of SATA disks). + size: '- (Required) The size (GB) of the shared file system.' + status: '- The status of the shared file system.' + tags: '- (Optional) Tags key/value pairs to associate with the SFS File System.' + volume_type: '- The volume type.' + importStatements: + - terraform import opentelekomcloud_sfs_file_system_v2 4779ab1c-7c1a-44b1-a02e-93dfc361b32d + opentelekomcloud_sfs_share_access_rules_v2: + subCategory: Scalable File Service (SFS) + description: Manages an SFS Access Rules resource within OpenTelekomCloud. + name: opentelekomcloud_sfs_share_access_rules_v2 + title: opentelekomcloud_sfs_share_access_rules_v2 + examples: + - name: sfs_rules + manifest: |- + { + "access_rule": [ + { + "access_level": "rw", + "access_to": "${opentelekomcloud_vpc_v1.vpc_1.id}", + "access_type": "cert" + }, + { + "access_level": "rw", + "access_to": "${opentelekomcloud_vpc_v1.vpc_2.id}", + "access_type": "cert" + } + ], + "share_id": "${opentelekomcloud_sfs_file_system_v2.sfs_1.id}" + } + references: + access_rule.access_to: opentelekomcloud_vpc_v1.vpc_2.id + share_id: opentelekomcloud_sfs_file_system_v2.sfs_1.id + dependencies: + opentelekomcloud_sfs_file_system_v2.sfs_1: |- + { + "description": "${var.share_description}", + "name": "${var.share_name}", + "share_proto": "NFS", + "size": 50 + } + opentelekomcloud_vpc_v1.vpc_1: |- + { + "cidr": "192.168.0.0/16", + "name": "sfs_share_vpc_1" + } + opentelekomcloud_vpc_v1.vpc_2: |- + { + "cidr": "192.168.0.0/16", + "name": "sfs_share_vpc_2" + } + argumentDocs: + access_rule: '- (Required) Specifies the access rules of SFS file share. Structure is documented below.' + access_rule.access_level: |- + - (Required) The access level of the shared file system. Possible values are ro (read-only) + and rw (read-write). The default value is rw (read/write). + access_rule.access_rule_status: '- The status of the share access rule.' + access_rule.access_to: '- (Required) The access that the back end grants or denies.' + access_rule.access_type: |- + - (Optional) The type of the share access rule. The value cert indicates + that the certificate is used to access the storage. + access_rule.share_access_id: '- The UUID of the share access rule.' + share_id: '- (Required) The UUID of the shared file system.' + importStatements: + - terraform import opentelekomcloud_sfs_share_access_rules_v2 4779ab1c-7c1a-44b1-a02e-93dfc361b32d + opentelekomcloud_sfs_turbo_share_v1: + subCategory: Scalable File Service (SFS) + description: Manages an SFS Turbo Share resource within OpenTelekomCloud. + name: opentelekomcloud_sfs_turbo_share_v1 + title: opentelekomcloud_sfs_turbo_share_v1 + examples: + - name: sfs-turbo + manifest: |- + { + "availability_zone": "${var.az}", + "name": "sfs-turbo", + "security_group_id": "${var.sg_id}", + "share_proto": "NFS", + "size": 500, + "subnet_id": "${var.subnet_id}", + "vpc_id": "${var.vpc_id}" + } + references: + availability_zone: var.az + security_group_id: var.sg_id + subnet_id: var.subnet_id + vpc_id: var.vpc_id + - name: sfs-turbo + manifest: |- + { + "availability_zone": "${var.az}", + "enhanced": true, + "name": "sfs-turbo", + "security_group_id": "${var.sg_id}", + "share_proto": "NFS", + "share_type": "PERFORMANCE", + "size": 500, + "subnet_id": "${var.subnet_id}", + "vpc_id": "${var.vpc_id}" + } + references: + availability_zone: var.az + security_group_id: var.sg_id + subnet_id: var.subnet_id + vpc_id: var.vpc_id + argumentDocs: + availability_zone: |- + - (Required, String, ForceNew) Specifies the availability zone where the file system is located. + Changing this will create a new resource. + available_capacity: '- The available capacity of the SFS Turbo file system in the unit of GB.' + create: '- Default is 10 minute.' + crypt_key_id: |- + - (Optional, String, ForceNew) Specifies the ID of a KMS key to encrypt the file system. + Changing this will create a new resource. + delete: '- Default is 10 minute.' + enhanced: |- + - (Optional, Bool, ForceNew) Specifies whether the file system is enhanced or not. Changing this will + create a new resource with type StandardEnhanced/PerformanceEnhanced. + expand_type: -Specifies the extension type + export_location: '- The mount point of the SFS Turbo file system.' + id: '- The UUID of the SFS Turbo file system.' + name: |- + - (Required, String, ForceNew) Specifies the name of an SFS Turbo file system. The value contains 4 to 64 + characters and must start with a letter. Changing this will create a new resource. + region: |- + - (Optional, String, ForceNew) The region in which to create the SFS Turbo resource. If omitted, the + provider-level region will be used. Changing this creates a new SFS Turbo resource. + security_group_id: '- (Required, String, ForceNew) Specifies the security group ID.' + share_proto: |- + - (Optional, String, ForceNew) Specifies the protocol for sharing file systems. The valid value is NFS. + Changing this will create a new resource. + share_type: |- + - (Optional, String, ForceNew) Specifies the file system type. The valid values are STANDARD and PERFORMANCE. + Changing this will create a new resource. + size: |- + - (Required, Int) Specifies the capacity of a common file system, in GB. The value ranges + from 500 to 32768. + subnet_id: '- (Required, String, ForceNew) Specifies the network ID of the subnet. Changing this will create a new resource.' + version: '- The version ID of the SFS Turbo file system.' + vpc_id: '- (Required, String, ForceNew) Specifies the VPC ID. Changing this will create a new resource.' + importStatements: + - terraform import opentelekomcloud_sfs_turbo_share_v1 9e3dd316-64g9-0245-8456-71e9387d71ab + opentelekomcloud_smn_subscription_v2: + subCategory: Simple Message Notification (SMN) + description: Manages an SMN Subscription resource within OpenTelekomCloud. + name: opentelekomcloud_smn_subscription_v2 + title: opentelekomcloud_smn_subscription_v2 + examples: + - name: subscription_1 + manifest: |- + { + "endpoint": "mailtest@gmail.com", + "protocol": "email", + "remark": "O\u0026M", + "topic_urn": "${opentelekomcloud_smn_topic_v2.topic_1.id}" + } + references: + topic_urn: opentelekomcloud_smn_topic_v2.topic_1.id + dependencies: + opentelekomcloud_smn_topic_v2.topic_1: |- + { + "display_name": "The display name of topic_1", + "name": "topic_1" + } + - name: subscription_2 + manifest: |- + { + "endpoint": "13600000000", + "protocol": "sms", + "remark": "O\u0026M", + "topic_urn": "${opentelekomcloud_smn_topic_v2.topic_1.id}" + } + references: + topic_urn: opentelekomcloud_smn_topic_v2.topic_1.id + dependencies: + opentelekomcloud_smn_topic_v2.topic_1: |- + { + "display_name": "The display name of topic_1", + "name": "topic_1" + } + argumentDocs: + "0": indicates that the subscription is not confirmed. + "1": indicates that the subscription is confirmed. + "3": indicates that the subscription is canceled. + endpoint: '- (Required) Specifies the message endpoint.' + owner: '- The project ID of the topic creator.' + project_name: '- (Optional) The project name for the subscription.' + protocol: |- + - (Required) Specifies protocol of the message endpoint. Currently, email, + sms, http, and https are supported. + remark: |- + - (Optional) Specifies the remark information. The remarks must be a UTF-8-coded + character string containing 128 bytes. + status: '- The subscription status.' + subscription_urn: '- The resource identifier of a subscription.' + topic_urn: '- (Required) Specifies the resource identifier of a topic, which is unique.' + importStatements: [] + opentelekomcloud_smn_topic_attribute_v2: + subCategory: Simple Message Notification (SMN) + description: Manages an SMN Topic Attribute resource within OpenTelekomCloud. + name: opentelekomcloud_smn_topic_attribute_v2 + title: opentelekomcloud_smn_topic_attribute_v2 + examples: + - name: attribute_1 + manifest: |- + { + "attribute_name": "access_policy", + "topic_attribute": "{\n \"Version\": \"2016-09-07\",\n \"Id\": \"__default_policy_ID\",\n \"Statement\": [\n {\n \"Sid\": \"__service_pub_0\",\n \"Effect\": \"Allow\",\n \"Principal\": {\n \"Service\": [\n \"OBS\"\n ]\n },\n \"Action\": [\n \"SMN:Publish\",\n \"SMN:QueryTopicDetail\"\n ],\n \"Resource\": \"${opentelekomcloud_smn_topic_v2.topic_1.topic_urn}\"\n }\n ]\n}\n", + "topic_urn": "${opentelekomcloud_smn_topic_v2.topic_1.topic_urn}" + } + references: + topic_urn: opentelekomcloud_smn_topic_v2.topic_1.topic_urn + dependencies: + opentelekomcloud_smn_topic_v2.topic_1: |- + { + "display_name": "The display name of topic_1", + "name": "topic_1" + } + argumentDocs: + attribute_name: '- (Required) Attribute name. Valid value is access_policy.' + topic_attribute: '- (Required) Topic attribute value. The value cannot exceed 30 KB.' + topic_urn: '- (Required) Resource identifier of a topic, which is unique.' + importStatements: + - terraform import opentelekomcloud_smn_topic_attribute_v2.attribute_1 urn:smn:eu-de:5045c215010c440d91b2f7dce1f3753b:example/access_policy + opentelekomcloud_smn_topic_v2: + subCategory: Simple Message Notification (SMN) + description: Manages an SMN Topic resource within OpenTelekomCloud. + name: opentelekomcloud_smn_topic_v2 + title: opentelekomcloud_smn_topic_v2 + examples: + - name: topic_1 + manifest: |- + { + "display_name": "The display name of topic_1", + "name": "topic_1", + "tags": { + "foo": "bar", + "key": "value" + } + } + argumentDocs: + create_time: '- Time when the topic was created.' + display_name: |- + - (Optional, String) Topic display name, which is presented as the + name of the email sender in an email message. + name: '- (Required, ForceNew, String) The name of the topic to be created.' + project_name: '- (Optional, ForceNew, String) The project name for the topic.' + push_policy: |- + - Message pushing policy. 0 indicates that the message + sending fails and the message is cached in the queue. 1 indicates that the + failed message is discarded. + tags: '- (Optional, Map) Tags key/value pairs to associate with the instance.' + topic_urn: '- Resource identifier of a topic, which is unique.' + update_time: '- Time when the topic was updated.' + importStatements: [] + opentelekomcloud_swr_domain_v2: + subCategory: Software Repository for Container (SWR) + description: Manages an SWR Domain resource within OpenTelekomCloud. + name: opentelekomcloud_swr_domain_v2 + title: opentelekomcloud_swr_domain_v2 + examples: + - name: domain_1 + manifest: |- + { + "access_domain": "${var.access_domain}", + "deadline": "forever", + "organization": "${opentelekomcloud_swr_organization_v2.org_1.name}", + "permission": "read", + "repository": "${opentelekomcloud_swr_organization_v2.repo_1.name}" + } + references: + access_domain: var.access_domain + organization: opentelekomcloud_swr_organization_v2.org_1.name + repository: opentelekomcloud_swr_organization_v2.repo_1.name + dependencies: + opentelekomcloud_swr_organization_v2.org_1: |- + { + "name": "organization_1" + } + opentelekomcloud_swr_repository_v2.repo_1: |- + { + "category": "linux", + "description": "Test repository", + "is_public": false, + "name": "repository_1", + "organization": "${opentelekomcloud_swr_organization_v2.org_1.name}" + } + argumentDocs: + access_domain: '- (Required) The name of the domain for image sharing.' + created: '- Indicates the creation time.' + creator_id: '- Username ID of the domain creator.' + creator_name: '- Username of the domain creator.' + deadline: |- + - (Required) End date of image sharing (UTC). When the value is set to forever, + the image will be permanently available for the domain. The validity period is calculated by day. + The shared images expire at 00:00:00 on the day after the end date. + description: '- (Optional) Specifies SWR domain description.' + organization: '- (Required) The name of the repository organization.' + permission: '- (Required) Permission to be granted. Currently, only the read permission is supported.' + repository: '- (Required) The name of the repository.' + status: '- Indicates the domain is valid (true) or expired (false).' + updated: '- Indicates the domain when was last updated.' + importStatements: [] + opentelekomcloud_swr_organization_permissions_v2: + subCategory: Software Repository for Container (SWR) + description: Manages an SWR Organization Permissions resource within OpenTelekomCloud. + name: opentelekomcloud_swr_organization_permissions_v2 + title: opentelekomcloud_swr_organization_permissions_v2 + examples: + - name: user_1 + manifest: |- + { + "auth": 3, + "organization": "${opentelekomcloud_swr_organization_v2.org_1.name}", + "user_id": "${var.user_id}", + "username": "${var.username}" + } + references: + organization: opentelekomcloud_swr_organization_v2.org_1.name + user_id: var.user_id + username: var.username + dependencies: + opentelekomcloud_swr_organization_v2.org_1: |- + { + "name": "organization_1" + } + argumentDocs: + auth: |- + - (Required) User permission that is configured. + The value can be 1, 3, or 7. 7 ― manage, 3 ― write, 1 ― read. + organization: '- (Required) The name of the organization (namespace) to be accessed.' + user_id: '- (Required) The ID of the existing Open Telekom Cloud user.' + username: '- (Required) The username of the existing Open Telekom Cloud user.' + importStatements: [] + opentelekomcloud_swr_organization_v2: + subCategory: Software Repository for Container (SWR) + description: Manages an SWR Organization resource within OpenTelekomCloud. + name: opentelekomcloud_swr_organization_v2 + title: opentelekomcloud_swr_organization_v2 + examples: + - name: org_1 + manifest: |- + { + "name": "organization_1" + } + argumentDocs: + auth: '- User permission. The value can be 1, 3, or 7. 7: manage 3: write 1: read' + creator_name: '- Username of the organization creator.' + name: |- + - (Required) The name of the organization (namespace) to be created. + Enter 1 to 64 characters, starting with a lowercase letter and ending with a lowercase letter or digit. + Only lowercase letters, digits, periods (.), underscores (_), and hyphens (-) are allowed. + Periods, underscores, and hyphens cannot be placed next to each other. + A maximum of two consecutive underscores are allowed. + organization_id: '- Numeric ID of the organization.' + importStatements: + - terraform import opentelekomcloud_swr_organization_v2.org_1 organization_1 + opentelekomcloud_swr_repository_v2: + subCategory: Software Repository for Container (SWR) + description: Manages an SWR Repository resource within OpenTelekomCloud. + name: opentelekomcloud_swr_repository_v2 + title: opentelekomcloud_swr_repository_v2 + examples: + - name: repo_1 + manifest: |- + { + "category": "linux", + "description": "Test repository", + "is_public": false, + "name": "repository_1", + "organization": "${opentelekomcloud_swr_organization_v2.org_1.name}" + } + references: + organization: opentelekomcloud_swr_organization_v2.org_1.name + dependencies: + opentelekomcloud_swr_organization_v2.org_1: |- + { + "name": "organization_1" + } + argumentDocs: + category: |- + - (Optional) Repository category. The value can be app_server, linux, framework_app, database, + lang, other, windows, arm. + description: '- (Optional) Repository description.' + internal_path: '- Intra-cluster image address for docker pull.' + is_public: |- + - Whether the repository is public. + When the value is true, it indicates the repository is public. + When the value is false, it indicates the repository is private. + name: |- + - Enter 1 to 128 characters, starting and ending with a lowercase letter or digit. + Only lowercase letters, digits, periods (.), slashes (/), underscores (_), and hyphens (-) are allowed. + Periods, underscores, and hyphens cannot be placed next to each other. + A maximum of two consecutive underscores are allowed. + num_images: '- Number of image tags in a repository.' + organization: '- The name of the repository organization.' + path: '- Image address for docker pull.' + repository_id: '- Numeric ID of the repository.' + size: '- Repository size.' + importStatements: + - terraform import opentelekomcloud_swr_repository_v2.repo_1 organization_1/repository_1 + opentelekomcloud_tms_tags_v1: + subCategory: Tag Management Service (TMS) + description: Manages an TMS Tags resource within OpenTelekomCloud. + name: opentelekomcloud_tms_tags_v1 + title: opentelekomcloud_tms_tags_v1 + examples: + - name: test + manifest: |- + { + "tags": [ + { + "key": "foo", + "value": "bar" + } + ] + } + argumentDocs: + create: '- Default is 3 minute.' + delete: '- Default is 3 minute.' + id: '- The resource ID.' + tags: '- (Required, List, ForceNew) Specifies an array of one or more predefined tags.' + tags.key: |- + - (Required, String, ForceNew) Specifies the tag key. The value can contain up to 36 characters. + Only letters, digits, hyphens (-), underscores (_), and Unicode characters from \u4e00 to \u9fff are allowed. + tags.value: |- + - (Required, String, ForceNew) Specifies the tag value. The value can contain up to 43 characters. + Only letters, digits, periods (.), hyphens (-), and underscores (_), and Unicode characters from \u4e00 to \u9fff + are allowed. + importStatements: [] + opentelekomcloud_vbs_backup_policy_v2: + subCategory: Volume Backup Service (VBS) + description: Manages an VBS Backup Policy resource within OpenTelekomCloud. + name: opentelekomcloud_vbs_backup_policy_v2 + title: opentelekomcloud_vbs_backup_policy_v2 + examples: + - name: vbs_policy1 + manifest: |- + { + "frequency": 1, + "name": "policy_001", + "rentention_num": 7, + "retain_first_backup": "N", + "start_time": "12:00", + "status": "ON", + "tags": { + "key": "k1", + "value": "v1" + } + } + - name: vbs_policy2 + manifest: |- + { + "frequency": 3, + "name": "policy_002", + "rentention_num": 5, + "resources": [ + "${var.volume_id}" + ], + "retain_first_backup": "N", + "start_time": "12:00", + "status": "ON" + } + argumentDocs: + frequency: |- + - (Optional) Specifies the backup interval. The value is in the range of 1 to 14 days. + Either this field or week_frequency must be specified. + id: '- Specifies a backup policy ID.' + key: '- (Required) Specifies the tag key. A tag key consists of up to 36 characters, chosen from letters, digits, hyphens (-), and underscores (_).' + name: |- + - (Required) Specifies the policy name. The value is a string of 1 to 64 characters that + can contain letters, digits, underscores (_), and hyphens (-). It cannot start with default. + policy_resource_count: '- Specifies the number of volumes associated with the backup policy.' + rentention_day: |- + - (Optional) Specifies days of retained backups. Minimum value is 2. + Either this field or rentention_num must be specified. + rentention_num: |- + - (Optional) Specifies number of retained backups. Minimum value is 2. + Either this field or rentention_day must be specified. + resources: |- + - (Optional) Specifies one or more volumes associated with the backup policy. + Any previously associated backup policy will no longer apply. + retain_first_backup: |- + - (Required) Specifies whether to retain the first backup in the current month. + Possible values are Y or N. + start_time: |- + - (Required) Specifies the start time(UTC) of the backup job. The value is in the + HH:mm format. You need to set the execution time on a full hour. You can set multiple execution + times, and use commas (,) to separate one time from another. + status: '- (Optional) Specifies the backup policy status. Possible values are ON or OFF. Defaults to ON.' + tags: '- (Optional) Represents the list of tags to be configured for the backup policy.' + value: '- (Required) Specifies the tag value. A tag value consists of 0 to 43 characters, chosen from letters, digits, hyphens (-), and underscores (_).' + week_frequency: |- + - (Optional) Specifies on which days of each week backup jobs are executed. + The value can be one or more of the following: "SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT". + Either this field or frequency must be specified. + importStatements: [] + opentelekomcloud_vbs_backup_share_v2: + subCategory: Volume Backup Service (VBS) + description: Manages an VBS Backup Share resource within OpenTelekomCloud. + name: opentelekomcloud_vbs_backup_share_v2 + title: opentelekomcloud_vbs_backup_share_v2 + examples: + - name: backupshare + manifest: |- + { + "backup_id": "${var.backup_id}", + "to_project_ids": "${var.to_project_ids}" + } + references: + backup_id: var.backup_id + to_project_ids: var.to_project_ids + argumentDocs: + availability_zone: '- The AZ where the backup resides.' + backup_id: '- (Required) The ID of the backup to be shared. Changing the parameter will create new resource.' + backup_name: '- The backup name.' + backup_status: '- The status of the VBS backup.' + container: '- The container of the backup.' + description: '- The status of the VBS backup.' + service_metadata: '- The metadata of the vbs backup.' + share_ids: '- The backup share IDs.' + size: '- The size of the vbs backup.' + snapshot_id: '- The ID of the snapshot associated with the backup.' + to_project_ids: '- (Required) The IDs of projects with which the backup is shared. Changing the parameter will create new resource.' + volume_id: '- The ID of the tenant to which the backup belongs.' + importStatements: [] + opentelekomcloud_vbs_backup_v2: + subCategory: Volume Backup Service (VBS) + description: Manages an VBS Backup resource within OpenTelekomCloud. + name: opentelekomcloud_vbs_backup_v2 + title: opentelekomcloud_vbs_backup_v2 + examples: + - name: mybackup + manifest: |- + { + "name": "${var.backup_name}", + "volume_id": "${var.volume_id}" + } + references: + name: var.backup_name + volume_id: var.volume_id + argumentDocs: + availability_zone: '- The AZ where the backup resides.' + container: '- The container of the backup.' + create: '- Default is 10 minutes.' + delete: '- Default is 3 minutes.' + description: '- (Optional) The description of the vbs backup. Changing the parameter will create new resource.' + id: '- The id of the vbs backup.' + key: '- (Required) Specifies the tag key.' + name: '- (Required) The name of the vbs backup. Changing the parameter will create new resource.' + service_metadata: '- The metadata of the vbs backup.' + size: '- The size of the vbs backup.' + snapshot_id: '- (Optional) The snapshot id of the disk to be backed up. Changing the parameter will create new resource.' + status: '- The status of the VBS backup.' + tags: '- (Optional) List of tags to be configured for the backup resources. Changing the parameter will create new resource.' + value: '- (Required) Specifies the tag value.' + volume_id: '- (Required) The id of the disk to be backed up. Changing the parameter will create new resource.' + importStatements: [] + opentelekomcloud_vpc_bandwidth_associate_v2: + subCategory: Virtual Private Cloud (VPC) + description: Manages a VPC Bandwidth Association resource within OpenTelekomCloud. + name: opentelekomcloud_vpc_bandwidth_associate_v2 + title: opentelekomcloud_vpc_bandwidth_associate_v2 + examples: + - name: associate + manifest: |- + { + "bandwidth": "${opentelekomcloud_vpc_bandwidth_v2.band20m.id}", + "floating_ips": [ + "${opentelekomcloud_networking_floatingip_v2.ip1.id}", + "${opentelekomcloud_networking_floatingip_v2.ip2.id}" + ] + } + references: + bandwidth: opentelekomcloud_vpc_bandwidth_v2.band20m.id + dependencies: + opentelekomcloud_networking_floatingip_v2.ip1: '{}' + opentelekomcloud_networking_floatingip_v2.ip2: '{}' + opentelekomcloud_vpc_bandwidth_v2.band20m: |- + { + "name": "bandwidth-20MBit", + "size": 20 + } + argumentDocs: + "1": . + backup_charge_mode: |- + - (Optional) Specifies whether the dedicated bandwidth used by the EIP that has been removed from + a shared bandwidth is billed by traffic or by bandwidth. + backup_size: |- + - (Optional) Specifies the size (Mbit/s) of the dedicated bandwidth used by the EIP that has been + removed from a shared bandwidth. + bandwidth: '- (Required) Specifies ID of the bandwidth to be assigned.' + floating_ips: '- (Required) Specifies IDs of floating IPs to be added to the bandwidth.' + importStatements: [] + opentelekomcloud_vpc_bandwidth_v2: + subCategory: Virtual Private Cloud (VPC) + description: Manages a VPC Bandwidth resource within OpenTelekomCloud. + name: opentelekomcloud_vpc_bandwidth_v2 + title: opentelekomcloud_vpc_bandwidth_v2 + examples: + - name: band_100mb + manifest: |- + { + "name": "shared-100Mbit", + "size": 100 + } + argumentDocs: + id: '- Specifies the bandwidth ID, which uniquely identifies the bandwidth.' + name: '- (Required) Specifies the bandwidth name.' + size: |- + - (Required) Specifies the bandwidth size. + The value ranges from 5 Mbit/s to 1000 Mbit/s by default. + status: '- Specifies the bandwidth status.' + importStatements: [] + opentelekomcloud_vpc_eip_v1: + subCategory: Virtual Private Cloud (VPC) + description: Manages a VPC EIP resource within OpenTelekomCloud. + name: opentelekomcloud_vpc_eip_v1 + title: opentelekomcloud_vpc_eip_v1 + examples: + - name: eip_1 + manifest: |- + { + "bandwidth": [ + { + "charge_mode": "traffic", + "name": "test", + "share_type": "PER", + "size": 8 + } + ], + "publicip": [ + { + "type": "5_bgp" + } + ] + } + - name: eip_1 + manifest: |- + { + "bandwidth": [ + { + "charge_mode": "traffic", + "name": "test", + "share_type": "PER", + "size": 8 + } + ], + "publicip": [ + { + "name": "my_eip", + "type": "5_bgp" + } + ] + } + argumentDocs: + bandwidth: '- (Required) The bandwidth object.' + bandwidth.charge_mode: |- + - (Optional) This is a reserved field. If the system supports charging + by traffic and this field is specified, then you are charged by traffic for elastic + IP addresses. Changing this creates a new eip. + bandwidth.name: |- + - (Required) The bandwidth name, which is a string of 1 to 64 characters + that contain letters, digits, underscores (_), and hyphens (-). + bandwidth.share_type: |- + - (Required) Whether the bandwidth is shared or exclusive. Changing + this creates a new eip. + bandwidth.size: '- (Required) The bandwidth size. The value ranges from 1 to 300 Mbit/s.' + bandwidth.tags: '- (Optional) Tags key/value pairs to associate with the eip.' + bandwidth.unbind_port: |- + - (Optional) The value true indicates that port will be unassigned from EIP. + This parameter work only with already allocated resource. + bandwidth/charge_mode: '- See Argument Reference above.' + bandwidth/name: '- See Argument Reference above.' + bandwidth/share_type: '- See Argument Reference above.' + bandwidth/size: '- See Argument Reference above.' + publicip: '- (Required) The elastic IP address object.' + publicip.ip_address: |- + - (Optional) The value must be a valid IP address in the available + IP address segment. Changing this creates a new eip. + publicip.name: '- (Required) The ip name, which is a string of 1 to 64 characters.' + publicip.port_id: |- + - (Optional) The port id which this eip will associate with. If the value + is "" or this not specified, the eip will be in unbind state. + publicip.type: |- + - (Required) The value must be a type supported by the system. + The value can be 5_bgp, 5_mailbgp and 5_gray. Changing this creates a new eip. + publicip/ip_address: '- See Argument Reference above.' + publicip/name: '- See Argument Reference above.' + publicip/port_id: '- See Argument Reference above.' + publicip/type: '- See Argument Reference above.' + region: |- + - (Optional) The region in which to obtain the V1 Networking client. + If omitted, the region argument of the provider is used. Changing this + creates a new service. + tags: '- See Argument Reference above.' + importStatements: [] + opentelekomcloud_vpc_flow_log_v1: + subCategory: Virtual Private Cloud (VPC) + description: Manages a VPC Flow Log resource within OpenTelekomCloud. + name: opentelekomcloud_vpc_flow_log_v1 + title: opentelekomcloud_vpc_flow_log_v1 + examples: + - name: flowlog1 + manifest: |- + { + "description": "${var.flow_log_desc}", + "log_group_id": "${opentelekomcloud_logtank_group_v2.log_group1.id}", + "log_topic_id": "${opentelekomcloud_logtank_topic_v2.log_topic1.id}", + "name": "${var.flow_log_name}", + "resource_id": "${opentelekomcloud_vpc_v1.vpc_v1.id}", + "resource_type": "vpc", + "traffic_type": "all" + } + references: + description: var.flow_log_desc + log_group_id: opentelekomcloud_logtank_group_v2.log_group1.id + log_topic_id: opentelekomcloud_logtank_topic_v2.log_topic1.id + name: var.flow_log_name + resource_id: opentelekomcloud_vpc_v1.vpc_v1.id + dependencies: + opentelekomcloud_logtank_group_v2.log_group1: |- + { + "group_name": "${var.log_group_name}" + } + opentelekomcloud_logtank_topic_v2.log_topic1: |- + { + "group_id": "${opentelekomcloud_logtank_group_v2.log_group1.id}", + "topic_name": "${var.log_topic_name}" + } + opentelekomcloud_vpc_v1.vpc_v1: |- + { + "cidr": "${var.vpc_cidr}", + "name": "${var.vpc_name}" + } + argumentDocs: + admin_state: '- Whether to enable the VPC flow log function.' + description: |- + - (Optinal) Provides supplementary information about the VPC flow log. + The value is a string of no more than 255 characters and cannot contain angle brackets (< or >). + id: '- The VPC flow log ID in UUID format.' + log_group_id: |- + - (Required) Specifies the log group ID. + Changing this creates a new VPC flow log. + log_topic_id: |- + - (Required) Specifies the log topic ID. + Changing this creates a new VPC flow log. + name: |- + - (Optional) Specifies the flow log name. + The value is a string of 1 to 64 characters that can contain letters, digits, underscores (_), hyphens (-) and periods (.). + resource_id: |- + - (Required) Specifies the ID of resource type. + Changing this creates a new VPC flow log. + resource_type: |- + - (Required) Specifies the type of resource on which to create the VPC flow log. + The value can be port, vpc and network. + Changing this creates a new VPC flow log. + status: '- The status of the flow log. The value can be ACTIVE, DOWN or ERROR.' + traffic_type: |- + - (Required) Specifies the type of traffic to log. The value can be all, accept and reject. + Changing this creates a new VPC flow log. + importStatements: [] + opentelekomcloud_vpc_peering_connection_accepter_v2: + subCategory: Virtual Private Cloud (VPC) + description: Manages a VPC Peering Accepter resource within OpenTelekomCloud. + name: opentelekomcloud_vpc_peering_connection_accepter_v2 + title: opentelekomcloud_vpc_peering_connection_accepter_v2 + examples: + - name: peer + manifest: |- + { + "accept": true, + "provider": "opentelekomcloud.peer", + "vpc_peering_connection_id": "${opentelekomcloud_vpc_peering_connection_v2.peering.id}" + } + references: + vpc_peering_connection_id: opentelekomcloud_vpc_peering_connection_v2.peering.id + dependencies: + opentelekomcloud_vpc_peering_connection_v2.peering: |- + { + "name": "${var.peer_name}", + "peer_tenant_id": "${var.tenant_id}", + "peer_vpc_id": "${opentelekomcloud_vpc_v1.vpc_peer.id}", + "provider": "opentelekomcloud.main", + "vpc_id": "${opentelekomcloud_vpc_v1.vpc_main.id}" + } + opentelekomcloud_vpc_v1.vpc_main: |- + { + "cidr": "${var.vpc_cidr}", + "name": "${var.vpc_name}", + "provider": "opentelekomcloud.main" + } + opentelekomcloud_vpc_v1.vpc_peer: |- + { + "cidr": "${var.peer_vpc_cidr}", + "name": "${var.peer_vpc_name}", + "provider": "opentelekomcloud.peer" + } + argumentDocs: + accept: '- (Optional)- Whether or not to accept the peering request. Defaults to false.' + id: '- The VPC peering connection ID.' + name: "- \tThe VPC peering connection name." + peer_tenant_id: '- The Tenant Id of the accepter tenant.' + peer_vpc_id: '- The VPC ID of the accepter tenant.' + status: '- The VPC peering connection status.' + vpc_id: '- The ID of requester VPC involved in a VPC peering connection.' + vpc_peering_connection_id: '- (Required) The VPC Peering Connection ID to manage. Changing this creates a new VPC peering connection accepter.' + importStatements: [] + opentelekomcloud_vpc_peering_connection_v2: + subCategory: Virtual Private Cloud (VPC) + description: Manages a VPC Peering resource within OpenTelekomCloud. + name: opentelekomcloud_vpc_peering_connection_v2 + title: opentelekomcloud_vpc_peering_connection_v2 + examples: + - name: peering + manifest: |- + { + "name": "${var.peer_conn_name}", + "peer_vpc_id": "${var.accepter_vpc_id}", + "vpc_id": "${var.vpc_id}" + } + references: + name: var.peer_conn_name + peer_vpc_id: var.accepter_vpc_id + vpc_id: var.vpc_id + argumentDocs: + id: '- The VPC peering connection ID.' + name: '- (Required) Specifies the name of the VPC peering connection. The value can contain 1 to 64 characters.' + peer_tenant_id: '- (Optional) Specified the Tenant Id of the accepter tenant. Changing this creates a new VPC peering connection.' + peer_vpc_id: '- (Required) Specifies the VPC ID of the accepter tenant. Changing this creates a new VPC peering connection.' + status: '- The VPC peering connection status. The value can be PENDING_ACCEPTANCE, REJECTED, EXPIRED, DELETED, or ACTIVE.' + vpc_id: '- (Required) Specifies the ID of a VPC involved in a VPC peering connection. Changing this creates a new VPC peering connection.' + importStatements: [] + opentelekomcloud_vpc_route_table_v1: + subCategory: Virtual Private Cloud (VPC) + description: Manages a VPC Route Table resource within OpenTelekomCloud. + name: opentelekomcloud_vpc_route_table_v1 + title: opentelekomcloud_vpc_route_table_v1 + examples: + - name: table_1 + manifest: |- + { + "description": "created by terraform with routes", + "name": "my_route", + "route": [ + { + "description": "peering rule", + "destination": "172.16.0.0/16", + "nexthop": "${opentelekomcloud_vpc_peering_connection_v2.peering.id}", + "type": "peering" + } + ], + "vpc_id": "${opentelekomcloud_vpc_v1.vpc_1.id}" + } + references: + route.nexthop: opentelekomcloud_vpc_peering_connection_v2.peering.id + vpc_id: opentelekomcloud_vpc_v1.vpc_1.id + dependencies: + opentelekomcloud_vpc_peering_connection_v2.peering: |- + { + "name": "my_peering", + "peer_vpc_id": "${opentelekomcloud_vpc_v1.vpc_2.id}", + "vpc_id": "${opentelekomcloud_vpc_v1.vpc_1.id}" + } + opentelekomcloud_vpc_subnet_v1.subnet_1-1: |- + { + "cidr": "192.168.0.0/24", + "gateway_ip": "192.168.0.1", + "name": "vpc-1-subnet-1-1", + "vpc_id": "${opentelekomcloud_vpc_v1.vpc_1.id}" + } + opentelekomcloud_vpc_subnet_v1.subnet_1-2: |- + { + "cidr": "192.168.10.0/24", + "gateway_ip": "192.168.10.1", + "name": "vpc-1-subnet-1-2", + "vpc_id": "${opentelekomcloud_vpc_v1.vpc_1.id}" + } + opentelekomcloud_vpc_subnet_v1.subnet_2-1: |- + { + "cidr": "172.16.10.0/24", + "gateway_ip": "172.16.10.1", + "name": "vpc-2-subnet-2-1", + "vpc_id": "${opentelekomcloud_vpc_v1.vpc_2.id}" + } + opentelekomcloud_vpc_v1.vpc_1: |- + { + "cidr": "192.168.0.0/16", + "name": "vpc-1" + } + opentelekomcloud_vpc_v1.vpc_2: |- + { + "cidr": "172.16.0.0/16", + "name": "vpc-2" + } + - name: table_1 + manifest: |- + { + "description": "created by terraform with subnets", + "name": "my_table", + "route": [ + { + "description": "peering rule", + "destination": "172.16.0.0/16", + "nexthop": "${opentelekomcloud_vpc_peering_connection_v2.peering.id}", + "type": "peering" + } + ], + "subnets": [ + "${opentelekomcloud_vpc_subnet_v1.subnet_1-1.id}", + "${opentelekomcloud_vpc_subnet_v1.subnet_1-2.id}" + ], + "vpc_id": "${opentelekomcloud_vpc_v1.vpc_1.id}" + } + references: + route.nexthop: opentelekomcloud_vpc_peering_connection_v2.peering.id + vpc_id: opentelekomcloud_vpc_v1.vpc_1.id + dependencies: + opentelekomcloud_vpc_peering_connection_v2.peering: |- + { + "name": "my_peering", + "peer_vpc_id": "${opentelekomcloud_vpc_v1.vpc_2.id}", + "vpc_id": "${opentelekomcloud_vpc_v1.vpc_1.id}" + } + opentelekomcloud_vpc_subnet_v1.subnet_1-1: |- + { + "cidr": "192.168.0.0/24", + "gateway_ip": "192.168.0.1", + "name": "vpc-1-subnet-1-1", + "vpc_id": "${opentelekomcloud_vpc_v1.vpc_1.id}" + } + opentelekomcloud_vpc_subnet_v1.subnet_1-2: |- + { + "cidr": "192.168.10.0/24", + "gateway_ip": "192.168.10.1", + "name": "vpc-1-subnet-1-2", + "vpc_id": "${opentelekomcloud_vpc_v1.vpc_1.id}" + } + opentelekomcloud_vpc_subnet_v1.subnet_2-1: |- + { + "cidr": "172.16.10.0/24", + "gateway_ip": "172.16.10.1", + "name": "vpc-2-subnet-2-1", + "vpc_id": "${opentelekomcloud_vpc_v1.vpc_2.id}" + } + opentelekomcloud_vpc_v1.vpc_1: |- + { + "cidr": "192.168.0.0/16", + "name": "vpc-1" + } + opentelekomcloud_vpc_v1.vpc_2: |- + { + "cidr": "172.16.0.0/16", + "name": "vpc-2" + } + argumentDocs: + create: '- Default is 10 minutes.' + created_at: '- Specifies the time (UTC) when the route table is created.' + delete: '- Default is 10 minutes.' + description: |- + - (Optional, String) Specifies the supplementary information about the route table. + The value is a string of no more than 255 characters and cannot contain angle brackets (< or >). + id: '- The resource ID in UUID format.' + name: |- + - (Required, String) Specifies the route table name. The value is a string of no more than + 64 characters that can contain letters, digits, underscores (_), hyphens (-), and periods (.). + region: |- + - (Optional, String, ForceNew) The region in which to create the vpc route table. + If omitted, the provider-level region will be used. Changing this creates a new resource. + route: |- + - (Optional, List) Specifies the route object list. The route object + is documented below. + route.description: |- + - (Optional, String) Specifies the supplementary information about the route. + The value is a string of no more than 255 characters and cannot contain angle brackets (< or >). + route.destination: |- + - (Required, String) Specifies the destination address in the CIDR notation format, + for example, 192.168.200.0/24. The destination of each route must be unique and cannot overlap + with any subnet in the VPC. + route.nexthop: '- (Required, String) Specifies the next hop.' + route.type: |- + - (Required, String) Specifies the route type. Currently, the value can be: + ecs, eni, vip, nat, peering, vpn, dc and cc. + subnets: '- (Optional, List) Specifies an array of one or more subnets associating with the route table.' + updated_at: '- Specifies the time (UTC) when the route table is updated.' + vpc_id: |- + - (Required, String, ForceNew) Specifies the VPC ID for which a route table is to be added. + Changing this creates a new resource. + importStatements: [] + opentelekomcloud_vpc_route_v2: + subCategory: Virtual Private Cloud (VPC) + description: Manages a VPC Route Table resource within OpenTelekomCloud. + name: opentelekomcloud_vpc_route_v2 + title: opentelekomcloud_vpc_route_v2 + examples: + - name: vpc_route + manifest: |- + { + "destination": "192.168.0.0/16", + "nexthop": "${var.nexthop}", + "type": "peering", + "vpc_id": "${var.vpc_id}" + } + references: + nexthop: var.nexthop + vpc_id: var.vpc_id + argumentDocs: + destination: '- (Required) Specifies the destination IP address or CIDR block. Changing this creates a new Route.' + id: '- The route ID.' + nexthop: '- (Required) Specifies the next hop. If the route type is peering, enter the VPC peering connection ID. Changing this creates a new Route.' + tenant_id: '- (Optional) Specifies the tenant ID. Only the administrator can specify the tenant ID of other tenant. Changing this creates a new Route.' + type: '- (Required) Specifies the route type. Currently, the value can only be peering. Changing this creates a new Route.' + vpc_id: '- (Required) Specifies the VPC for which a route is to be added. Changing this creates a new Route.' + importStatements: [] + opentelekomcloud_vpc_subnet_v1: + subCategory: Virtual Private Cloud (VPC) + description: Manages a VPC Subnet resource within OpenTelekomCloud. + name: opentelekomcloud_vpc_subnet_v1 + title: opentelekomcloud_vpc_subnet_v1 + examples: + - name: subnet_v1 + manifest: |- + { + "cidr": "${var.subnet_cidr}", + "gateway_ip": "${var.subnet_gateway_ip}", + "name": "${var.subnet_name}", + "ntp_addresses": "10.100.0.33,10.100.0.34", + "vpc_id": "${opentelekomcloud_vpc_v1.vpc_v1.id}" + } + references: + cidr: var.subnet_cidr + gateway_ip: var.subnet_gateway_ip + name: var.subnet_name + vpc_id: opentelekomcloud_vpc_v1.vpc_v1.id + dependencies: + opentelekomcloud_vpc_v1.vpc_v1: |- + { + "cidr": "${var.vpc_cidr}", + "name": "${var.vpc_name}" + } + - name: subnet_with_tags + manifest: |- + { + "cidr": "${var.subnet_cidr}", + "gateway_ip": "${var.subnet_gateway_ip}", + "name": "${var.subnet_name}", + "ntp_addresses": "10.100.0.33,10.100.0.34", + "tags": { + "foo": "bar", + "key": "value" + }, + "vpc_id": "${opentelekomcloud_vpc_v1.vpc_v1.id}" + } + references: + cidr: var.subnet_cidr + gateway_ip: var.subnet_gateway_ip + name: var.subnet_name + vpc_id: opentelekomcloud_vpc_v1.vpc_v1.id + - name: subnet_v6 + manifest: |- + { + "availability_zone": "eu-de-02", + "cidr": "192.168.0.0/16", + "description": "some description", + "gateway_ip": "192.168.0.1", + "ipv6_enable": true, + "name": "subnet_test_ipv6", + "ntp_addresses": "10.100.0.33,10.100.0.34", + "tags": { + "foo": "bar", + "key": "value" + }, + "vpc_id": "${opentelekomcloud_vpc_v1.vpc_1.id}" + } + references: + vpc_id: opentelekomcloud_vpc_v1.vpc_1.id + argumentDocs: + availability_zone: |- + - (Optional) Identifies the availability zone (AZ) to which the subnet belongs. + The value must be an existing AZ in the system. Changing this creates a new Subnet. + cidr: |- + - (Required) Specifies the network segment on which the subnet resides. The value must be in CIDR format. + The value must be within the CIDR block of the VPC. The subnet mask cannot be greater than 28. + Changing this creates a new Subnet. + cidr_v6: '- Specifies the IPv6 subnet CIDR block. If the subnet is an IPv4 subnet, this parameter is not returned.' + description: '- (Optional) A description of the VPC subnet.' + dhcp_enable: |- + - (Optional) Specifies whether the DHCP function is enabled for the subnet. The value can + be true or false. If this parameter is left blank, it is set to true by default. + dns_list: |- + - (Optional) Specifies the DNS server address list of a subnet. This field is required if you + need to use more than two DNS servers. This parameter value is the superset of both DNS server address + 1 and DNS server address 2. + gateway_ip: |- + - (Required) Specifies the gateway of the subnet. The value must be a valid IP address. + The value must be an IP address in the subnet segment. Changing this creates a new Subnet. + gateway_ip_v6: '- Specifies the IPv6 subnet gateway. If the subnet is an IPv4 subnet, this parameter is not returned.' + id: '- Specifies a resource ID in UUID format. Same as OpenStack network ID (OS_NETWORK_ID).' + ipv6_enable: |- + - (Optional) Specifies whether IPv6 is enabled. If IPv6 is enabled, you can use IPv6 CIDR blocks. The value can + be true or false. If this parameter is left blank, it is set to false by default. + name: |- + - (Required) The subnet name. The value is a string of 1 to 64 characters that can contain letters, + digits, underscores (_), and hyphens (-). + network_id: '- Specifies the OpenStack network ID.' + ntp_addresses: '- (Optional) Specifies the NTP server address configured for the subnet.' + primary_dns: |- + - (Optional) Specifies the IP address of DNS server 1 on the subnet. The value must be a + valid IP address. Default is 100.125.4.25, OpenTelekomCloud internal DNS server. + secondary_dns: |- + - (Optional) Specifies the IP address of DNS server 2 on the subnet. The value must be a + valid IP address. Default is 100.125.129.199, OpenTelekomCloud secondary internal DNS server. + status: '- Specifies the status of the subnet. The value can be ACTIVE, DOWN, UNKNOWN, or ERROR.' + subnet_id: '- Specifies the OpenStack subnet ID.' + tags: '- (Optional) The key/value pairs to associate with the subnet.' + vpc_id: '- (Required) Specifies the ID of the VPC to which the subnet belongs. Changing this creates a new Subnet.' + importStatements: + - terraform import opentelekomcloud_vpc_subnet_v1.subnet_v1 4779ab1c-7c1a-44b1-a02e-93dfc361b32d + opentelekomcloud_vpc_v1: + subCategory: Virtual Private Cloud (VPC) + description: Manages a VPC resource within OpenTelekomCloud. + name: opentelekomcloud_vpc_v1 + title: opentelekomcloud_vpc_v1 + examples: + - name: vpc_v1 + manifest: |- + { + "cidr": "${var.vpc_cidr}", + "name": "${var.vpc_name}" + } + references: + cidr: var.vpc_cidr + name: var.vpc_name + - name: vpc_with_tags + manifest: |- + { + "cidr": "${var.vpc_cidr}", + "name": "${var.vpc_name}", + "tags": { + "foo": "bar", + "key": "value" + } + } + references: + cidr: var.vpc_cidr + name: var.vpc_name + - name: vpc_sec_cidr + manifest: |- + { + "cidr": "192.168.0.0/16", + "description": "description", + "name": "tf_vpc", + "secondary_cidr": "23.9.0.0/16", + "tags": { + "foo": "bar", + "key": "value" + } + } + argumentDocs: + cidr: |- + - (Required) The range of available subnets in the VPC. The value ranges from + 10.0.0.0/8 to 10.255.255.0/24, 172.16.0.0/12 to 172.31.255.0/24, + or 192.168.0.0/16 to 192.168.255.0/24. + description: '- (Optional) A description of the VPC.' + name: |- + - (Required) The name of the VPC. The name must be unique for a tenant. The value is a string of + no more than 64 characters and can contain digits, letters, underscores (_), and hyphens (-). + secondary_cidr: |- + - (Optional) Secondary CIDR block that can be added to VPCs. + The value cannot contain the following: 100.64.0.0/1, 214.0.0.0/7, 198.18.0.0/15, 169.254.0.0/16, + 0.0.0.0/8, 127.0.0.0/8, 240.0.0.0/4, 172.31.0.0/16, 192.168.0.0/16. + Currently, only one secondary CIDR block can be added to each VPC. + shared: |- + - (Optional) Specifies whether the shared SNAT should be used or not. Is also + required for cross-tenant sharing. Shared SNAT only avadilable in eu-de region. + Deprecated, VPC Shared SNAT End of Life from 01.03.2024, please do not use. + status: |- + - The current status of the desired VPC. Can be either CREATING, + OK, DOWN, PENDING_UPDATE, PENDING_DELETE or ERROR. + tags: '- (Optional) The key/value pairs to associate with the VPC.' + importStatements: [] + opentelekomcloud_vpcep_endpoint_v1: + subCategory: VPC Endpoint (VPCEP) + description: Manages a VPCEP Endpoint resource within OpenTelekomCloud. + name: opentelekomcloud_vpcep_endpoint_v1 + title: opentelekomcloud_vpcep_endpoint_v1 + examples: + - name: endpoint + manifest: |- + { + "enable_dns": true, + "port_ip": "192.168.0.12", + "service_id": "${opentelekomcloud_vpcep_service_v1.service.id}", + "subnet_id": "${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.id}", + "tags": { + "fizz": "buzz" + }, + "vpc_id": "${opentelekomcloud_vpcep_service_v1.service.vpc_id}", + "whitelist": [ + "127.0.0.1" + ] + } + references: + service_id: opentelekomcloud_vpcep_service_v1.service.id + subnet_id: data.opentelekomcloud_vpc_subnet_v1.shared_subnet.id + vpc_id: opentelekomcloud_vpcep_service_v1.service.vpc_id + dependencies: + opentelekomcloud_lb_loadbalancer_v2.lb_1: |- + { + "vip_subnet_id": "${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.subnet_id}" + } + opentelekomcloud_vpcep_service_v1.service: |- + { + "name": "service_1", + "port": [ + { + "client_port": 80, + "server_port": 8080 + } + ], + "port_id": "${opentelekomcloud_lb_loadbalancer_v2.lb_1.vip_port_id}", + "server_type": "LB", + "tags": { + "key": "value" + }, + "vpc_id": "${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.vpc_id}" + } + argumentDocs: + 198.19.128.0/20.enable_dns: '- (Optional) Specifies whether to create a private domain name. The default value is false.' + 198.19.128.0/20.enable_whitelist: |- + - (Optional) Specifies whether to enable access control. + This parameter is available only if you create a VPC endpoint for connecting to an interface VPC endpoint service. + 198.19.128.0/20.port_ip: '- (Optional) Specifies the IP address for accessing the associated VPC endpoint service.' + 198.19.128.0/20.route_tables: '- (Optional) Lists the IDs of route tables.' + 198.19.128.0/20.tags: '- (Optional) Lists the resource tags.' + 198.19.128.0/20.whitelist: |- + - (Optional) Specifies an array of whitelisted IPs for controlling access to the VPC endpoint. + IPv4 addresses or CIDR blocks can be specified to control access when you create a VPC endpoint. + This parameter is mandatory only when you create a VPC endpoint for connecting to an interface VPC endpoint service. + dns_names: |- + - Specifies the domain name for accessing the associated VPC endpoint service. + This parameter is only available when enable_dns is set to true. + id: '- ID of VPC endpoint.' + marker_id: '- Specifies the packet ID of the VPC endpoint.' + project_id: '- Specifies the project ID.' + service_id: '- (Required) Specifies the ID of the VPC endpoint service.' + service_name: '- Specifies the name of the VPC endpoint service.' + service_type: '- Specifies the type of the VPC endpoint service that is associated with the VPC endpoint.' + subnet_id: |- + - (Optional) The value must be the ID of the subnet (OpenStack network) created in the VPC specified + by vpc_id and in the format of the UUID. + This parameter is mandatory only if you create a VPC endpoint for connecting to an interface VPC endpoint service. + vpc_id: '- (Required) Specifies the ID of the VPC (OpenStack router) where the VPC endpoint is to be created.' + importStatements: [] + opentelekomcloud_vpcep_service_v1: + subCategory: VPC Endpoint (VPCEP) + description: Manages a VPCEP Service resource within OpenTelekomCloud. + name: opentelekomcloud_vpcep_service_v1 + title: opentelekomcloud_vpcep_service_v1 + examples: + - name: service + manifest: |- + { + "name": "service_1", + "port": [ + { + "client_port": 80, + "server_port": 8080 + } + ], + "port_id": "${opentelekomcloud_lb_loadbalancer_v2.lb_1.vip_port_id}", + "server_type": "LB", + "tags": { + "key": "value" + }, + "vpc_id": "${var.vpc_id}", + "whitelist": [ + "${var.domain_id_1}", + "${var.domain_id_2}" + ] + } + references: + port_id: opentelekomcloud_lb_loadbalancer_v2.lb_1.vip_port_id + vpc_id: var.vpc_id + dependencies: + opentelekomcloud_lb_loadbalancer_v2.lb_1: |- + { + "vip_subnet_id": "${var.os_subnet_id}" + } + argumentDocs: + LB: ': The backend resource is an enhanced load balancer.' + VIP: ': The backend resource is a virtual IP address that functions as a physical server hosting virtual resources.' + VM: ': The backend resource is a server.' + approval_enabled: '- (Optional) Specifies whether connection approval is required.' + close: ': indicates that the TOA and Proxy Protocol methods are neither used.' + "false": |- + : indicates that connection approval is not required. + The created VPC endpoint is in the accepted state. + gateway: |- + : VPC endpoint services of this type are configured by operations people. + You can use them directly without the need to create one by yourselves. + id: '- ID of VPC endpoint service' + interface: and gateway. + name: |- + - (Optional) Specifies the name of the VPC endpoint service. + The value contains a maximum of 16 characters, including letters, digits, underscores (_), and hyphens (-). + open: ': indicates that the TOA and Proxy Protocol methods are both used.' + pool_id: '- (Optional) Specifies the ID of the cluster associated with the target VPCEP resource.' + port: '- (Required) Lists the port mappings opened to the VPC endpoint service. See below for the details.' + port.client_port: '- (Required) Specifies the port for accessing the VPC endpoint.' + port.protocol: |- + - (Required) Specifies the protocol used in port mappings. The value can be TCP or UDP. + The default value is TCP. + port.server_port: '- (Required) Specifies the port for accessing the VPC endpoint service.' + port_id: |- + - (Required) Specifies the ID for identifying the backend resource of the VPC endpoint service. + The value is as follows: + proxy_open: ': indicates that the Proxy Protocol method is used.' + regionName.serviceId: . + regionName.serviceName.serviceId: . + server_type: '- (Required) Specifies the resource type.' + service_type: |- + - (Optional) Specifies the type of the VPC endpoint service. + Only your private services can be configured into interface VPC endpoint services. + tags: '- (Optional) Map of the resource tags.' + tcp_proxy: |- + - (Optional) Specifies whether the client IP address and port number or marker_id information is + transmitted to the server. + This parameter is available only when the server can parse fields tcp option and tcp payload. + toa_open: ': indicates that the TOA method is used.' + "true": |- + : indicates that connection approval is required. + The created VPC endpoint is in the pendingAcceptance state until the owner of the associated VPC endpoint + service approves the connection. + vip_port_id: '- (Optional) Specifies the ID of the virtual NIC to which the virtual IP address is bound.' + vpc_id: '- (Optional) Specifies the ID of the VPC (router) to which the backend resource of the VPC endpoint service belongs.' + whitelist: '- (Optional) Lists of domain IDs of target users.' + importStatements: [] + opentelekomcloud_vpnaas_endpoint_group_v2: + subCategory: Virtual Private Network (VPN) + description: Manages a VPNAAS Endpoint Group resource within OpenTelekomCloud. + name: opentelekomcloud_vpnaas_endpoint_group_v2 + title: opentelekomcloud_vpnaas_endpoint_group_v2 + examples: + - name: group_1 + manifest: |- + { + "endpoints": [ + "10.2.0.0/24", + "10.3.0.0/24" + ], + "lifecycle": [ + { + "create_before_destroy": true + } + ], + "name": "Group 1", + "type": "cidr" + } + argumentDocs: + description: |- + - (Optional) The human-readable description for the group. + Changing this updates the description of the existing group. + endpoints: |- + - List of endpoints of the same type, for the endpoint group. The values will depend on the type. + Changing this creates a new group. + name: |- + - (Optional) The name of the group. Changing this updates the name of + the existing group. + region: |- + - (Optional) The region in which to obtain the V2 Networking client. + A Networking client is needed to create an endpoint group. If omitted, the + region argument of the provider is used. Changing this creates a new group. + tenant_id: |- + - (Optional) The owner of the group. Required if admin wants to + create an endpoint group for another project. Changing this creates a new group. + type: |- + - The type of the endpoints in the group. A valid value is subnet, cidr, network, router, or vlan. + Changing this creates a new group. + value_specs: '- (Optional) Map of additional options.' + importStatements: [] + opentelekomcloud_vpnaas_ike_policy_v2: + subCategory: Virtual Private Network (VPN) + description: Manages a VPNAAS IKE Policy resource within OpenTelekomCloud. + name: opentelekomcloud_vpnaas_ike_policy_v2 + title: opentelekomcloud_vpnaas_ike_policy_v2 + examples: + - name: policy_1 + manifest: |- + { + "name": "my_policy" + } + argumentDocs: + auth_algorithm: |- + - (Optional) The authentication hash algorithm. Valid values are md5, + sha1, sha2-256, sha2-384, sha2-512. Default is sha1. + description: '- (Optional) The human-readable description for the policy.' + encapsulation_mode: '- See Argument Reference above.' + encryption_algorithm: |- + - (Optional) The encryption algorithm. Valid values are 3des, aes-128, aes-192 and so on. + The default value is aes-128. + ike_version: '- (Optional) The IKE mode. Valid values are v1 and v2. Default is v1.' + lifetime: '- (Optional) The lifetime of the security association. Consists of Unit and Value.' + name: '- (Optional) The name of the policy.' + pfs: |- + - (Optional) The perfect forward secrecy mode. Valid values are group1, group2, group5 and so on. + Default is group5. + phase1_negotiation_mode: '- (Optional) The IKE mode. Valid values are main and aggressive. Default is main.' + region: |- + - (Optional) The region in which to obtain the V2 Networking client. + A Networking client is needed to create a VPN service. If omitted, the + region argument of the provider is used. Changing this creates a new service. + tenant_id: |- + - (Optional) The owner of the policy. Required if admin wants to + create a service for another policy. Changing this creates a new policy. + transform_protocol: '- See Argument Reference above.' + unit: '- (Optional) The units for the lifetime of the security association. A valid value is seconds. Default is seconds.' + value: '- (Optional) The value for the lifetime of the security association. Default is 3600.' + value_specs: '- (Optional) Map of additional options.' + importStatements: [] + opentelekomcloud_vpnaas_ipsec_policy_v2: + subCategory: Virtual Private Network (VPN) + description: Manages a VPNAAS IPSEC Policy resource within OpenTelekomCloud. + name: opentelekomcloud_vpnaas_ipsec_policy_v2 + title: opentelekomcloud_vpnaas_ipsec_policy_v2 + examples: + - name: policy_1 + manifest: |- + { + "name": "my_policy" + } + argumentDocs: + auth_algorithm: |- + - (Optional) The authentication hash algorithm. Valid values are md5, sha1, sha2-256, sha2-384, sha2-512. + Default is sha1. + description: '- (Optional) The human-readable description for the policy.' + encapsulation_mode: '- (Optional) The encapsulation mode. Default is tunnel.' + encryption_algorithm: |- + - (Optional) The encryption algorithm. Valid values are 3des, aes-128, aes-192 and so on. + The default value is aes-128. + lifetime: '- (Optional) The lifetime of the security association. Consists of Unit and Value.' + name: '- (Optional) The name of the policy.' + pfs: |- + - (Optional) The perfect forward secrecy mode. Valid values are group1, group2, group5, group14, + group15, group16, group19, group20, group21 or disable Default is group5. + region: |- + - (Optional) The region in which to obtain the V2 Networking client. + A Networking client is needed to create an IPSec policy. If omitted, the + region argument of the provider is used. Changing this creates a new policy. + tenant_id: |- + - (Optional) The owner of the policy. Required if admin wants to + create a policy for another project. Changing this creates a new policy. + transform_protocol: '- (Optional) The transform protocol. Valid values are esp, ah and ah-esp. Default is esp.' + unit: '- (Optional) The units for the lifetime of the security association. Default is seconds.' + value: '- (Optional) The value for the lifetime of the security association. Must be a positive integer. Default is 3600.' + value_specs: '- (Optional) Map of additional options.' + importStatements: [] + opentelekomcloud_vpnaas_service_v2: + subCategory: Virtual Private Network (VPN) + description: Manages a VPNAAS Service resource within OpenTelekomCloud. + name: opentelekomcloud_vpnaas_service_v2 + title: opentelekomcloud_vpnaas_service_v2 + examples: + - name: service_1 + manifest: |- + { + "admin_state_up": "true", + "name": "my_service", + "router_id": "14a75700-fc03-4602-9294-26ee44f366b3" + } + argumentDocs: + admin_state_up: |- + - (Optional) The administrative state of the resource. Can either be true (Up) or false (Down). + Changing this updates the administrative state of the existing service. + description: |- + - (Optional) The human-readable description for the service. + Changing this updates the description of the existing service. + external_v4_ip: '- The read-only external (public) IPv4 address that is used for the VPN service.' + external_v6_ip: '- The read-only external (public) IPv6 address that is used for the VPN service.' + name: |- + - (Optional) The name of the service. Changing this updates the name of + the existing service. + region: |- + - (Optional) The region in which to obtain the V2 Networking client. + A Networking client is needed to create a VPN service. If omitted, the + region argument of the provider is used. Changing this creates a new service. + router_id: '- (Required) The ID of the router. Changing this creates a new service.' + status: |- + - Indicates whether IPsec VPN service is currently operational. Values are ACTIVE, + DOWN, BUILD, ERROR, PENDING_CREATE, PENDING_UPDATE or PENDING_DELETE. + subnet_id: '- (Optional) SubnetID is the ID of the subnet. Default is null.' + tenant_id: |- + - (Optional) The owner of the service. Required if admin wants to + create a service for another project. Changing this creates a new service. + value_specs: '- (Optional) Map of additional options.' + importStatements: [] + opentelekomcloud_vpnaas_site_connection_v2: + subCategory: Virtual Private Network (VPN) + description: Manages a VPNAAS Site Connection resource within OpenTelekomCloud. + name: opentelekomcloud_vpnaas_site_connection_v2 + title: opentelekomcloud_vpnaas_site_connection_v2 + examples: + - name: conn_1 + manifest: |- + { + "ikepolicy_id": "${opentelekomcloud_vpnaas_ike_policy_v2.policy_2.id}", + "ipsecpolicy_id": "${opentelekomcloud_vpnaas_ipsec_policy_v2.policy_1.id}", + "local_ep_group_id": "${opentelekomcloud_vpnaas_endpoint_group_v2.group_2.id}", + "name": "connection_1", + "peer_address": "192.168.10.1", + "peer_ep_group_id": "${opentelekomcloud_vpnaas_endpoint_group_v2.group_1.id}", + "peer_id": "192.168.10.1", + "psk": "secret", + "tags": { + "foo": "bar", + "key": "value" + }, + "vpnservice_id": "${opentelekomcloud_vpnaas_service_v2.service_1.id}" + } + references: + ikepolicy_id: opentelekomcloud_vpnaas_ike_policy_v2.policy_2.id + ipsecpolicy_id: opentelekomcloud_vpnaas_ipsec_policy_v2.policy_1.id + local_ep_group_id: opentelekomcloud_vpnaas_endpoint_group_v2.group_2.id + peer_ep_group_id: opentelekomcloud_vpnaas_endpoint_group_v2.group_1.id + vpnservice_id: opentelekomcloud_vpnaas_service_v2.service_1.id + argumentDocs: + action: |- + - (Optional) The dead peer detection (DPD) action. + A valid value is clear, hold, restart, disabled or restart-by-peer. Default value is hold. + admin_state_up: |- + - (Optional) The administrative state of the resource. Can either be up(true) or + down(false). Changing this updates the administrative state of the existing connection. + description: |- + - (Optional) The human-readable description for the connection. + Changing this updates the description of the existing connection. + dpd: '- (Optional) A dictionary with dead peer detection (DPD) protocol controls.' + ikepolicy_id: '- (Required) The ID of the IKE policy. Changing this creates a new connection.' + initiator: '- (Optional) A valid value is response-only or bi-directional.' + interval: |- + - (Optional) The dead peer detection (DPD) interval, in seconds. + A valid value is a positive integer. Default is 30. + ipsecpolicy_id: '- (Required) The ID of the IPsec policy. Changing this creates a new connection.' + local_ep_group_id: |- + - (Optional) The ID for the endpoint group that contains private subnets for the + local side of the connection. You must specify this parameter with the peer_ep_group_id parameter unless + in backward-compatible mode where peer_cidrs is provided with a subnet_id for the VPN service. + Changing this updates the existing connection. + local_id: |- + - (Optional) An ID to be used instead of the external IP address for a virtual router used in + traffic between instances on different networks in east-west traffic. Most often, local ID would be domain name, + email address, etc. If this is not configured then the external IP address will be used as the ID. + mtu: |- + - (Optional) The maximum transmission unit (MTU) value to address fragmentation. + Minimum value is 68 for IPv4, and 1280 for IPv6. + name: |- + - (Optional) The name of the connection. Changing this updates the name of + the existing connection. + peer_address: '- (Required) The peer gateway public IPv4 or IPv6 address or FQDN.' + peer_cidrs: '- (Optional) Unique list of valid peer private CIDRs in the form /.' + peer_ep_group_id: |- + - (Optional) The ID for the endpoint group that contains private CIDRs in the form + / for the peer side of the connection. You must specify this parameter with the + local_ep_group_id parameter unless in backward-compatible mode where peer_cidrs is provided + with a subnet_id for the VPN service. + peer_id: |- + - (Required) The peer router identity for authentication. A valid value is an IPv4 address, + IPv6 address, e-mail address, key ID, or FQDN. Typically, this value matches the peer_address value. + Changing this updates the existing policy. + psk: '- (Required) The pre-shared key. A PSK can contain 6 to 128 characters. Spaces and the following special characters are not allowed: <>&?*''".' + region: |- + - (Optional) The region in which to obtain the V2 Networking client. + A Networking client is needed to create an IPSec site connection. If omitted, the + region argument of the provider is used. Changing this creates a new site connection. + tags: '- (Optional) The key/value pairs to associate with the connection.' + tenant_id: |- + - (Optional) The owner of the connection. Required if admin wants to + create a connection for another project. Changing this creates a new connection. + timeout: |- + - (Optional) The dead peer detection (DPD) timeout in seconds. + A valid value is a positive integer that is greater than the DPD interval value. Default is 120. + value_specs: '- (Optional) Map of additional options.' + vpnservice_id: '- (Required) The ID of the VPN service. Changing this creates a new connection.' + importStatements: [] + opentelekomcloud_waf_alarm_notification_v1: + subCategory: Web Application Firewall (WAF) + description: Manages a WAF Alarm Notification resource within OpenTelekomCloud. + name: opentelekomcloud_waf_alarm_notification_v1 + title: opentelekomcloud_waf_alarm_notification_v1 + examples: + - name: notification_1 + manifest: |- + { + "enabled": true, + "send_frequency": 30, + "threats": [ + "cc", + "cmdi" + ], + "times": 200, + "topic_urn": "${opentelekomcloud_smn_topic_v2.topic_1.id}" + } + references: + topic_urn: opentelekomcloud_smn_topic_v2.topic_1.id + dependencies: + opentelekomcloud_smn_topic_v2.topic_1: |- + { + "name": "topic_alarm" + } + argumentDocs: + all: refers to all types of events. + antitamper: refers to Web Tamper Protection events. + cc: refers to CC attack. + cmdi: refers to command injection. + custom: refers to Precise Protection events. + enabled: '- (Required) Specifies whether to send an alarm notification. The options are true and false.' + illegal: refers to invalid requests. + lfi: refers to local file inclusion. + rfi: refers to remote file inclusion. + robot: refers to malicious crawlers. + send_frequency: |- + - (Required) Specifies the minimum interval between two alarms in minutes. + The options are 5, 15, 30, and 60. + sqli: refers to SQL injection. + threat: '- (Required) Specifies the list of event types. Possible values are:' + times: |- + - (Required) Specifies the alarm threshold. Alarm notifications are sent when the + number of attacks is greater than or equal to the threshold within the configured period. + This value is greater than or equal to 1. + topic_urn: '- (Required) Specifies the SMN topic to which an alarm is sent.' + vuln: refers to other types of attacks. + webshell: refers to webshells. + whiteblackip: refers to Blacklist and Whitelist events. + xss: refers to XSS attack. + importStatements: [] + opentelekomcloud_waf_ccattackprotection_rule_v1: + subCategory: Web Application Firewall (WAF) + description: Manages a WAF CC Attack Protection Rule resource within OpenTelekomCloud. + name: opentelekomcloud_waf_ccattackprotection_rule_v1 + title: opentelekomcloud_waf_ccattackprotection_rule_v1 + examples: + - name: rule_1 + manifest: |- + { + "action_category": "block", + "block_content": "{\"error\":\"forbidden\"}", + "block_content_type": "application/json", + "limit_num": 10, + "limit_period": 60, + "lock_time": 10, + "policy_id": "${opentelekomcloud_waf_policy_v1.policy_1.id}", + "tag_index": "sessionid", + "tag_type": "cookie", + "url": "/abc1" + } + references: + policy_id: opentelekomcloud_waf_policy_v1.policy_1.id + dependencies: + opentelekomcloud_waf_policy_v1.policy_1: |- + { + "name": "policy_1" + } + argumentDocs: + action_category: '- (Required) Specifies the action. Changing this creates a new rule. Valid Options are:' + block: '- block the requests.' + block_content: '- (Optional) Specifies the content of the returned page. Changing this creates a new rule.' + block_content_type: '- (Optional) Specifies the type of the returned page. The options are application/json, text/html, and text/xml. Changing this creates a new rule.' + captcha: '- Verification code. The user needs to enter the correct verification code after blocking to restore the correct access page.' + cookie: '- A web visitor is identified by the cookie key value.' + default: '- Specifies whether the rule is the default CC attack protection rule.' + id: '- ID of the rule.' + ip: '- A web visitor is identified by the IP address.' + limit_num: '- (Required) Specifies the number of requests allowed from a web visitor in a rate limiting period. Changing this creates a new rule.' + limit_period: '- (Required) Specifies the rate limiting period. Changing this creates a new rule.' + lock_time: '- (Optional) Specifies the lock duration. The value ranges from 0 seconds to 2^32 seconds. Changing this creates a new rule.' + other: '- A web visitor is identified by the Referer field(user-defined request source).' + policy_id: '- (Required) The WAF policy ID. Changing this creates a new rule.' + tag_category: '- (Optional) Specifies the category. The value is referer. Changing this creates a new rule.' + tag_contents: '- (Optional) Specifies the category content. Changing this creates a new rule.' + tag_index: '- (Optional) If tag_type is set to cookie, this parameter indicates cookie name. Changing this creates a new rule.' + tag_type: '- (Required) Specifies the rate limit mode. Changing this creates a new rule. Valid Options are:' + url: '- (Required) Specifies a misreported URL excluding a domain name. Changing this creates a new rule.' + importStatements: [] + opentelekomcloud_waf_certificate_v1: + subCategory: Web Application Firewall (WAF) + description: Manages a WAF Certificate resource within OpenTelekomCloud. + name: opentelekomcloud_waf_certificate_v1 + title: opentelekomcloud_waf_certificate_v1 + examples: + - name: certificate_1 + manifest: |- + { + "content": "-----BEGIN CERTIFICATE-----\nMIIFazCCA1OgAwIBAgIUN3w1KX8/T/HWVxZIOdHXPhUOnsAwDQYJKoZIhvcNAQEL\nBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\n...\ndKvZbPEsygYRIjwyhHHUh/YXH8KDI/uu6u6AxDckQ3rP1BkkKXr5NPBGjVgM3ZI=\n-----END CERTIFICATE-----\n", + "key": "-----BEGIN PRIVATE KEY-----\nMIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQC+9uwFVenCdPD9\n5LWSWMuy4riZW718wxBpYV5Y9N8nM7N0qZLLdpImZrzBbaBldTI+AZGI3Nupuurw\n...\ns9urs/Kk/tbQhsEvu0X8FyGwo0zH6rG8apTFTlac+v4mJ4vlpxSvT5+FW2lgLISE\n+4sM7kp0qO3/p+45HykwBY5iHq3H\n-----END PRIVATE KEY-----\n", + "name": "cert_1" + } + argumentDocs: + content: '- (Optional) The certificate content. Changing this creates a new certificate.' + id: '- ID of the certificate.' + key: '- (Optional) The private key. Changing this creates a new certificate.' + name: |- + - (Required) The certificate name. The maximum length is 256 characters. + Only digits, letters, underscores(_), and hyphens(-) are allowed. + importStatements: + - terraform import opentelekomcloud_waf_certificate_v1.cert_1 7117d38e-4c8f-4624-a505-bd96b97d024c + - terraform import opentelekomcloud_waf_certificate_v1.cert_1 cert_1 + opentelekomcloud_waf_datamasking_rule_v1: + subCategory: Web Application Firewall (WAF) + description: Manages a WAF Datamasking rule resource within OpenTelekomCloud. + name: opentelekomcloud_waf_datamasking_rule_v1 + title: opentelekomcloud_waf_datamasking_rule_v1 + examples: + - name: rule_1 + manifest: |- + { + "category": "params", + "index": "password", + "policy_id": "${opentelekomcloud_waf_policy_v1.policy_1.id}", + "url": "/login" + } + references: + policy_id: opentelekomcloud_waf_policy_v1.policy_1.id + dependencies: + opentelekomcloud_waf_policy_v1.policy_1: |- + { + "name": "policy_1" + } + argumentDocs: + category: '- (Required) Specifies the masked field. The options are params and header.' + id: '- ID of the rule.' + index: '- (Required) Specifies the masked subfield.' + policy_id: '- (Required) The WAF policy ID. Changing this creates a new rule.' + url: '- (Required) Specifies the URL to which the data masking rule applies.' + importStatements: [] + opentelekomcloud_waf_dedicated_alarm_masking_rule_v1: + subCategory: Dedicated Web Application Firewall (WAFD) + description: Manages a WAF Dedicated False Alarm Masking Rule resource within OpenTelekomCloud. + name: opentelekomcloud_waf_dedicated_alarm_masking_rule_v1 + title: opentelekomcloud_waf_dedicated_alarm_masking_rule_v1 + examples: + - name: rule_1 + manifest: |- + { + "conditions": [ + { + "category": "url", + "contents": [ + "/login" + ], + "logic_operation": "equal" + } + ], + "description": "description", + "domains": [ + "www.example.com" + ], + "policy_id": "${opentelekomcloud_waf_dedicated_policy_v1.policy_1.id}", + "rule": "xss" + } + references: + policy_id: opentelekomcloud_waf_dedicated_policy_v1.policy_1.id + dependencies: + opentelekomcloud_waf_dedicated_policy_v1.policy_1: |- + { + "name": "policy_am" + } + argumentDocs: + "0": ': The rule is disabled.' + "1": ': The rule is enabled.' + advanced_settings: |- + - (Optional, ForceNew, List) To ignore attacks of a specific field, specify the field in the Advanced settings area. + After you add the rule, WAF will stop blocking attacks of the specified field. + This parameter is not included if all modules are bypassed. Changing this creates a new rule. + The advanced_settings block supports: + advanced_settings.contents: '- (Optional, ForceNew, List) Subfield of the specified field type. The default value is all.' + advanced_settings.index: |- + - (Optional, ForceNew, String) Field type. + The following field types are supported: Params, Cookie, Header, Body, and Multipart. + When you select Params, Cookie, or Header, you can set this parameter to all or configure subfields as required. + all: . + bypass: . + cmdi: ': Command injection attack' + conditions: |- + - (Optional, ForceNew, List) Condition list. Changing this creates a new rule. + The conditions block supports: + conditions.category: '- (Required, ForceNew, String) Field type. The value can be url, ip, params, cookie, or header.' + conditions.contents: |- + - (Optional, ForceNew, List) Content. The array length is limited to 1. + The content format varies depending on the field type. + conditions.index: '- (Optional, ForceNew, String) Subfield. When category is set to params, cookie, or header, set this parameter based on site requirements. This parameter is mandatory.' + conditions.logic_operation: '- (Required, ForceNew, String) The matching logic varies depending on the field type.' + created_at: '- Timestamp the rule is created.' + description: '- (Optional, ForceNew, String) Rule description. Changing this creates a new rule.' + domains: '- (Required, ForceNew, List) Domain names to be protected. Changing this creates a new rule.' + id: '- ID of the rule.' + ip: ', the logic can be equal or not_equal.' + lfi: ': Local file inclusion' + params: ', cookie, or header, the content format is not limited.' + policy_id: '- (Required, ForceNew, String) The WAF policy ID. Changing this creates a new rule.' + rfi: ': Remote file inclusion' + robot: ': Malicious crawlers' + rule: |- + - (Required, ForceNew, String) Items to be masked. Changing this creates a new rule. + You can provide multiple items and separate them with semicolons (;). + sqli: ': SQL injection attack' + status: '- Rule status. The value can be:' + url: ', params, cookie, or header, the logic can be equal, not_equal, contain, not_contain, prefix, not_prefix, suffix, not_suffix.' + vuln: ': Other types of attacks' + webshell: ': Web shells' + xss: ': XSS attacks' + importStatements: [] + opentelekomcloud_waf_dedicated_anti_crawler_rule_v1: + subCategory: Dedicated Web Application Firewall (WAFD) + description: Manages a WAF Dedicated Anti Crawler Rule resource within OpenTelekomCloud. + name: opentelekomcloud_waf_dedicated_anti_crawler_rule_v1 + title: opentelekomcloud_waf_dedicated_anti_crawler_rule_v1 + examples: + - name: rule_1 + manifest: |- + { + "logic": 3, + "name": "anticrawler_1", + "policy_id": "${opentelekomcloud_waf_dedicated_policy_v1.policy_1.id}", + "protection_mode": "anticrawler_except_url", + "url": "/patent/id" + } + references: + policy_id: opentelekomcloud_waf_dedicated_policy_v1.policy_1.id + dependencies: + opentelekomcloud_waf_dedicated_policy_v1.policy_1: |- + { + "name": "policy_cc" + } + argumentDocs: + "0": ': The rule is disabled.' + "1": ': The rule is enabled.' + anticrawler_except_url: |- + : used to protect all paths except the one specified by the rule + Changing this creates a new rule. + anticrawler_specific_url: ': used to protect a specific path specified by the rule.' + created_at: '- Timestamp the rule is created.' + id: '- ID of the rule.' + logic: |- + - (Required, Int) Rule matching logic. + Values are: + name: '- (Required, String) Rule name.' + policy_id: '- (Required, ForceNew, String) The WAF policy ID. Changing this creates a new rule.' + protection_mode: |- + - (Required, ForceNew, String) JavaScript anti-crawler rule type. + Values are: + status: '- Rule status. The value can be 0 or 1.' + url: '- (Required, String) URL to which the rule applies.' + importStatements: [] + opentelekomcloud_waf_dedicated_anti_leakage_rule_v1: + subCategory: Dedicated Web Application Firewall (WAFD) + description: Manages a WAF Dedicated Anti Leakage Rule resource within OpenTelekomCloud. + name: opentelekomcloud_waf_dedicated_anti_leakage_rule_v1 + title: opentelekomcloud_waf_dedicated_anti_leakage_rule_v1 + examples: + - name: rule_1 + manifest: |- + { + "category": "sensitive", + "contents": [ + "id_card" + ], + "description": "test description", + "policy_id": "${opentelekomcloud_waf_dedicated_policy_v1.policy_1.id}", + "url": "/attack" + } + references: + policy_id: opentelekomcloud_waf_dedicated_policy_v1.policy_1.id + dependencies: + opentelekomcloud_waf_dedicated_policy_v1.policy_1: |- + { + "name": "policy_al" + } + argumentDocs: + "0": ': The rule is disabled.' + "1": ': The rule is enabled.' + category: |- + - (Required, String) Sensitive information type in the information leakage prevention rule. + Values: + code: ': The rule blocks response pages of specified HTTP response code.' + contents: |- + - (Optional, List) Content corresponding to the sensitive information type. + Multiple options can be set. + created_at: '- Timestamp the rule is created.' + description: '- (Optional, String) Rule description.' + id: '- ID of the rule.' + policy_id: '- (Required, ForceNew, String) The WAF policy ID. Changing this creates a new rule.' + sensitive: ': The rule masks sensitive user information, such as ID code, phone numbers, and email addresses.' + status: '- Rule status. The value can be:' + url: '- (Required, String) URL to which the rule applies, for example, /admin' + importStatements: [] + opentelekomcloud_waf_dedicated_blacklist_rule_v1: + subCategory: Dedicated Web Application Firewall (WAFD) + description: Manages a WAF Dedicated Blacklist Rule resource within OpenTelekomCloud. + name: opentelekomcloud_waf_dedicated_blacklist_rule_v1 + title: opentelekomcloud_waf_dedicated_blacklist_rule_v1 + examples: + - name: rule_1 + manifest: |- + { + "action": 0, + "description": "test description", + "ip_address": "192.168.1.0/24", + "name": "my_blacklist", + "policy_id": "${opentelekomcloud_waf_dedicated_policy_v1.policy_1.id}" + } + references: + policy_id: opentelekomcloud_waf_dedicated_policy_v1.policy_1.id + dependencies: + opentelekomcloud_waf_dedicated_policy_v1.policy_1: |- + { + "name": "policy_black" + } + argumentDocs: + "0": ': WAF blocks the requests that hit the rule.' + "1": ': WAF allows the requests that hit the rule.' + "2": ': WAF only logs the requests that hit the rule.' + action: |- + - (Required, ForceNew, Int) Protective action. Changing this creates a new rule. + The value can be: + created_at: '- Timestamp the rule is created.' + description: '- (Optional, ForceNew, String) Rule description. Changing this creates a new rule.' + followed_action_id: |- + - (Optional, ForceNew, String) ID of a known attack source rule. Changing this creates a new rule. + This parameter can be configured only when action is set to 0. + id: '- ID of the rule.' + ip_address: |- + - (Required, ForceNew, String) IP addresses or an IP address range to be added to the blacklist or whitelist. Changing this creates a new rule. + For example, 192.x.x.3 or 10.x.x.0/24 + name: '- (Required, ForceNew, String) Rule name. Changing this creates a new rule.' + policy_id: '- (Required, ForceNew, String) The WAF policy ID. Changing this creates a new rule. Changing this creates a new rule.' + status: '- Rule status. The value can be:' + importStatements: [] + opentelekomcloud_waf_dedicated_cc_rule_v1: + subCategory: Dedicated Web Application Firewall (WAFD) + description: Manages a WAF Dedicated CC Rule resource within OpenTelekomCloud. + name: opentelekomcloud_waf_dedicated_cc_rule_v1 + title: opentelekomcloud_waf_dedicated_cc_rule_v1 + examples: + - name: rule_1 + manifest: |- + { + "action": [ + { + "category": "block", + "content": "{\"error\":\"forbidden\"}", + "content_type": "application/json" + } + ], + "limit_num": 10, + "limit_period": 60, + "lock_time": 10, + "mode": 0, + "policy_id": "${opentelekomcloud_waf_dedicated_policy_v1.policy_1.id}", + "tag_index": "sessionid", + "tag_type": "cookie", + "url": "/abc1" + } + references: + policy_id: opentelekomcloud_waf_dedicated_policy_v1.policy_1.id + dependencies: + opentelekomcloud_waf_dedicated_policy_v1.policy_1: |- + { + "name": "policy_cc" + } + argumentDocs: + "0": '- Standard. Only the protected paths of domain names can be specified.' + "1": '- The path, IP address, cookie, header, and params fields can all be set.' + action: |- + - (Required, ForceNew, Set) Protection action to take if the number of requests reaches the upper limit. Changing this creates a new rule. + The conditions block supports: + action.category: '- (Required, ForceNew, String) Action type. Changing this creates a new rule.' + action.content: '- (Optional, ForceNew, String) Protection page content. Changing this creates a new rule.' + action.content_type: '- (Optional, ForceNew, String) User identifier. The value is fixed at referer. Changing this creates a new rule.' + block: ': WAF blocks the requests. When tag_type is set to other, the value can only be blocked.' + captcha: ': Verification code. WAF requires visitors to enter a correct verification code to continue their access to requested page on your website.' + conditions: |- + - (Optional, ForceNew, List) Rate limit conditions of the CC protection rule. Changing this creates a new rule. + The conditions block supports: + conditions.category: '- (Required, ForceNew, String) Field type. The value can be url, ip, params, cookie, or header.' + conditions.contents: '- (Optional, ForceNew, List) Content of the conditions. This parameter is mandatory when the suffix of logic_operation is not any or all. Changing this creates a new rule.' + conditions.index: '- (Optional, ForceNew, String) Subfield. When category is set to params, cookie, or header, set this parameter based on site requirements. This parameter is mandatory. Changing this creates a new rule.' + conditions.logic_operation: '- (Required, ForceNew, String) Logic for matching the condition.' + conditions.value_list_id: '- (Optional, ForceNew, String) Reference table ID. This parameter is mandatory when the suffix of logic_operation is any or all. The reference table type must be the same as the category type. Changing this creates a new rule.' + cookie: '- User-based rate limiting. Website visitors are identified by the cookie key value.' + created_at: '- Timestamp the rule is created.' + description: '- (Optional, ForceNew, String) Rule description. Changing this creates a new rule.' + dynamic_block: ': In the previous rate limit period, if the request frequency exceeds the value of Rate Limit Frequency, the request is blocked. In the next rate limit period, if the request frequency exceeds the value of Permit Frequency, the request is still blocked.' + header: '- User-based rate limiting. Website visitors are identified by the header field.' + id: '- ID of the rule.' + ip: ', the optional operations are: equal, not_equal, equal_any and not_equal_all' + limit_num: '- (Required, ForceNew, Int) Rate limit frequency based on the number of requests. The value ranges from 1 to 2,147,483,647. Changing this creates a new rule.' + limit_period: '- (Required, ForceNew, Int) Rate limit period, in seconds. The value ranges from 1 to 3,600. Changing this creates a new rule.' + lock_time: '- (Optional, ForceNew, String) Block duration, in seconds. The value ranges from 0 to 65,535. Specifies the period within which access is blocked. An error page is displayed in this period. Changing this creates a new rule.' + log: ': WAF logs the event only.' + mode: '- (Required, ForceNew, Int) Protection mode of the CC attack protection rule. Changing this creates a new rule. Valid Options are:' + other: '- Website visitors are identified by the Referer field (user-defined request source).' + params: |- + , cookie and header, the optional operations are: contain, not_contain, equal, not_equal, prefix, not_prefix, suffix, not_suffix, contain_any, not_contain_all, equal_any, not_equal_all, equal_any, not_equal_all, prefix_any, not_prefix_all, suffix_any, not_suffix_all, len_greater, len_less, len_equal, len_not_equal, num_greater, num_less, num_equal, num_not_equal, exist and not_exist + Changing this creates a new rule. + policy_id: '- (Required, ForceNew, String) The WAF policy ID. Changing this creates a new rule.' + status: '- Rule status.' + tag_category: '- (Optional, ForceNew, String) Specifies the category. The value is referer. Changing this creates a new rule.' + tag_contents: '- (Optional, ForceNew, String) Specifies the category content. Changing this creates a new rule.' + tag_index: |- + - (Optional, ForceNew, String) User identifier. Changing this creates a new rule. + If tag_type is set to cookie, this parameter indicates cookie name. + If tag_type is set to header, this parameter indicates header name. + tag_type: '- (Required, ForceNew, String) Rate limit mode. Changing this creates a new rule. Valid Options are:' + unlock_num: '- (Optional, ForceNew, Int) Allowable frequency based on the number of requests. The value ranges from 0 to 2,147,483,647. This parameter is required only when the protection action type is dynamic_block. Changing this creates a new rule.' + url: '- (Required, ForceNew, String) Path to be protected in the CC attack protection rule. Changing this creates a new rule.' + importStatements: [] + opentelekomcloud_waf_dedicated_certificate_v1: + subCategory: Dedicated Web Application Firewall (WAFD) + description: Manages a WAF Dedicated Certificate resource within OpenTelekomCloud. + name: opentelekomcloud_waf_dedicated_certificate_v1 + title: opentelekomcloud_waf_dedicated_certificate_v1 + examples: + - name: certificate_1 + manifest: |- + { + "content": "-----BEGIN CERTIFICATE-----\nMIIFazCCA1OgAwIBAgIUN3w1KX8/T/HWVxZIOdHXPhUOnsAwDQYJKoZIhvcNAQEL\nBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\n...\ndKvZbPEsygYRIjwyhHHUh/YXH8KDI/uu6u6AxDckQ3rP1BkkKXr5NPBGjVgM3ZI=\n-----END CERTIFICATE-----\n", + "key": "-----BEGIN PRIVATE KEY-----\nMIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQC+9uwFVenCdPD9\n5LWSWMuy4riZW718wxBpYV5Y9N8nM7N0qZLLdpImZrzBbaBldTI+AZGI3Nupuurw\n...\ns9urs/Kk/tbQhsEvu0X8FyGwo0zH6rG8apTFTlac+v4mJ4vlpxSvT5+FW2lgLISE\n+4sM7kp0qO3/p+45HykwBY5iHq3H\n-----END PRIVATE KEY-----\n", + "name": "certificate_1" + } + argumentDocs: + content: '- (Optional) The certificate content. Changing this creates a new certificate.' + created_at: '- Date when the certificate is uploaded.' + expires: '- Date when the certificate expires.' + id: '- ID of the certificate.' + key: '- (Optional) The private key. Changing this creates a new certificate.' + name: |- + - (Required) The certificate name. The value can contain a maximum of 64 characters. + Only digits, letters, underscores(_), and hyphens(-) are allowed. Changing this creates a new certificate. + importStatements: + - terraform import opentelekomcloud_waf_certificate_v1.cert_1 7117d38e-4c8f-4624-a505-bd96b97d024c + opentelekomcloud_waf_dedicated_data_masking_rule_v1: + subCategory: Dedicated Web Application Firewall (WAFD) + description: Manages a WAF Dedicated Data Masking Rule resource within OpenTelekomCloud. + name: opentelekomcloud_waf_dedicated_data_masking_rule_v1 + title: opentelekomcloud_waf_dedicated_data_masking_rule_v1 + examples: + - name: rule_1 + manifest: |- + { + "category": "params", + "description": "description", + "name": "data_masking", + "policy_id": "${opentelekomcloud_waf_dedicated_policy_v1.policy_1.id}", + "url": "/login" + } + references: + policy_id: opentelekomcloud_waf_dedicated_policy_v1.policy_1.id + dependencies: + opentelekomcloud_waf_dedicated_policy_v1.policy_1: |- + { + "name": "policy_dm" + } + argumentDocs: + "0": ': The rule is disabled.' + "1": ': The rule is enabled.' + category: |- + - (Required, String) Masked field. + Values: + created_at: '- Timestamp the rule is created.' + description: '- (Optional, String) Rule description.' + id: '- ID of the rule.' + name: '- (Required, String) Name of the masked field.' + policy_id: '- (Required, ForceNew, String) The WAF policy ID. Changing this creates a new rule.' + status: '- Rule status. The value can be 0 or 1.' + url: '- (Required, String) URL protected by the data masking rule. The value must be in the standard URL format, for example, /admin.' + importStatements: [] + opentelekomcloud_waf_dedicated_domain_v1: + subCategory: Dedicated Web Application Firewall (WAFD) + description: Manages a WAF Dedicated Domain resource within OpenTelekomCloud. + name: opentelekomcloud_waf_dedicated_domain_v1 + title: opentelekomcloud_waf_dedicated_domain_v1 + examples: + - name: domain_1 + manifest: |- + { + "domain": "www.mydom.com", + "keep_policy": false, + "proxy": true, + "server": [ + { + "address": "192.168.0.10", + "client_protocol": "HTTP", + "port": 8080, + "server_protocol": "HTTP", + "type": "ipv4", + "vpc_id": "${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.vpc_id}" + } + ], + "timeout_config": [ + { + "connect_timeout": 150, + "read_timeout": 200, + "send_timeout": 100 + } + ] + } + references: + server.vpc_id: data.opentelekomcloud_vpc_subnet_v1.shared_subnet.vpc_id + - name: domain_1 + manifest: |- + { + "certificate_id": "${opentelekomcloud_waf_dedicated_certificate_v1.certificate_1.id}", + "cipher": "cipher_1", + "depends_on": [ + "${opentelekomcloud_waf_dedicated_certificate_v1.certificate_1}" + ], + "domain": "www.mydom.com", + "keep_policy": false, + "proxy": false, + "server": [ + { + "address": "192.168.0.20", + "client_protocol": "HTTPS", + "port": 8443, + "server_protocol": "HTTP", + "type": "ipv4", + "vpc_id": "${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.vpc_id}" + } + ], + "tls": "TLS v1.1" + } + references: + certificate_id: opentelekomcloud_waf_dedicated_certificate_v1.certificate_1.id + server.vpc_id: data.opentelekomcloud_vpc_subnet_v1.shared_subnet.vpc_id + dependencies: + opentelekomcloud_waf_dedicated_certificate_v1.certificate_1: |- + { + "content": "-----BEGIN CERTIFICATE-----\nMIIFazCCA1OgAwIBAgIUN3w1KX8/T/HWVxZIOdHXPhUOnsAwDQYJKoZIhvcNAQEL\nBQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM\n...\ndKvZbPEsygYRIjwyhHHUh/YXH8KDI/uu6u6AxDckQ3rP1BkkKXr5NPBGjVgM3ZI=\n-----END CERTIFICATE-----\n", + "key": "-----BEGIN PRIVATE KEY-----\nMIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQC+9uwFVenCdPD9\n5LWSWMuy4riZW718wxBpYV5Y9N8nM7N0qZLLdpImZrzBbaBldTI+AZGI3Nupuurw\n...\ns9urs/Kk/tbQhsEvu0X8FyGwo0zH6rG8apTFTlac+v4mJ4vlpxSvT5+FW2lgLISE\n+4sM7kp0qO3/p+45HykwBY5iHq3H\n-----END PRIVATE KEY-----\n", + "name": "certificate_1" + } + argumentDocs: + "0": '- The domain name is not connected to WAF,' + "1": '- The domain name is connected to WAF.' + TLS v1.2: |- + , and cipher must be set to cipher_2. The PCI 3DS compliance certification + check cannot be disabled after being enabled. + access_status: '- Whether a domain name is connected to WAF. Valid values are:' + alarm_page: '- The alarm page of domain. Valid values are:' + certificate_id: |- + - (Optional) Specifies the certificate ID. This parameter is mandatory when client_protocol + is set to HTTPS. + certificate_name: '- The name of the certificate used by the domain name.' + cipher: |- + - (Optional) Specifies the cipher suite of domain. + Values are: + cipher_1: '- ECDHE-ECDSA-AES256-GCM-SHA384:HIGH:!MEDIUM:!LOW:!aNULL:!eNULL:!DES:!MD5:!PSK:!RC4:!kRSA:!SRP:!3DES:!DSS:!EXP:!CAMELLIA:@STRENGTH' + cipher_2: '- EECDH+AESGCM:EDH+AESGCM' + cipher_3: '- ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:RC4:HIGH:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH' + cipher_4: '- ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4:HIGH:!MD5:!aNULL:!eNULL:!NULL:!EDH' + cipher_default: '- ECDHE-RSA-AES256-SHA384:AES256-SHA256:RC4:HIGH:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!AESGCM' + compliance_certification: '- The compliance certifications of the domain, values are:' + created_at: '- Timestamp when the dedicated WAF domain was created.' + domain: |- + - (Required, ForceNew) Specifies the protected domain name or IP address (port allowed). For example, + www.example.com or *.example.com or www.example.com:89. Changing this creates a new domain. + id: '- ID of the domain.' + ip_tag: '- The IP tag of traffic identifier.' + keep_policy: |- + - (Optional) Specifies whether to retain the policy when deleting a domain name. + Defaults to true. + pci_3ds: |- + - (Optional) Specifies the status of the PCI 3DS compliance certification check. + Values are: true and false. This parameter must be used together with tls and cipher. + pci_dss: |- + - (Optional) Specifies the status of the PCI DSS compliance certification check. + Values are: true and false. This parameter must be used together with tls and cipher. + policy_id: |- + - (Optional) Specifies the policy ID associated with the domain. If not specified, a new policy + will be created automatically. + protect_status: |- + - (Optional) The protection status of domain, 0: suspended, 1: enabled. + Default value is 1. + protocol: '- The protocol type of the client. The options are HTTP and HTTPS.' + proxy: '- (Optional) Specifies whether a proxy is configured. Default value is false.' + redirect_url: '- The redirection URL when template_name is set to redirection.' + region: |- + - (Optional, ForceNew) The region in which to create the dedicated mode domain resource. If omitted, + the provider-level region will be used. Changing this setting will push a new domain. + server: |- + - (Required, ForceNew) The server configuration list of the domain. A maximum of 80 can be configured. + The server block supports: + server.address: |- + - (Required, ForceNew) IP address or domain name of the web server that the client accesses. For + example, 192.168.1.1 or www.example.com. Changing this creates a new server. + server.client_protocol: |- + - (Required, ForceNew) Protocol type of the client. Values are HTTP and HTTPS. + Changing this creates a new server. + server.port: |- + - (Required, ForceNew) Port number used by the web server. The value ranges from 0 to 65535. Changing this + creates a new server. + server.server_protocol: |- + - (Required, ForceNew) Protocol used by WAF to forward client requests to the server. + Values areHTTP and HTTPS. Changing this creates a new server. + server.type: |- + - (Required, ForceNew) Server network type, IPv4 or IPv6. Valid values are: ipv4 and ipv6. Changing + this creates a new server. + server.vpc_id: '- (Required, ForceNew) The id of the vpc used by the server. Changing this creates a server.' + session_tag: '- The session tag of traffic identifier.' + template_name: '- The template of alarm page, values are: default, custom and redirection.' + timeout_config: |- + - (Optional, List) Specifies the timeout configuration. + The timeout_config structure is documented below. + timeout_config.connect_timeout: '- (Optional, Int) Specifies the timeout in seconds for WAF to connect to the origin server.' + timeout_config.read_timeout: '- (Optional, Int) Specifies the timeout in seconds for WAF to receive responses from the origin server.' + timeout_config.write_timeout: '- (Optional, Int) Specifies the timeout in seconds for WAF to send requests to the origin server.' + tls: |- + - (Optional) Specifies the minimum required TLS version. + Values are: + traffic_identifier: '- The traffic identifier of domain. Valid values are:' + "true": to ensure that the WAF security policy takes effect for the real source IP address. + user_tag: '- The user tag of traffic identifier.' + importStatements: [] + opentelekomcloud_waf_dedicated_geo_ip_rule_v1: + subCategory: Dedicated Web Application Firewall (WAFD) + description: Manages a WAF Dedicated Geolocation Access Control Rule resource within OpenTelekomCloud. + name: opentelekomcloud_waf_dedicated_geo_ip_rule_v1 + title: opentelekomcloud_waf_dedicated_geo_ip_rule_v1 + examples: + - name: rule_1 + manifest: |- + { + "action": 0, + "description": "test description", + "name": "test", + "policy_id": "${opentelekomcloud_waf_dedicated_policy_v1.policy_1.id}", + "region_code": "BR" + } + references: + policy_id: opentelekomcloud_waf_dedicated_policy_v1.policy_1.id + dependencies: + opentelekomcloud_waf_dedicated_policy_v1.policy_1: |- + { + "name": "policy_gi" + } + argumentDocs: + "0": ': The rule is disabled.' + "1": ': The rule is enabled.' + action: |- + - (Required, Int) Protective action. + The value can be: + created_at: '- Timestamp the rule is created.' + description: '- (Optional, String) Rule description' + id: '- ID of the rule.' + name: '- (Optional, String) Rule name.' + policy_id: '- (Required, ForceNew, String) The WAF policy ID. Changing this creates a new rule.' + region_code: |- + - (Required, String) Applicable regions. The value can be the region code. For more geographical location codes, see docs "Appendix - Geographic Location Codes." + Values: + status: '- Rule status. The value can be:' + importStatements: [] + opentelekomcloud_waf_dedicated_instance_v1: + subCategory: Dedicated Web Application Firewall (WAFD) + description: Manages a WAF Dedicated Instance resource within OpenTelekomCloud. + name: opentelekomcloud_waf_dedicated_instance_v1 + title: opentelekomcloud_waf_dedicated_instance_v1 + examples: + - name: wafd_1 + manifest: |- + { + "architecture": "x86", + "availability_zone": "eu-de-01", + "flavor": "s2.large.2", + "name": "wafd-instance-1", + "security_group": [ + "${data.opentelekomcloud_networking_secgroup_v2.default_secgroup.id}" + ], + "specification": "waf.instance.professional", + "subnet_id": "${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.network_id}", + "vpc_id": "${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.vpc_id}" + } + references: + subnet_id: data.opentelekomcloud_vpc_subnet_v1.shared_subnet.network_id + vpc_id: data.opentelekomcloud_vpc_subnet_v1.shared_subnet.vpc_id + argumentDocs: + "0": '- Instance is creating.' + "1": '- Instance has created.' + "2": '- Instance is deleting.' + "3": '- Instance has deleted.' + "4": '- Instance create failed.' + "5": '- Instance is frozen.' + "6": '- Instance in abnormal state.' + "7": '- Instance in updating.' + "8": '- Instance update failed.' + access_status: '- The access status of the instance.' + architecture: |- + - (Optional, String, ForceNew) Dedicated engine CPU architecture. Default value is x86. + Changing this will create a new instance. + availability_zone: '- (Required, ForceNew) AZ where the dedicated engine is to be created. Changing this will create a new instance.' + billing_status: '- Billing status of dedicated WAF engine. The value can be 0, 1, or 2.' + create: '- Default is 30 minute.' + created_at: '- Timestamp when the dedicated WAF engine was created.' + delete: '- Default is 20 minute.' + flavor: |- + - (Required, ForceNew) ID of the specifications of the ECS hosting the dedicated engine. + You can go to the management console and confirm supported specifications. Changing this will create a new instance. + id: '- The id of the instance.' + name: |- + - (Required, String) The name of WAF dedicated instance. Duplicate names are allowed, we suggest to keeping the + name unique. + region: |- + - (Optional, ForceNew) Region where a dedicated engine is to be created. If omitted, the + provider-level region will be used. Changing this setting will create a new instance. + res_tenant: |- + - (Optional, String, ForceNew) Whether the dedicated WAF instance is network interface type. + Default value is true. Changing this will create a new instance. + -> Note: This type of instance is not available in eu-ch2 region, must set res_tenant value to false there. + security_group: |- + - (Required, ForceNew) ID of the security group where the dedicated engine is located. + Changing this will create a new instance. + server_id: '- The id of the instance server.' + service_ip: '- The ip of the instance service.' + specification: '- (Required, ForceNew) Specifications of the dedicated engine version. Values are:' + status: |- + - Running status of the dedicated engine. + The value can be: + subnet_id: |- + - (Required, ForceNew) ID of the VPC subnet where the dedicated engine is located. + Subnet_id has the same value as network_id obtained by calling the OpenStack APIs. Changing this will create a + new instance. + upgradable: '- The instance is to support upgrades. false: Cannot be upgraded, true: Can be upgraded.' + vpc_id: |- + - (Required, ForceNew) ID of the VPC where the dedicated engine is located. Changing this will create a new + instance. + waf.instance.enterprise: '- The enterprise edition, throughput: 500 Mbit/s; QPS: 10,000 (Reference only).' + waf.instance.professional: '- The professional edition, throughput: 100 Mbit/s; QPS: 2,000 (Reference only).' + importStatements: [] + opentelekomcloud_waf_dedicated_known_attack_source_rule_v1: + subCategory: Dedicated Web Application Firewall (WAFD) + description: Manages a WAF Dedicated Known Attack Source Rule resource within OpenTelekomCloud. + name: opentelekomcloud_waf_dedicated_known_attack_source_rule_v1 + title: opentelekomcloud_waf_dedicated_known_attack_source_rule_v1 + examples: + - name: rule_1 + manifest: |- + { + "block_time": 300, + "category": "long_cookie_block", + "description": "test description", + "policy_id": "${opentelekomcloud_waf_dedicated_policy_v1.policy_1.id}" + } + references: + policy_id: opentelekomcloud_waf_dedicated_policy_v1.policy_1.id + dependencies: + opentelekomcloud_waf_dedicated_policy_v1.policy_1: |- + { + "name": "policy_ka" + } + argumentDocs: + block_time: |- + - (Required, Int) Block duration, in seconds. + If prefix long is selected for the rule type, the value for block_time ranges from 301 to 1800. + If prefix short is selected for the rule type, the value for block_time ranges from 0 to 300. + category: |- + - (Required, ForceNew, String) Type of the know attack source rule. + Enumeration values: + created_at: '- Timestamp the rule is created.' + description: '- (Optional, String) Rule description.' + id: '- ID of the rule.' + policy_id: '- (Required, ForceNew, String) The WAF policy ID. Changing this creates a new rule.' + importStatements: [] + opentelekomcloud_waf_dedicated_policy_v1: + subCategory: Dedicated Web Application Firewall (WAFD) + description: Manages a WAF Dedicated Policy resource within OpenTelekomCloud. + name: opentelekomcloud_waf_dedicated_policy_v1 + title: opentelekomcloud_waf_dedicated_policy_v1 + examples: + - name: policy_1 + manifest: |- + { + "full_detection": true, + "level": 3, + "name": "policy_1", + "options": [ + { + "cc": true, + "crawler": false, + "web_attack": false, + "web_shell": true + } + ], + "protection_mode": "block" + } + argumentDocs: + "1": ': low' + "2": ': medium' + "3": ': high' + block: ': WAF blocks and logs detected attacks.' + created_at: '- Time the policy is created. The value is a 13-digit timestamp, in ms.' + domains: '- Specifies the domain IDs.' + "false": ': instant detection. Instant detection immediately ends threat detection after blocking a request that meets Precise Protection specified conditions.' + full_detection: '- (Optional) Specifies the detection mode in Precise Protection.' + id: '- ID of the policy.' + level: |- + - (Optional) Specifies the protection level. + Values are: + log: ': WAF logs detected attacks only.' + name: '- (Required) The policy name.' + options: |- + - (Optional) Specifies the protection switches. + The options block supports: + options.anti_crawler: '- (Optional) JavaScript anti-crawler function.' + options.anti_leakage: '- (Optional) Whether the information leakage prevention is enabled.' + options.anti_tamper: '- (Optional) Specifies whether Web Tamper Protection is enabled.' + options.blacklist: '- (Optional) Specifies whether Blacklist and Whitelist is enabled.' + options.cc: '- (Optional) Specifies whether CC Attack Protection is enabled.' + options.common: '- (Optional) Specifies whether General Check in Basic Web Protection is enabled.' + options.crawler: '- (Optional) Specifies whether the master crawler detection switch in Basic Web Protection is enabled.' + options.crawler_engine: '- (Optional) Specifies whether the Search Engine switch in Basic Web Protection is enabled.' + options.crawler_other: '- (Optional) Specifies whether detection of other crawlers in Basic Web Protection is enabled.' + options.crawler_scanner: '- (Optional) Specifies whether the Scanner switch in Basic Web Protection is enabled.' + options.crawler_script: '- (Optional) Specifies whether the Script Tool switch in Basic Web Protection is enabled.' + options.custom: '- (Optional) Specifies whether Precise Protection is enabled.' + options.followed_action: '- (Optional) Whether the Known Attack Source protection is enabled.' + options.geolocation_access_control: '- (Optional) Whether geolocation access control is enabled.' + options.ignore: '- (Optional) Whether false alarm masking is enabled.' + options.privacy: '- (Optional) Specifies whether Data Masking is enabled.' + options.web_attack: '- (Optional) Specifies whether Basic Web Protection is enabled.' + options.web_shell: '- (Optional) Specifies whether webshell detection in Basic Web Protection is enabled.' + protection_mode: |- + - (Optional) Specifies the protective action after a rule is matched. + Values are: + "true": ': full detection, Full detection finishes all threat detections before blocking requests that meet Precise Protection specified conditions.' + importStatements: [] + opentelekomcloud_waf_dedicated_precise_protection_rule_v1: + subCategory: Dedicated Web Application Firewall (WAFD) + description: Manages a WAF Dedicated Precise Protection Rule resource within OpenTelekomCloud. + name: opentelekomcloud_waf_dedicated_precise_protection_rule_v1 + title: opentelekomcloud_waf_dedicated_precise_protection_rule_v1 + examples: + - name: rule_1 + manifest: |- + { + "action": [ + { + "category": "block" + } + ], + "conditions": [ + { + "category": "url", + "contents": [ + "test" + ], + "logic_operation": "contain" + } + ], + "description": "desc", + "policy_id": "${opentelekomcloud_waf_dedicated_policy_v1.policy_1.id}", + "priority": 50, + "time": false + } + references: + policy_id: opentelekomcloud_waf_dedicated_policy_v1.policy_1.id + dependencies: + opentelekomcloud_waf_dedicated_policy_v1.policy_1: |- + { + "name": "policy_pp" + } + argumentDocs: + "0": ': The rule is disabled.' + "1": ': The rule is enabled.' + action: |- + - (Required, ForceNew, Set) Protection action to take if the number of requests reaches the upper limit. Changing this creates a new rule. + The conditions block supports: + action.category: '- (Required, ForceNew, String) Action type. Changing this creates a new rule.' + action.followed_action_id: '- (Optional, ForceNew, String) ID of a known attack source rule. This parameter can be configured only when category is set to block. Changing this creates a new rule.' + block: ': WAF blocks attacks.' + conditions: |- + - (Optional, ForceNew, List) Match condition List. Changing this creates a new rule. + The conditions block supports: + conditions.category: '- (Optional, ForceNew, String) Field type. The options are url, user-agent, ip, params, cookie, referer, header, request_line, method, and request.' + conditions.contents: '- (Optional, ForceNew, List) Content of the conditions. This parameter is mandatory when the suffix of logic_operation is not any or all. This parameter is mandatory when the suffix of logic_operation is not any or all. Changing this creates a new rule.' + conditions.index: '- (Optional, ForceNew, String) Subfield. Changing this creates a new rule.' + conditions.logic_operation: '- (Optional, ForceNew, String) Logic for matching the condition. Changing this creates a new rule.' + conditions.value_list_id: '- (Optional, ForceNew, String) Reference table ID. This parameter is mandatory when the suffix of logic_operation is any or all. The reference table type must be the same as the category type. Changing this creates a new rule.' + created_at: '- Timestamp the rule is created.' + description: '- (Optional, ForceNew, String) Rule description. Changing this creates a new rule.' + "false": ': The rule takes effect immediately.' + id: '- ID of the rule.' + ip: ', the optional operations are: equal, not_equal, equal_any and not_equal_all' + log: ': WAF only logs detected attacks.' + method: ', the optional operations are: equal and not_equal' + params: ', header, and cookie, the optional operations are: contain, not_contain, equal, not_equal, prefix, not_prefix, suffix, not_suffix, contain_any, not_contain_all, equal_any, not_equal_all, equal_any, not_equal_all, prefix_any, not_prefix_all, suffix_any, not_suffix_all, len_greater, len_less, len_equal, len_not_equal, num_greater, num_less, num_equal, num_not_equal, exist and not_exist' + pass: ': WAF allows requests.' + policy_id: '- (Required, ForceNew, String) The WAF policy ID. Changing this creates a new rule.' + priority: '- (Optional, ForceNew, Int) Priority of a rule. A small value indicates a high priority. If two rules are assigned with the same priority, the rule added earlier has higher priority. Value range: 0 to 1000. Changing this creates a new rule.' + request_line: 'and request, the optional operations are: len_greater, len_less, len_equal and len_not_equal' + start: '- (Required, ForceNew, Int) Timestamp (ms) when the precise protection rule takes effect. This parameter is returned only when time is true. Changing this creates a new rule.' + status: '- Rule status. The value can be:' + terminal: '- (Required, ForceNew, Int) Timestamp (ms) when the precise protection rule expires. This parameter is returned only when time is true. Changing this creates a new rule.' + time: |- + - (Required, ForceNew, Bool) Time the precise protection rule takes effect. Changing this creates a new rule. + Values: + "true": ': The effective time is customized.' + url: ', user-agent or referer , the optional operations are contain, not_contain, equal, not_equal, prefix, not_prefix, suffix, not_suffix, contain_any, not_contain_all, equal_any, not_equal_all, equal_any, not_equal_all, prefix_any, not_prefix_all, suffix_any, not_suffix_all, len_greater, len_less, len_equal and len_not_equal' + importStatements: [] + opentelekomcloud_waf_dedicated_reference_table_v1: + subCategory: Dedicated Web Application Firewall (WAFD) + description: Manages a WAF Dedicated Reference Table resource within OpenTelekomCloud. + name: opentelekomcloud_waf_dedicated_reference_table_v1 + title: opentelekomcloud_waf_dedicated_reference_table_v1 + examples: + - name: table + manifest: |- + { + "conditions": [ + "/admin", + "/manage" + ], + "name": "%s", + "type": "url" + } + argumentDocs: + conditions: |- + - (Required, List) The conditions of the reference table. The maximum length is 30. The maximum length of + condition is 2048 characters. + created_at: '- The time when reference table was created.' + description: |- + - (Optional, String) The description of the reference table. The maximum length is 128 characters. + Currently, could be set only on update. + id: '- The id of the reference table.' + name: |- + - (Required, String) The name of the reference table. Only letters, digits, and underscores(_) are allowed. The + maximum length is 64 characters. + region: |- + - (Optional, String, ForceNew) The region in which to create the WAF reference table resource. If omitted, + the provider-level region will be used. Changing this setting will push a new reference table. + type: |- + - (Required, String, ForceNew) The type of the reference table, The options are url, user-agent, ip, + params, cookie, referer and header. Changing this setting will push a new reference table. + importStatements: [] + opentelekomcloud_waf_dedicated_web_tamper_rule_v1: + subCategory: Dedicated Web Application Firewall (WAFD) + description: Manages a WAF Dedicated Web Tamper Rule resource within OpenTelekomCloud. + name: opentelekomcloud_waf_dedicated_web_tamper_rule_v1 + title: opentelekomcloud_waf_dedicated_web_tamper_rule_v1 + examples: + - name: rule_1 + manifest: |- + { + "description": "test description", + "hostname": "www.domain.com", + "policy_id": "${opentelekomcloud_waf_dedicated_policy_v1.policy_1.id}", + "url": "/login" + } + references: + policy_id: opentelekomcloud_waf_dedicated_policy_v1.policy_1.id + dependencies: + opentelekomcloud_waf_dedicated_policy_v1.policy_1: |- + { + "name": "policy_at" + } + argumentDocs: + "0": ': The rule is disabled.' + "1": ': The rule is enabled.' + created_at: '- Timestamp the rule is created.' + description: '- (Optional, ForceNew, String) Rule description.' + hostname: '- (Required, ForceNew, String) Protected website.' + id: '- ID of the rule.' + policy_id: '- (Required, ForceNew, String) The WAF policy ID. Changing this creates a new rule.' + status: '- Rule status. The value can be:' + update_cache: '- (Optional, Bool) To update the cache for a web tamper protection Rule.' + url: |- + - (Required, ForceNew, String) URL protected by the web tamper protection rule. + The value must be in the standard URL format, for example, /admin + importStatements: [] + opentelekomcloud_waf_domain_v1: + subCategory: Web Application Firewall (WAF) + description: Manages a WAF Domain resource within OpenTelekomCloud. + name: opentelekomcloud_waf_domain_v1 + title: opentelekomcloud_waf_domain_v1 + examples: + - name: domain_1 + manifest: |- + { + "block_page": [ + { + "content": "${var.content}", + "content_type": "application/json", + "status_code": "200", + "template": "custom" + } + ], + "certificate_id": "${opentelekomcloud_waf_certificate_v1.certificate_1.id}", + "hostname": "www.example.com", + "proxy": true, + "server": [ + { + "address": "80.158.42.162", + "client_protocol": "HTTPS", + "port": "443", + "server_protocol": "HTTPS" + } + ], + "sip_header_list": [ + "X-Forwarded-For" + ], + "sip_header_name": "default" + } + references: + block_page.content: var.content + certificate_id: opentelekomcloud_waf_certificate_v1.certificate_1.id + dependencies: + opentelekomcloud_waf_certificate_v1.certificate_1: |- + { + "content": "-----BEGIN CERTIFICATE-----MIIDIjCCAougAwIBAgIJALV96mEtVF4EMA0GCSqGSIb3DQEBBQUAMGoxCzAJBgNVBAYTAnh4MQswCQYDVQQIEwJ4eDELMAkGA1UEBxMCeHgxCzAJBgNVBAoTAnh4MQswCQYDVQQLEwJ-----END CERTIFICATE-----", + "key": "-----BEGIN RSA PRIVATE KEY-----MIICXQIBAAKBgQDFPN9ojPndxSC4E1pqWQVKGHCFlXAAGBOxbGfSzXqzsoyacotueqMqXQbxrPSQFATeVmhZPNVEMdvcAMjYsV/mymtAwVqVA6q/OFdX/b3UHO+b/VqLo3J5SrM-----END RSA PRIVATE KEY-----", + "name": "cert_1" + } + argumentDocs: + access_code: '- The access code.' + access_status: |- + - Whether a domain name is connected to WAF. 0: The domain name is not connected to WAF, + 1: The domain name is connected to WAF. + auto_policy_id: '- ID of the policy automatically created for the domain.' + block_page: |- + - (Optional) Alarm page configuration + The block_page block supports: + block_page.content: '- (Optional) The page content based on the selected page type.' + block_page.content_type: |- + - (Optional) The content type of the custom alarm page. + The value can be text/html, text/xml, or application/json. + block_page.redirect_url: '- (Optional) URL of the redirected page.' + block_page.status_code: '- (Optional) Status Codes for custom.' + block_page.template: '- (Required) Template name which can be default, custom or redirect.' + certificate_id: |- + - (Optional) The certificate ID. This parameter is mandatory when + front_protocol/client_protocol is set to HTTPS. + cipher: '- (Optional) Cipher suite to use with TLS. Possible values are:' + cipher_1: '- Cipher suite 1: Recommended configuration, the best combination of compatibility and security' + cipher_2: '- Cipher suite 2: Strict compliance with forward secrecy requirements of PCI DSS and excellent protection, but older browsers may be unable to access the websites' + cipher_3: '- Cipher suite 3: Support for ECDHE, DHE-GCM, and RSA-AES-GCM algorithms but not CBC' + cipher_default: '- Default cipher suite: Good browser compatibility, most clients supported, sufficient for most scenarios' + cname: '- The CNAME value.' + custom: 'template):' + hostname: |- + - (Required) The domain name. For example, www.example.com or *.example.com. + Changing this creates a new domain. + id: '- ID of the domain.' + policy_id: '- (Optional) The policy ID associate with the domain.' + protect_status: '- The WAF mode. -1: bypassed, 0: disabled, 1: enabled.' + protocol: '- The protocol type of the client. The options are HTTP, HTTPS, and HTTP&HTTPS.' + proxy: '- (Required) Specifies whether a proxy is configured.' + redirect: 'template):' + server: |- + - (Required) Array of server object. The server object structure is documented below. + The server block supports: + server.address: |- + - (Required) IP address or domain name of the web server that the client accesses. + For example, 192.168.1.1 or www.bla-bla.com. + server.client_protocol: |- + - (Optional) Protocol type of the client. The options are HTTP and HTTPS. + Required if front_protocol is not set + server.port: '- (Required) Port number used by the web server. The value ranges from 0 to 65535, for example, 8080.' + server.server_protocol: |- + - (Optional) Protocol used by WAF to forward client requests to the server. + The options are HTTP and HTTPS. Required if back_protocol is not set. + sip_header_list: |- + - (Optional) Array of HTTP request header for identifying the real source IP address. + This parameter is required only when proxy is set to true. + sip_header_name: |- + - (Optional) The type of the source IP header. This parameter is required only when proxy is set to true. + The options are as follows: default, cloudflare, akamai, and custom. + sub_domain: '- The subdomain name. This attribute is returned only when proxy is set to true.' + tls: |- + - (Optional) Minimum TLS version for accessing the protected domain name if client_protocol is set to HTTPS. + Possible values are: TLS v1.1 and TLS v1.2. + txt_code: '- The TXT record. This attribute is returned only when proxy is set to true.' + importStatements: + - terraform import opentelekomcloud_waf_domain_v1.dom_1 7117d38e-4c8f-4624-a505-bd96b97d024c + opentelekomcloud_waf_falsealarmmasking_rule_v1: + subCategory: Web Application Firewall (WAF) + description: Manages a WAF False Alarm Masking Rule resource within OpenTelekomCloud. + name: opentelekomcloud_waf_falsealarmmasking_rule_v1 + title: opentelekomcloud_waf_falsealarmmasking_rule_v1 + examples: + - name: rule_1 + manifest: |- + { + "policy_id": "${opentelekomcloud_waf_policy_v1.policy_1.id}", + "rule": "100001", + "url": "/a" + } + references: + policy_id: opentelekomcloud_waf_policy_v1.policy_1.id + dependencies: + opentelekomcloud_waf_policy_v1.policy_1: |- + { + "name": "policy_1" + } + argumentDocs: + id: '- ID of the rule.' + policy_id: '- (Required) The WAF policy ID. Changing this creates a new rule.' + rule: '- (Required) Specifies the rule ID, which consists of six digits and cannot be empty. Changing this creates a new rule.' + url: '- (Required) Specifies a misreported URL excluding a domain name. Changing this creates a new rule.' + importStatements: [] + opentelekomcloud_waf_policy_v1: + subCategory: Web Application Firewall (WAF) + description: Manages a WAF Policy resource within OpenTelekomCloud. + name: opentelekomcloud_waf_policy_v1 + title: opentelekomcloud_waf_policy_v1 + examples: + - name: policy_1 + manifest: |- + { + "full_detection": false, + "name": "policy_1", + "options": [ + { + "crawler": true, + "webattack": true + } + ] + } + argumentDocs: + "1": ': low' + "2": ': medium' + "3": ': high' + action: '- (Optional) Specifies the protective action after a rule is matched. The action object structure is documented below.' + action.category: '- (Required) Specifies the protective action.' + block: ': WAF blocks and logs detected attacks.' + "false": ': instant detection. Instant detection immediately ends threat detection after blocking a request that meets Precise Protection specified conditions.' + full_detection: '- (Optional) Specifies the detection mode in Precise Protection.' + hosts: '- (Optional) An array of the domain IDs.' + id: '- ID of the policy.' + level: '- (Optional) Specifies the protection level.' + log: ': WAF logs detected attacks only.' + name: '- (Required) The policy name. The maximum length is 256 characters. Only digits, letters, underscores(_), and hyphens(-) are allowed.' + options: '- (Optional) Specifies the protection switches. The options object structure is documented below.' + options.antitamper: '- (Optional) Specifies whether Web Tamper Protection is enabled.' + options.cc: '- (Optional) Specifies whether CC Attack Protection is enabled.' + options.common: '- (Optional) Specifies whether General Check in Basic Web Protection is enabled.' + options.crawler: '- (Optional) Specifies whether the master crawler detection switch in Basic Web Protection is enabled.' + options.crawler_engine: '- (Optional) Specifies whether the Search Engine switch in Basic Web Protection is enabled.' + options.crawler_other: '- (Optional) Specifies whether detection of other crawlers in Basic Web Protection is enabled.' + options.crawler_scanner: '- (Optional) Specifies whether the Scanner switch in Basic Web Protection is enabled.' + options.crawler_script: '- (Optional) Specifies whether the Script Tool switch in Basic Web Protection is enabled.' + options.custom: '- (Optional) Specifies whether Precise Protection is enabled.' + options.ignore: '- (Optional) Specifies whether False Alarm Masking is enabled.' + options.privacy: '- (Optional) Specifies whether Data Masking is enabled.' + options.webattack: '- (Optional) Specifies whether Basic Web Protection is enabled.' + options.webshell: '- (Optional) Specifies whether webshell detection in Basic Web Protection is enabled.' + options.whiteblackip: '- (Optional) Specifies whether Blacklist and Whitelist is enabled.' + "true": ': full detection, Full detection finishes all threat detections before blocking requests that meet Precise Protection specified conditions.' + importStatements: [] + opentelekomcloud_waf_preciseprotection_rule_v1: + subCategory: Web Application Firewall (WAF) + description: Manages a WAF Precise Protection Rule resource within OpenTelekomCloud. + name: opentelekomcloud_waf_preciseprotection_rule_v1 + title: opentelekomcloud_waf_preciseprotection_rule_v1 + examples: + - name: rule_1 + manifest: |- + { + "action_category": "block", + "conditions": [ + { + "category": "path", + "contents": [ + "/login" + ], + "logic": "contain" + }, + { + "category": "ip", + "contents": [ + "192.168.1.1" + ], + "logic": "equal" + } + ], + "name": "rule_1", + "policy_id": "${opentelekomcloud_waf_policy_v1.policy_1.id}", + "priority": 10 + } + references: + policy_id: opentelekomcloud_waf_policy_v1.policy_1.id + dependencies: + opentelekomcloud_waf_policy_v1.policy_1: |- + { + "name": "policy_1" + } + argumentDocs: + action: |- + - (Required) Specifies the protective action after the precise protection rule is matched. + Changing this creates a new rule. The action object structure is documented below. + action.category: '- (Required) Specifies the protective action. The value can be block or pass.' + conditions: |- + - (Required) Specifies the condition parameters. Changing this creates a new rule. + The conditions object structure is documented below. + conditions.category: '- (Required) Specifies the condition type. The value can be path, user-agent, ip, params, cookie, referer, or header.' + conditions.contents: '- (Required) Specifies a list of content matching the condition. Currently, only one value is accepted.' + conditions.index: |- + - (Optional) If category is set to cookie, index indicates cookie name, if set to params, index indicates param name, + if set to header, index indicates an option in the header. + conditions.logic: '- (Required) contain, not_contain, equal, not_equal, prefix, not_prefix, suffix, and not_suffix indicate Include, Exclude, Equal to, Not equal to, Prefix is, Prefix is not, Suffix is, and Suffix is not respectively. If category is set to ip, logic can only be equal or not_equal.' + end: |- + - (Optional) Specifies the time when the precise protection rule expires. If time is set to true, + either the start time or the end time must be set. Changing this creates a new rule. + "false": '- The rule takes effect immediately.' + id: '- ID of the rule.' + name: '- (Required) Specifies the name of a precise protection rule. Changing this creates a new rule.' + policy_id: '- (Required) The WAF policy ID. Changing this creates a new rule.' + priority: |- + - (Optional) Specifies the priority of a rule being executed. Smaller values correspond to higher priorities. + If two rules are assigned with the same priority, the rule added earlier has higher priority, the rule added earlier + has higher priority. The value ranges from 0 to 65535. Changing this creates a new rule. + start: |- + - (Optional) Specifies the time when the precise protection rule takes effect. If time is set to true, + either the start time or the end time must be set. Changing this creates a new rule. + time: '- (Optional) Specifies the effect time of the precise protection rule. Changing this creates a new rule.' + "true": '- The rule takes effect at the scheduled time.' + importStatements: [] + opentelekomcloud_waf_webtamperprotection_rule_v1: + subCategory: Web Application Firewall (WAF) + description: Manages a WAF Web Tamper Protection Rule resource within OpenTelekomCloud. + name: opentelekomcloud_waf_webtamperprotection_rule_v1 + title: opentelekomcloud_waf_webtamperprotection_rule_v1 + examples: + - name: rule_1 + manifest: |- + { + "hostname": "www.abc.com", + "policy_id": "${opentelekomcloud_waf_policy_v1.policy_1.id}", + "url": "/a" + } + references: + policy_id: opentelekomcloud_waf_policy_v1.policy_1.id + dependencies: + opentelekomcloud_waf_policy_v1.policy_1: |- + { + "name": "policy_1" + } + argumentDocs: + hostname: '- (Required) Specifies the domain name. Changing this creates a new rule.' + id: '- ID of the rule.' + policy_id: '- (Required) The WAF policy ID. Changing this creates a new rule.' + url: '- (Required) Specifies the URL protected by the web tamper protection rule, excluding a domain name. Changing this creates a new rule.' + importStatements: [] + opentelekomcloud_waf_whiteblackip_rule_v1: + subCategory: Web Application Firewall (WAF) + description: Manages a WAF White and Black IP Rule resource within OpenTelekomCloud. + name: opentelekomcloud_waf_whiteblackip_rule_v1 + title: opentelekomcloud_waf_whiteblackip_rule_v1 + examples: + - name: rule_1 + manifest: |- + { + "addr": "192.168.0.0/24", + "policy_id": "${opentelekomcloud_waf_policy_v1.policy_1.id}", + "white": 1 } + references: + policy_id: opentelekomcloud_waf_policy_v1.policy_1.id dependencies: - aws_instance.cluster: |- + opentelekomcloud_waf_policy_v1.policy_1: |- { - "count": 3 + "name": "policy_1" } - argumentDocs: {} + argumentDocs: + addr: '- (Required) Specifies the IP address or range. For example, 192.168.0.125 or 192.168.0.0/24.' + id: '- ID of the rule.' + policy_id: '- (Required) The WAF policy ID. Changing this creates a new rule.' + white: |- + - (Optional) Specifies the IP address type. 1: Whitelist, 0: Blacklist. If you do not configure + the white parameter, the value is Blacklist by default. importStatements: [] diff --git a/config/provider.go b/config/provider.go index 7f53564..8b5960c 100644 --- a/config/provider.go +++ b/config/provider.go @@ -7,15 +7,35 @@ package config import ( // Note(turkenh): we are importing this to embed provider schema document _ "embed" + "github.com/opentelekomcloud/provider-opentelekomcloud/config/blockstorage" + "github.com/opentelekomcloud/provider-opentelekomcloud/config/cce" + "github.com/opentelekomcloud/provider-opentelekomcloud/config/compute" + "github.com/opentelekomcloud/provider-opentelekomcloud/config/dcs" + "github.com/opentelekomcloud/provider-opentelekomcloud/config/deh" + "github.com/opentelekomcloud/provider-opentelekomcloud/config/dis" + "github.com/opentelekomcloud/provider-opentelekomcloud/config/dms" + "github.com/opentelekomcloud/provider-opentelekomcloud/config/dns" + "github.com/opentelekomcloud/provider-opentelekomcloud/config/fg" + "github.com/opentelekomcloud/provider-opentelekomcloud/config/fw" + "github.com/opentelekomcloud/provider-opentelekomcloud/config/identity" + "github.com/opentelekomcloud/provider-opentelekomcloud/config/image" + "github.com/opentelekomcloud/provider-opentelekomcloud/config/lb" + "github.com/opentelekomcloud/provider-opentelekomcloud/config/nat" + "github.com/opentelekomcloud/provider-opentelekomcloud/config/networking" + "github.com/opentelekomcloud/provider-opentelekomcloud/config/obs" + "github.com/opentelekomcloud/provider-opentelekomcloud/config/rds" + "github.com/opentelekomcloud/provider-opentelekomcloud/config/sfs" + "github.com/opentelekomcloud/provider-opentelekomcloud/config/smn" + "github.com/opentelekomcloud/provider-opentelekomcloud/config/vpcep" + "github.com/opentelekomcloud/provider-opentelekomcloud/config/vpnaas" + "github.com/opentelekomcloud/provider-opentelekomcloud/config/wafd" ujconfig "github.com/crossplane/upjet/pkg/config" - - "github.com/upbound/upjet-provider-template/config/null" ) const ( - resourcePrefix = "template" - modulePath = "github.com/upbound/upjet-provider-template" + resourcePrefix = "opentelekomcloud" + modulePath = "github.com/opentelekomcloud/provider-opentelekomcloud" ) //go:embed schema.json @@ -27,7 +47,7 @@ var providerMetadata string // GetProvider returns provider configuration func GetProvider() *ujconfig.Provider { pc := ujconfig.NewProvider([]byte(providerSchema), resourcePrefix, modulePath, []byte(providerMetadata), - ujconfig.WithRootGroup("template.upbound.io"), + ujconfig.WithRootGroup("crossplane.io"), ujconfig.WithIncludeList(ExternalNameConfigured()), ujconfig.WithFeaturesPackage("internal/features"), ujconfig.WithDefaultResourceOptions( @@ -36,7 +56,28 @@ func GetProvider() *ujconfig.Provider { for _, configure := range []func(provider *ujconfig.Provider){ // add custom config functions - null.Configure, + blockstorage.Configure, + cce.Configure, + compute.Configure, + dcs.Configure, + deh.Configure, + dis.Configure, + dms.Configure, + dns.Configure, + fg.Configure, + fw.Configure, + identity.Configure, + image.Configure, + lb.Configure, + nat.Configure, + networking.Configure, + obs.Configure, + rds.Configure, + sfs.Configure, + smn.Configure, + vpcep.Configure, + vpnaas.Configure, + wafd.Configure, } { configure(pc) } diff --git a/config/rds/config.go b/config/rds/config.go new file mode 100644 index 0000000..78c1ce4 --- /dev/null +++ b/config/rds/config.go @@ -0,0 +1,8 @@ +package rds + +import "github.com/crossplane/upjet/pkg/config" + +// Configure configures individual resources by adding custom ResourceConfigurators. +func Configure(p *config.Provider) { + // Nothing for now +} diff --git a/config/schema.json b/config/schema.json index d160792..1c29102 100644 --- a/config/schema.json +++ b/config/schema.json @@ -1 +1 @@ -{"format_version":"1.0","provider_schemas":{"registry.terraform.io/hashicorp/null":{"provider":{"version":0,"block":{"description_kind":"plain"}},"resource_schemas":{"null_resource":{"version":0,"block":{"attributes":{"id":{"type":"string","description":"This is set to a random value at create time.","description_kind":"markdown","computed":true},"triggers":{"type":["map","string"],"description":"A map of arbitrary strings that, when changed, will force the null resource to be replaced, re-running any associated provisioners.","description_kind":"markdown","optional":true}},"description":"The `null_resource` resource implements the standard resource lifecycle but takes no further action.\n\nThe `triggers` argument allows specifying an arbitrary set of values that, when changed, will cause the resource to be replaced.","description_kind":"markdown"}}},"data_source_schemas":{"null_data_source":{"version":0,"block":{"attributes":{"has_computed_default":{"type":"string","description":"If set, its literal value will be stored and returned. If not, its value defaults to `\"default\"`. This argument exists primarily for testing and has little practical use.","description_kind":"markdown","optional":true,"computed":true},"id":{"type":"string","description":"This attribute is only present for some legacy compatibility issues and should not be used. It will be removed in a future version.","description_kind":"markdown","deprecated":true,"computed":true},"inputs":{"type":["map","string"],"description":"A map of arbitrary strings that is copied into the `outputs` attribute, and accessible directly for interpolation.","description_kind":"markdown","optional":true},"outputs":{"type":["map","string"],"description":"After the data source is \"read\", a copy of the `inputs` map.","description_kind":"markdown","computed":true},"random":{"type":"string","description":"A random value. This is primarily for testing and has little practical use; prefer the [hashicorp/random provider](https://registry.terraform.io/providers/hashicorp/random) for more practical random number use-cases.","description_kind":"markdown","computed":true}},"description":"The `null_data_source` data source implements the standard data source lifecycle but does not\ninteract with any external APIs.\n\nHistorically, the `null_data_source` was typically used to construct intermediate values to re-use elsewhere in configuration. The\nsame can now be achieved using [locals](https://www.terraform.io/docs/language/values/locals.html).\n","description_kind":"markdown","deprecated":true}}}}}} +{"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":{"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},"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_instance_v3":{"version":0,"block":{"attributes":{"availability_zone":{"type":"string","description_kind":"plain","required":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","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},"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},"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},"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_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_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_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":{"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_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},"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":{"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},"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}},"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},"domains":{"type":["list","string"],"description_kind":"plain","computed":true},"full_detection":{"type":"bool","description_kind":"plain","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},"protection_mode":{"type":"string","description_kind":"plain","optional":true,"computed":true},"region":{"type":"string","description_kind":"plain","optional":true,"computed":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_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_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_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/config/sfs/config.go b/config/sfs/config.go new file mode 100644 index 0000000..188e067 --- /dev/null +++ b/config/sfs/config.go @@ -0,0 +1,8 @@ +package sfs + +import "github.com/crossplane/upjet/pkg/config" + +// Configure configures individual resources by adding custom ResourceConfigurators. +func Configure(p *config.Provider) { + // Nothing for now +} diff --git a/config/smn/config.go b/config/smn/config.go new file mode 100644 index 0000000..ab78882 --- /dev/null +++ b/config/smn/config.go @@ -0,0 +1,8 @@ +package smn + +import "github.com/crossplane/upjet/pkg/config" + +// Configure configures individual resources by adding custom ResourceConfigurators. +func Configure(p *config.Provider) { + // Nothing for now +} diff --git a/config/vpcep/config.go b/config/vpcep/config.go new file mode 100644 index 0000000..66809e2 --- /dev/null +++ b/config/vpcep/config.go @@ -0,0 +1,8 @@ +package vpcep + +import "github.com/crossplane/upjet/pkg/config" + +// Configure configures individual resources by adding custom ResourceConfigurators. +func Configure(p *config.Provider) { + // Nothing for now +} diff --git a/config/vpnaas/config.go b/config/vpnaas/config.go new file mode 100644 index 0000000..5ec543a --- /dev/null +++ b/config/vpnaas/config.go @@ -0,0 +1,8 @@ +package vpnaas + +import "github.com/crossplane/upjet/pkg/config" + +// Configure configures individual resources by adding custom ResourceConfigurators. +func Configure(p *config.Provider) { + // Nothing for now +} diff --git a/config/wafd/config.go b/config/wafd/config.go new file mode 100644 index 0000000..5059c01 --- /dev/null +++ b/config/wafd/config.go @@ -0,0 +1,8 @@ +package wafd + +import "github.com/crossplane/upjet/pkg/config" + +// Configure configures individual resources by adding custom ResourceConfigurators. +func Configure(p *config.Provider) { + // Nothing for now +} diff --git a/examples-generated/blockstorage/volumev2.yaml b/examples-generated/blockstorage/volumev2.yaml new file mode 100644 index 0000000..4c655e9 --- /dev/null +++ b/examples-generated/blockstorage/volumev2.yaml @@ -0,0 +1,19 @@ +apiVersion: blockstorage.crossplane.io/v1alpha1 +kind: VolumeV2 +metadata: + annotations: + meta.upbound.io/example-id: blockstorage/v1alpha1/volumev2 + labels: + testing.upbound.io/example-name: volume_1 + name: volume-1 +spec: + forProvider: + description: first test volume + metadata: + __system__cmkid: kms_id + __system__encrypted: "1" + name: volume_1 + size: 3 + tags: + foo: bar + key: value diff --git a/examples-generated/cce/addonv3.yaml b/examples-generated/cce/addonv3.yaml new file mode 100644 index 0000000..2d5ef6f --- /dev/null +++ b/examples-generated/cce/addonv3.yaml @@ -0,0 +1,40 @@ +apiVersion: cce.crossplane.io/v1alpha1 +kind: AddonV3 +metadata: + annotations: + meta.upbound.io/example-id: cce/v1alpha1/addonv3 + labels: + testing.upbound.io/example-name: addon + name: addon +spec: + forProvider: + clusterId: ${opentelekomcloud_cce_cluster_v3.cluster_1.id} + templateName: metrics-server + templateVersion: 1.3.6 + values: + - basic: + image_version: v0.6.2 + swr_addr: 100.125.7.25:20202 + swr_user: cce-addons + custom: {} + +--- + +apiVersion: cce.crossplane.io/v1alpha1 +kind: ClusterV3 +metadata: + annotations: + meta.upbound.io/example-id: cce/v1alpha1/addonv3 + labels: + testing.upbound.io/example-name: cluster_1 + name: cluster-1 +spec: + forProvider: + clusterType: VirtualMachine + clusterVersion: v1.17.9-r0 + containerNetworkType: overlay_l2 + flavorId: ${var.flavor_id} + kubernetesSvcIpRange: 10.247.0.0/16 + name: cce-cluster-1 + subnetId: ${var.subnet_id} + vpcId: ${var.vpc_id} diff --git a/examples-generated/cce/clusterv3.yaml b/examples-generated/cce/clusterv3.yaml new file mode 100644 index 0000000..464c130 --- /dev/null +++ b/examples-generated/cce/clusterv3.yaml @@ -0,0 +1,19 @@ +apiVersion: cce.crossplane.io/v1alpha1 +kind: ClusterV3 +metadata: + annotations: + meta.upbound.io/example-id: cce/v1alpha1/clusterv3 + labels: + testing.upbound.io/example-name: cluster_1 + name: cluster-1 +spec: + forProvider: + authenticationMode: rbac + clusterType: VirtualMachine + containerNetworkType: overlay_l2 + description: Create cluster + flavorId: ${var.flavor_id} + kubeProxyMode: ipvs + name: cluster + subnetId: ${var.subnet_id} + vpcId: ${var.vpc_id} diff --git a/examples-generated/cce/nodepoolv3.yaml b/examples-generated/cce/nodepoolv3.yaml new file mode 100644 index 0000000..7044dca --- /dev/null +++ b/examples-generated/cce/nodepoolv3.yaml @@ -0,0 +1,34 @@ +apiVersion: cce.crossplane.io/v1alpha1 +kind: NodePoolV3 +metadata: + annotations: + meta.upbound.io/example-id: cce/v1alpha1/nodepoolv3 + labels: + testing.upbound.io/example-name: node_pool_1 + name: node-pool-1 +spec: + forProvider: + agencyName: test-agency + availabilityZone: ${var.availability_zone} + clusterId: ${var.cluster_id} + dataVolumes: + - size: 100 + volumetype: SSD + - extendParams: + useType: docker + size: 100 + volumetype: SSD + flavor: s2.xlarge.2 + initialNodeCount: 2 + keyPair: ${var.ssh_key} + maxNodeCount: 9 + minNodeCount: 2 + name: opentelekomcloud-cce-node-pool-test + os: EulerOS 2.9 + priority: 1 + rootVolume: + - size: 40 + volumetype: SSD + runtime: containerd + scaleDownCooldownTime: 100 + scaleEnable: true diff --git a/examples-generated/cce/nodev3.yaml b/examples-generated/cce/nodev3.yaml new file mode 100644 index 0000000..1f81a81 --- /dev/null +++ b/examples-generated/cce/nodev3.yaml @@ -0,0 +1,29 @@ +apiVersion: cce.crossplane.io/v1alpha1 +kind: NodeV3 +metadata: + annotations: + meta.upbound.io/example-id: cce/v1alpha1/nodev3 + labels: + testing.upbound.io/example-name: node_1 + name: node-1 +spec: + forProvider: + agencyName: test-agency + availabilityZone: ${var.availability_zone} + bandwidthSize: 100 + clusterId: ${var.cluster_id} + dataVolumes: + - size: 100 + volumetype: SATA + - extendParams: + useType: docker + size: 100 + volumetype: SSD + flavorId: s2.large.2 + keyPair: ${var.ssh_key} + name: node1 + os: EulerOS 2.9 + rootVolume: + - size: 40 + volumetype: SATA + runtime: containerd diff --git a/examples-generated/compute/floatingipassociatev2.yaml b/examples-generated/compute/floatingipassociatev2.yaml new file mode 100644 index 0000000..93008cb --- /dev/null +++ b/examples-generated/compute/floatingipassociatev2.yaml @@ -0,0 +1,47 @@ +apiVersion: compute.crossplane.io/v1alpha1 +kind: FloatingipAssociateV2 +metadata: + annotations: + meta.upbound.io/example-id: compute/v1alpha1/floatingipassociatev2 + labels: + testing.upbound.io/example-name: fip_1 + name: fip-1 +spec: + forProvider: + floatingIp: ${opentelekomcloud_networking_floatingip_v2.fip_1.address} + instanceId: ${opentelekomcloud_compute_instance_v2.instance_1.id} + +--- + +apiVersion: compute.crossplane.io/v1alpha1 +kind: InstanceV2 +metadata: + annotations: + meta.upbound.io/example-id: compute/v1alpha1/floatingipassociatev2 + labels: + testing.upbound.io/example-name: instance_1 + name: instance-1 +spec: + forProvider: + flavorId: 3 + imageId: ad091b52-742f-469e-8f3c-fd81cadf0743 + keyPairSelector: + matchLabels: + testing.upbound.io/example-name: example + name: instance_1 + securityGroupsRefs: + - name: example + +--- + +apiVersion: networking.crossplane.io/v1alpha1 +kind: FloatingipV2 +metadata: + annotations: + meta.upbound.io/example-id: compute/v1alpha1/floatingipassociatev2 + labels: + testing.upbound.io/example-name: fip_1 + name: fip-1 +spec: + forProvider: + pool: admin_external_net diff --git a/examples-generated/compute/floatingipv2.yaml b/examples-generated/compute/floatingipv2.yaml new file mode 100644 index 0000000..8baee06 --- /dev/null +++ b/examples-generated/compute/floatingipv2.yaml @@ -0,0 +1,10 @@ +apiVersion: compute.crossplane.io/v1alpha1 +kind: FloatingipV2 +metadata: + annotations: + meta.upbound.io/example-id: compute/v1alpha1/floatingipv2 + labels: + testing.upbound.io/example-name: floatip_1 + name: floatip-1 +spec: + forProvider: {} diff --git a/examples-generated/compute/instancev2.yaml b/examples-generated/compute/instancev2.yaml new file mode 100644 index 0000000..1ba210d --- /dev/null +++ b/examples-generated/compute/instancev2.yaml @@ -0,0 +1,24 @@ +apiVersion: compute.crossplane.io/v1alpha1 +kind: InstanceV2 +metadata: + annotations: + meta.upbound.io/example-id: compute/v1alpha1/instancev2 + labels: + testing.upbound.io/example-name: basic + name: basic +spec: + forProvider: + flavorId: s2.large.4 + imageId: ${var.image_id} + keyPairSelector: + matchLabels: + testing.upbound.io/example-name: example + metadata: + this: that + name: basic + network: + - name: my_network + securityGroupsRefs: + - name: example + tags: + muh: kuh diff --git a/examples-generated/compute/keypairv2.yaml b/examples-generated/compute/keypairv2.yaml new file mode 100644 index 0000000..8d6eb71 --- /dev/null +++ b/examples-generated/compute/keypairv2.yaml @@ -0,0 +1,12 @@ +apiVersion: compute.crossplane.io/v1alpha1 +kind: KeypairV2 +metadata: + annotations: + meta.upbound.io/example-id: compute/v1alpha1/keypairv2 + labels: + testing.upbound.io/example-name: import-keypair + name: import-keypair +spec: + forProvider: + name: imported-keypair + publicKey: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDAjpC1hwiOCCmKEWxJ4qzTTsJbKzndLotBCz5PcwtUnflmU+gHJtWMZKpuEGVi29h0A/+ydKek1O18k10Ff+4tyFjiHDQAnOfgWf7+b1yK+qDip3X1C0UPMbwHlTfSGWLGZqd9LvEFx9k3h/M+VtMvwR1lJ9LUyTAImnNjWG7TaIPmui30HvM2UiFEmqkr4ijq45MyX2+fLIePLRIF61p4whjHAQYufqyno3BS48icQb4p6iVEZPo4AE2o9oIyQvj2mx4dk5Y8CgSETOZTYDOR3rU2fZTRDRgPJDH9FWvQjF5tA0p3d9CoWWd2s6GKKbfoUIi8R/Db1BSPJwkqB diff --git a/examples-generated/compute/secgroupv2.yaml b/examples-generated/compute/secgroupv2.yaml new file mode 100644 index 0000000..5772be7 --- /dev/null +++ b/examples-generated/compute/secgroupv2.yaml @@ -0,0 +1,21 @@ +apiVersion: compute.crossplane.io/v1alpha1 +kind: SecgroupV2 +metadata: + annotations: + meta.upbound.io/example-id: compute/v1alpha1/secgroupv2 + labels: + testing.upbound.io/example-name: secgroup_1 + name: secgroup-1 +spec: + forProvider: + description: my security group + name: my_secgroup + rule: + - cidr: 0.0.0.0/0 + fromPort: 22 + ipProtocol: tcp + toPort: 22 + - cidr: 0.0.0.0/0 + fromPort: 80 + ipProtocol: tcp + toPort: 80 diff --git a/examples-generated/compute/servergroupv2.yaml b/examples-generated/compute/servergroupv2.yaml new file mode 100644 index 0000000..610868f --- /dev/null +++ b/examples-generated/compute/servergroupv2.yaml @@ -0,0 +1,13 @@ +apiVersion: compute.crossplane.io/v1alpha1 +kind: ServergroupV2 +metadata: + annotations: + meta.upbound.io/example-id: compute/v1alpha1/servergroupv2 + labels: + testing.upbound.io/example-name: test-sg + name: test-sg +spec: + forProvider: + name: my-sg + policies: + - anti-affinity diff --git a/examples-generated/compute/volumeattachv2.yaml b/examples-generated/compute/volumeattachv2.yaml new file mode 100644 index 0000000..60c3734 --- /dev/null +++ b/examples-generated/compute/volumeattachv2.yaml @@ -0,0 +1,43 @@ +apiVersion: compute.crossplane.io/v1alpha1 +kind: VolumeAttachV2 +metadata: + annotations: + meta.upbound.io/example-id: compute/v1alpha1/volumeattachv2 + labels: + testing.upbound.io/example-name: va_1 + name: va-1 +spec: + forProvider: + instanceId: ${opentelekomcloud_compute_instance_v2.instance_1.id} + volumeId: ${opentelekomcloud_blockstorage_volume_v2.volume_1.id} + +--- + +apiVersion: blockstorage.crossplane.io/v1alpha1 +kind: VolumeV2 +metadata: + annotations: + meta.upbound.io/example-id: compute/v1alpha1/volumeattachv2 + labels: + testing.upbound.io/example-name: volume_1 + name: volume-1 +spec: + forProvider: + name: volume_1 + size: 1 + +--- + +apiVersion: compute.crossplane.io/v1alpha1 +kind: InstanceV2 +metadata: + annotations: + meta.upbound.io/example-id: compute/v1alpha1/volumeattachv2 + labels: + testing.upbound.io/example-name: instance_1 + name: instance-1 +spec: + forProvider: + name: instance_1 + securityGroupsRefs: + - name: example diff --git a/examples-generated/dcs/instancev1.yaml b/examples-generated/dcs/instancev1.yaml new file mode 100644 index 0000000..86ffdec --- /dev/null +++ b/examples-generated/dcs/instancev1.yaml @@ -0,0 +1,52 @@ +apiVersion: dcs.crossplane.io/v1alpha1 +kind: InstanceV1 +metadata: + annotations: + meta.upbound.io/example-id: dcs/v1alpha1/instancev1 + labels: + testing.upbound.io/example-name: instance_1 + name: instance-1 +spec: + forProvider: + availableZones: + - ${data.opentelekomcloud_dcs_az_v1.az_1.id} + backupPolicy: + - backupAt: + - 1 + - 2 + - 4 + - 6 + backupType: manual + beginAt: 00:00-01:00 + periodType: weekly + saveDays: 1 + capacity: 2 + engine: Redis + engineVersion: "3.0" + name: test_dcs_instance + passwordSecretRef: + key: example-key + name: example-secret + namespace: upbound-system + productId: ${data.opentelekomcloud_dcs_product_v1.product_1.id} + securityGroupId: ${opentelekomcloud_networking_secgroup_v2.secgroup_1.id} + subnetId: ${var.network_id} + tags: + environment: basic + managed_by: terraform + vpcId: ${var.vpc_id} + +--- + +apiVersion: networking.crossplane.io/v1alpha1 +kind: SecgroupV2 +metadata: + annotations: + meta.upbound.io/example-id: dcs/v1alpha1/instancev1 + labels: + testing.upbound.io/example-name: secgroup_1 + name: secgroup-1 +spec: + forProvider: + description: secgroup_1 + name: secgroup_1 diff --git a/examples-generated/dcs/instancev2.yaml b/examples-generated/dcs/instancev2.yaml new file mode 100644 index 0000000..aaba471 --- /dev/null +++ b/examples-generated/dcs/instancev2.yaml @@ -0,0 +1,52 @@ +apiVersion: dcs.crossplane.io/v1alpha1 +kind: InstanceV2 +metadata: + annotations: + meta.upbound.io/example-id: dcs/v1alpha1/instancev2 + labels: + testing.upbound.io/example-name: instance_1 + name: instance-1 +spec: + forProvider: + availabilityZones: + - eu-de-01 + backupPolicy: + - backupAt: + - 1 + - 2 + - 4 + - 6 + backupType: manual + beginAt: 00:00-01:00 + periodType: weekly + saveDays: 1 + capacity: 2 + engine: Redis + engineVersion: "3.0" + flavor: dcs.master_standby + name: test_dcs_instance + passwordSecretRef: + key: example-key + name: example-secret + namespace: upbound-system + securityGroupId: ${opentelekomcloud_networking_secgroup_v2.secgroup_1.id} + subnetId: ${var.network_id} + tags: + environment: basic + managed_by: terraform + vpcId: ${var.vpc_id} + +--- + +apiVersion: networking.crossplane.io/v1alpha1 +kind: SecgroupV2 +metadata: + annotations: + meta.upbound.io/example-id: dcs/v1alpha1/instancev2 + labels: + testing.upbound.io/example-name: secgroup_1 + name: secgroup-1 +spec: + forProvider: + description: secgroup_1 + name: secgroup_1 diff --git a/examples-generated/dds/instancev3.yaml b/examples-generated/dds/instancev3.yaml new file mode 100644 index 0000000..213f9e5 --- /dev/null +++ b/examples-generated/dds/instancev3.yaml @@ -0,0 +1,33 @@ +apiVersion: dds.crossplane.io/v1alpha1 +kind: InstanceV3 +metadata: + annotations: + meta.upbound.io/example-id: dds/v1alpha1/instancev3 + labels: + testing.upbound.io/example-name: instance + name: instance +spec: + forProvider: + availabilityZone: ${var.availability_zone} + datastore: + - storageEngine: wiredTiger + type: DDS-Community + version: "3.4" + flavor: + - num: 1 + size: 30 + specCode: dds.mongodb.s2.medium.4.repset + storage: ULTRAHIGH + type: replica + mode: ReplicaSet + name: dds-instance + passwordSecretRef: + key: example-key + name: example-secret + namespace: upbound-system + securityGroupId: ${var.security_group_id} + subnetId: ${var.subnet_id} + tags: + foo: bar + new_test: new_test2 + vpcId: ${var.vpc_id} diff --git a/examples-generated/deh/hostv1.yaml b/examples-generated/deh/hostv1.yaml new file mode 100644 index 0000000..131f55b --- /dev/null +++ b/examples-generated/deh/hostv1.yaml @@ -0,0 +1,14 @@ +apiVersion: deh.crossplane.io/v1alpha1 +kind: HostV1 +metadata: + annotations: + meta.upbound.io/example-id: deh/v1alpha1/hostv1 + labels: + testing.upbound.io/example-name: deh_host + name: deh-host +spec: + forProvider: + autoPlacement: "on" + availabilityZone: eu-de-02 + hostType: h1 + name: high_performance_deh diff --git a/examples-generated/dis/appv2.yaml b/examples-generated/dis/appv2.yaml new file mode 100644 index 0000000..d3b7bde --- /dev/null +++ b/examples-generated/dis/appv2.yaml @@ -0,0 +1,11 @@ +apiVersion: dis.crossplane.io/v1alpha1 +kind: AppV2 +metadata: + annotations: + meta.upbound.io/example-id: dis/v1alpha1/appv2 + labels: + testing.upbound.io/example-name: app_1 + name: app-1 +spec: + forProvider: + name: app_name diff --git a/examples-generated/dis/checkpointv2.yaml b/examples-generated/dis/checkpointv2.yaml new file mode 100644 index 0000000..a3c0e96 --- /dev/null +++ b/examples-generated/dis/checkpointv2.yaml @@ -0,0 +1,52 @@ +apiVersion: dis.crossplane.io/v1alpha1 +kind: CheckpointV2 +metadata: + annotations: + meta.upbound.io/example-id: dis/v1alpha1/checkpointv2 + labels: + testing.upbound.io/example-name: checkpoint_1 + name: checkpoint-1 +spec: + forProvider: + appName: app_name + metadata: my_first_checkpoint + partitionId: "0" + sequenceNumber: "0" + streamName: MyStream + +--- + +apiVersion: dis.crossplane.io/v1alpha1 +kind: AppV2 +metadata: + annotations: + meta.upbound.io/example-id: dis/v1alpha1/checkpointv2 + labels: + testing.upbound.io/example-name: app_1 + name: app-1 +spec: + forProvider: + name: my_app + +--- + +apiVersion: dis.crossplane.io/v1alpha1 +kind: StreamV2 +metadata: + annotations: + meta.upbound.io/example-id: dis/v1alpha1/checkpointv2 + labels: + testing.upbound.io/example-name: stream_1 + name: stream-1 +spec: + forProvider: + autoScaleMaxPartitionCount: 4 + autoScaleMinPartitionCount: 1 + compressionFormat: zip + dataType: BLOB + name: my_stream + partitionCount: 3 + retentionPeriod: 24 + streamType: COMMON + tags: + foo: bar diff --git a/examples-generated/dis/dumptaskv2.yaml b/examples-generated/dis/dumptaskv2.yaml new file mode 100644 index 0000000..967db92 --- /dev/null +++ b/examples-generated/dis/dumptaskv2.yaml @@ -0,0 +1,75 @@ +apiVersion: dis.crossplane.io/v1alpha1 +kind: DumpTaskV2 +metadata: + annotations: + meta.upbound.io/example-id: dis/v1alpha1/dumptaskv2 + labels: + testing.upbound.io/example-name: task_1 + name: task-1 +spec: + forProvider: + destination: OBS + obsDestinationDescriptor: + - agencyName: dis_admin_agency + consumerStrategy: LATEST + deliverTimeInterval: 30 + destinationFileType: text + filePrefix: _pf + obsBucketPath: my-tf-test-bucket + partitionFormat: yyyy/MM/dd/HH/mm + recordDelimiter: '|' + taskName: my_task + streamName: MyStream + +--- + +apiVersion: dis.crossplane.io/v1alpha1 +kind: AppV2 +metadata: + annotations: + meta.upbound.io/example-id: dis/v1alpha1/dumptaskv2 + labels: + testing.upbound.io/example-name: app_1 + name: app-1 +spec: + forProvider: + name: my_app + +--- + +apiVersion: dis.crossplane.io/v1alpha1 +kind: StreamV2 +metadata: + annotations: + meta.upbound.io/example-id: dis/v1alpha1/dumptaskv2 + labels: + testing.upbound.io/example-name: stream_1 + name: stream-1 +spec: + forProvider: + autoScaleMaxPartitionCount: 4 + autoScaleMinPartitionCount: 1 + compressionFormat: zip + dataType: BLOB + name: my_stream + partitionCount: 3 + retentionPeriod: 24 + streamType: COMMON + tags: + foo: bar + +--- + +apiVersion: obs.crossplane.io/v1alpha1 +kind: Bucket +metadata: + annotations: + meta.upbound.io/example-id: dis/v1alpha1/dumptaskv2 + labels: + testing.upbound.io/example-name: bucket + name: bucket +spec: + forProvider: + acl: private + bucket: my-dis-bucket + storageClass: STANDARD diff --git a/examples-generated/dis/streamv2.yaml b/examples-generated/dis/streamv2.yaml new file mode 100644 index 0000000..2d7bc75 --- /dev/null +++ b/examples-generated/dis/streamv2.yaml @@ -0,0 +1,20 @@ +apiVersion: dis.crossplane.io/v1alpha1 +kind: StreamV2 +metadata: + annotations: + meta.upbound.io/example-id: dis/v1alpha1/streamv2 + labels: + testing.upbound.io/example-name: stream_1 + name: stream-1 +spec: + forProvider: + autoScaleMaxPartitionCount: 4 + autoScaleMinPartitionCount: 1 + compressionFormat: zip + dataType: BLOB + name: MyStream + partitionCount: 3 + retentionPeriod: 24 + streamType: COMMON + tags: + foo: bar diff --git a/examples-generated/dms/instancev1.yaml b/examples-generated/dms/instancev1.yaml new file mode 100644 index 0000000..91f3d2f --- /dev/null +++ b/examples-generated/dms/instancev1.yaml @@ -0,0 +1,43 @@ +apiVersion: dms.crossplane.io/v1alpha1 +kind: InstanceV1 +metadata: + annotations: + meta.upbound.io/example-id: dms/v1alpha1/instancev1 + labels: + testing.upbound.io/example-name: instance_1 + name: instance-1 +spec: + forProvider: + accessUser: ${var.access_user} + availableZones: + - ${data.opentelekomcloud_dms_az_v1.az_1.id} + engine: kafka + engineVersion: ${data.opentelekomcloud_dms_product_v1.product_1.version} + name: kafka-test + partitionNum: ${data.opentelekomcloud_dms_product_v1.product_1.partition_num} + passwordSecretRef: + key: example-key + name: example-secret + namespace: upbound-system + productId: ${data.opentelekomcloud_dms_product_v1.product_1.id} + securityGroupId: ${opentelekomcloud_networking_secgroup_v2.secgroup_1.id} + specification: ${data.opentelekomcloud_dms_product_v1.product_1.bandwidth} + storageSpace: ${data.opentelekomcloud_dms_product_v1.product_1.storage} + storageSpecCode: ${data.opentelekomcloud_dms_product_v1.product_1.storage_spec_code} + subnetId: ${var.subnet_id} + vpcId: ${var.vpc_id} + +--- + +apiVersion: networking.crossplane.io/v1alpha1 +kind: SecgroupV2 +metadata: + annotations: + meta.upbound.io/example-id: dms/v1alpha1/instancev1 + labels: + testing.upbound.io/example-name: secgroup_1 + name: secgroup-1 +spec: + forProvider: + description: secgroup_1 + name: secgroup_1 diff --git a/examples-generated/dms/instancev2.yaml b/examples-generated/dms/instancev2.yaml new file mode 100644 index 0000000..addc0a1 --- /dev/null +++ b/examples-generated/dms/instancev2.yaml @@ -0,0 +1,43 @@ +apiVersion: dms.crossplane.io/v1alpha1 +kind: InstanceV2 +metadata: + annotations: + meta.upbound.io/example-id: dms/v1alpha1/instancev2 + labels: + testing.upbound.io/example-name: instance_1 + name: instance-1 +spec: + forProvider: + accessUser: ${var.access_user} + availableZones: + - ${data.opentelekomcloud_dms_az_v1.az_1.id} + engine: kafka + engineVersion: ${data.opentelekomcloud_dms_product_v1.product_1.version} + name: kafka-test + partitionNum: ${data.opentelekomcloud_dms_product_v1.product_1.partition_num} + passwordSecretRef: + key: example-key + name: example-secret + namespace: upbound-system + productId: ${data.opentelekomcloud_dms_product_v1.product_1.id} + securityGroupId: ${opentelekomcloud_networking_secgroup_v2.secgroup_1.id} + specification: ${data.opentelekomcloud_dms_product_v1.product_1.bandwidth} + storageSpace: ${data.opentelekomcloud_dms_product_v1.product_1.storage} + storageSpecCode: ${data.opentelekomcloud_dms_product_v1.product_1.storage_spec_code} + subnetId: ${var.subnet_id} + vpcId: ${var.vpc_id} + +--- + +apiVersion: networking.crossplane.io/v1alpha1 +kind: SecgroupV2 +metadata: + annotations: + meta.upbound.io/example-id: dms/v1alpha1/instancev2 + labels: + testing.upbound.io/example-name: secgroup_1 + name: secgroup-1 +spec: + forProvider: + description: secgroup_1 + name: secgroup_1 diff --git a/examples-generated/dms/topicv1.yaml b/examples-generated/dms/topicv1.yaml new file mode 100644 index 0000000..6ea97e0 --- /dev/null +++ b/examples-generated/dms/topicv1.yaml @@ -0,0 +1,62 @@ +apiVersion: dms.crossplane.io/v1alpha1 +kind: TopicV1 +metadata: + annotations: + meta.upbound.io/example-id: dms/v1alpha1/topicv1 + labels: + testing.upbound.io/example-name: topic_1 + name: topic-1 +spec: + forProvider: + instanceId: ${resource.opentelekomcloud_dms_instance_v1.instance_1.id} + name: topic-test + partition: 10 + replication: 2 + retentionTime: 80 + syncReplication: true + +--- + +apiVersion: dms.crossplane.io/v1alpha1 +kind: InstanceV1 +metadata: + annotations: + meta.upbound.io/example-id: dms/v1alpha1/topicv1 + labels: + testing.upbound.io/example-name: instance_1 + name: instance-1 +spec: + forProvider: + accessUser: ${var.access_user} + availableZones: + - ${data.opentelekomcloud_dms_az_v1.az_1.id} + engine: kafka + engineVersion: ${data.opentelekomcloud_dms_product_v1.product_1.version} + name: kafka-test + partitionNum: ${data.opentelekomcloud_dms_product_v1.product_1.partition_num} + passwordSecretRef: + key: example-key + name: example-secret + namespace: upbound-system + productId: ${data.opentelekomcloud_dms_product_v1.product_1.id} + securityGroupId: ${opentelekomcloud_networking_secgroup_v2.secgroup_1.id} + specification: ${data.opentelekomcloud_dms_product_v1.product_1.bandwidth} + storageSpace: ${data.opentelekomcloud_dms_product_v1.product_1.storage} + storageSpecCode: ${data.opentelekomcloud_dms_product_v1.product_1.storage_spec_code} + subnetId: ${var.subnet_id} + vpcId: ${var.vpc_id} + +--- + +apiVersion: networking.crossplane.io/v1alpha1 +kind: SecgroupV2 +metadata: + annotations: + meta.upbound.io/example-id: dms/v1alpha1/topicv1 + labels: + testing.upbound.io/example-name: secgroup_1 + name: secgroup-1 +spec: + forProvider: + description: secgroup_1 + name: secgroup_1 diff --git a/examples-generated/dms/userpermissionv1.yaml b/examples-generated/dms/userpermissionv1.yaml new file mode 100644 index 0000000..9f9d363 --- /dev/null +++ b/examples-generated/dms/userpermissionv1.yaml @@ -0,0 +1,55 @@ +apiVersion: dms.crossplane.io/v1alpha1 +kind: UserPermissionV1 +metadata: + annotations: + meta.upbound.io/example-id: dms/v1alpha1/userpermissionv1 + labels: + testing.upbound.io/example-name: perm_1 + name: perm-1 +spec: + forProvider: + instanceId: ${opentelekomcloud_dms_instance_v2.instance_1.id} + policies: + - accessPolicy: all + username: ${opentelekomcloud_dms_user_v2.user_1.id} + - accessPolicy: sub + username: ${opentelekomcloud_dms_user_v2.user_2.id} + topicName: test-topic + +--- + +apiVersion: dms.crossplane.io/v1alpha1 +kind: UserV2 +metadata: + annotations: + meta.upbound.io/example-id: dms/v1alpha1/userpermissionv1 + labels: + testing.upbound.io/example-name: user_1 + name: user-1 +spec: + forProvider: + instanceId: ${instance_id} + passwordSecretRef: + key: example-key + name: example-secret + namespace: upbound-system + username: Test-user + +--- + +apiVersion: dms.crossplane.io/v1alpha1 +kind: UserV2 +metadata: + annotations: + meta.upbound.io/example-id: dms/v1alpha1/userpermissionv1 + labels: + testing.upbound.io/example-name: user_2 + name: user-2 +spec: + forProvider: + instanceId: ${instance_id} + passwordSecretRef: + key: example-key + name: example-secret + namespace: upbound-system + username: Test-user2 diff --git a/examples-generated/dms/userv2.yaml b/examples-generated/dms/userv2.yaml new file mode 100644 index 0000000..dc8935e --- /dev/null +++ b/examples-generated/dms/userv2.yaml @@ -0,0 +1,16 @@ +apiVersion: dms.crossplane.io/v1alpha1 +kind: UserV2 +metadata: + annotations: + meta.upbound.io/example-id: dms/v1alpha1/userv2 + labels: + testing.upbound.io/example-name: user_1 + name: user-1 +spec: + forProvider: + instanceId: ${instance_id} + passwordSecretRef: + key: example-key + name: example-secret + namespace: upbound-system + username: Test-user diff --git a/examples-generated/dns/ptrrecordv2.yaml b/examples-generated/dns/ptrrecordv2.yaml new file mode 100644 index 0000000..dbd43cd --- /dev/null +++ b/examples-generated/dns/ptrrecordv2.yaml @@ -0,0 +1,29 @@ +apiVersion: dns.crossplane.io/v1alpha1 +kind: PtrrecordV2 +metadata: + annotations: + meta.upbound.io/example-id: dns/v1alpha1/ptrrecordv2 + labels: + testing.upbound.io/example-name: ptr_1 + name: ptr-1 +spec: + forProvider: + description: An example PTR record + floatingipId: ${opentelekomcloud_networking_floatingip_v2.fip_1.id} + name: ptr.example.com. + tags: + foo: bar + ttl: 3000 + +--- + +apiVersion: networking.crossplane.io/v1alpha1 +kind: FloatingipV2 +metadata: + annotations: + meta.upbound.io/example-id: dns/v1alpha1/ptrrecordv2 + labels: + testing.upbound.io/example-name: fip_1 + name: fip-1 +spec: + forProvider: {} diff --git a/examples-generated/dns/recordsetv2.yaml b/examples-generated/dns/recordsetv2.yaml new file mode 100644 index 0000000..f995c2f --- /dev/null +++ b/examples-generated/dns/recordsetv2.yaml @@ -0,0 +1,35 @@ +apiVersion: dns.crossplane.io/v1alpha1 +kind: RecordsetV2 +metadata: + annotations: + meta.upbound.io/example-id: dns/v1alpha1/recordsetv2 + labels: + testing.upbound.io/example-name: rs_example_com + name: rs-example-com +spec: + forProvider: + description: An example record set + name: rs.example.com. + records: + - 10.0.0.1 + ttl: 3000 + type: A + zoneId: ${opentelekomcloud_dns_zone_v2.example_zone.id} + +--- + +apiVersion: dns.crossplane.io/v1alpha1 +kind: ZoneV2 +metadata: + annotations: + meta.upbound.io/example-id: dns/v1alpha1/recordsetv2 + labels: + testing.upbound.io/example-name: example_zone + name: example-zone +spec: + forProvider: + description: a zone + email: email2@example.com + name: example.com. + ttl: 6000 + type: public diff --git a/examples-generated/dns/zonev2.yaml b/examples-generated/dns/zonev2.yaml new file mode 100644 index 0000000..383b28b --- /dev/null +++ b/examples-generated/dns/zonev2.yaml @@ -0,0 +1,18 @@ +apiVersion: dns.crossplane.io/v1alpha1 +kind: ZoneV2 +metadata: + annotations: + meta.upbound.io/example-id: dns/v1alpha1/zonev2 + labels: + testing.upbound.io/example-name: public_example_com + name: public-example-com +spec: + forProvider: + description: An example for public zone + email: public@example.com + name: public.example.com. + tags: + foo: bar + key: value + ttl: 3000 + type: public diff --git a/examples-generated/ecs/instancev1.yaml b/examples-generated/ecs/instancev1.yaml new file mode 100644 index 0000000..ff69ff8 --- /dev/null +++ b/examples-generated/ecs/instancev1.yaml @@ -0,0 +1,20 @@ +apiVersion: ecs.crossplane.io/v1alpha1 +kind: InstanceV1 +metadata: + annotations: + meta.upbound.io/example-id: ecs/v1alpha1/instancev1 + labels: + testing.upbound.io/example-name: basic + name: basic +spec: + forProvider: + availabilityZone: eu-de-01 + flavor: s2.large.2 + imageId: ad091b52-742f-469e-8f3c-fd81cadf0743 + keyName: KeyPair-test + name: server_1 + nics: + - networkId: 55534eaa-533a-419d-9b40-ec427ea7195a + tags: + muh: kuh + vpcId: 8eed4fc7-e5e5-44a2-b5f2-23b3e5d46235 diff --git a/examples-generated/evs/volumev3.yaml b/examples-generated/evs/volumev3.yaml new file mode 100644 index 0000000..8f90af7 --- /dev/null +++ b/examples-generated/evs/volumev3.yaml @@ -0,0 +1,18 @@ +apiVersion: evs.crossplane.io/v1alpha1 +kind: VolumeV3 +metadata: + annotations: + meta.upbound.io/example-id: evs/v1alpha1/volumev3 + labels: + testing.upbound.io/example-name: volume_1 + name: volume-1 +spec: + forProvider: + availabilityZone: eu-de-01 + description: first test volume + name: volume_1 + size: 20 + tags: + foo: bar + key: value + volumeType: SATA diff --git a/examples-generated/fgs/asyncinvokeconfigv2.yaml b/examples-generated/fgs/asyncinvokeconfigv2.yaml new file mode 100644 index 0000000..552f3ea --- /dev/null +++ b/examples-generated/fgs/asyncinvokeconfigv2.yaml @@ -0,0 +1,27 @@ +apiVersion: fgs.crossplane.io/v1alpha1 +kind: AsyncInvokeConfigV2 +metadata: + annotations: + meta.upbound.io/example-id: fgs/v1alpha1/asyncinvokeconfigv2 + labels: + testing.upbound.io/example-name: test + name: test +spec: + forProvider: + functionUrn: ${var.function_urn} + maxAsyncEventAgeInSeconds: 3500 + maxAsyncRetryAttempts: 2 + onFailure: + - destination: SMN + param: |- + ${jsonencode({ + topic_urn = var.topic_urn + })} + onSuccess: + - destination: OBS + param: |- + ${jsonencode({ + bucket = var.bucket_name + prefix = "/success" + expires = 5 + })} diff --git a/examples-generated/fgs/eventv2.yaml b/examples-generated/fgs/eventv2.yaml new file mode 100644 index 0000000..a07e7b6 --- /dev/null +++ b/examples-generated/fgs/eventv2.yaml @@ -0,0 +1,13 @@ +apiVersion: fgs.crossplane.io/v1alpha1 +kind: EventV2 +metadata: + annotations: + meta.upbound.io/example-id: fgs/v1alpha1/eventv2 + labels: + testing.upbound.io/example-name: test + name: test +spec: + forProvider: + content: ${base64encode(var.event_content)} + functionUrn: ${var.function_urn} + name: ${var.event_name} diff --git a/examples-generated/fgs/functionv2.yaml b/examples-generated/fgs/functionv2.yaml new file mode 100644 index 0000000..5496621 --- /dev/null +++ b/examples-generated/fgs/functionv2.yaml @@ -0,0 +1,20 @@ +apiVersion: fgs.crossplane.io/v1alpha1 +kind: FunctionV2 +metadata: + annotations: + meta.upbound.io/example-id: fgs/v1alpha1/functionv2 + labels: + testing.upbound.io/example-name: test + name: test +spec: + forProvider: + agency: ${var.agency_name} + app: default + codeType: inline + description: fuction test + funcCode: ${base64encode(var.function_codes)} + handler: test.handler + memorySize: 128 + name: ${var.function_name} + runtime: Python2.7 + timeout: 3 diff --git a/examples-generated/fgs/triggerv2.yaml b/examples-generated/fgs/triggerv2.yaml new file mode 100644 index 0000000..24b26e7 --- /dev/null +++ b/examples-generated/fgs/triggerv2.yaml @@ -0,0 +1,19 @@ +apiVersion: fgs.crossplane.io/v1alpha1 +kind: TriggerV2 +metadata: + annotations: + meta.upbound.io/example-id: fgs/v1alpha1/triggerv2 + labels: + testing.upbound.io/example-name: test + name: test +spec: + forProvider: + eventData: |- + ${jsonencode({ + "name" : format("%s_rate", var.trigger_name), + "schedule_type" : "Rate", + "user_event" : "Created by terraform script", + "schedule" : "3m" + })} + functionUrn: ${var.function_urn} + type: TIMER diff --git a/examples-generated/fw/firewallgroupv2.yaml b/examples-generated/fw/firewallgroupv2.yaml new file mode 100644 index 0000000..bb3f8b9 --- /dev/null +++ b/examples-generated/fw/firewallgroupv2.yaml @@ -0,0 +1,67 @@ +apiVersion: fw.crossplane.io/v1alpha1 +kind: FirewallGroupV2 +metadata: + annotations: + meta.upbound.io/example-id: fw/v1alpha1/firewallgroupv2 + labels: + testing.upbound.io/example-name: firewall_group_1 + name: firewall-group-1 +spec: + forProvider: + ingressPolicyId: ${opentelekomcloud_fw_policy_v2.policy_1.id} + name: my-firewall-group + +--- + +apiVersion: fw.crossplane.io/v1alpha1 +kind: PolicyV2 +metadata: + annotations: + meta.upbound.io/example-id: fw/v1alpha1/firewallgroupv2 + labels: + testing.upbound.io/example-name: policy_1 + name: policy-1 +spec: + forProvider: + name: my-policy + rules: + - ${opentelekomcloud_fw_rule_v2.rule_1.id} + - ${opentelekomcloud_fw_rule_v2.rule_2.id} + +--- + +apiVersion: fw.crossplane.io/v1alpha1 +kind: RuleV2 +metadata: + annotations: + meta.upbound.io/example-id: fw/v1alpha1/firewallgroupv2 + labels: + testing.upbound.io/example-name: rule_1 + name: rule-1 +spec: + forProvider: + action: deny + description: drop TELNET traffic + destinationPort: "23" + enabled: "true" + name: my-rule-1 + protocol: tcp + +--- + +apiVersion: fw.crossplane.io/v1alpha1 +kind: RuleV2 +metadata: + annotations: + meta.upbound.io/example-id: fw/v1alpha1/firewallgroupv2 + labels: + testing.upbound.io/example-name: rule_2 + name: rule-2 +spec: + forProvider: + action: deny + description: drop NTP traffic + destinationPort: "123" + enabled: "false" + name: my-rule-2 + protocol: udp diff --git a/examples-generated/fw/policyv2.yaml b/examples-generated/fw/policyv2.yaml new file mode 100644 index 0000000..d4d0349 --- /dev/null +++ b/examples-generated/fw/policyv2.yaml @@ -0,0 +1,52 @@ +apiVersion: fw.crossplane.io/v1alpha1 +kind: PolicyV2 +metadata: + annotations: + meta.upbound.io/example-id: fw/v1alpha1/policyv2 + labels: + testing.upbound.io/example-name: policy_1 + name: policy-1 +spec: + forProvider: + name: my-policy + rules: + - ${opentelekomcloud_fw_rule_v2.rule_1.id} + - ${opentelekomcloud_fw_rule_v2.rule_2.id} + +--- + +apiVersion: fw.crossplane.io/v1alpha1 +kind: RuleV2 +metadata: + annotations: + meta.upbound.io/example-id: fw/v1alpha1/policyv2 + labels: + testing.upbound.io/example-name: rule_1 + name: rule-1 +spec: + forProvider: + action: deny + description: drop TELNET traffic + destinationPort: "23" + enabled: "true" + name: my-rule-1 + protocol: tcp + +--- + +apiVersion: fw.crossplane.io/v1alpha1 +kind: RuleV2 +metadata: + annotations: + meta.upbound.io/example-id: fw/v1alpha1/policyv2 + labels: + testing.upbound.io/example-name: rule_2 + name: rule-2 +spec: + forProvider: + action: deny + description: drop NTP traffic + destinationPort: "123" + enabled: "false" + name: my-rule-2 + protocol: udp diff --git a/examples-generated/fw/rulev2.yaml b/examples-generated/fw/rulev2.yaml new file mode 100644 index 0000000..b0d3f77 --- /dev/null +++ b/examples-generated/fw/rulev2.yaml @@ -0,0 +1,16 @@ +apiVersion: fw.crossplane.io/v1alpha1 +kind: RuleV2 +metadata: + annotations: + meta.upbound.io/example-id: fw/v1alpha1/rulev2 + labels: + testing.upbound.io/example-name: rule_1 + name: rule-1 +spec: + forProvider: + action: deny + description: drop TELNET traffic + destinationPort: "23" + enabled: "true" + name: my_rule + protocol: tcp diff --git a/examples-generated/identity/agencyv3.yaml b/examples-generated/identity/agencyv3.yaml new file mode 100644 index 0000000..71f1bed --- /dev/null +++ b/examples-generated/identity/agencyv3.yaml @@ -0,0 +1,19 @@ +apiVersion: identity.crossplane.io/v1alpha1 +kind: AgencyV3 +metadata: + annotations: + meta.upbound.io/example-id: identity/v1alpha1/agencyv3 + labels: + testing.upbound.io/example-name: agency + name: agency +spec: + forProvider: + delegatedDomainName: '***' + description: test agency + domainRoles: + - Anti-DDoS Administrator + name: test_agency + projectRole: + - project: eu-de + roles: + - KMS Administrator diff --git a/examples-generated/identity/credentialv3.yaml b/examples-generated/identity/credentialv3.yaml new file mode 100644 index 0000000..87e2942 --- /dev/null +++ b/examples-generated/identity/credentialv3.yaml @@ -0,0 +1,10 @@ +apiVersion: identity.crossplane.io/v1alpha1 +kind: CredentialV3 +metadata: + annotations: + meta.upbound.io/example-id: identity/v1alpha1/credentialv3 + labels: + testing.upbound.io/example-name: aksk + name: aksk +spec: + forProvider: {} diff --git a/examples-generated/identity/groupmembershipv3.yaml b/examples-generated/identity/groupmembershipv3.yaml new file mode 100644 index 0000000..80b14a4 --- /dev/null +++ b/examples-generated/identity/groupmembershipv3.yaml @@ -0,0 +1,67 @@ +apiVersion: identity.crossplane.io/v1alpha1 +kind: GroupMembershipV3 +metadata: + annotations: + meta.upbound.io/example-id: identity/v1alpha1/groupmembershipv3 + labels: + testing.upbound.io/example-name: membership_1 + name: membership-1 +spec: + forProvider: + group: ${opentelekomcloud_identity_group_v3.group_1.id} + users: + - ${opentelekomcloud_identity_user_v3.user_1.id} + - ${opentelekomcloud_identity_user_v3.user_2.id} + +--- + +apiVersion: identity.crossplane.io/v1alpha1 +kind: GroupV3 +metadata: + annotations: + meta.upbound.io/example-id: identity/v1alpha1/groupmembershipv3 + labels: + testing.upbound.io/example-name: group_1 + name: group-1 +spec: + forProvider: + description: This is a test group + name: group1 + +--- + +apiVersion: identity.crossplane.io/v1alpha1 +kind: UserV3 +metadata: + annotations: + meta.upbound.io/example-id: identity/v1alpha1/groupmembershipv3 + labels: + testing.upbound.io/example-name: user_1 + name: user-1 +spec: + forProvider: + enabled: true + name: user1 + passwordSecretRef: + key: example-key + name: example-secret + namespace: upbound-system + +--- + +apiVersion: identity.crossplane.io/v1alpha1 +kind: UserV3 +metadata: + annotations: + meta.upbound.io/example-id: identity/v1alpha1/groupmembershipv3 + labels: + testing.upbound.io/example-name: user_2 + name: user-2 +spec: + forProvider: + enabled: true + name: user2 + passwordSecretRef: + key: example-key + name: example-secret + namespace: upbound-system diff --git a/examples-generated/identity/groupv3.yaml b/examples-generated/identity/groupv3.yaml new file mode 100644 index 0000000..3005c7c --- /dev/null +++ b/examples-generated/identity/groupv3.yaml @@ -0,0 +1,12 @@ +apiVersion: identity.crossplane.io/v1alpha1 +kind: GroupV3 +metadata: + annotations: + meta.upbound.io/example-id: identity/v1alpha1/groupv3 + labels: + testing.upbound.io/example-name: group_1 + name: group-1 +spec: + forProvider: + description: This is a test group + name: group_1 diff --git a/examples-generated/identity/loginpolicyv3.yaml b/examples-generated/identity/loginpolicyv3.yaml new file mode 100644 index 0000000..42d29cd --- /dev/null +++ b/examples-generated/identity/loginpolicyv3.yaml @@ -0,0 +1,17 @@ +apiVersion: identity.crossplane.io/v1alpha1 +kind: LoginPolicyV3 +metadata: + annotations: + meta.upbound.io/example-id: identity/v1alpha1/loginpolicyv3 + labels: + testing.upbound.io/example-name: policy_1 + name: policy-1 +spec: + forProvider: + accountValidityPeriod: 0 + customInfoForLogin: "" + lockoutDuration: 15 + loginFailedTimes: 3 + periodWithLoginFailures: 60 + sessionTimeout: 1395 + showRecentLoginInfo: false diff --git a/examples-generated/identity/mappingv3.yaml b/examples-generated/identity/mappingv3.yaml new file mode 100644 index 0000000..12aeffc --- /dev/null +++ b/examples-generated/identity/mappingv3.yaml @@ -0,0 +1,29 @@ +apiVersion: identity.crossplane.io/v1alpha1 +kind: MappingV3 +metadata: + annotations: + meta.upbound.io/example-id: identity/v1alpha1/mappingv3 + labels: + testing.upbound.io/example-name: mapping + name: mapping +spec: + forProvider: + mappingId: ACME + rules: |2 + [ + { + "local":[ + { + "user":{"name":"{0}"} + }, + { + "groups":"[\"admin\",\"manager\"]" + } + ], + "remote":[ + { + "type":"uid" + } + ] + } + ] diff --git a/examples-generated/identity/passwordpolicyv3.yaml b/examples-generated/identity/passwordpolicyv3.yaml new file mode 100644 index 0000000..05ba50e --- /dev/null +++ b/examples-generated/identity/passwordpolicyv3.yaml @@ -0,0 +1,16 @@ +apiVersion: identity.crossplane.io/v1alpha1 +kind: PasswordPolicyV3 +metadata: + annotations: + meta.upbound.io/example-id: identity/v1alpha1/passwordpolicyv3 + labels: + testing.upbound.io/example-name: policy_1 + name: policy-1 +spec: + forProvider: + maximumConsecutiveIdenticalChars: 0 + minimumPasswordAge: 0 + minimumPasswordLength: 6 + numberOfRecentPasswordsDisallowed: 0 + passwordNotUsernameOrInvert: true + passwordValidityPeriod: 179 diff --git a/examples-generated/identity/projectv3.yaml b/examples-generated/identity/projectv3.yaml new file mode 100644 index 0000000..83779a9 --- /dev/null +++ b/examples-generated/identity/projectv3.yaml @@ -0,0 +1,12 @@ +apiVersion: identity.crossplane.io/v1alpha1 +kind: ProjectV3 +metadata: + annotations: + meta.upbound.io/example-id: identity/v1alpha1/projectv3 + labels: + testing.upbound.io/example-name: project_1 + name: project-1 +spec: + forProvider: + description: This is a test project + name: eu-de_project1 diff --git a/examples-generated/identity/protectionpolicyv3.yaml b/examples-generated/identity/protectionpolicyv3.yaml new file mode 100644 index 0000000..dcc6cb5 --- /dev/null +++ b/examples-generated/identity/protectionpolicyv3.yaml @@ -0,0 +1,11 @@ +apiVersion: identity.crossplane.io/v1alpha1 +kind: ProtectionPolicyV3 +metadata: + annotations: + meta.upbound.io/example-id: identity/v1alpha1/protectionpolicyv3 + labels: + testing.upbound.io/example-name: policy_1 + name: policy-1 +spec: + forProvider: + enableOperationProtectionPolicy: false diff --git a/examples-generated/identity/protocolv3.yaml b/examples-generated/identity/protocolv3.yaml new file mode 100644 index 0000000..8c23c97 --- /dev/null +++ b/examples-generated/identity/protocolv3.yaml @@ -0,0 +1,44 @@ +apiVersion: identity.crossplane.io/v1alpha1 +kind: ProtocolV3 +metadata: + annotations: + meta.upbound.io/example-id: identity/v1alpha1/protocolv3 + labels: + testing.upbound.io/example-name: saml + name: saml +spec: + forProvider: + mappingId: ${opentelekomcloud_identity_mapping_v3.mapping.id} + protocol: saml + providerId: ${opentelekomcloud_identity_provider_v3.provider.id} + +--- + +apiVersion: identity.crossplane.io/v1alpha1 +kind: MappingV3 +metadata: + annotations: + meta.upbound.io/example-id: identity/v1alpha1/protocolv3 + labels: + testing.upbound.io/example-name: mapping + name: mapping +spec: + forProvider: + mappingId: ACME + rules: ${file("./rules.json")} + +--- + +apiVersion: identity.crossplane.io/v1alpha1 +kind: ProviderV3 +metadata: + annotations: + meta.upbound.io/example-id: identity/v1alpha1/protocolv3 + labels: + testing.upbound.io/example-name: provider + name: provider +spec: + forProvider: + description: This is simple identity provider + enabled: true + name: ACME diff --git a/examples-generated/identity/provider.yaml b/examples-generated/identity/provider.yaml new file mode 100644 index 0000000..f06256f --- /dev/null +++ b/examples-generated/identity/provider.yaml @@ -0,0 +1,31 @@ +apiVersion: identity.crossplane.io/v1alpha1 +kind: Provider +metadata: + annotations: + meta.upbound.io/example-id: identity/v1alpha1/provider + labels: + testing.upbound.io/example-name: provider_1 + name: provider-1 +spec: + forProvider: + mappingRules: |- + ${jsonencode( + [ + { + "local" : [ + { + "user" : { + "name" : "samltestid" + } + } + ], + "remote" : [ + { + "type" : "uid" + } + ] + } + ] + )} + name: example_com_provider_saml + protocol: saml diff --git a/examples-generated/identity/providerv3.yaml b/examples-generated/identity/providerv3.yaml new file mode 100644 index 0000000..776e966 --- /dev/null +++ b/examples-generated/identity/providerv3.yaml @@ -0,0 +1,13 @@ +apiVersion: identity.crossplane.io/v1alpha1 +kind: ProviderV3 +metadata: + annotations: + meta.upbound.io/example-id: identity/v1alpha1/providerv3 + labels: + testing.upbound.io/example-name: provider + name: provider +spec: + forProvider: + description: This is simple identity provider + enabled: true + name: ACME diff --git a/examples-generated/identity/roleassignmentv3.yaml b/examples-generated/identity/roleassignmentv3.yaml new file mode 100644 index 0000000..a7b7464 --- /dev/null +++ b/examples-generated/identity/roleassignmentv3.yaml @@ -0,0 +1,43 @@ +apiVersion: identity.crossplane.io/v1alpha1 +kind: RoleAssignmentV3 +metadata: + annotations: + meta.upbound.io/example-id: identity/v1alpha1/roleassignmentv3 + labels: + testing.upbound.io/example-name: role_assignment_1 + name: role-assignment-1 +spec: + forProvider: + groupId: ${opentelekomcloud_identity_group_v3.group_1.id} + projectIdSelector: + matchLabels: + testing.upbound.io/example-name: project_1 + roleId: ${data.opentelekomcloud_identity_role_v3.role_1.id} + +--- + +apiVersion: identity.crossplane.io/v1alpha1 +kind: GroupV3 +metadata: + annotations: + meta.upbound.io/example-id: identity/v1alpha1/roleassignmentv3 + labels: + testing.upbound.io/example-name: group_1 + name: group-1 +spec: + forProvider: + name: group_1 + +--- + +apiVersion: identity.crossplane.io/v1alpha1 +kind: ProjectV3 +metadata: + annotations: + meta.upbound.io/example-id: identity/v1alpha1/roleassignmentv3 + labels: + testing.upbound.io/example-name: project_1 + name: project-1 +spec: + forProvider: + name: eu-de_project_1 diff --git a/examples-generated/identity/rolev3.yaml b/examples-generated/identity/rolev3.yaml new file mode 100644 index 0000000..7b5c910 --- /dev/null +++ b/examples-generated/identity/rolev3.yaml @@ -0,0 +1,36 @@ +apiVersion: identity.crossplane.io/v1alpha1 +kind: RoleV3 +metadata: + annotations: + meta.upbound.io/example-id: identity/v1alpha1/rolev3 + labels: + testing.upbound.io/example-name: role + name: role +spec: + forProvider: + description: role + displayLayer: domain + displayName: custom_role + statement: + - action: + - obs:bucket:GetBucketAcl + condition: |2 + { + "StringStartWith": { + "g:ProjectName": [ + "eu-de" + ] + }, + "StringNotEqualsIgnoreCase": { + "g:ServiceName": [ + "iam" + ] + } + effect: Allow + resource: + - OBS:*:*:bucket:test-bucket + - action: + - obs:bucket:HeadBucket + - obs:bucket:ListBucketMultipartUploads + - obs:bucket:ListBucket + effect: Allow diff --git a/examples-generated/identity/usergroupmembershipv3.yaml b/examples-generated/identity/usergroupmembershipv3.yaml new file mode 100644 index 0000000..7aef7cd --- /dev/null +++ b/examples-generated/identity/usergroupmembershipv3.yaml @@ -0,0 +1,61 @@ +apiVersion: identity.crossplane.io/v1alpha1 +kind: UserGroupMembershipV3 +metadata: + annotations: + meta.upbound.io/example-id: identity/v1alpha1/usergroupmembershipv3 + labels: + testing.upbound.io/example-name: membership_1 + name: membership-1 +spec: + forProvider: + groups: + - ${opentelekomcloud_identity_group_v3.group_1.id} + - ${opentelekomcloud_identity_group_v3.group_2.id} + user: ${opentelekomcloud_identity_user_v3.user_1.id} + +--- + +apiVersion: identity.crossplane.io/v1alpha1 +kind: GroupV3 +metadata: + annotations: + meta.upbound.io/example-id: identity/v1alpha1/usergroupmembershipv3 + labels: + testing.upbound.io/example-name: group_1 + name: group-1 +spec: + forProvider: + name: group-1 + +--- + +apiVersion: identity.crossplane.io/v1alpha1 +kind: GroupV3 +metadata: + annotations: + meta.upbound.io/example-id: identity/v1alpha1/usergroupmembershipv3 + labels: + testing.upbound.io/example-name: group_2 + name: group-2 +spec: + forProvider: + name: group-2 + +--- + +apiVersion: identity.crossplane.io/v1alpha1 +kind: UserV3 +metadata: + annotations: + meta.upbound.io/example-id: identity/v1alpha1/usergroupmembershipv3 + labels: + testing.upbound.io/example-name: user_1 + name: user-1 +spec: + forProvider: + enabled: true + name: user-1 + passwordSecretRef: + key: example-key + name: example-secret + namespace: upbound-system diff --git a/examples-generated/identity/userv3.yaml b/examples-generated/identity/userv3.yaml new file mode 100644 index 0000000..7e1860c --- /dev/null +++ b/examples-generated/identity/userv3.yaml @@ -0,0 +1,15 @@ +apiVersion: identity.crossplane.io/v1alpha1 +kind: UserV3 +metadata: + annotations: + meta.upbound.io/example-id: identity/v1alpha1/userv3 + labels: + testing.upbound.io/example-name: user_1 + name: user-1 +spec: + forProvider: + name: user_1 + passwordSecretRef: + key: example-key + name: example-secret + namespace: upbound-system diff --git a/examples-generated/images/imageaccessacceptv2.yaml b/examples-generated/images/imageaccessacceptv2.yaml new file mode 100644 index 0000000..e9d34ab --- /dev/null +++ b/examples-generated/images/imageaccessacceptv2.yaml @@ -0,0 +1,13 @@ +apiVersion: images.crossplane.io/v1alpha1 +kind: ImageAccessAcceptV2 +metadata: + annotations: + meta.upbound.io/example-id: images/v1alpha1/imageaccessacceptv2 + labels: + testing.upbound.io/example-name: rancheros_member + name: rancheros-member +spec: + forProvider: + imageId: ${data.opentelekomcloud_images_image_v2.rancheros.id} + memberId: bed6b6cbb86a4e2d8dc2735c2f1000e4 + status: accepted diff --git a/examples-generated/images/imageaccessv2.yaml b/examples-generated/images/imageaccessv2.yaml new file mode 100644 index 0000000..57f56be --- /dev/null +++ b/examples-generated/images/imageaccessv2.yaml @@ -0,0 +1,29 @@ +apiVersion: images.crossplane.io/v1alpha1 +kind: ImageAccessV2 +metadata: + annotations: + meta.upbound.io/example-id: images/v1alpha1/imageaccessv2 + labels: + testing.upbound.io/example-name: rancheros_member + name: rancheros-member +spec: + forProvider: + imageId: ${opentelekomcloud_images_image_v2.rancheros.id} + memberId: bed6b6cbb86a4e2d8dc2735c2f1000e4 + +--- + +apiVersion: images.crossplane.io/v1alpha1 +kind: ImageV2 +metadata: + annotations: + meta.upbound.io/example-id: images/v1alpha1/imageaccessv2 + labels: + testing.upbound.io/example-name: rancheros + name: rancheros +spec: + forProvider: + containerFormat: bare + diskFormat: qcow2 + imageSourceUrl: https://releases.rancher.com/os/latest/rancheros-openstack.img + name: RancherOS diff --git a/examples-generated/images/imagev2.yaml b/examples-generated/images/imagev2.yaml new file mode 100644 index 0000000..8d55823 --- /dev/null +++ b/examples-generated/images/imagev2.yaml @@ -0,0 +1,17 @@ +apiVersion: images.crossplane.io/v1alpha1 +kind: ImageV2 +metadata: + annotations: + meta.upbound.io/example-id: images/v1alpha1/imagev2 + labels: + testing.upbound.io/example-name: rancheros + name: rancheros +spec: + forProvider: + containerFormat: bare + diskFormat: qcow2 + imageSourceUrl: https://releases.rancher.com/os/latest/rancheros-openstack.img + name: RancherOS + tags: + - foo.bar + - tag.value diff --git a/examples-generated/ims/dataimagev2.yaml b/examples-generated/ims/dataimagev2.yaml new file mode 100644 index 0000000..8f0162c --- /dev/null +++ b/examples-generated/ims/dataimagev2.yaml @@ -0,0 +1,16 @@ +apiVersion: ims.crossplane.io/v1alpha1 +kind: DataImageV2 +metadata: + annotations: + meta.upbound.io/example-id: ims/v1alpha1/dataimagev2 + labels: + testing.upbound.io/example-name: ims_test + name: ims-test +spec: + forProvider: + description: Create an image using an ECS. + name: imt_test + tags: + foo: bar + key: value + volumeId: 54a6c3a4-8511-4d01-818f-3fe5177cbb06 diff --git a/examples-generated/ims/imagev2.yaml b/examples-generated/ims/imagev2.yaml new file mode 100644 index 0000000..ffa0295 --- /dev/null +++ b/examples-generated/ims/imagev2.yaml @@ -0,0 +1,16 @@ +apiVersion: ims.crossplane.io/v1alpha1 +kind: ImageV2 +metadata: + annotations: + meta.upbound.io/example-id: ims/v1alpha1/imagev2 + labels: + testing.upbound.io/example-name: ims_test + name: ims-test +spec: + forProvider: + description: Create an image using an ECS. + instanceId: 54a6c3a4-8511-4d01-818f-3fe5177cbb06 + name: imt_test + tags: + foo: bar + key: value diff --git a/examples-generated/kms/grantv1.yaml b/examples-generated/kms/grantv1.yaml new file mode 100644 index 0000000..bc6dcf0 --- /dev/null +++ b/examples-generated/kms/grantv1.yaml @@ -0,0 +1,17 @@ +apiVersion: kms.crossplane.io/v1alpha1 +kind: GrantV1 +metadata: + annotations: + meta.upbound.io/example-id: kms/v1alpha1/grantv1 + labels: + testing.upbound.io/example-name: grant_1 + name: grant-1 +spec: + forProvider: + granteePrincipal: ${var.user_id} + keyId: ${var.kms_id} + name: my_grant + operations: + - describe-key + - create-datakey + - encrypt-datakey diff --git a/examples-generated/lb/certificatev2.yaml b/examples-generated/lb/certificatev2.yaml new file mode 100644 index 0000000..3990f05 --- /dev/null +++ b/examples-generated/lb/certificatev2.yaml @@ -0,0 +1,64 @@ +apiVersion: lb.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/certificatev3.yaml b/examples-generated/lb/certificatev3.yaml new file mode 100644 index 0000000..75a8b4a --- /dev/null +++ b/examples-generated/lb/certificatev3.yaml @@ -0,0 +1,38 @@ +apiVersion: lb.crossplane.io/v1alpha1 +kind: CertificateV3 +metadata: + annotations: + meta.upbound.io/example-id: lb/v1alpha1/certificatev3 + labels: + testing.upbound.io/example-name: certificate_1 + name: certificate-1 +spec: + forProvider: + certificate: | + -----BEGIN CERTIFICATE----- + MIIB4TCCAYugAwIBAgIUPXCpWJCiy5mI79NIfenl5KNWPzkwDQYJKoZIhvcNAQEL + BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM + GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yMTExMDIxMDM3MjBaFw0yMTEy + MDIxMDM3MjBaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw + HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwXDANBgkqhkiG9w0BAQEF + AANLADBIAkEAu+qgVpV6mqbaGW1Qn6eDPzhwentQPPiXwG1665M9+gjW4pUQ0Rud + Bc0fkUU/O+Q0UMT8ZV/I2hSenCVyJoyPEwIDAQABo1MwUTAdBgNVHQ4EFgQUtItI + IAXZDIEfuvCX7AY3s//wlI8wHwYDVR0jBBgwFoAUtItIIAXZDIEfuvCX7AY3s//w + lI8wDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAANBAEkgP/JlpVKc4j+Z + KRcMa7RAXYJqCbRxtpqRU7OOAhDmBnldtS5CTMoh1r7TOGMfM1Npa+kGV5QnjRzI + FzFSymo= + -----END CERTIFICATE----- + description: terraform test certificate + domain: www.elb.com + name: certificate_1 + privateKey: | + -----BEGIN RSA PRIVATE KEY----- + MIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEAu+qgVpV6mqbaGW1Q + n6eDPzhwentQPPiXwG1665M9+gjW4pUQ0RudBc0fkUU/O+Q0UMT8ZV/I2hSenCVy + JoyPEwIDAQABAkAbyksEAv8qt9oxQHVX5xIF23bm5i2rlqf6kTZIeHIF89/NNJ2E + sejiqFIWqPc5a00Scn+ymdCvjC25JVyup9cBAiEA4a+7WhPmgS54yNHjwkG2pflz + cfH1V7qPqlBKIGLwZbMCIQDVKCsZ6eoNdQoLVmK0zii8XDCgL8HWMrm/bytbYM9B + IQIgVdcAXKebEeF6IW/rwDQ8Y2644UsVdTPJdw8o0p6vLw8CIDqm191EiPt09fOS + rIxVoc3ajCK3oV2ADa5IN6ToKX8hAiBPuNCCIYcZz0tAzWX7I1OYMI3UhJjtrESg + mYFrsJ4gHw== + -----END RSA PRIVATE KEY----- diff --git a/examples-generated/lb/ipgroupv3.yaml b/examples-generated/lb/ipgroupv3.yaml new file mode 100644 index 0000000..dda449e --- /dev/null +++ b/examples-generated/lb/ipgroupv3.yaml @@ -0,0 +1,19 @@ +apiVersion: lb.crossplane.io/v1alpha1 +kind: IpgroupV3 +metadata: + annotations: + meta.upbound.io/example-id: lb/v1alpha1/ipgroupv3 + labels: + testing.upbound.io/example-name: group_1 + name: group-1 +spec: + forProvider: + description: group description + ipList: + - description: one + ip: 192.168.50.10 + - description: two + ip: 192.168.100.10 + - description: three + ip: 192.168.150.10 + name: group_1 diff --git a/examples-generated/lb/l7policyv2.yaml b/examples-generated/lb/l7policyv2.yaml new file mode 100644 index 0000000..c4c300f --- /dev/null +++ b/examples-generated/lb/l7policyv2.yaml @@ -0,0 +1,65 @@ +apiVersion: lb.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.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.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.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/l7rulev2.yaml b/examples-generated/lb/l7rulev2.yaml new file mode 100644 index 0000000..7bab2e9 --- /dev/null +++ b/examples-generated/lb/l7rulev2.yaml @@ -0,0 +1,82 @@ +apiVersion: lb.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.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.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.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.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/listenerv2.yaml b/examples-generated/lb/listenerv2.yaml new file mode 100644 index 0000000..d887d45 --- /dev/null +++ b/examples-generated/lb/listenerv2.yaml @@ -0,0 +1,15 @@ +apiVersion: lb.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/listenerv3.yaml b/examples-generated/lb/listenerv3.yaml new file mode 100644 index 0000000..25fc0b9 --- /dev/null +++ b/examples-generated/lb/listenerv3.yaml @@ -0,0 +1,15 @@ +apiVersion: lb.crossplane.io/v1alpha1 +kind: ListenerV3 +metadata: + annotations: + meta.upbound.io/example-id: lb/v1alpha1/listenerv3 + labels: + testing.upbound.io/example-name: listener_1 + name: listener-1 +spec: + forProvider: + loadbalancerId: ${var.loadbalancer_id} + protocol: HTTP + protocolPort: 8080 + tags: + muh: kuh diff --git a/examples-generated/lb/loadbalancerv2.yaml b/examples-generated/lb/loadbalancerv2.yaml new file mode 100644 index 0000000..10d7aa7 --- /dev/null +++ b/examples-generated/lb/loadbalancerv2.yaml @@ -0,0 +1,13 @@ +apiVersion: lb.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/loadbalancerv3.yaml b/examples-generated/lb/loadbalancerv3.yaml new file mode 100644 index 0000000..5adb028 --- /dev/null +++ b/examples-generated/lb/loadbalancerv3.yaml @@ -0,0 +1,17 @@ +apiVersion: lb.crossplane.io/v1alpha1 +kind: LoadbalancerV3 +metadata: + annotations: + meta.upbound.io/example-id: lb/v1alpha1/loadbalancerv3 + labels: + testing.upbound.io/example-name: lb_1 + name: lb-1 +spec: + forProvider: + availabilityZones: + - ${var.az} + networkIds: + - ${var.network_id} + routerId: ${var.router_id} + tags: + muh: kuh diff --git a/examples-generated/lb/memberv2.yaml b/examples-generated/lb/memberv2.yaml new file mode 100644 index 0000000..6903dbd --- /dev/null +++ b/examples-generated/lb/memberv2.yaml @@ -0,0 +1,14 @@ +apiVersion: lb.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/memberv3.yaml b/examples-generated/lb/memberv3.yaml new file mode 100644 index 0000000..094b9a2 --- /dev/null +++ b/examples-generated/lb/memberv3.yaml @@ -0,0 +1,51 @@ +apiVersion: lb.crossplane.io/v1alpha1 +kind: MemberV3 +metadata: + annotations: + meta.upbound.io/example-id: lb/v1alpha1/memberv3 + labels: + testing.upbound.io/example-name: member + name: member +spec: + forProvider: + address: ${cidrhost(var.subnet_cidr, 3)} + name: member-1 + poolId: ${opentelekomcloud_lb_pool_v3.pool.id} + protocolPort: 8080 + +--- + +apiVersion: lb.crossplane.io/v1alpha1 +kind: LoadbalancerV3 +metadata: + annotations: + meta.upbound.io/example-id: lb/v1alpha1/memberv3 + labels: + testing.upbound.io/example-name: lb + name: lb +spec: + forProvider: + availabilityZones: + - ${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} + +--- + +apiVersion: lb.crossplane.io/v1alpha1 +kind: PoolV3 +metadata: + annotations: + meta.upbound.io/example-id: lb/v1alpha1/memberv3 + labels: + testing.upbound.io/example-name: pool + name: pool +spec: + forProvider: + lbAlgorithm: ROUND_ROBIN + loadbalancerId: ${opentelekomcloud_lb_loadbalancer_v3.lb.id} + name: pool_1 + protocol: TCP diff --git a/examples-generated/lb/monitorv2.yaml b/examples-generated/lb/monitorv2.yaml new file mode 100644 index 0000000..356374a --- /dev/null +++ b/examples-generated/lb/monitorv2.yaml @@ -0,0 +1,16 @@ +apiVersion: lb.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/monitorv3.yaml b/examples-generated/lb/monitorv3.yaml new file mode 100644 index 0000000..807b360 --- /dev/null +++ b/examples-generated/lb/monitorv3.yaml @@ -0,0 +1,52 @@ +apiVersion: lb.crossplane.io/v1alpha1 +kind: MonitorV3 +metadata: + annotations: + meta.upbound.io/example-id: lb/v1alpha1/monitorv3 + labels: + testing.upbound.io/example-name: monitor + name: monitor +spec: + forProvider: + delay: 3 + maxRetries: 5 + maxRetriesDown: 1 + monitorPort: 8080 + poolId: ${opentelekomcloud_lb_pool_v3.pool.id} + timeout: 30 + type: HTTP + +--- + +apiVersion: lb.crossplane.io/v1alpha1 +kind: LoadbalancerV3 +metadata: + annotations: + meta.upbound.io/example-id: lb/v1alpha1/monitorv3 + labels: + testing.upbound.io/example-name: lb + name: lb +spec: + forProvider: + 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} + +--- + +apiVersion: lb.crossplane.io/v1alpha1 +kind: PoolV3 +metadata: + annotations: + meta.upbound.io/example-id: lb/v1alpha1/monitorv3 + labels: + testing.upbound.io/example-name: pool + name: pool +spec: + forProvider: + lbAlgorithm: ROUND_ROBIN + loadbalancerId: ${opentelekomcloud_lb_loadbalancer_v3.lb.id} + protocol: HTTP diff --git a/examples-generated/lb/policyv3.yaml b/examples-generated/lb/policyv3.yaml new file mode 100644 index 0000000..7f3f741 --- /dev/null +++ b/examples-generated/lb/policyv3.yaml @@ -0,0 +1,64 @@ +apiVersion: lb.crossplane.io/v1alpha1 +kind: PolicyV3 +metadata: + annotations: + meta.upbound.io/example-id: lb/v1alpha1/policyv3 + labels: + testing.upbound.io/example-name: this + name: this +spec: + forProvider: + action: REDIRECT_TO_POOL + listenerId: ${opentelekomcloud_lb_listener_v3.this.id} + position: 37 + redirectPoolId: ${opentelekomcloud_lb_pool_v3.this.id} + +--- + +apiVersion: lb.crossplane.io/v1alpha1 +kind: ListenerV3 +metadata: + annotations: + meta.upbound.io/example-id: lb/v1alpha1/policyv3 + labels: + testing.upbound.io/example-name: this + name: this +spec: + forProvider: + loadbalancerId: ${opentelekomcloud_lb_loadbalancer_v3.this.id} + protocol: HTTP + protocolPort: 8080 + +--- + +apiVersion: lb.crossplane.io/v1alpha1 +kind: LoadbalancerV3 +metadata: + annotations: + meta.upbound.io/example-id: lb/v1alpha1/policyv3 + labels: + testing.upbound.io/example-name: this + name: this +spec: + forProvider: + availabilityZones: + - ${var.az} + networkIds: + - ${var.network_id} + routerId: ${var.router_id} + +--- + +apiVersion: lb.crossplane.io/v1alpha1 +kind: PoolV3 +metadata: + annotations: + meta.upbound.io/example-id: lb/v1alpha1/policyv3 + labels: + testing.upbound.io/example-name: this + name: this +spec: + forProvider: + lbAlgorithm: ROUND_ROBIN + loadbalancerId: ${opentelekomcloud_lb_loadbalancer_v3.this.id} + protocol: HTTP diff --git a/examples-generated/lb/poolv2.yaml b/examples-generated/lb/poolv2.yaml new file mode 100644 index 0000000..8bf5f1e --- /dev/null +++ b/examples-generated/lb/poolv2.yaml @@ -0,0 +1,16 @@ +apiVersion: lb.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/poolv3.yaml b/examples-generated/lb/poolv3.yaml new file mode 100644 index 0000000..b6817fc --- /dev/null +++ b/examples-generated/lb/poolv3.yaml @@ -0,0 +1,36 @@ +apiVersion: lb.crossplane.io/v1alpha1 +kind: PoolV3 +metadata: + annotations: + meta.upbound.io/example-id: lb/v1alpha1/poolv3 + labels: + testing.upbound.io/example-name: pool + name: pool +spec: + forProvider: + lbAlgorithm: ROUND_ROBIN + loadbalancerId: ${opentelekomcloud_lb_loadbalancer_v3.lb.id} + name: pool_1 + protocol: TCP + sessionPersistence: + - persistenceTimeout: "30" + type: SOURCE_IP + +--- + +apiVersion: lb.crossplane.io/v1alpha1 +kind: LoadbalancerV3 +metadata: + annotations: + meta.upbound.io/example-id: lb/v1alpha1/poolv3 + labels: + testing.upbound.io/example-name: lb + name: lb +spec: + forProvider: + availabilityZones: + - ${var.availability_zone} + name: loadbalancer_1 + networkIds: + - ${var.network_id} + routerId: ${var.router_id} diff --git a/examples-generated/lb/rulev3.yaml b/examples-generated/lb/rulev3.yaml new file mode 100644 index 0000000..d8858b2 --- /dev/null +++ b/examples-generated/lb/rulev3.yaml @@ -0,0 +1,81 @@ +apiVersion: lb.crossplane.io/v1alpha1 +kind: RuleV3 +metadata: + annotations: + meta.upbound.io/example-id: lb/v1alpha1/rulev3 + labels: + testing.upbound.io/example-name: this + name: this +spec: + forProvider: + compareType: REGEX + policyId: ${opentelekomcloud_lb_policy_v3.this.id} + type: PATH + value: ^.+$ + +--- + +apiVersion: lb.crossplane.io/v1alpha1 +kind: ListenerV3 +metadata: + annotations: + meta.upbound.io/example-id: lb/v1alpha1/rulev3 + labels: + testing.upbound.io/example-name: this + name: this +spec: + forProvider: + loadbalancerId: ${opentelekomcloud_lb_loadbalancer_v3.this.id} + protocol: HTTP + protocolPort: 8080 + +--- + +apiVersion: lb.crossplane.io/v1alpha1 +kind: LoadbalancerV3 +metadata: + annotations: + meta.upbound.io/example-id: lb/v1alpha1/rulev3 + labels: + testing.upbound.io/example-name: this + name: this +spec: + forProvider: + availabilityZones: + - ${var.az} + networkIds: + - ${var.network_id} + routerId: ${var.router_id} + +--- + +apiVersion: lb.crossplane.io/v1alpha1 +kind: PolicyV3 +metadata: + annotations: + meta.upbound.io/example-id: lb/v1alpha1/rulev3 + labels: + testing.upbound.io/example-name: this + name: this +spec: + forProvider: + action: REDIRECT_TO_POOL + listenerId: ${opentelekomcloud_lb_listener_v3.this.id} + position: 37 + redirectPoolId: ${opentelekomcloud_lb_pool_v3.this.id} + +--- + +apiVersion: lb.crossplane.io/v1alpha1 +kind: PoolV3 +metadata: + annotations: + meta.upbound.io/example-id: lb/v1alpha1/rulev3 + labels: + testing.upbound.io/example-name: this + name: this +spec: + forProvider: + lbAlgorithm: ROUND_ROBIN + loadbalancerId: ${opentelekomcloud_lb_loadbalancer_v3.this.id} + protocol: HTTP diff --git a/examples-generated/lb/securitypolicyv3.yaml b/examples-generated/lb/securitypolicyv3.yaml new file mode 100644 index 0000000..5c232c8 --- /dev/null +++ b/examples-generated/lb/securitypolicyv3.yaml @@ -0,0 +1,18 @@ +apiVersion: lb.crossplane.io/v1alpha1 +kind: SecurityPolicyV3 +metadata: + annotations: + meta.upbound.io/example-id: lb/v1alpha1/securitypolicyv3 + labels: + testing.upbound.io/example-name: policy_1 + name: policy-1 +spec: + forProvider: + ciphers: + - ECDHE-ECDSA-AES128-SHA + - ECDHE-RSA-AES128-SHA + description: This is security policy + name: elb-security-policy + protocols: + - TLSv1 + - TLSv1.1 diff --git a/examples-generated/lb/whitelistv2.yaml b/examples-generated/lb/whitelistv2.yaml new file mode 100644 index 0000000..e71d965 --- /dev/null +++ b/examples-generated/lb/whitelistv2.yaml @@ -0,0 +1,13 @@ +apiVersion: lb.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/nat/dnatrulev2.yaml b/examples-generated/nat/dnatrulev2.yaml new file mode 100644 index 0000000..9e43a85 --- /dev/null +++ b/examples-generated/nat/dnatrulev2.yaml @@ -0,0 +1,16 @@ +apiVersion: nat.crossplane.io/v1alpha1 +kind: DnatRuleV2 +metadata: + annotations: + meta.upbound.io/example-id: nat/v1alpha1/dnatrulev2 + labels: + testing.upbound.io/example-name: dnat_1 + name: dnat-1 +spec: + forProvider: + externalServicePort: 242 + floatingIpId: ${var.floating_ip_id} + internalServicePort: 993 + natGatewayId: ${var.nat_gw_id} + privateIp: ${var.private_id} + protocol: tcp diff --git a/examples-generated/nat/gatewayv2.yaml b/examples-generated/nat/gatewayv2.yaml new file mode 100644 index 0000000..9eb6d50 --- /dev/null +++ b/examples-generated/nat/gatewayv2.yaml @@ -0,0 +1,17 @@ +apiVersion: nat.crossplane.io/v1alpha1 +kind: GatewayV2 +metadata: + annotations: + meta.upbound.io/example-id: nat/v1alpha1/gatewayv2 + labels: + testing.upbound.io/example-name: this + name: this +spec: + forProvider: + description: NAT GW created by terraform + internalNetworkId: ${var.internal_network_id} + name: tf_nat + routerId: ${var.router_id} + spec: "0" + tags: + muh: kuh diff --git a/examples-generated/nat/snatrulev2.yaml b/examples-generated/nat/snatrulev2.yaml new file mode 100644 index 0000000..c88f35d --- /dev/null +++ b/examples-generated/nat/snatrulev2.yaml @@ -0,0 +1,45 @@ +apiVersion: nat.crossplane.io/v1alpha1 +kind: SnatRuleV2 +metadata: + annotations: + meta.upbound.io/example-id: nat/v1alpha1/snatrulev2 + labels: + testing.upbound.io/example-name: snat_1 + name: snat-1 +spec: + forProvider: + cidr: 192.168.0.0/24 + floatingIpId: ${opentelekomcloud_networking_floatingip_v2.fip_1.id} + natGatewayId: ${opentelekomcloud_nat_gateway_v2.nat_1.id} + sourceType: 0 + +--- + +apiVersion: nat.crossplane.io/v1alpha1 +kind: GatewayV2 +metadata: + annotations: + meta.upbound.io/example-id: nat/v1alpha1/snatrulev2 + labels: + testing.upbound.io/example-name: nat_1 + name: nat-1 +spec: + forProvider: + description: test for terraform + internalNetworkId: ${var.network_id} + name: nat_1 + routerId: ${var.vpc_id} + spec: "1" + +--- + +apiVersion: networking.crossplane.io/v1alpha1 +kind: FloatingipV2 +metadata: + annotations: + meta.upbound.io/example-id: nat/v1alpha1/snatrulev2 + labels: + testing.upbound.io/example-name: fip_1 + name: fip-1 +spec: + forProvider: {} diff --git a/examples-generated/networking/floatingipassociatev2.yaml b/examples-generated/networking/floatingipassociatev2.yaml new file mode 100644 index 0000000..36fe801 --- /dev/null +++ b/examples-generated/networking/floatingipassociatev2.yaml @@ -0,0 +1,26 @@ +apiVersion: networking.crossplane.io/v1alpha1 +kind: FloatingipAssociateV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/floatingipassociatev2 + labels: + testing.upbound.io/example-name: fip_1 + name: fip-1 +spec: + forProvider: + floatingIp: 1.2.3.4 + portId: ${opentelekomcloud_networking_port_v2.port_1.id} + +--- + +apiVersion: networking.crossplane.io/v1alpha1 +kind: PortV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/floatingipassociatev2 + labels: + testing.upbound.io/example-name: port_1 + name: port-1 +spec: + forProvider: + networkId: a5bbd213-e1d3-49b6-aed1-9df60ea94b9a diff --git a/examples-generated/networking/floatingipv2.yaml b/examples-generated/networking/floatingipv2.yaml new file mode 100644 index 0000000..c35bc18 --- /dev/null +++ b/examples-generated/networking/floatingipv2.yaml @@ -0,0 +1,10 @@ +apiVersion: networking.crossplane.io/v1alpha1 +kind: FloatingipV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/floatingipv2 + labels: + testing.upbound.io/example-name: floatip_1 + name: floatip-1 +spec: + forProvider: {} diff --git a/examples-generated/networking/networkv2.yaml b/examples-generated/networking/networkv2.yaml new file mode 100644 index 0000000..c92c0c4 --- /dev/null +++ b/examples-generated/networking/networkv2.yaml @@ -0,0 +1,90 @@ +apiVersion: networking.crossplane.io/v1alpha1 +kind: NetworkV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/networkv2 + labels: + testing.upbound.io/example-name: network_1 + name: network-1 +spec: + forProvider: + adminStateUp: "true" + name: network_1 + +--- + +apiVersion: compute.crossplane.io/v1alpha1 +kind: InstanceV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/networkv2 + labels: + testing.upbound.io/example-name: instance_1 + name: instance-1 +spec: + forProvider: + name: instance_1 + network: + - port: ${opentelekomcloud_networking_port_v2.port_1.id} + securityGroupsRefs: + - name: secgroup_1 + +--- + +apiVersion: compute.crossplane.io/v1alpha1 +kind: SecgroupV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/networkv2 + labels: + testing.upbound.io/example-name: secgroup_1 + name: secgroup-1 +spec: + forProvider: + description: a security group + name: secgroup_1 + rule: + - cidr: 0.0.0.0/0 + fromPort: 22 + ipProtocol: tcp + toPort: 22 + +--- + +apiVersion: networking.crossplane.io/v1alpha1 +kind: PortV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/networkv2 + labels: + testing.upbound.io/example-name: port_1 + name: port-1 +spec: + forProvider: + adminStateUp: "true" + fixedIp: + - ipAddress: 192.168.199.10 + subnetId: ${opentelekomcloud_networking_subnet_v2.subnet_1.id} + name: port_1 + networkId: ${opentelekomcloud_networking_network_v2.network_1.id} + securityGroupIds: + - ${opentelekomcloud_compute_secgroup_v2.secgroup_1.id} + +--- + +apiVersion: networking.crossplane.io/v1alpha1 +kind: SubnetV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/networkv2 + labels: + testing.upbound.io/example-name: subnet_1 + name: subnet-1 +spec: + forProvider: + cidr: 192.168.199.0/24 + ipVersion: 4 + name: subnet_1 + networkIdSelector: + matchLabels: + testing.upbound.io/example-name: network_1 diff --git a/examples-generated/networking/portsecgroupassociatev2.yaml b/examples-generated/networking/portsecgroupassociatev2.yaml new file mode 100644 index 0000000..362b83b --- /dev/null +++ b/examples-generated/networking/portsecgroupassociatev2.yaml @@ -0,0 +1,13 @@ +apiVersion: networking.crossplane.io/v1alpha1 +kind: PortSecgroupAssociateV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/portsecgroupassociatev2 + labels: + testing.upbound.io/example-name: port_1 + name: port-1 +spec: + forProvider: + portId: ${data.opentelekomcloud_networking_port_v2.system_port.id} + securityGroupIds: + - ${data.opentelekomcloud_networking_secgroup_v2.secgroup.id} diff --git a/examples-generated/networking/portv2.yaml b/examples-generated/networking/portv2.yaml new file mode 100644 index 0000000..347a603 --- /dev/null +++ b/examples-generated/networking/portv2.yaml @@ -0,0 +1,50 @@ +apiVersion: networking.crossplane.io/v1alpha1 +kind: PortV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/portv2 + labels: + testing.upbound.io/example-name: port_1 + name: port-1 +spec: + forProvider: + adminStateUp: "true" + fixedIp: + - ipAddress: 192.168.199.23 + subnetId: ${opentelekomcloud_networking_subnet_v2.subnet_1.id} + name: port_1 + networkId: ${opentelekomcloud_networking_network_v2.network_1.id} + +--- + +apiVersion: networking.crossplane.io/v1alpha1 +kind: NetworkV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/portv2 + labels: + testing.upbound.io/example-name: network_1 + name: network-1 +spec: + forProvider: + adminStateUp: "true" + name: network_1 + +--- + +apiVersion: networking.crossplane.io/v1alpha1 +kind: SubnetV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/portv2 + labels: + testing.upbound.io/example-name: subnet_1 + name: subnet-1 +spec: + forProvider: + cidr: 192.168.199.0/24 + ipVersion: 4 + name: subnet_1 + networkIdSelector: + matchLabels: + testing.upbound.io/example-name: network_1 diff --git a/examples-generated/networking/routerinterfacev2.yaml b/examples-generated/networking/routerinterfacev2.yaml new file mode 100644 index 0000000..6260893 --- /dev/null +++ b/examples-generated/networking/routerinterfacev2.yaml @@ -0,0 +1,64 @@ +apiVersion: networking.crossplane.io/v1alpha1 +kind: RouterInterfaceV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/routerinterfacev2 + labels: + testing.upbound.io/example-name: router_interface_1 + name: router-interface-1 +spec: + forProvider: + routerIdSelector: + matchLabels: + testing.upbound.io/example-name: router_1 + subnetIdSelector: + matchLabels: + testing.upbound.io/example-name: subnet_1 + +--- + +apiVersion: networking.crossplane.io/v1alpha1 +kind: NetworkV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/routerinterfacev2 + labels: + testing.upbound.io/example-name: network_1 + name: network-1 +spec: + forProvider: + adminStateUp: "true" + name: tf_test_network + +--- + +apiVersion: networking.crossplane.io/v1alpha1 +kind: RouterV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/routerinterfacev2 + labels: + testing.upbound.io/example-name: router_1 + name: router-1 +spec: + forProvider: + externalGateway: f67f0d72-0ddf-11e4-9d95-e1f29f417e2f + name: my_router + +--- + +apiVersion: networking.crossplane.io/v1alpha1 +kind: SubnetV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/routerinterfacev2 + labels: + testing.upbound.io/example-name: subnet_1 + name: subnet-1 +spec: + forProvider: + cidr: 192.168.199.0/24 + ipVersion: 4 + networkIdSelector: + matchLabels: + testing.upbound.io/example-name: network_1 diff --git a/examples-generated/networking/routerroutev2.yaml b/examples-generated/networking/routerroutev2.yaml new file mode 100644 index 0000000..629f66d --- /dev/null +++ b/examples-generated/networking/routerroutev2.yaml @@ -0,0 +1,80 @@ +apiVersion: networking.crossplane.io/v1alpha1 +kind: RouterRouteV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/routerroutev2 + labels: + testing.upbound.io/example-name: router_route_1 + name: router-route-1 +spec: + forProvider: + destinationCidr: 10.0.1.0/24 + nextHop: 192.168.199.254 + routerId: ${opentelekomcloud_networking_router_v2.router_1.id} + +--- + +apiVersion: networking.crossplane.io/v1alpha1 +kind: NetworkV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/routerroutev2 + labels: + testing.upbound.io/example-name: network_1 + name: network-1 +spec: + forProvider: + adminStateUp: "true" + name: network_1 + +--- + +apiVersion: networking.crossplane.io/v1alpha1 +kind: RouterInterfaceV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/routerroutev2 + labels: + testing.upbound.io/example-name: int_1 + name: int-1 +spec: + forProvider: + routerIdSelector: + matchLabels: + testing.upbound.io/example-name: router_1 + subnetIdSelector: + matchLabels: + testing.upbound.io/example-name: subnet_1 + +--- + +apiVersion: networking.crossplane.io/v1alpha1 +kind: RouterV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/routerroutev2 + labels: + testing.upbound.io/example-name: router_1 + name: router-1 +spec: + forProvider: + adminStateUp: "true" + name: router_1 + +--- + +apiVersion: networking.crossplane.io/v1alpha1 +kind: SubnetV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/routerroutev2 + labels: + testing.upbound.io/example-name: subnet_1 + name: subnet-1 +spec: + forProvider: + cidr: 192.168.199.0/24 + ipVersion: 4 + networkIdSelector: + matchLabels: + testing.upbound.io/example-name: network_1 diff --git a/examples-generated/networking/routerv2.yaml b/examples-generated/networking/routerv2.yaml new file mode 100644 index 0000000..eb1a8c9 --- /dev/null +++ b/examples-generated/networking/routerv2.yaml @@ -0,0 +1,12 @@ +apiVersion: networking.crossplane.io/v1alpha1 +kind: RouterV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/routerv2 + labels: + testing.upbound.io/example-name: router_1 + name: router-1 +spec: + forProvider: + externalGateway: f67f0d72-0ddf-11e4-9d95-e1f29f417e2f + name: my_router diff --git a/examples-generated/networking/secgrouprulev2.yaml b/examples-generated/networking/secgrouprulev2.yaml new file mode 100644 index 0000000..4f76966 --- /dev/null +++ b/examples-generated/networking/secgrouprulev2.yaml @@ -0,0 +1,32 @@ +apiVersion: networking.crossplane.io/v1alpha1 +kind: SecgroupRuleV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/secgrouprulev2 + labels: + testing.upbound.io/example-name: secgroup_rule_1 + name: secgroup-rule-1 +spec: + forProvider: + direction: ingress + ethertype: IPv4 + portRangeMax: 22 + portRangeMin: 22 + protocol: tcp + remoteIpPrefix: 0.0.0.0/0 + securityGroupId: ${opentelekomcloud_networking_secgroup_v2.secgroup_1.id} + +--- + +apiVersion: networking.crossplane.io/v1alpha1 +kind: SecgroupV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/secgrouprulev2 + labels: + testing.upbound.io/example-name: secgroup_1 + name: secgroup-1 +spec: + forProvider: + description: My neutron security group + name: secgroup_1 diff --git a/examples-generated/networking/secgroupv2.yaml b/examples-generated/networking/secgroupv2.yaml new file mode 100644 index 0000000..5c83140 --- /dev/null +++ b/examples-generated/networking/secgroupv2.yaml @@ -0,0 +1,12 @@ +apiVersion: networking.crossplane.io/v1alpha1 +kind: SecgroupV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/secgroupv2 + labels: + testing.upbound.io/example-name: secgroup_1 + name: secgroup-1 +spec: + forProvider: + description: My neutron security group + name: secgroup_1 diff --git a/examples-generated/networking/subnetv2.yaml b/examples-generated/networking/subnetv2.yaml new file mode 100644 index 0000000..1e60b9b --- /dev/null +++ b/examples-generated/networking/subnetv2.yaml @@ -0,0 +1,29 @@ +apiVersion: networking.crossplane.io/v1alpha1 +kind: SubnetV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/subnetv2 + labels: + testing.upbound.io/example-name: subnet_1 + name: subnet-1 +spec: + forProvider: + cidr: 192.168.199.0/24 + networkIdSelector: + matchLabels: + testing.upbound.io/example-name: network_1 + +--- + +apiVersion: networking.crossplane.io/v1alpha1 +kind: NetworkV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/subnetv2 + labels: + testing.upbound.io/example-name: network_1 + name: network-1 +spec: + forProvider: + adminStateUp: "true" + name: tf_test_network diff --git a/examples-generated/networking/vipassociatev2.yaml b/examples-generated/networking/vipassociatev2.yaml new file mode 100644 index 0000000..99df19b --- /dev/null +++ b/examples-generated/networking/vipassociatev2.yaml @@ -0,0 +1,169 @@ +apiVersion: networking.crossplane.io/v1alpha1 +kind: VipAssociateV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/vipassociatev2 + labels: + testing.upbound.io/example-name: vip_associate_1 + name: vip-associate-1 +spec: + forProvider: + portIds: + - ${opentelekomcloud_networking_port_v2.port_1.id} + - ${opentelekomcloud_networking_port_v2.port_2.id} + vipId: ${opentelekomcloud_networking_vip_v2.vip_1.id} + +--- + +apiVersion: compute.crossplane.io/v1alpha1 +kind: InstanceV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/vipassociatev2 + labels: + testing.upbound.io/example-name: instance_1 + name: instance-1 +spec: + forProvider: + name: instance_1 + network: + - port: ${opentelekomcloud_networking_port_v2.port_1.id} + securityGroupsRefs: + - name: example + +--- + +apiVersion: compute.crossplane.io/v1alpha1 +kind: InstanceV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/vipassociatev2 + labels: + testing.upbound.io/example-name: instance_2 + name: instance-2 +spec: + forProvider: + name: instance_2 + network: + - port: ${opentelekomcloud_networking_port_v2.port_1.id} + securityGroupsRefs: + - name: example + +--- + +apiVersion: networking.crossplane.io/v1alpha1 +kind: NetworkV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/vipassociatev2 + labels: + testing.upbound.io/example-name: network_1 + name: network-1 +spec: + forProvider: + adminStateUp: "true" + name: network_1 + +--- + +apiVersion: networking.crossplane.io/v1alpha1 +kind: PortV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/vipassociatev2 + labels: + testing.upbound.io/example-name: port_1 + name: port-1 +spec: + forProvider: + adminStateUp: "true" + fixedIp: + - subnetId: ${opentelekomcloud_networking_subnet_v2.subnet_1.id} + name: port_1 + networkId: ${opentelekomcloud_networking_network_v2.network_1.id} + +--- + +apiVersion: networking.crossplane.io/v1alpha1 +kind: PortV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/vipassociatev2 + labels: + testing.upbound.io/example-name: port_2 + name: port-2 +spec: + forProvider: + adminStateUp: "true" + fixedIp: + - subnetId: ${opentelekomcloud_networking_subnet_v2.subnet_1.id} + name: port_2 + networkId: ${opentelekomcloud_networking_network_v2.network_1.id} + +--- + +apiVersion: networking.crossplane.io/v1alpha1 +kind: RouterInterfaceV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/vipassociatev2 + labels: + testing.upbound.io/example-name: router_interface_1 + name: router-interface-1 +spec: + forProvider: + routerIdSelector: + matchLabels: + testing.upbound.io/example-name: router_1 + subnetIdSelector: + matchLabels: + testing.upbound.io/example-name: subnet_1 + +--- + +apiVersion: networking.crossplane.io/v1alpha1 +kind: RouterV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/vipassociatev2 + labels: + testing.upbound.io/example-name: router_1 + name: router-1 +spec: + forProvider: + externalGateway: 0a2228f2-7f8a-45f1-8e09-9039e1d09975 + name: router_1 + +--- + +apiVersion: networking.crossplane.io/v1alpha1 +kind: SubnetV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/vipassociatev2 + labels: + testing.upbound.io/example-name: subnet_1 + name: subnet-1 +spec: + forProvider: + cidr: 192.168.199.0/24 + ipVersion: 4 + name: subnet_1 + networkIdSelector: + matchLabels: + testing.upbound.io/example-name: network_1 + +--- + +apiVersion: networking.crossplane.io/v1alpha1 +kind: VipV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/vipassociatev2 + labels: + testing.upbound.io/example-name: vip_1 + name: vip-1 +spec: + forProvider: + networkId: ${opentelekomcloud_networking_network_v2.network_1.id} + subnetId: ${opentelekomcloud_networking_subnet_v2.subnet_1.id} diff --git a/examples-generated/networking/vipv2.yaml b/examples-generated/networking/vipv2.yaml new file mode 100644 index 0000000..730ba49 --- /dev/null +++ b/examples-generated/networking/vipv2.yaml @@ -0,0 +1,80 @@ +apiVersion: networking.crossplane.io/v1alpha1 +kind: VipV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/vipv2 + labels: + testing.upbound.io/example-name: vip_1 + name: vip-1 +spec: + forProvider: + networkId: ${opentelekomcloud_networking_network_v2.network_1.id} + subnetId: ${opentelekomcloud_networking_subnet_v2.subnet_1.id} + +--- + +apiVersion: networking.crossplane.io/v1alpha1 +kind: NetworkV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/vipv2 + labels: + testing.upbound.io/example-name: network_1 + name: network-1 +spec: + forProvider: + adminStateUp: "true" + name: network_1 + +--- + +apiVersion: networking.crossplane.io/v1alpha1 +kind: RouterInterfaceV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/vipv2 + labels: + testing.upbound.io/example-name: router_interface_1 + name: router-interface-1 +spec: + forProvider: + routerIdSelector: + matchLabels: + testing.upbound.io/example-name: router_1 + subnetIdSelector: + matchLabels: + testing.upbound.io/example-name: subnet_1 + +--- + +apiVersion: networking.crossplane.io/v1alpha1 +kind: RouterV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/vipv2 + labels: + testing.upbound.io/example-name: router_1 + name: router-1 +spec: + forProvider: + externalGateway: 0a2228f2-7f8a-45f1-8e09-9039e1d09975 + name: router_1 + +--- + +apiVersion: networking.crossplane.io/v1alpha1 +kind: SubnetV2 +metadata: + annotations: + meta.upbound.io/example-id: networking/v1alpha1/vipv2 + labels: + testing.upbound.io/example-name: subnet_1 + name: subnet-1 +spec: + forProvider: + cidr: 192.168.199.0/24 + ipVersion: 4 + name: subnet_1 + networkIdSelector: + matchLabels: + testing.upbound.io/example-name: network_1 diff --git a/examples-generated/null/resource.yaml b/examples-generated/null/resource.yaml deleted file mode 100644 index 59f7545..0000000 --- a/examples-generated/null/resource.yaml +++ /dev/null @@ -1,18 +0,0 @@ -apiVersion: null.template.upbound.io/v1alpha1 -kind: Resource -metadata: - annotations: - meta.upbound.io/example-id: null/v1alpha1/resource - labels: - testing.upbound.io/example-name: cluster - name: cluster -spec: - forProvider: - connection: - - host: ${element(aws_instance.cluster.*.public_ip, 0)} - provisioner: - remote-exec: - - inline: - - bootstrap-cluster.sh ${join(" ", aws_instance.cluster.*.private_ip)} - triggers: - cluster_instance_ids: ${join(",", aws_instance.cluster.*.id)} diff --git a/examples-generated/obs/bucket.yaml b/examples-generated/obs/bucket.yaml new file mode 100644 index 0000000..4bf3333 --- /dev/null +++ b/examples-generated/obs/bucket.yaml @@ -0,0 +1,15 @@ +apiVersion: obs.crossplane.io/v1alpha1 +kind: Bucket +metadata: + annotations: + meta.upbound.io/example-id: obs/v1alpha1/bucket + labels: + testing.upbound.io/example-name: b + name: b +spec: + forProvider: + acl: private + bucket: my-tf-test-bucket + tags: + Env: Test + foo: bar diff --git a/examples-generated/obs/bucketinventory.yaml b/examples-generated/obs/bucketinventory.yaml new file mode 100644 index 0000000..7e8c554 --- /dev/null +++ b/examples-generated/obs/bucketinventory.yaml @@ -0,0 +1,34 @@ +apiVersion: obs.crossplane.io/v1alpha1 +kind: BucketInventory +metadata: + annotations: + meta.upbound.io/example-id: obs/v1alpha1/bucketinventory + labels: + testing.upbound.io/example-name: inventory + name: inventory +spec: + forProvider: + bucket: my-tf-test-bucket + configurationId: test-id + destination: + - bucket: my-tf-test-bucket + format: CSV + prefix: test- + filterPrefix: test-filter-prefix + frequency: Weekly + includedObjectVersions: Current + isEnabled: true + +--- + +apiVersion: obs.crossplane.io/v1alpha1 +kind: Bucket +metadata: + annotations: + meta.upbound.io/example-id: obs/v1alpha1/bucketinventory + labels: + testing.upbound.io/example-name: bucket + name: bucket +spec: + forProvider: + bucket: my-tf-test-bucket diff --git a/examples-generated/obs/bucketobject.yaml b/examples-generated/obs/bucketobject.yaml new file mode 100644 index 0000000..7a34ea5 --- /dev/null +++ b/examples-generated/obs/bucketobject.yaml @@ -0,0 +1,14 @@ +apiVersion: obs.crossplane.io/v1alpha1 +kind: BucketObject +metadata: + annotations: + meta.upbound.io/example-id: obs/v1alpha1/bucketobject + labels: + testing.upbound.io/example-name: object + name: object +spec: + forProvider: + bucket: your_bucket_name + content: some object content + contentType: application/xml + key: new_key_from_content diff --git a/examples-generated/obs/bucketpolicy.yaml b/examples-generated/obs/bucketpolicy.yaml new file mode 100644 index 0000000..5781321 --- /dev/null +++ b/examples-generated/obs/bucketpolicy.yaml @@ -0,0 +1,26 @@ +apiVersion: obs.crossplane.io/v1alpha1 +kind: BucketPolicy +metadata: + annotations: + meta.upbound.io/example-id: obs/v1alpha1/bucketpolicy + labels: + testing.upbound.io/example-name: policy + name: policy +spec: + forProvider: + bucket: ${opentelekomcloud_obs_bucket.bucket.id} + policy: my-tf-test-bucket + +--- + +apiVersion: obs.crossplane.io/v1alpha1 +kind: Bucket +metadata: + annotations: + meta.upbound.io/example-id: obs/v1alpha1/bucketpolicy + labels: + testing.upbound.io/example-name: bucket + name: bucket +spec: + forProvider: + bucket: my-tf-test-bucket diff --git a/examples-generated/obs/bucketreplication.yaml b/examples-generated/obs/bucketreplication.yaml new file mode 100644 index 0000000..8359bed --- /dev/null +++ b/examples-generated/obs/bucketreplication.yaml @@ -0,0 +1,13 @@ +apiVersion: obs.crossplane.io/v1alpha1 +kind: BucketReplication +metadata: + annotations: + meta.upbound.io/example-id: obs/v1alpha1/bucketreplication + labels: + testing.upbound.io/example-name: test + name: test +spec: + forProvider: + agency: ${var.agency} + bucket: ${var.bucket} + destinationBucket: ${var.destination_bucket} diff --git a/examples-generated/rds/backupv3.yaml b/examples-generated/rds/backupv3.yaml new file mode 100644 index 0000000..df346cd --- /dev/null +++ b/examples-generated/rds/backupv3.yaml @@ -0,0 +1,30 @@ +apiVersion: rds.crossplane.io/v1alpha1 +kind: BackupV3 +metadata: + annotations: + meta.upbound.io/example-id: rds/v1alpha1/backupv3 + labels: + testing.upbound.io/example-name: test + name: test +spec: + forProvider: + description: manual + instanceId: ${opentelekomcloud_rds_instance_v3.instance.id} + name: rds-backup-test-01 + +--- + +apiVersion: rds.crossplane.io/v1alpha1 +kind: InstanceV3 +metadata: + annotations: + meta.upbound.io/example-id: rds/v1alpha1/backupv3 + labels: + testing.upbound.io/example-name: instance + name: instance +spec: + forProvider: + datastore: percona + engine: mysql + flavor_ref: rds.mysql.s1.large + name: test-instance diff --git a/examples-generated/rds/instancev1.yaml b/examples-generated/rds/instancev1.yaml new file mode 100644 index 0000000..2cb57cf --- /dev/null +++ b/examples-generated/rds/instancev1.yaml @@ -0,0 +1,50 @@ +apiVersion: rds.crossplane.io/v1alpha1 +kind: InstanceV1 +metadata: + annotations: + meta.upbound.io/example-id: rds/v1alpha1/instancev1 + labels: + testing.upbound.io/example-name: instance + name: instance +spec: + forProvider: + availabilityzone: eu-de-01 + backupstrategy: + - keepdays: 4 + starttime: "04:00:00" + datastore: + - type: PostgreSQL + version: 9.5.5 + dbport: "8635" + dbrtpd: P@ssw0rd1!9851 + flavorref: ${data.opentelekomcloud_rds_flavors_v1.flavor.id} + ha: + - enable: true + replicationmode: async + name: rds-instance + nics: + - subnetid: b65f8d25-c533-47e2-8601-cfaa265a3e3e + securitygroup: + - id: ${opentelekomcloud_compute_secgroup_v2.secgrp_rds.id} + tag: + foo: bar + key: value + volume: + - size: 200 + type: COMMON + vpc: c1095fe7-03df-4205-ad2d-6f4c181d436e + +--- + +apiVersion: compute.crossplane.io/v1alpha1 +kind: SecgroupV2 +metadata: + annotations: + meta.upbound.io/example-id: rds/v1alpha1/instancev1 + labels: + testing.upbound.io/example-name: secgrp_rds + name: secgrp-rds +spec: + forProvider: + description: Rds Security Group + name: secgrp-rds-instance diff --git a/examples-generated/rds/instancev3.yaml b/examples-generated/rds/instancev3.yaml new file mode 100644 index 0000000..073d8ec --- /dev/null +++ b/examples-generated/rds/instancev3.yaml @@ -0,0 +1,49 @@ +apiVersion: rds.crossplane.io/v1alpha1 +kind: InstanceV3 +metadata: + annotations: + meta.upbound.io/example-id: rds/v1alpha1/instancev3 + labels: + testing.upbound.io/example-name: instance + name: instance +spec: + forProvider: + availabilityZone: + - ${var.availability_zone} + backupStrategy: + - keepDays: 1 + startTime: 08:00-09:00 + db: + - passwordSecretRef: + key: example-key + name: example-secret + namespace: upbound-system + port: "8635" + type: PostgreSQL + version: "9.5" + flavor: rds.pg.c2.medium + name: terraform_test_rds_instance + securityGroupId: ${opentelekomcloud_networking_secgroup_v2.secgroup.id} + subnetId: ${var.subnet_id} + tags: + foo: bar + key: value + volume: + - size: 100 + type: COMMON + vpcId: ${var.vpc_id} + +--- + +apiVersion: networking.crossplane.io/v1alpha1 +kind: SecgroupV2 +metadata: + annotations: + meta.upbound.io/example-id: rds/v1alpha1/instancev3 + labels: + testing.upbound.io/example-name: secgroup + name: secgroup +spec: + forProvider: + description: terraform security group acceptance test + name: terraform_test_security_group diff --git a/examples-generated/rds/parametergroupv3.yaml b/examples-generated/rds/parametergroupv3.yaml new file mode 100644 index 0000000..a3ae5a3 --- /dev/null +++ b/examples-generated/rds/parametergroupv3.yaml @@ -0,0 +1,18 @@ +apiVersion: rds.crossplane.io/v1alpha1 +kind: ParametergroupV3 +metadata: + annotations: + meta.upbound.io/example-id: rds/v1alpha1/parametergroupv3 + labels: + testing.upbound.io/example-name: pg_1 + name: pg-1 +spec: + forProvider: + datastore: + - type: mysql + version: "5.6" + description: some description here + name: pg_1 + values: + autocommit: "OFF" + max_connections: "10" diff --git a/examples-generated/rds/readreplicav3.yaml b/examples-generated/rds/readreplicav3.yaml new file mode 100644 index 0000000..b047414 --- /dev/null +++ b/examples-generated/rds/readreplicav3.yaml @@ -0,0 +1,51 @@ +apiVersion: rds.crossplane.io/v1alpha1 +kind: ReadReplicaV3 +metadata: + annotations: + meta.upbound.io/example-id: rds/v1alpha1/readreplicav3 + labels: + testing.upbound.io/example-name: replica + name: replica +spec: + forProvider: + availabilityZone: ${var.az_replica} + flavorRef: rds.pg.c2.medium + name: test-replica + replicaOfId: ${opentelekomcloud_rds_instance_v3.instance.id} + volume: + - type: COMMON + +--- + +apiVersion: rds.crossplane.io/v1alpha1 +kind: InstanceV3 +metadata: + annotations: + meta.upbound.io/example-id: rds/v1alpha1/readreplicav3 + labels: + testing.upbound.io/example-name: instance + name: instance +spec: + forProvider: + availabilityZone: ${var.az_main} + backupStrategy: + - keepDays: 1 + startTime: 08:00-09:00 + db: + - passwordSecretRef: + key: example-key + name: example-secret + namespace: upbound-system + port: "8635" + type: PostgreSQL + version: "10" + flavor: rds.pg.c2.medium + name: test-instance + securityGroupId: ${var.sg_id} + subnetId: ${var.os_network_id} + tag: + created: terraform + volume: + - size: 40 + type: ULTRAHIGH + vpcId: ${var.os_router_id} diff --git a/examples-generated/s3/bucket.yaml b/examples-generated/s3/bucket.yaml new file mode 100644 index 0000000..7ce790d --- /dev/null +++ b/examples-generated/s3/bucket.yaml @@ -0,0 +1,15 @@ +apiVersion: s3.crossplane.io/v1alpha1 +kind: Bucket +metadata: + annotations: + meta.upbound.io/example-id: s3/v1alpha1/bucket + labels: + testing.upbound.io/example-name: bucket + name: bucket +spec: + forProvider: + acl: private + bucket: my-tf-test-bucket + tags: + Environment: Dev + Name: My bucket diff --git a/examples-generated/s3/bucketobject.yaml b/examples-generated/s3/bucketobject.yaml new file mode 100644 index 0000000..53c49df --- /dev/null +++ b/examples-generated/s3/bucketobject.yaml @@ -0,0 +1,29 @@ +apiVersion: s3.crossplane.io/v1alpha1 +kind: BucketObject +metadata: + annotations: + meta.upbound.io/example-id: s3/v1alpha1/bucketobject + labels: + testing.upbound.io/example-name: object + name: object +spec: + forProvider: + bucket: your_bucket_name + etag: ${md5(file("path/to/file"))} + key: new_object_key + source: path/to/file + +--- + +apiVersion: s3.crossplane.io/v1alpha1 +kind: Bucket +metadata: + annotations: + meta.upbound.io/example-id: s3/v1alpha1/bucketobject + labels: + testing.upbound.io/example-name: examplebucket + name: examplebucket +spec: + forProvider: + acl: private + bucket: examplebuckettftest diff --git a/examples-generated/s3/bucketpolicy.yaml b/examples-generated/s3/bucketpolicy.yaml new file mode 100644 index 0000000..739b862 --- /dev/null +++ b/examples-generated/s3/bucketpolicy.yaml @@ -0,0 +1,26 @@ +apiVersion: s3.crossplane.io/v1alpha1 +kind: BucketPolicy +metadata: + annotations: + meta.upbound.io/example-id: s3/v1alpha1/bucketpolicy + labels: + testing.upbound.io/example-name: b + name: b +spec: + forProvider: + bucket: ${opentelekomcloud_s3_bucket.b.id} + policy: my-tf-test-bucket + +--- + +apiVersion: s3.crossplane.io/v1alpha1 +kind: Bucket +metadata: + annotations: + meta.upbound.io/example-id: s3/v1alpha1/bucketpolicy + labels: + testing.upbound.io/example-name: b + name: b +spec: + forProvider: + bucket: my-tf-test-bucket diff --git a/examples-generated/sfs/filesystemv2.yaml b/examples-generated/sfs/filesystemv2.yaml new file mode 100644 index 0000000..4e757ef --- /dev/null +++ b/examples-generated/sfs/filesystemv2.yaml @@ -0,0 +1,16 @@ +apiVersion: sfs.crossplane.io/v1alpha1 +kind: FileSystemV2 +metadata: + annotations: + meta.upbound.io/example-id: sfs/v1alpha1/filesystemv2 + labels: + testing.upbound.io/example-name: share-file + name: share-file +spec: + forProvider: + description: ${var.share_description} + name: ${var.share_name} + shareProto: NFS + size: 50 + tags: + muh: kuh diff --git a/examples-generated/sfs/shareaccessrulesv2.yaml b/examples-generated/sfs/shareaccessrulesv2.yaml new file mode 100644 index 0000000..af0972a --- /dev/null +++ b/examples-generated/sfs/shareaccessrulesv2.yaml @@ -0,0 +1,65 @@ +apiVersion: sfs.crossplane.io/v1alpha1 +kind: ShareAccessRulesV2 +metadata: + annotations: + meta.upbound.io/example-id: sfs/v1alpha1/shareaccessrulesv2 + labels: + testing.upbound.io/example-name: sfs_rules + name: sfs-rules +spec: + forProvider: + accessRule: + - accessLevel: rw + accessTo: ${opentelekomcloud_vpc_v1.vpc_1.id} + accessType: cert + - accessLevel: rw + accessTo: ${opentelekomcloud_vpc_v1.vpc_2.id} + accessType: cert + shareId: ${opentelekomcloud_sfs_file_system_v2.sfs_1.id} + +--- + +apiVersion: sfs.crossplane.io/v1alpha1 +kind: FileSystemV2 +metadata: + annotations: + meta.upbound.io/example-id: sfs/v1alpha1/shareaccessrulesv2 + labels: + testing.upbound.io/example-name: sfs_1 + name: sfs-1 +spec: + forProvider: + description: ${var.share_description} + name: ${var.share_name} + shareProto: NFS + size: 50 + +--- + +apiVersion: vpc.crossplane.io/v1alpha1 +kind: V1 +metadata: + annotations: + meta.upbound.io/example-id: sfs/v1alpha1/shareaccessrulesv2 + labels: + testing.upbound.io/example-name: vpc_1 + name: vpc-1 +spec: + forProvider: + cidr: 192.168.0.0/16 + name: sfs_share_vpc_1 + +--- + +apiVersion: vpc.crossplane.io/v1alpha1 +kind: V1 +metadata: + annotations: + meta.upbound.io/example-id: sfs/v1alpha1/shareaccessrulesv2 + labels: + testing.upbound.io/example-name: vpc_2 + name: vpc-2 +spec: + forProvider: + cidr: 192.168.0.0/16 + name: sfs_share_vpc_2 diff --git a/examples-generated/sfs/turbosharev1.yaml b/examples-generated/sfs/turbosharev1.yaml new file mode 100644 index 0000000..c760314 --- /dev/null +++ b/examples-generated/sfs/turbosharev1.yaml @@ -0,0 +1,17 @@ +apiVersion: sfs.crossplane.io/v1alpha1 +kind: TurboShareV1 +metadata: + annotations: + meta.upbound.io/example-id: sfs/v1alpha1/turbosharev1 + labels: + testing.upbound.io/example-name: sfs-turbo + name: sfs-turbo +spec: + forProvider: + availabilityZone: ${var.az} + name: sfs-turbo + securityGroupId: ${var.sg_id} + shareProto: NFS + size: 500 + subnetId: ${var.subnet_id} + vpcId: ${var.vpc_id} diff --git a/examples-generated/smn/subscriptionv2.yaml b/examples-generated/smn/subscriptionv2.yaml new file mode 100644 index 0000000..8bc79bc --- /dev/null +++ b/examples-generated/smn/subscriptionv2.yaml @@ -0,0 +1,29 @@ +apiVersion: smn.crossplane.io/v1alpha1 +kind: SubscriptionV2 +metadata: + annotations: + meta.upbound.io/example-id: smn/v1alpha1/subscriptionv2 + labels: + testing.upbound.io/example-name: subscription_1 + name: subscription-1 +spec: + forProvider: + endpoint: mailtest@gmail.com + protocol: email + remark: O&M + topicUrn: ${opentelekomcloud_smn_topic_v2.topic_1.id} + +--- + +apiVersion: smn.crossplane.io/v1alpha1 +kind: TopicV2 +metadata: + annotations: + meta.upbound.io/example-id: smn/v1alpha1/subscriptionv2 + labels: + testing.upbound.io/example-name: topic_1 + name: topic-1 +spec: + forProvider: + displayName: The display name of topic_1 + name: topic_1 diff --git a/examples-generated/smn/topicattributev2.yaml b/examples-generated/smn/topicattributev2.yaml new file mode 100644 index 0000000..46c15cb --- /dev/null +++ b/examples-generated/smn/topicattributev2.yaml @@ -0,0 +1,48 @@ +apiVersion: smn.crossplane.io/v1alpha1 +kind: TopicAttributeV2 +metadata: + annotations: + meta.upbound.io/example-id: smn/v1alpha1/topicattributev2 + labels: + testing.upbound.io/example-name: attribute_1 + name: attribute-1 +spec: + forProvider: + attributeName: access_policy + topicAttribute: | + { + "Version": "2016-09-07", + "Id": "__default_policy_ID", + "Statement": [ + { + "Sid": "__service_pub_0", + "Effect": "Allow", + "Principal": { + "Service": [ + "OBS" + ] + }, + "Action": [ + "SMN:Publish", + "SMN:QueryTopicDetail" + ], + "Resource": "${opentelekomcloud_smn_topic_v2.topic_1.topic_urn}" + } + ] + } + topicUrn: ${opentelekomcloud_smn_topic_v2.topic_1.topic_urn} + +--- + +apiVersion: smn.crossplane.io/v1alpha1 +kind: TopicV2 +metadata: + annotations: + meta.upbound.io/example-id: smn/v1alpha1/topicattributev2 + labels: + testing.upbound.io/example-name: topic_1 + name: topic-1 +spec: + forProvider: + displayName: The display name of topic_1 + name: topic_1 diff --git a/examples-generated/smn/topicv2.yaml b/examples-generated/smn/topicv2.yaml new file mode 100644 index 0000000..0ab718a --- /dev/null +++ b/examples-generated/smn/topicv2.yaml @@ -0,0 +1,15 @@ +apiVersion: smn.crossplane.io/v1alpha1 +kind: TopicV2 +metadata: + annotations: + meta.upbound.io/example-id: smn/v1alpha1/topicv2 + labels: + testing.upbound.io/example-name: topic_1 + name: topic-1 +spec: + forProvider: + displayName: The display name of topic_1 + name: topic_1 + tags: + foo: bar + key: value diff --git a/examples-generated/vpc/bandwidthassociatev2.yaml b/examples-generated/vpc/bandwidthassociatev2.yaml new file mode 100644 index 0000000..2cb1609 --- /dev/null +++ b/examples-generated/vpc/bandwidthassociatev2.yaml @@ -0,0 +1,55 @@ +apiVersion: vpc.crossplane.io/v1alpha1 +kind: BandwidthAssociateV2 +metadata: + annotations: + meta.upbound.io/example-id: vpc/v1alpha1/bandwidthassociatev2 + labels: + testing.upbound.io/example-name: associate + name: associate +spec: + forProvider: + bandwidth: ${opentelekomcloud_vpc_bandwidth_v2.band20m.id} + floatingIps: + - ${opentelekomcloud_networking_floatingip_v2.ip1.id} + - ${opentelekomcloud_networking_floatingip_v2.ip2.id} + +--- + +apiVersion: networking.crossplane.io/v1alpha1 +kind: FloatingipV2 +metadata: + annotations: + meta.upbound.io/example-id: vpc/v1alpha1/bandwidthassociatev2 + labels: + testing.upbound.io/example-name: ip1 + name: ip1 +spec: + forProvider: {} + +--- + +apiVersion: networking.crossplane.io/v1alpha1 +kind: FloatingipV2 +metadata: + annotations: + meta.upbound.io/example-id: vpc/v1alpha1/bandwidthassociatev2 + labels: + testing.upbound.io/example-name: ip2 + name: ip2 +spec: + forProvider: {} + +--- + +apiVersion: vpc.crossplane.io/v1alpha1 +kind: BandwidthV2 +metadata: + annotations: + meta.upbound.io/example-id: vpc/v1alpha1/bandwidthassociatev2 + labels: + testing.upbound.io/example-name: band20m + name: band20m +spec: + forProvider: + name: bandwidth-20MBit + size: 20 diff --git a/examples-generated/vpc/bandwidthv2.yaml b/examples-generated/vpc/bandwidthv2.yaml new file mode 100644 index 0000000..6eb8892 --- /dev/null +++ b/examples-generated/vpc/bandwidthv2.yaml @@ -0,0 +1,12 @@ +apiVersion: vpc.crossplane.io/v1alpha1 +kind: BandwidthV2 +metadata: + annotations: + meta.upbound.io/example-id: vpc/v1alpha1/bandwidthv2 + labels: + testing.upbound.io/example-name: band_100mb + name: band-100mb +spec: + forProvider: + name: shared-100Mbit + size: 100 diff --git a/examples-generated/vpc/eipv1.yaml b/examples-generated/vpc/eipv1.yaml new file mode 100644 index 0000000..1f1ca13 --- /dev/null +++ b/examples-generated/vpc/eipv1.yaml @@ -0,0 +1,17 @@ +apiVersion: vpc.crossplane.io/v1alpha1 +kind: EIPV1 +metadata: + annotations: + meta.upbound.io/example-id: vpc/v1alpha1/eipv1 + labels: + testing.upbound.io/example-name: eip_1 + name: eip-1 +spec: + forProvider: + bandwidth: + - chargeMode: traffic + name: test + shareType: PER + size: 8 + publicip: + - type: 5_bgp diff --git a/examples-generated/vpc/flowlogv1.yaml b/examples-generated/vpc/flowlogv1.yaml new file mode 100644 index 0000000..c719e52 --- /dev/null +++ b/examples-generated/vpc/flowlogv1.yaml @@ -0,0 +1,32 @@ +apiVersion: vpc.crossplane.io/v1alpha1 +kind: FlowLogV1 +metadata: + annotations: + meta.upbound.io/example-id: vpc/v1alpha1/flowlogv1 + labels: + testing.upbound.io/example-name: flowlog1 + name: flowlog1 +spec: + forProvider: + description: ${var.flow_log_desc} + logGroupId: ${opentelekomcloud_logtank_group_v2.log_group1.id} + logTopicId: ${opentelekomcloud_logtank_topic_v2.log_topic1.id} + name: ${var.flow_log_name} + resourceId: ${opentelekomcloud_vpc_v1.vpc_v1.id} + resourceType: vpc + trafficType: all + +--- + +apiVersion: vpc.crossplane.io/v1alpha1 +kind: V1 +metadata: + annotations: + meta.upbound.io/example-id: vpc/v1alpha1/flowlogv1 + labels: + testing.upbound.io/example-name: vpc_v1 + name: vpc-v1 +spec: + forProvider: + cidr: ${var.vpc_cidr} + name: ${var.vpc_name} diff --git a/examples-generated/vpc/peeringconnectionaccepterv2.yaml b/examples-generated/vpc/peeringconnectionaccepterv2.yaml new file mode 100644 index 0000000..4dba7a0 --- /dev/null +++ b/examples-generated/vpc/peeringconnectionaccepterv2.yaml @@ -0,0 +1,63 @@ +apiVersion: vpc.crossplane.io/v1alpha1 +kind: PeeringConnectionAccepterV2 +metadata: + annotations: + meta.upbound.io/example-id: vpc/v1alpha1/peeringconnectionaccepterv2 + labels: + testing.upbound.io/example-name: peer + name: peer +spec: + forProvider: + accept: true + provider: opentelekomcloud.peer + vpcPeeringConnectionId: ${opentelekomcloud_vpc_peering_connection_v2.peering.id} + +--- + +apiVersion: vpc.crossplane.io/v1alpha1 +kind: PeeringConnectionV2 +metadata: + annotations: + meta.upbound.io/example-id: vpc/v1alpha1/peeringconnectionaccepterv2 + labels: + testing.upbound.io/example-name: peering + name: peering +spec: + forProvider: + name: ${var.peer_name} + peerTenantId: ${var.tenant_id} + peerVpcId: ${opentelekomcloud_vpc_v1.vpc_peer.id} + provider: opentelekomcloud.main + vpcId: ${opentelekomcloud_vpc_v1.vpc_main.id} + +--- + +apiVersion: vpc.crossplane.io/v1alpha1 +kind: V1 +metadata: + annotations: + meta.upbound.io/example-id: vpc/v1alpha1/peeringconnectionaccepterv2 + labels: + testing.upbound.io/example-name: vpc_main + name: vpc-main +spec: + forProvider: + cidr: ${var.vpc_cidr} + name: ${var.vpc_name} + provider: opentelekomcloud.main + +--- + +apiVersion: vpc.crossplane.io/v1alpha1 +kind: V1 +metadata: + annotations: + meta.upbound.io/example-id: vpc/v1alpha1/peeringconnectionaccepterv2 + labels: + testing.upbound.io/example-name: vpc_peer + name: vpc-peer +spec: + forProvider: + cidr: ${var.peer_vpc_cidr} + name: ${var.peer_vpc_name} + provider: opentelekomcloud.peer diff --git a/examples-generated/vpc/peeringconnectionv2.yaml b/examples-generated/vpc/peeringconnectionv2.yaml new file mode 100644 index 0000000..b4453c8 --- /dev/null +++ b/examples-generated/vpc/peeringconnectionv2.yaml @@ -0,0 +1,13 @@ +apiVersion: vpc.crossplane.io/v1alpha1 +kind: PeeringConnectionV2 +metadata: + annotations: + meta.upbound.io/example-id: vpc/v1alpha1/peeringconnectionv2 + labels: + testing.upbound.io/example-name: peering + name: peering +spec: + forProvider: + name: ${var.peer_conn_name} + peerVpcId: ${var.accepter_vpc_id} + vpcId: ${var.vpc_id} diff --git a/examples-generated/vpc/routetablev1.yaml b/examples-generated/vpc/routetablev1.yaml new file mode 100644 index 0000000..e31fed5 --- /dev/null +++ b/examples-generated/vpc/routetablev1.yaml @@ -0,0 +1,115 @@ +apiVersion: vpc.crossplane.io/v1alpha1 +kind: RouteTableV1 +metadata: + annotations: + meta.upbound.io/example-id: vpc/v1alpha1/routetablev1 + labels: + testing.upbound.io/example-name: table_1 + name: table-1 +spec: + forProvider: + description: created by terraform with routes + name: my_route + route: + - description: peering rule + destination: 172.16.0.0/16 + nexthop: ${opentelekomcloud_vpc_peering_connection_v2.peering.id} + type: peering + vpcId: ${opentelekomcloud_vpc_v1.vpc_1.id} + +--- + +apiVersion: vpc.crossplane.io/v1alpha1 +kind: PeeringConnectionV2 +metadata: + annotations: + meta.upbound.io/example-id: vpc/v1alpha1/routetablev1 + labels: + testing.upbound.io/example-name: peering + name: peering +spec: + forProvider: + name: my_peering + peerVpcId: ${opentelekomcloud_vpc_v1.vpc_2.id} + vpcId: ${opentelekomcloud_vpc_v1.vpc_1.id} + +--- + +apiVersion: vpc.crossplane.io/v1alpha1 +kind: SubnetV1 +metadata: + annotations: + meta.upbound.io/example-id: vpc/v1alpha1/routetablev1 + labels: + testing.upbound.io/example-name: subnet_1-1 + name: subnet-1-1 +spec: + forProvider: + cidr: 192.168.0.0/24 + gatewayIp: 192.168.0.1 + name: vpc-1-subnet-1-1 + vpcId: ${opentelekomcloud_vpc_v1.vpc_1.id} + +--- + +apiVersion: vpc.crossplane.io/v1alpha1 +kind: SubnetV1 +metadata: + annotations: + meta.upbound.io/example-id: vpc/v1alpha1/routetablev1 + labels: + testing.upbound.io/example-name: subnet_1-2 + name: subnet-1-2 +spec: + forProvider: + cidr: 192.168.10.0/24 + gatewayIp: 192.168.10.1 + name: vpc-1-subnet-1-2 + vpcId: ${opentelekomcloud_vpc_v1.vpc_1.id} + +--- + +apiVersion: vpc.crossplane.io/v1alpha1 +kind: SubnetV1 +metadata: + annotations: + meta.upbound.io/example-id: vpc/v1alpha1/routetablev1 + labels: + testing.upbound.io/example-name: subnet_2-1 + name: subnet-2-1 +spec: + forProvider: + cidr: 172.16.10.0/24 + gatewayIp: 172.16.10.1 + name: vpc-2-subnet-2-1 + vpcId: ${opentelekomcloud_vpc_v1.vpc_2.id} + +--- + +apiVersion: vpc.crossplane.io/v1alpha1 +kind: V1 +metadata: + annotations: + meta.upbound.io/example-id: vpc/v1alpha1/routetablev1 + labels: + testing.upbound.io/example-name: vpc_1 + name: vpc-1 +spec: + forProvider: + cidr: 192.168.0.0/16 + name: vpc-1 + +--- + +apiVersion: vpc.crossplane.io/v1alpha1 +kind: V1 +metadata: + annotations: + meta.upbound.io/example-id: vpc/v1alpha1/routetablev1 + labels: + testing.upbound.io/example-name: vpc_2 + name: vpc-2 +spec: + forProvider: + cidr: 172.16.0.0/16 + name: vpc-2 diff --git a/examples-generated/vpc/routev2.yaml b/examples-generated/vpc/routev2.yaml new file mode 100644 index 0000000..7b5f5f8 --- /dev/null +++ b/examples-generated/vpc/routev2.yaml @@ -0,0 +1,14 @@ +apiVersion: vpc.crossplane.io/v1alpha1 +kind: RouteV2 +metadata: + annotations: + meta.upbound.io/example-id: vpc/v1alpha1/routev2 + labels: + testing.upbound.io/example-name: vpc_route + name: vpc-route +spec: + forProvider: + destination: 192.168.0.0/16 + nexthop: ${var.nexthop} + type: peering + vpcId: ${var.vpc_id} diff --git a/examples-generated/vpc/subnetv1.yaml b/examples-generated/vpc/subnetv1.yaml new file mode 100644 index 0000000..69dabf1 --- /dev/null +++ b/examples-generated/vpc/subnetv1.yaml @@ -0,0 +1,30 @@ +apiVersion: vpc.crossplane.io/v1alpha1 +kind: SubnetV1 +metadata: + annotations: + meta.upbound.io/example-id: vpc/v1alpha1/subnetv1 + labels: + testing.upbound.io/example-name: subnet_v1 + name: subnet-v1 +spec: + forProvider: + cidr: ${var.subnet_cidr} + gatewayIp: ${var.subnet_gateway_ip} + name: ${var.subnet_name} + ntpAddresses: 10.100.0.33,10.100.0.34 + vpcId: ${opentelekomcloud_vpc_v1.vpc_v1.id} + +--- + +apiVersion: vpc.crossplane.io/v1alpha1 +kind: V1 +metadata: + annotations: + meta.upbound.io/example-id: vpc/v1alpha1/subnetv1 + labels: + testing.upbound.io/example-name: vpc_v1 + name: vpc-v1 +spec: + forProvider: + cidr: ${var.vpc_cidr} + name: ${var.vpc_name} diff --git a/examples-generated/vpc/v1.yaml b/examples-generated/vpc/v1.yaml new file mode 100644 index 0000000..4d1ee15 --- /dev/null +++ b/examples-generated/vpc/v1.yaml @@ -0,0 +1,12 @@ +apiVersion: vpc.crossplane.io/v1alpha1 +kind: V1 +metadata: + annotations: + meta.upbound.io/example-id: vpc/v1alpha1/v1 + labels: + testing.upbound.io/example-name: vpc_v1 + name: vpc-v1 +spec: + forProvider: + cidr: ${var.vpc_cidr} + name: ${var.vpc_name} diff --git a/examples-generated/vpcep/endpointv1.yaml b/examples-generated/vpcep/endpointv1.yaml new file mode 100644 index 0000000..bf60cbc --- /dev/null +++ b/examples-generated/vpcep/endpointv1.yaml @@ -0,0 +1,55 @@ +apiVersion: vpcep.crossplane.io/v1alpha1 +kind: EndpointV1 +metadata: + annotations: + meta.upbound.io/example-id: vpcep/v1alpha1/endpointv1 + labels: + testing.upbound.io/example-name: endpoint + name: endpoint +spec: + forProvider: + enableDns: true + portIp: 192.168.0.12 + serviceId: ${opentelekomcloud_vpcep_service_v1.service.id} + subnetId: ${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.id} + tags: + fizz: buzz + vpcId: ${opentelekomcloud_vpcep_service_v1.service.vpc_id} + whitelist: + - 127.0.0.1 + +--- + +apiVersion: lb.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.crossplane.io/v1alpha1 +kind: ServiceV1 +metadata: + annotations: + meta.upbound.io/example-id: vpcep/v1alpha1/endpointv1 + labels: + testing.upbound.io/example-name: service + name: service +spec: + forProvider: + name: service_1 + port: + - clientPort: 80 + serverPort: 8080 + portId: ${opentelekomcloud_lb_loadbalancer_v2.lb_1.vip_port_id} + serverType: LB + tags: + key: value + vpcId: ${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.vpc_id} diff --git a/examples-generated/vpcep/servicev1.yaml b/examples-generated/vpcep/servicev1.yaml new file mode 100644 index 0000000..eb684ef --- /dev/null +++ b/examples-generated/vpcep/servicev1.yaml @@ -0,0 +1,36 @@ +apiVersion: vpcep.crossplane.io/v1alpha1 +kind: ServiceV1 +metadata: + annotations: + meta.upbound.io/example-id: vpcep/v1alpha1/servicev1 + labels: + testing.upbound.io/example-name: service + name: service +spec: + forProvider: + name: service_1 + port: + - clientPort: 80 + serverPort: 8080 + portId: ${opentelekomcloud_lb_loadbalancer_v2.lb_1.vip_port_id} + serverType: LB + tags: + key: value + vpcId: ${var.vpc_id} + whitelist: + - ${var.domain_id_1} + - ${var.domain_id_2} + +--- + +apiVersion: lb.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-generated/vpnaas/endpointgroupv2.yaml b/examples-generated/vpnaas/endpointgroupv2.yaml new file mode 100644 index 0000000..89fbc22 --- /dev/null +++ b/examples-generated/vpnaas/endpointgroupv2.yaml @@ -0,0 +1,15 @@ +apiVersion: vpnaas.crossplane.io/v1alpha1 +kind: EndpointGroupV2 +metadata: + annotations: + meta.upbound.io/example-id: vpnaas/v1alpha1/endpointgroupv2 + labels: + testing.upbound.io/example-name: group_1 + name: group-1 +spec: + forProvider: + endpoints: + - 10.2.0.0/24 + - 10.3.0.0/24 + name: Group 1 + type: cidr diff --git a/examples-generated/vpnaas/ikepolicyv2.yaml b/examples-generated/vpnaas/ikepolicyv2.yaml new file mode 100644 index 0000000..6bdce43 --- /dev/null +++ b/examples-generated/vpnaas/ikepolicyv2.yaml @@ -0,0 +1,11 @@ +apiVersion: vpnaas.crossplane.io/v1alpha1 +kind: IkePolicyV2 +metadata: + annotations: + meta.upbound.io/example-id: vpnaas/v1alpha1/ikepolicyv2 + labels: + testing.upbound.io/example-name: policy_1 + name: policy-1 +spec: + forProvider: + name: my_policy diff --git a/examples-generated/vpnaas/ipsecpolicyv2.yaml b/examples-generated/vpnaas/ipsecpolicyv2.yaml new file mode 100644 index 0000000..4968d52 --- /dev/null +++ b/examples-generated/vpnaas/ipsecpolicyv2.yaml @@ -0,0 +1,11 @@ +apiVersion: vpnaas.crossplane.io/v1alpha1 +kind: IpsecPolicyV2 +metadata: + annotations: + meta.upbound.io/example-id: vpnaas/v1alpha1/ipsecpolicyv2 + labels: + testing.upbound.io/example-name: policy_1 + name: policy-1 +spec: + forProvider: + name: my_policy diff --git a/examples-generated/vpnaas/servicev2.yaml b/examples-generated/vpnaas/servicev2.yaml new file mode 100644 index 0000000..2292bd6 --- /dev/null +++ b/examples-generated/vpnaas/servicev2.yaml @@ -0,0 +1,13 @@ +apiVersion: vpnaas.crossplane.io/v1alpha1 +kind: ServiceV2 +metadata: + annotations: + meta.upbound.io/example-id: vpnaas/v1alpha1/servicev2 + labels: + testing.upbound.io/example-name: service_1 + name: service-1 +spec: + forProvider: + adminStateUp: "true" + name: my_service + routerId: 14a75700-fc03-4602-9294-26ee44f366b3 diff --git a/examples-generated/vpnaas/siteconnectionv2.yaml b/examples-generated/vpnaas/siteconnectionv2.yaml new file mode 100644 index 0000000..284d7fd --- /dev/null +++ b/examples-generated/vpnaas/siteconnectionv2.yaml @@ -0,0 +1,22 @@ +apiVersion: vpnaas.crossplane.io/v1alpha1 +kind: SiteConnectionV2 +metadata: + annotations: + meta.upbound.io/example-id: vpnaas/v1alpha1/siteconnectionv2 + labels: + testing.upbound.io/example-name: conn_1 + name: conn-1 +spec: + forProvider: + ikepolicyId: ${opentelekomcloud_vpnaas_ike_policy_v2.policy_2.id} + ipsecpolicyId: ${opentelekomcloud_vpnaas_ipsec_policy_v2.policy_1.id} + localEpGroupId: ${opentelekomcloud_vpnaas_endpoint_group_v2.group_2.id} + name: connection_1 + peerAddress: 192.168.10.1 + peerEpGroupId: ${opentelekomcloud_vpnaas_endpoint_group_v2.group_1.id} + peerId: 192.168.10.1 + psk: secret + tags: + foo: bar + key: value + vpnserviceId: ${opentelekomcloud_vpnaas_service_v2.service_1.id} diff --git a/examples-generated/waf/dedicatedalarmmaskingrulev1.yaml b/examples-generated/waf/dedicatedalarmmaskingrulev1.yaml new file mode 100644 index 0000000..f724d66 --- /dev/null +++ b/examples-generated/waf/dedicatedalarmmaskingrulev1.yaml @@ -0,0 +1,34 @@ +apiVersion: waf.crossplane.io/v1alpha1 +kind: DedicatedAlarmMaskingRuleV1 +metadata: + annotations: + meta.upbound.io/example-id: waf/v1alpha1/dedicatedalarmmaskingrulev1 + labels: + testing.upbound.io/example-name: rule_1 + name: rule-1 +spec: + forProvider: + conditions: + - category: url + contents: + - /login + logicOperation: equal + description: description + domains: + - www.example.com + policyId: ${opentelekomcloud_waf_dedicated_policy_v1.policy_1.id} + rule: xss + +--- + +apiVersion: waf.crossplane.io/v1alpha1 +kind: DedicatedPolicyV1 +metadata: + annotations: + meta.upbound.io/example-id: waf/v1alpha1/dedicatedalarmmaskingrulev1 + labels: + testing.upbound.io/example-name: policy_1 + name: policy-1 +spec: + forProvider: + name: policy_am diff --git a/examples-generated/waf/dedicatedanticrawlerrulev1.yaml b/examples-generated/waf/dedicatedanticrawlerrulev1.yaml new file mode 100644 index 0000000..6f85f4d --- /dev/null +++ b/examples-generated/waf/dedicatedanticrawlerrulev1.yaml @@ -0,0 +1,29 @@ +apiVersion: waf.crossplane.io/v1alpha1 +kind: DedicatedAntiCrawlerRuleV1 +metadata: + annotations: + meta.upbound.io/example-id: waf/v1alpha1/dedicatedanticrawlerrulev1 + labels: + testing.upbound.io/example-name: rule_1 + name: rule-1 +spec: + forProvider: + logic: 3 + name: anticrawler_1 + policyId: ${opentelekomcloud_waf_dedicated_policy_v1.policy_1.id} + protectionMode: anticrawler_except_url + url: /patent/id + +--- + +apiVersion: waf.crossplane.io/v1alpha1 +kind: DedicatedPolicyV1 +metadata: + annotations: + meta.upbound.io/example-id: waf/v1alpha1/dedicatedanticrawlerrulev1 + labels: + testing.upbound.io/example-name: policy_1 + name: policy-1 +spec: + forProvider: + name: policy_cc diff --git a/examples-generated/waf/dedicatedantileakagerulev1.yaml b/examples-generated/waf/dedicatedantileakagerulev1.yaml new file mode 100644 index 0000000..3b7ac92 --- /dev/null +++ b/examples-generated/waf/dedicatedantileakagerulev1.yaml @@ -0,0 +1,30 @@ +apiVersion: waf.crossplane.io/v1alpha1 +kind: DedicatedAntiLeakageRuleV1 +metadata: + annotations: + meta.upbound.io/example-id: waf/v1alpha1/dedicatedantileakagerulev1 + labels: + testing.upbound.io/example-name: rule_1 + name: rule-1 +spec: + forProvider: + category: sensitive + contents: + - id_card + description: test description + policyId: ${opentelekomcloud_waf_dedicated_policy_v1.policy_1.id} + url: /attack + +--- + +apiVersion: waf.crossplane.io/v1alpha1 +kind: DedicatedPolicyV1 +metadata: + annotations: + meta.upbound.io/example-id: waf/v1alpha1/dedicatedantileakagerulev1 + labels: + testing.upbound.io/example-name: policy_1 + name: policy-1 +spec: + forProvider: + name: policy_al diff --git a/examples-generated/waf/dedicatedblacklistrulev1.yaml b/examples-generated/waf/dedicatedblacklistrulev1.yaml new file mode 100644 index 0000000..efcdf76 --- /dev/null +++ b/examples-generated/waf/dedicatedblacklistrulev1.yaml @@ -0,0 +1,29 @@ +apiVersion: waf.crossplane.io/v1alpha1 +kind: DedicatedBlacklistRuleV1 +metadata: + annotations: + meta.upbound.io/example-id: waf/v1alpha1/dedicatedblacklistrulev1 + labels: + testing.upbound.io/example-name: rule_1 + name: rule-1 +spec: + forProvider: + action: 0 + description: test description + ipAddress: 192.168.1.0/24 + name: my_blacklist + policyId: ${opentelekomcloud_waf_dedicated_policy_v1.policy_1.id} + +--- + +apiVersion: waf.crossplane.io/v1alpha1 +kind: DedicatedPolicyV1 +metadata: + annotations: + meta.upbound.io/example-id: waf/v1alpha1/dedicatedblacklistrulev1 + labels: + testing.upbound.io/example-name: policy_1 + name: policy-1 +spec: + forProvider: + name: policy_black diff --git a/examples-generated/waf/dedicatedccrulev1.yaml b/examples-generated/waf/dedicatedccrulev1.yaml new file mode 100644 index 0000000..f353ff7 --- /dev/null +++ b/examples-generated/waf/dedicatedccrulev1.yaml @@ -0,0 +1,36 @@ +apiVersion: waf.crossplane.io/v1alpha1 +kind: DedicatedCcRuleV1 +metadata: + annotations: + meta.upbound.io/example-id: waf/v1alpha1/dedicatedccrulev1 + labels: + testing.upbound.io/example-name: rule_1 + name: rule-1 +spec: + forProvider: + action: + - category: block + content: '{"error":"forbidden"}' + contentType: application/json + limitNum: 10 + limitPeriod: 60 + lockTime: 10 + mode: 0 + policyId: ${opentelekomcloud_waf_dedicated_policy_v1.policy_1.id} + tagIndex: sessionid + tagType: cookie + url: /abc1 + +--- + +apiVersion: waf.crossplane.io/v1alpha1 +kind: DedicatedPolicyV1 +metadata: + annotations: + meta.upbound.io/example-id: waf/v1alpha1/dedicatedccrulev1 + labels: + testing.upbound.io/example-name: policy_1 + name: policy-1 +spec: + forProvider: + name: policy_cc diff --git a/examples-generated/waf/dedicatedcertificatev1.yaml b/examples-generated/waf/dedicatedcertificatev1.yaml new file mode 100644 index 0000000..7f10444 --- /dev/null +++ b/examples-generated/waf/dedicatedcertificatev1.yaml @@ -0,0 +1,26 @@ +apiVersion: waf.crossplane.io/v1alpha1 +kind: DedicatedCertificateV1 +metadata: + annotations: + meta.upbound.io/example-id: waf/v1alpha1/dedicatedcertificatev1 + labels: + testing.upbound.io/example-name: certificate_1 + name: certificate-1 +spec: + forProvider: + content: | + -----BEGIN CERTIFICATE----- + MIIFazCCA1OgAwIBAgIUN3w1KX8/T/HWVxZIOdHXPhUOnsAwDQYJKoZIhvcNAQEL + BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM + ... + dKvZbPEsygYRIjwyhHHUh/YXH8KDI/uu6u6AxDckQ3rP1BkkKXr5NPBGjVgM3ZI= + -----END CERTIFICATE----- + key: | + -----BEGIN PRIVATE KEY----- + MIIJQQIBADANBgkqhkiG9w0BAQEFAASCCSswggknAgEAAoICAQC+9uwFVenCdPD9 + 5LWSWMuy4riZW718wxBpYV5Y9N8nM7N0qZLLdpImZrzBbaBldTI+AZGI3Nupuurw + ... + s9urs/Kk/tbQhsEvu0X8FyGwo0zH6rG8apTFTlac+v4mJ4vlpxSvT5+FW2lgLISE + +4sM7kp0qO3/p+45HykwBY5iHq3H + -----END PRIVATE KEY----- + name: certificate_1 diff --git a/examples-generated/waf/dedicateddatamaskingrulev1.yaml b/examples-generated/waf/dedicateddatamaskingrulev1.yaml new file mode 100644 index 0000000..4cc6323 --- /dev/null +++ b/examples-generated/waf/dedicateddatamaskingrulev1.yaml @@ -0,0 +1,29 @@ +apiVersion: waf.crossplane.io/v1alpha1 +kind: DedicatedDataMaskingRuleV1 +metadata: + annotations: + meta.upbound.io/example-id: waf/v1alpha1/dedicateddatamaskingrulev1 + labels: + testing.upbound.io/example-name: rule_1 + name: rule-1 +spec: + forProvider: + category: params + description: description + name: data_masking + policyId: ${opentelekomcloud_waf_dedicated_policy_v1.policy_1.id} + url: /login + +--- + +apiVersion: waf.crossplane.io/v1alpha1 +kind: DedicatedPolicyV1 +metadata: + annotations: + meta.upbound.io/example-id: waf/v1alpha1/dedicateddatamaskingrulev1 + labels: + testing.upbound.io/example-name: policy_1 + name: policy-1 +spec: + forProvider: + name: policy_dm diff --git a/examples-generated/waf/dedicateddomainv1.yaml b/examples-generated/waf/dedicateddomainv1.yaml new file mode 100644 index 0000000..1373560 --- /dev/null +++ b/examples-generated/waf/dedicateddomainv1.yaml @@ -0,0 +1,24 @@ +apiVersion: waf.crossplane.io/v1alpha1 +kind: DedicatedDomainV1 +metadata: + annotations: + meta.upbound.io/example-id: waf/v1alpha1/dedicateddomainv1 + labels: + testing.upbound.io/example-name: domain_1 + name: domain-1 +spec: + forProvider: + domain: www.mydom.com + keepPolicy: false + proxy: true + server: + - address: 192.168.0.10 + clientProtocol: HTTP + port: 8080 + serverProtocol: HTTP + type: ipv4 + vpcId: ${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.vpc_id} + timeoutConfig: + - connectTimeout: 150 + readTimeout: 200 + sendTimeout: 100 diff --git a/examples-generated/waf/dedicatedgeoiprulev1.yaml b/examples-generated/waf/dedicatedgeoiprulev1.yaml new file mode 100644 index 0000000..8b6e6ed --- /dev/null +++ b/examples-generated/waf/dedicatedgeoiprulev1.yaml @@ -0,0 +1,29 @@ +apiVersion: waf.crossplane.io/v1alpha1 +kind: DedicatedGeoIPRuleV1 +metadata: + annotations: + meta.upbound.io/example-id: waf/v1alpha1/dedicatedgeoiprulev1 + labels: + testing.upbound.io/example-name: rule_1 + name: rule-1 +spec: + forProvider: + action: 0 + description: test description + name: test + policyId: ${opentelekomcloud_waf_dedicated_policy_v1.policy_1.id} + regionCode: BR + +--- + +apiVersion: waf.crossplane.io/v1alpha1 +kind: DedicatedPolicyV1 +metadata: + annotations: + meta.upbound.io/example-id: waf/v1alpha1/dedicatedgeoiprulev1 + labels: + testing.upbound.io/example-name: policy_1 + name: policy-1 +spec: + forProvider: + name: policy_gi diff --git a/examples-generated/waf/dedicatedinstancev1.yaml b/examples-generated/waf/dedicatedinstancev1.yaml new file mode 100644 index 0000000..1408e04 --- /dev/null +++ b/examples-generated/waf/dedicatedinstancev1.yaml @@ -0,0 +1,19 @@ +apiVersion: waf.crossplane.io/v1alpha1 +kind: DedicatedInstanceV1 +metadata: + annotations: + meta.upbound.io/example-id: waf/v1alpha1/dedicatedinstancev1 + labels: + testing.upbound.io/example-name: wafd_1 + name: wafd-1 +spec: + forProvider: + architecture: x86 + availabilityZone: eu-de-01 + flavor: s2.large.2 + name: wafd-instance-1 + securityGroup: + - ${data.opentelekomcloud_networking_secgroup_v2.default_secgroup.id} + specification: waf.instance.professional + subnetId: ${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.network_id} + vpcId: ${data.opentelekomcloud_vpc_subnet_v1.shared_subnet.vpc_id} diff --git a/examples-generated/waf/dedicatedknownattacksourcerulev1.yaml b/examples-generated/waf/dedicatedknownattacksourcerulev1.yaml new file mode 100644 index 0000000..5f23dc9 --- /dev/null +++ b/examples-generated/waf/dedicatedknownattacksourcerulev1.yaml @@ -0,0 +1,28 @@ +apiVersion: waf.crossplane.io/v1alpha1 +kind: DedicatedKnownAttackSourceRuleV1 +metadata: + annotations: + meta.upbound.io/example-id: waf/v1alpha1/dedicatedknownattacksourcerulev1 + labels: + testing.upbound.io/example-name: rule_1 + name: rule-1 +spec: + forProvider: + blockTime: 300 + category: long_cookie_block + description: test description + policyId: ${opentelekomcloud_waf_dedicated_policy_v1.policy_1.id} + +--- + +apiVersion: waf.crossplane.io/v1alpha1 +kind: DedicatedPolicyV1 +metadata: + annotations: + meta.upbound.io/example-id: waf/v1alpha1/dedicatedknownattacksourcerulev1 + labels: + testing.upbound.io/example-name: policy_1 + name: policy-1 +spec: + forProvider: + name: policy_ka diff --git a/examples-generated/waf/dedicatedpolicyv1.yaml b/examples-generated/waf/dedicatedpolicyv1.yaml new file mode 100644 index 0000000..90ad174 --- /dev/null +++ b/examples-generated/waf/dedicatedpolicyv1.yaml @@ -0,0 +1,19 @@ +apiVersion: waf.crossplane.io/v1alpha1 +kind: DedicatedPolicyV1 +metadata: + annotations: + meta.upbound.io/example-id: waf/v1alpha1/dedicatedpolicyv1 + labels: + testing.upbound.io/example-name: policy_1 + name: policy-1 +spec: + forProvider: + fullDetection: true + level: 3 + name: policy_1 + options: + - cc: true + crawler: false + webAttack: false + webShell: true + protectionMode: block diff --git a/examples-generated/waf/dedicatedpreciseprotectionrulev1.yaml b/examples-generated/waf/dedicatedpreciseprotectionrulev1.yaml new file mode 100644 index 0000000..0f48ee9 --- /dev/null +++ b/examples-generated/waf/dedicatedpreciseprotectionrulev1.yaml @@ -0,0 +1,35 @@ +apiVersion: waf.crossplane.io/v1alpha1 +kind: DedicatedPreciseProtectionRuleV1 +metadata: + annotations: + meta.upbound.io/example-id: waf/v1alpha1/dedicatedpreciseprotectionrulev1 + labels: + testing.upbound.io/example-name: rule_1 + name: rule-1 +spec: + forProvider: + action: + - category: block + conditions: + - category: url + contents: + - test + logicOperation: contain + description: desc + policyId: ${opentelekomcloud_waf_dedicated_policy_v1.policy_1.id} + priority: 50 + time: false + +--- + +apiVersion: waf.crossplane.io/v1alpha1 +kind: DedicatedPolicyV1 +metadata: + annotations: + meta.upbound.io/example-id: waf/v1alpha1/dedicatedpreciseprotectionrulev1 + labels: + testing.upbound.io/example-name: policy_1 + name: policy-1 +spec: + forProvider: + name: policy_pp diff --git a/examples-generated/waf/dedicatedreferencetablev1.yaml b/examples-generated/waf/dedicatedreferencetablev1.yaml new file mode 100644 index 0000000..3cce892 --- /dev/null +++ b/examples-generated/waf/dedicatedreferencetablev1.yaml @@ -0,0 +1,15 @@ +apiVersion: waf.crossplane.io/v1alpha1 +kind: DedicatedReferenceTableV1 +metadata: + annotations: + meta.upbound.io/example-id: waf/v1alpha1/dedicatedreferencetablev1 + labels: + testing.upbound.io/example-name: table + name: table +spec: + forProvider: + conditions: + - /admin + - /manage + name: '%s' + type: url diff --git a/examples-generated/waf/dedicatedwebtamperrulev1.yaml b/examples-generated/waf/dedicatedwebtamperrulev1.yaml new file mode 100644 index 0000000..9f08c26 --- /dev/null +++ b/examples-generated/waf/dedicatedwebtamperrulev1.yaml @@ -0,0 +1,28 @@ +apiVersion: waf.crossplane.io/v1alpha1 +kind: DedicatedWebTamperRuleV1 +metadata: + annotations: + meta.upbound.io/example-id: waf/v1alpha1/dedicatedwebtamperrulev1 + labels: + testing.upbound.io/example-name: rule_1 + name: rule-1 +spec: + forProvider: + description: test description + hostname: www.domain.com + policyId: ${opentelekomcloud_waf_dedicated_policy_v1.policy_1.id} + url: /login + +--- + +apiVersion: waf.crossplane.io/v1alpha1 +kind: DedicatedPolicyV1 +metadata: + annotations: + meta.upbound.io/example-id: waf/v1alpha1/dedicatedwebtamperrulev1 + labels: + testing.upbound.io/example-name: policy_1 + name: policy-1 +spec: + forProvider: + name: policy_at diff --git a/examples/install.yaml b/examples/install.yaml index d03f1cc..d38476a 100644 --- a/examples/install.yaml +++ b/examples/install.yaml @@ -1,6 +1,6 @@ apiVersion: pkg.crossplane.io/v1 kind: Provider metadata: - name: upjet-provider-template + name: provider-opentelekomcloud spec: - package: upbound/upjet-provider-template:v0.1.0 + package: opentelekomcloud/provider-opentelekomcloud:v0.1.0 diff --git a/examples/null/resource.yaml b/examples/null/resource.yaml index fa5f479..9144fa1 100644 --- a/examples/null/resource.yaml +++ b/examples/null/resource.yaml @@ -1,4 +1,4 @@ -apiVersion: null.template.upbound.io/v1alpha1 +apiVersion: null.opentelekomcloud.upbound.io/v1alpha1 kind: Resource metadata: name: example diff --git a/examples/providerconfig/providerconfig.yaml b/examples/providerconfig/providerconfig.yaml index e7106ac..b1b6068 100644 --- a/examples/providerconfig/providerconfig.yaml +++ b/examples/providerconfig/providerconfig.yaml @@ -1,4 +1,4 @@ -apiVersion: template.upbound.io/v1beta1 +apiVersion: opentelekomcloud.upbound.io/v1beta1 kind: ProviderConfig metadata: name: default diff --git a/examples/storeconfig/vault.yaml b/examples/storeconfig/vault.yaml index e19a9a5..dff8a4d 100644 --- a/examples/storeconfig/vault.yaml +++ b/examples/storeconfig/vault.yaml @@ -1,4 +1,4 @@ -apiVersion: template.upbound.io/v1alpha1 +apiVersion: opentelekomcloud.upbound.io/v1alpha1 kind: StoreConfig metadata: name: vault diff --git a/go.mod b/go.mod index 2f3a492..e3d58e3 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module github.com/upbound/upjet-provider-template +module github.com/opentelekomcloud/provider-opentelekomcloud go 1.19 diff --git a/internal/clients/template.go b/internal/clients/opentelekomcloud.go similarity index 52% rename from internal/clients/template.go rename to internal/clients/opentelekomcloud.go index 078f7ec..5c76702 100644 --- a/internal/clients/template.go +++ b/internal/clients/opentelekomcloud.go @@ -15,7 +15,7 @@ import ( "github.com/crossplane/upjet/pkg/terraform" - "github.com/upbound/upjet-provider-template/apis/v1beta1" + "github.com/opentelekomcloud/provider-opentelekomcloud/apis/v1beta1" ) const ( @@ -24,7 +24,7 @@ const ( errGetProviderConfig = "cannot get referenced ProviderConfig" errTrackUsage = "cannot track ProviderConfig usage" errExtractCredentials = "cannot extract credentials" - errUnmarshalCredentials = "cannot unmarshal template credentials as JSON" + errUnmarshalCredentials = "cannot unmarshal opentelekomcloud credentials as JSON" ) // TerraformSetupBuilder builds Terraform a terraform.SetupFn function which @@ -63,10 +63,39 @@ func TerraformSetupBuilder(version, providerSource, providerVersion string) terr } // Set credentials in Terraform provider configuration. - /*ps.Configuration = map[string]any{ - "username": creds["username"], - "password": creds["password"], - }*/ + // Keep in sync with configuration options of Terraform OpenStack provider: + // https://registry.terraform.io/providers/opentelekomcloud/opentelekomcloud/latest/docs + // Exceptions: + // "cloud" is not used, because we don't support giving a clouds.yaml directly to the provider. + ps.Configuration = map[string]any{ + "access_key": creds["access_key"], + "secret_key": creds["secret_key"], + "auth_url": creds["auth_url"], + "region": creds["region"], + "user_name": creds["user_name"], + "user_id": creds["user_id"], + "tenant_id": creds["tenant_id"], + "tenant_name": creds["tenant_name"], + "password": creds["password"], + "token": creds["token"], + "security_token": creds["security_token"], + "passcode": creds["passcode"], + "domain_id": creds["domain_id"], + "domain_name": creds["domain_name"], + "insecure": creds["insecure"], + "endpoint_type": creds["endpoint_type"], + "cacert_file": creds["cacert_file"], + "cert": creds["cert"], + "key": creds["key"], + "swauth": creds["swauth"], + "agency_name": creds["agency_name"], + "agency_domain_name": creds["agency_domain_name"], + "delegated_project": creds["delegated_project"], + "allow_reauth": creds["allow_reauth"], + "max_retries": creds["max_retries"], + "max_backoff_retries": creds["max_backoff_retries"], + "backoff_retry_timeout": creds["backoff_retry_timeout"], + } return ps, nil } } diff --git a/internal/controller/blockstorage/volumev2/zz_controller.go b/internal/controller/blockstorage/volumev2/zz_controller.go new file mode 100755 index 0000000..09b70ea --- /dev/null +++ b/internal/controller/blockstorage/volumev2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package volumev2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/blockstorage/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles VolumeV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.VolumeV2_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.VolumeV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.VolumeV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_blockstorage_volume_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.VolumeV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.VolumeV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/cce/addonv3/zz_controller.go b/internal/controller/cce/addonv3/zz_controller.go new file mode 100755 index 0000000..2c38651 --- /dev/null +++ b/internal/controller/cce/addonv3/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package addonv3 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/cce/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles AddonV3 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.AddonV3_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.AddonV3_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.AddonV3_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_cce_addon_v3"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.AddonV3_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.AddonV3{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/cce/clusterv3/zz_controller.go b/internal/controller/cce/clusterv3/zz_controller.go new file mode 100755 index 0000000..9b52c0e --- /dev/null +++ b/internal/controller/cce/clusterv3/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package clusterv3 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/cce/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles ClusterV3 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.ClusterV3_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.ClusterV3_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.ClusterV3_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_cce_cluster_v3"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.ClusterV3_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.ClusterV3{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/cce/nodepoolv3/zz_controller.go b/internal/controller/cce/nodepoolv3/zz_controller.go new file mode 100755 index 0000000..0f46877 --- /dev/null +++ b/internal/controller/cce/nodepoolv3/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package nodepoolv3 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/cce/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles NodePoolV3 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.NodePoolV3_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.NodePoolV3_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.NodePoolV3_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_cce_node_pool_v3"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.NodePoolV3_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.NodePoolV3{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/cce/nodev3/zz_controller.go b/internal/controller/cce/nodev3/zz_controller.go new file mode 100755 index 0000000..226897e --- /dev/null +++ b/internal/controller/cce/nodev3/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package nodev3 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/cce/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles NodeV3 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.NodeV3_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.NodeV3_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.NodeV3_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_cce_node_v3"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.NodeV3_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.NodeV3{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/compute/floatingipassociatev2/zz_controller.go b/internal/controller/compute/floatingipassociatev2/zz_controller.go new file mode 100755 index 0000000..ccb3b75 --- /dev/null +++ b/internal/controller/compute/floatingipassociatev2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package floatingipassociatev2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/compute/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles FloatingipAssociateV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.FloatingipAssociateV2_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.FloatingipAssociateV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.FloatingipAssociateV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_compute_floatingip_associate_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.FloatingipAssociateV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.FloatingipAssociateV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/compute/floatingipv2/zz_controller.go b/internal/controller/compute/floatingipv2/zz_controller.go new file mode 100755 index 0000000..82edfd1 --- /dev/null +++ b/internal/controller/compute/floatingipv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package floatingipv2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/compute/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles FloatingipV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.FloatingipV2_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.FloatingipV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.FloatingipV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_compute_floatingip_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.FloatingipV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.FloatingipV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/compute/instancev2/zz_controller.go b/internal/controller/compute/instancev2/zz_controller.go new file mode 100755 index 0000000..b73c840 --- /dev/null +++ b/internal/controller/compute/instancev2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package instancev2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/compute/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles InstanceV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.InstanceV2_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.InstanceV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.InstanceV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_compute_instance_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.InstanceV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.InstanceV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/compute/keypairv2/zz_controller.go b/internal/controller/compute/keypairv2/zz_controller.go new file mode 100755 index 0000000..3523456 --- /dev/null +++ b/internal/controller/compute/keypairv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package keypairv2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/compute/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles KeypairV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.KeypairV2_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.KeypairV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.KeypairV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_compute_keypair_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.KeypairV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.KeypairV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/compute/secgroupv2/zz_controller.go b/internal/controller/compute/secgroupv2/zz_controller.go new file mode 100755 index 0000000..3f1a9a4 --- /dev/null +++ b/internal/controller/compute/secgroupv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package secgroupv2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/compute/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles SecgroupV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.SecgroupV2_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.SecgroupV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.SecgroupV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_compute_secgroup_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.SecgroupV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.SecgroupV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/compute/servergroupv2/zz_controller.go b/internal/controller/compute/servergroupv2/zz_controller.go new file mode 100755 index 0000000..9e2e964 --- /dev/null +++ b/internal/controller/compute/servergroupv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package servergroupv2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/compute/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles ServergroupV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.ServergroupV2_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.ServergroupV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.ServergroupV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_compute_servergroup_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.ServergroupV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.ServergroupV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/compute/volumeattachv2/zz_controller.go b/internal/controller/compute/volumeattachv2/zz_controller.go new file mode 100755 index 0000000..1be17aa --- /dev/null +++ b/internal/controller/compute/volumeattachv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package volumeattachv2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/compute/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles VolumeAttachV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.VolumeAttachV2_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.VolumeAttachV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.VolumeAttachV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_compute_volume_attach_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.VolumeAttachV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.VolumeAttachV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/dcs/instancev1/zz_controller.go b/internal/controller/dcs/instancev1/zz_controller.go new file mode 100755 index 0000000..d557ae3 --- /dev/null +++ b/internal/controller/dcs/instancev1/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package instancev1 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/dcs/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles InstanceV1 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.InstanceV1_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.InstanceV1_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.InstanceV1_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_dcs_instance_v1"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.InstanceV1_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.InstanceV1{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/dcs/instancev2/zz_controller.go b/internal/controller/dcs/instancev2/zz_controller.go new file mode 100755 index 0000000..d798808 --- /dev/null +++ b/internal/controller/dcs/instancev2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package instancev2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/dcs/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles InstanceV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.InstanceV2_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.InstanceV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.InstanceV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_dcs_instance_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.InstanceV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.InstanceV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/dds/instancev3/zz_controller.go b/internal/controller/dds/instancev3/zz_controller.go new file mode 100755 index 0000000..831375b --- /dev/null +++ b/internal/controller/dds/instancev3/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package instancev3 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/dds/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles InstanceV3 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.InstanceV3_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.InstanceV3_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.InstanceV3_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_dds_instance_v3"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.InstanceV3_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.InstanceV3{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/deh/hostv1/zz_controller.go b/internal/controller/deh/hostv1/zz_controller.go new file mode 100755 index 0000000..edb2429 --- /dev/null +++ b/internal/controller/deh/hostv1/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package hostv1 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/deh/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles HostV1 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.HostV1_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.HostV1_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.HostV1_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_deh_host_v1"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.HostV1_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.HostV1{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/dis/appv2/zz_controller.go b/internal/controller/dis/appv2/zz_controller.go new file mode 100755 index 0000000..e3e0820 --- /dev/null +++ b/internal/controller/dis/appv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package appv2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/dis/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles AppV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.AppV2_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.AppV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.AppV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_dis_app_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.AppV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.AppV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/dis/checkpointv2/zz_controller.go b/internal/controller/dis/checkpointv2/zz_controller.go new file mode 100755 index 0000000..ed85c28 --- /dev/null +++ b/internal/controller/dis/checkpointv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package checkpointv2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/dis/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles CheckpointV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.CheckpointV2_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.CheckpointV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.CheckpointV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_dis_checkpoint_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.CheckpointV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.CheckpointV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/dis/dumptaskv2/zz_controller.go b/internal/controller/dis/dumptaskv2/zz_controller.go new file mode 100755 index 0000000..0761928 --- /dev/null +++ b/internal/controller/dis/dumptaskv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package dumptaskv2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/dis/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles DumpTaskV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.DumpTaskV2_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.DumpTaskV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.DumpTaskV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_dis_dump_task_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.DumpTaskV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.DumpTaskV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/dis/streamv2/zz_controller.go b/internal/controller/dis/streamv2/zz_controller.go new file mode 100755 index 0000000..7fcbad3 --- /dev/null +++ b/internal/controller/dis/streamv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package streamv2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/dis/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles StreamV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.StreamV2_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.StreamV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.StreamV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_dis_stream_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.StreamV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.StreamV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/dms/instancev1/zz_controller.go b/internal/controller/dms/instancev1/zz_controller.go new file mode 100755 index 0000000..bcee109 --- /dev/null +++ b/internal/controller/dms/instancev1/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package instancev1 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/dms/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles InstanceV1 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.InstanceV1_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.InstanceV1_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.InstanceV1_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_dms_instance_v1"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.InstanceV1_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.InstanceV1{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/dms/instancev2/zz_controller.go b/internal/controller/dms/instancev2/zz_controller.go new file mode 100755 index 0000000..0f86b5d --- /dev/null +++ b/internal/controller/dms/instancev2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package instancev2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/dms/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles InstanceV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.InstanceV2_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.InstanceV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.InstanceV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_dms_instance_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.InstanceV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.InstanceV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/dms/topicv1/zz_controller.go b/internal/controller/dms/topicv1/zz_controller.go new file mode 100755 index 0000000..e5245c1 --- /dev/null +++ b/internal/controller/dms/topicv1/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package topicv1 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/dms/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles TopicV1 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.TopicV1_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.TopicV1_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.TopicV1_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_dms_topic_v1"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.TopicV1_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.TopicV1{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/dms/userpermissionv1/zz_controller.go b/internal/controller/dms/userpermissionv1/zz_controller.go new file mode 100755 index 0000000..3f957da --- /dev/null +++ b/internal/controller/dms/userpermissionv1/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package userpermissionv1 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/dms/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles UserPermissionV1 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.UserPermissionV1_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.UserPermissionV1_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.UserPermissionV1_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_dms_user_permission_v1"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.UserPermissionV1_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.UserPermissionV1{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/dms/userv2/zz_controller.go b/internal/controller/dms/userv2/zz_controller.go new file mode 100755 index 0000000..b1f865d --- /dev/null +++ b/internal/controller/dms/userv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package userv2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/dms/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles UserV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.UserV2_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.UserV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.UserV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_dms_user_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.UserV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.UserV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/dns/ptrrecordv2/zz_controller.go b/internal/controller/dns/ptrrecordv2/zz_controller.go new file mode 100755 index 0000000..e28323d --- /dev/null +++ b/internal/controller/dns/ptrrecordv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package ptrrecordv2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/dns/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles PtrrecordV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.PtrrecordV2_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.PtrrecordV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.PtrrecordV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_dns_ptrrecord_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.PtrrecordV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.PtrrecordV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/dns/recordsetv2/zz_controller.go b/internal/controller/dns/recordsetv2/zz_controller.go new file mode 100755 index 0000000..29aafb3 --- /dev/null +++ b/internal/controller/dns/recordsetv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package recordsetv2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/dns/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles RecordsetV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.RecordsetV2_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.RecordsetV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.RecordsetV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_dns_recordset_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.RecordsetV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.RecordsetV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/dns/zonev2/zz_controller.go b/internal/controller/dns/zonev2/zz_controller.go new file mode 100755 index 0000000..2525cc1 --- /dev/null +++ b/internal/controller/dns/zonev2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package zonev2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/dns/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles ZoneV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.ZoneV2_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.ZoneV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.ZoneV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_dns_zone_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.ZoneV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.ZoneV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/ecs/instancev1/zz_controller.go b/internal/controller/ecs/instancev1/zz_controller.go new file mode 100755 index 0000000..d82e29b --- /dev/null +++ b/internal/controller/ecs/instancev1/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package instancev1 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/ecs/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles InstanceV1 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.InstanceV1_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.InstanceV1_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.InstanceV1_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_ecs_instance_v1"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.InstanceV1_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.InstanceV1{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/evs/volumev3/zz_controller.go b/internal/controller/evs/volumev3/zz_controller.go new file mode 100755 index 0000000..05fd7ef --- /dev/null +++ b/internal/controller/evs/volumev3/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package volumev3 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/evs/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles VolumeV3 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.VolumeV3_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.VolumeV3_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.VolumeV3_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_evs_volume_v3"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.VolumeV3_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.VolumeV3{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/fgs/asyncinvokeconfigv2/zz_controller.go b/internal/controller/fgs/asyncinvokeconfigv2/zz_controller.go new file mode 100755 index 0000000..cd5f0fc --- /dev/null +++ b/internal/controller/fgs/asyncinvokeconfigv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package asyncinvokeconfigv2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/fgs/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles AsyncInvokeConfigV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.AsyncInvokeConfigV2_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.AsyncInvokeConfigV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.AsyncInvokeConfigV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_fgs_async_invoke_config_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.AsyncInvokeConfigV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.AsyncInvokeConfigV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/fgs/eventv2/zz_controller.go b/internal/controller/fgs/eventv2/zz_controller.go new file mode 100755 index 0000000..dd2fc99 --- /dev/null +++ b/internal/controller/fgs/eventv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package eventv2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/fgs/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles EventV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.EventV2_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.EventV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.EventV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_fgs_event_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.EventV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.EventV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/fgs/functionv2/zz_controller.go b/internal/controller/fgs/functionv2/zz_controller.go new file mode 100755 index 0000000..e0ffa12 --- /dev/null +++ b/internal/controller/fgs/functionv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package functionv2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/fgs/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles FunctionV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.FunctionV2_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.FunctionV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.FunctionV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_fgs_function_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.FunctionV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.FunctionV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/fgs/triggerv2/zz_controller.go b/internal/controller/fgs/triggerv2/zz_controller.go new file mode 100755 index 0000000..e0613a4 --- /dev/null +++ b/internal/controller/fgs/triggerv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package triggerv2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/fgs/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles TriggerV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.TriggerV2_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.TriggerV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.TriggerV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_fgs_trigger_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.TriggerV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.TriggerV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/fw/firewallgroupv2/zz_controller.go b/internal/controller/fw/firewallgroupv2/zz_controller.go new file mode 100755 index 0000000..d816a21 --- /dev/null +++ b/internal/controller/fw/firewallgroupv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package firewallgroupv2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/fw/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles FirewallGroupV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.FirewallGroupV2_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.FirewallGroupV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.FirewallGroupV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_fw_firewall_group_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.FirewallGroupV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.FirewallGroupV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/null/resource/zz_controller.go b/internal/controller/fw/policyv2/zz_controller.go similarity index 77% rename from internal/controller/null/resource/zz_controller.go rename to internal/controller/fw/policyv2/zz_controller.go index 8dedab8..27bfe91 100755 --- a/internal/controller/null/resource/zz_controller.go +++ b/internal/controller/fw/policyv2/zz_controller.go @@ -8,7 +8,7 @@ Copyright 2022 Upbound Inc. // Code generated by upjet. DO NOT EDIT. -package resource +package policyv2 import ( "time" @@ -23,22 +23,22 @@ import ( "github.com/crossplane/upjet/pkg/terraform" ctrl "sigs.k8s.io/controller-runtime" - v1alpha1 "github.com/upbound/upjet-provider-template/apis/null/v1alpha1" - features "github.com/upbound/upjet-provider-template/internal/features" + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/fw/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" ) -// Setup adds a controller that reconciles Resource managed resources. +// Setup adds a controller that reconciles PolicyV2 managed resources. func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { - name := managed.ControllerName(v1alpha1.Resource_GroupVersionKind.String()) + name := managed.ControllerName(v1alpha1.PolicyV2_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.Resource_GroupVersionKind))) - ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.Resource_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + eventHandler := handler.NewEventHandler(handler.WithLogger(o.Logger.WithValues("gvk", v1alpha1.PolicyV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.PolicyV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) opts := []managed.ReconcilerOption{ - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["null_resource"], tjcontroller.WithLogger(o.Logger), tjcontroller.WithConnectorEventHandler(eventHandler), + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_fw_policy_v2"], tjcontroller.WithLogger(o.Logger), tjcontroller.WithConnectorEventHandler(eventHandler), tjcontroller.WithCallbackProvider(ac), )), managed.WithLogger(o.Logger.WithValues("controller", name)), @@ -55,12 +55,12 @@ func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { if o.Features.Enabled(features.EnableBetaManagementPolicies) { opts = append(opts, managed.WithManagementPolicies()) } - r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.Resource_GroupVersionKind), opts...) + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.PolicyV2_GroupVersionKind), opts...) return ctrl.NewControllerManagedBy(mgr). Named(name). WithOptions(o.ForControllerRuntime()). WithEventFilter(xpresource.DesiredStateChanged()). - Watches(&v1alpha1.Resource{}, eventHandler). + Watches(&v1alpha1.PolicyV2{}, eventHandler). Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) } diff --git a/internal/controller/fw/rulev2/zz_controller.go b/internal/controller/fw/rulev2/zz_controller.go new file mode 100755 index 0000000..6eec48e --- /dev/null +++ b/internal/controller/fw/rulev2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package rulev2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/fw/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles RuleV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.RuleV2_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.RuleV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.RuleV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_fw_rule_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.RuleV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.RuleV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/identity/agencyv3/zz_controller.go b/internal/controller/identity/agencyv3/zz_controller.go new file mode 100755 index 0000000..1829847 --- /dev/null +++ b/internal/controller/identity/agencyv3/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package agencyv3 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/identity/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles AgencyV3 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.AgencyV3_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.AgencyV3_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.AgencyV3_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_identity_agency_v3"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.AgencyV3_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.AgencyV3{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/identity/credentialv3/zz_controller.go b/internal/controller/identity/credentialv3/zz_controller.go new file mode 100755 index 0000000..00cd815 --- /dev/null +++ b/internal/controller/identity/credentialv3/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package credentialv3 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/identity/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles CredentialV3 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.CredentialV3_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.CredentialV3_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.CredentialV3_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_identity_credential_v3"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.CredentialV3_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.CredentialV3{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/identity/groupmembershipv3/zz_controller.go b/internal/controller/identity/groupmembershipv3/zz_controller.go new file mode 100755 index 0000000..5cc0b13 --- /dev/null +++ b/internal/controller/identity/groupmembershipv3/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package groupmembershipv3 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/identity/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles GroupMembershipV3 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.GroupMembershipV3_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.GroupMembershipV3_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.GroupMembershipV3_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_identity_group_membership_v3"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.GroupMembershipV3_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.GroupMembershipV3{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/identity/groupv3/zz_controller.go b/internal/controller/identity/groupv3/zz_controller.go new file mode 100755 index 0000000..3ec633d --- /dev/null +++ b/internal/controller/identity/groupv3/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package groupv3 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/identity/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles GroupV3 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.GroupV3_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.GroupV3_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.GroupV3_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_identity_group_v3"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.GroupV3_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.GroupV3{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/identity/loginpolicyv3/zz_controller.go b/internal/controller/identity/loginpolicyv3/zz_controller.go new file mode 100755 index 0000000..28630f4 --- /dev/null +++ b/internal/controller/identity/loginpolicyv3/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package loginpolicyv3 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/identity/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles LoginPolicyV3 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.LoginPolicyV3_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.LoginPolicyV3_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.LoginPolicyV3_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_identity_login_policy_v3"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.LoginPolicyV3_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.LoginPolicyV3{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/identity/mappingv3/zz_controller.go b/internal/controller/identity/mappingv3/zz_controller.go new file mode 100755 index 0000000..4ca75f0 --- /dev/null +++ b/internal/controller/identity/mappingv3/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package mappingv3 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/identity/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles MappingV3 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.MappingV3_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.MappingV3_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.MappingV3_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_identity_mapping_v3"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.MappingV3_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.MappingV3{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/identity/passwordpolicyv3/zz_controller.go b/internal/controller/identity/passwordpolicyv3/zz_controller.go new file mode 100755 index 0000000..25cf75b --- /dev/null +++ b/internal/controller/identity/passwordpolicyv3/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package passwordpolicyv3 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/identity/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles PasswordPolicyV3 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.PasswordPolicyV3_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.PasswordPolicyV3_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.PasswordPolicyV3_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_identity_password_policy_v3"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.PasswordPolicyV3_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.PasswordPolicyV3{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/identity/projectv3/zz_controller.go b/internal/controller/identity/projectv3/zz_controller.go new file mode 100755 index 0000000..efe7837 --- /dev/null +++ b/internal/controller/identity/projectv3/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package projectv3 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/identity/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles ProjectV3 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.ProjectV3_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.ProjectV3_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.ProjectV3_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_identity_project_v3"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.ProjectV3_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.ProjectV3{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/identity/protectionpolicyv3/zz_controller.go b/internal/controller/identity/protectionpolicyv3/zz_controller.go new file mode 100755 index 0000000..143449f --- /dev/null +++ b/internal/controller/identity/protectionpolicyv3/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package protectionpolicyv3 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/identity/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles ProtectionPolicyV3 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.ProtectionPolicyV3_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.ProtectionPolicyV3_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.ProtectionPolicyV3_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_identity_protection_policy_v3"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.ProtectionPolicyV3_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.ProtectionPolicyV3{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/identity/protocolv3/zz_controller.go b/internal/controller/identity/protocolv3/zz_controller.go new file mode 100755 index 0000000..8ccca46 --- /dev/null +++ b/internal/controller/identity/protocolv3/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package protocolv3 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/identity/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles ProtocolV3 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.ProtocolV3_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.ProtocolV3_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.ProtocolV3_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_identity_protocol_v3"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.ProtocolV3_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.ProtocolV3{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/identity/provider/zz_controller.go b/internal/controller/identity/provider/zz_controller.go new file mode 100755 index 0000000..46f4fb2 --- /dev/null +++ b/internal/controller/identity/provider/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package provider + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/identity/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles Provider managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.Provider_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.Provider_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.Provider_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_identity_provider"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.Provider_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.Provider{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/identity/providerv3/zz_controller.go b/internal/controller/identity/providerv3/zz_controller.go new file mode 100755 index 0000000..9db2def --- /dev/null +++ b/internal/controller/identity/providerv3/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package providerv3 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/identity/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles ProviderV3 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.ProviderV3_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.ProviderV3_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.ProviderV3_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_identity_provider_v3"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.ProviderV3_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.ProviderV3{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/identity/roleassignmentv3/zz_controller.go b/internal/controller/identity/roleassignmentv3/zz_controller.go new file mode 100755 index 0000000..1fa88c8 --- /dev/null +++ b/internal/controller/identity/roleassignmentv3/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package roleassignmentv3 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/identity/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles RoleAssignmentV3 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.RoleAssignmentV3_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.RoleAssignmentV3_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.RoleAssignmentV3_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_identity_role_assignment_v3"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.RoleAssignmentV3_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.RoleAssignmentV3{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/identity/rolev3/zz_controller.go b/internal/controller/identity/rolev3/zz_controller.go new file mode 100755 index 0000000..641fe2d --- /dev/null +++ b/internal/controller/identity/rolev3/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package rolev3 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/identity/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles RoleV3 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.RoleV3_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.RoleV3_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.RoleV3_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_identity_role_v3"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.RoleV3_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.RoleV3{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/identity/usergroupmembershipv3/zz_controller.go b/internal/controller/identity/usergroupmembershipv3/zz_controller.go new file mode 100755 index 0000000..5c96d5a --- /dev/null +++ b/internal/controller/identity/usergroupmembershipv3/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package usergroupmembershipv3 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/identity/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles UserGroupMembershipV3 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.UserGroupMembershipV3_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.UserGroupMembershipV3_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.UserGroupMembershipV3_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_identity_user_group_membership_v3"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.UserGroupMembershipV3_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.UserGroupMembershipV3{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/identity/userv3/zz_controller.go b/internal/controller/identity/userv3/zz_controller.go new file mode 100755 index 0000000..d67f8a3 --- /dev/null +++ b/internal/controller/identity/userv3/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package userv3 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/identity/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles UserV3 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.UserV3_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.UserV3_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.UserV3_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_identity_user_v3"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.UserV3_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.UserV3{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/images/imageaccessacceptv2/zz_controller.go b/internal/controller/images/imageaccessacceptv2/zz_controller.go new file mode 100755 index 0000000..2132d1c --- /dev/null +++ b/internal/controller/images/imageaccessacceptv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package imageaccessacceptv2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/images/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles ImageAccessAcceptV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.ImageAccessAcceptV2_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.ImageAccessAcceptV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.ImageAccessAcceptV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_images_image_access_accept_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.ImageAccessAcceptV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.ImageAccessAcceptV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/images/imageaccessv2/zz_controller.go b/internal/controller/images/imageaccessv2/zz_controller.go new file mode 100755 index 0000000..790da8c --- /dev/null +++ b/internal/controller/images/imageaccessv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package imageaccessv2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/images/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles ImageAccessV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.ImageAccessV2_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.ImageAccessV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.ImageAccessV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_images_image_access_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.ImageAccessV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.ImageAccessV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/images/imagev2/zz_controller.go b/internal/controller/images/imagev2/zz_controller.go new file mode 100755 index 0000000..2581399 --- /dev/null +++ b/internal/controller/images/imagev2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package imagev2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/images/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles ImageV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.ImageV2_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.ImageV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.ImageV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_images_image_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.ImageV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.ImageV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/ims/dataimagev2/zz_controller.go b/internal/controller/ims/dataimagev2/zz_controller.go new file mode 100755 index 0000000..59f77a7 --- /dev/null +++ b/internal/controller/ims/dataimagev2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package dataimagev2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/ims/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles DataImageV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.DataImageV2_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.DataImageV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.DataImageV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_ims_data_image_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.DataImageV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.DataImageV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/ims/imagev2/zz_controller.go b/internal/controller/ims/imagev2/zz_controller.go new file mode 100755 index 0000000..6990652 --- /dev/null +++ b/internal/controller/ims/imagev2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package imagev2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/ims/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles ImageV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.ImageV2_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.ImageV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.ImageV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_ims_image_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.ImageV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.ImageV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/kms/grantv1/zz_controller.go b/internal/controller/kms/grantv1/zz_controller.go new file mode 100755 index 0000000..74da3db --- /dev/null +++ b/internal/controller/kms/grantv1/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package grantv1 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/kms/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles GrantV1 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.GrantV1_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.GrantV1_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.GrantV1_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_kms_grant_v1"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.GrantV1_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.GrantV1{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/lb/certificatev2/zz_controller.go b/internal/controller/lb/certificatev2/zz_controller.go new file mode 100755 index 0000000..0483f22 --- /dev/null +++ b/internal/controller/lb/certificatev2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + 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()) + } + 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/certificatev3/zz_controller.go b/internal/controller/lb/certificatev3/zz_controller.go new file mode 100755 index 0000000..9981166 --- /dev/null +++ b/internal/controller/lb/certificatev3/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package certificatev3 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + 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 CertificateV3 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.CertificateV3_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.CertificateV3_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.CertificateV3_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_lb_certificate_v3"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.CertificateV3_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.CertificateV3{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/lb/ipgroupv3/zz_controller.go b/internal/controller/lb/ipgroupv3/zz_controller.go new file mode 100755 index 0000000..6a755bd --- /dev/null +++ b/internal/controller/lb/ipgroupv3/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package ipgroupv3 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + 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 IpgroupV3 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.IpgroupV3_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.IpgroupV3_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.IpgroupV3_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_lb_ipgroup_v3"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.IpgroupV3_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.IpgroupV3{}, 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 new file mode 100755 index 0000000..abfad38 --- /dev/null +++ b/internal/controller/lb/l7policyv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + 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()) + } + 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 new file mode 100755 index 0000000..c811cfa --- /dev/null +++ b/internal/controller/lb/l7rulev2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + 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()) + } + 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 new file mode 100755 index 0000000..0c69038 --- /dev/null +++ b/internal/controller/lb/listenerv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + 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()) + } + 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/listenerv3/zz_controller.go b/internal/controller/lb/listenerv3/zz_controller.go new file mode 100755 index 0000000..4004240 --- /dev/null +++ b/internal/controller/lb/listenerv3/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package listenerv3 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + 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 ListenerV3 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.ListenerV3_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.ListenerV3_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.ListenerV3_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_lb_listener_v3"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.ListenerV3_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.ListenerV3{}, 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 new file mode 100755 index 0000000..30767e1 --- /dev/null +++ b/internal/controller/lb/loadbalancerv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + 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()) + } + 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/loadbalancerv3/zz_controller.go b/internal/controller/lb/loadbalancerv3/zz_controller.go new file mode 100755 index 0000000..5cccc99 --- /dev/null +++ b/internal/controller/lb/loadbalancerv3/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package loadbalancerv3 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + 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 LoadbalancerV3 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.LoadbalancerV3_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.LoadbalancerV3_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.LoadbalancerV3_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_lb_loadbalancer_v3"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.LoadbalancerV3_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.LoadbalancerV3{}, 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 new file mode 100755 index 0000000..922fd3a --- /dev/null +++ b/internal/controller/lb/memberv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + 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()) + } + 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/memberv3/zz_controller.go b/internal/controller/lb/memberv3/zz_controller.go new file mode 100755 index 0000000..8a1f7a5 --- /dev/null +++ b/internal/controller/lb/memberv3/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package memberv3 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + 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 MemberV3 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.MemberV3_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.MemberV3_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.MemberV3_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_lb_member_v3"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.MemberV3_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.MemberV3{}, 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 new file mode 100755 index 0000000..e0fbe31 --- /dev/null +++ b/internal/controller/lb/monitorv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + 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()) + } + 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/monitorv3/zz_controller.go b/internal/controller/lb/monitorv3/zz_controller.go new file mode 100755 index 0000000..c242811 --- /dev/null +++ b/internal/controller/lb/monitorv3/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package monitorv3 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + 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 MonitorV3 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.MonitorV3_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.MonitorV3_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.MonitorV3_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_lb_monitor_v3"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.MonitorV3_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.MonitorV3{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/lb/policyv3/zz_controller.go b/internal/controller/lb/policyv3/zz_controller.go new file mode 100755 index 0000000..bf4d058 --- /dev/null +++ b/internal/controller/lb/policyv3/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package policyv3 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + 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 PolicyV3 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.PolicyV3_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.PolicyV3_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.PolicyV3_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_lb_policy_v3"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.PolicyV3_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.PolicyV3{}, 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 new file mode 100755 index 0000000..8ae644a --- /dev/null +++ b/internal/controller/lb/poolv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + 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()) + } + 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/poolv3/zz_controller.go b/internal/controller/lb/poolv3/zz_controller.go new file mode 100755 index 0000000..ed620a4 --- /dev/null +++ b/internal/controller/lb/poolv3/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package poolv3 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + 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 PoolV3 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.PoolV3_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.PoolV3_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.PoolV3_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_lb_pool_v3"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.PoolV3_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.PoolV3{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/lb/rulev3/zz_controller.go b/internal/controller/lb/rulev3/zz_controller.go new file mode 100755 index 0000000..fefb16d --- /dev/null +++ b/internal/controller/lb/rulev3/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package rulev3 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + 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 RuleV3 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.RuleV3_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.RuleV3_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.RuleV3_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_lb_rule_v3"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.RuleV3_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.RuleV3{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/lb/securitypolicyv3/zz_controller.go b/internal/controller/lb/securitypolicyv3/zz_controller.go new file mode 100755 index 0000000..b4ba55f --- /dev/null +++ b/internal/controller/lb/securitypolicyv3/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package securitypolicyv3 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + 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 SecurityPolicyV3 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.SecurityPolicyV3_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.SecurityPolicyV3_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.SecurityPolicyV3_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_lb_security_policy_v3"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.SecurityPolicyV3_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.SecurityPolicyV3{}, 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 new file mode 100755 index 0000000..c00b9c0 --- /dev/null +++ b/internal/controller/lb/whitelistv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + 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()) + } + 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/nat/dnatrulev2/zz_controller.go b/internal/controller/nat/dnatrulev2/zz_controller.go new file mode 100755 index 0000000..9e44462 --- /dev/null +++ b/internal/controller/nat/dnatrulev2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package dnatrulev2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/nat/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles DnatRuleV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.DnatRuleV2_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.DnatRuleV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.DnatRuleV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_nat_dnat_rule_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.DnatRuleV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.DnatRuleV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/nat/gatewayv2/zz_controller.go b/internal/controller/nat/gatewayv2/zz_controller.go new file mode 100755 index 0000000..c9a3507 --- /dev/null +++ b/internal/controller/nat/gatewayv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package gatewayv2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/nat/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles GatewayV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.GatewayV2_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.GatewayV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.GatewayV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_nat_gateway_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.GatewayV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.GatewayV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/nat/snatrulev2/zz_controller.go b/internal/controller/nat/snatrulev2/zz_controller.go new file mode 100755 index 0000000..5f86aa3 --- /dev/null +++ b/internal/controller/nat/snatrulev2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package snatrulev2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/nat/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles SnatRuleV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.SnatRuleV2_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.SnatRuleV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.SnatRuleV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_nat_snat_rule_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.SnatRuleV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.SnatRuleV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/networking/floatingipassociatev2/zz_controller.go b/internal/controller/networking/floatingipassociatev2/zz_controller.go new file mode 100755 index 0000000..ae5e1fc --- /dev/null +++ b/internal/controller/networking/floatingipassociatev2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package floatingipassociatev2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/networking/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles FloatingipAssociateV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.FloatingipAssociateV2_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.FloatingipAssociateV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.FloatingipAssociateV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_networking_floatingip_associate_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.FloatingipAssociateV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.FloatingipAssociateV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/networking/floatingipv2/zz_controller.go b/internal/controller/networking/floatingipv2/zz_controller.go new file mode 100755 index 0000000..9d01456 --- /dev/null +++ b/internal/controller/networking/floatingipv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package floatingipv2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/networking/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles FloatingipV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.FloatingipV2_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.FloatingipV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.FloatingipV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_networking_floatingip_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.FloatingipV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.FloatingipV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/networking/networkv2/zz_controller.go b/internal/controller/networking/networkv2/zz_controller.go new file mode 100755 index 0000000..c20f53c --- /dev/null +++ b/internal/controller/networking/networkv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package networkv2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/networking/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles NetworkV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.NetworkV2_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.NetworkV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.NetworkV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_networking_network_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.NetworkV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.NetworkV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/networking/portsecgroupassociatev2/zz_controller.go b/internal/controller/networking/portsecgroupassociatev2/zz_controller.go new file mode 100755 index 0000000..d36433e --- /dev/null +++ b/internal/controller/networking/portsecgroupassociatev2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package portsecgroupassociatev2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/networking/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles PortSecgroupAssociateV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.PortSecgroupAssociateV2_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.PortSecgroupAssociateV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.PortSecgroupAssociateV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_networking_port_secgroup_associate_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.PortSecgroupAssociateV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.PortSecgroupAssociateV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/networking/portv2/zz_controller.go b/internal/controller/networking/portv2/zz_controller.go new file mode 100755 index 0000000..d44764c --- /dev/null +++ b/internal/controller/networking/portv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package portv2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/networking/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles PortV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.PortV2_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.PortV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.PortV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_networking_port_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.PortV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.PortV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/networking/routerinterfacev2/zz_controller.go b/internal/controller/networking/routerinterfacev2/zz_controller.go new file mode 100755 index 0000000..e9ad69e --- /dev/null +++ b/internal/controller/networking/routerinterfacev2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package routerinterfacev2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/networking/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles RouterInterfaceV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.RouterInterfaceV2_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.RouterInterfaceV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.RouterInterfaceV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_networking_router_interface_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.RouterInterfaceV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.RouterInterfaceV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/networking/routerroutev2/zz_controller.go b/internal/controller/networking/routerroutev2/zz_controller.go new file mode 100755 index 0000000..78d652f --- /dev/null +++ b/internal/controller/networking/routerroutev2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package routerroutev2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/networking/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles RouterRouteV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.RouterRouteV2_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.RouterRouteV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.RouterRouteV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_networking_router_route_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.RouterRouteV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.RouterRouteV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/networking/routerv2/zz_controller.go b/internal/controller/networking/routerv2/zz_controller.go new file mode 100755 index 0000000..06dc2db --- /dev/null +++ b/internal/controller/networking/routerv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package routerv2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/networking/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles RouterV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.RouterV2_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.RouterV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.RouterV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_networking_router_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.RouterV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.RouterV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/networking/secgrouprulev2/zz_controller.go b/internal/controller/networking/secgrouprulev2/zz_controller.go new file mode 100755 index 0000000..1750489 --- /dev/null +++ b/internal/controller/networking/secgrouprulev2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package secgrouprulev2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/networking/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles SecgroupRuleV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.SecgroupRuleV2_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.SecgroupRuleV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.SecgroupRuleV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_networking_secgroup_rule_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.SecgroupRuleV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.SecgroupRuleV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/networking/secgroupv2/zz_controller.go b/internal/controller/networking/secgroupv2/zz_controller.go new file mode 100755 index 0000000..17295f4 --- /dev/null +++ b/internal/controller/networking/secgroupv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package secgroupv2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/networking/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles SecgroupV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.SecgroupV2_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.SecgroupV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.SecgroupV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_networking_secgroup_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.SecgroupV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.SecgroupV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/networking/subnetv2/zz_controller.go b/internal/controller/networking/subnetv2/zz_controller.go new file mode 100755 index 0000000..1e91d9f --- /dev/null +++ b/internal/controller/networking/subnetv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package subnetv2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/networking/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles SubnetV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.SubnetV2_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.SubnetV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.SubnetV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_networking_subnet_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.SubnetV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.SubnetV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/networking/vipassociatev2/zz_controller.go b/internal/controller/networking/vipassociatev2/zz_controller.go new file mode 100755 index 0000000..a5da4d3 --- /dev/null +++ b/internal/controller/networking/vipassociatev2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package vipassociatev2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/networking/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles VipAssociateV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.VipAssociateV2_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.VipAssociateV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.VipAssociateV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_networking_vip_associate_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.VipAssociateV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.VipAssociateV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/networking/vipv2/zz_controller.go b/internal/controller/networking/vipv2/zz_controller.go new file mode 100755 index 0000000..52cac58 --- /dev/null +++ b/internal/controller/networking/vipv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package vipv2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/networking/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles VipV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.VipV2_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.VipV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.VipV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_networking_vip_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.VipV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.VipV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/obs/bucket/zz_controller.go b/internal/controller/obs/bucket/zz_controller.go new file mode 100755 index 0000000..2f86149 --- /dev/null +++ b/internal/controller/obs/bucket/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package bucket + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/obs/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles Bucket managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.Bucket_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.Bucket_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.Bucket_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_obs_bucket"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.Bucket_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.Bucket{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/obs/bucketinventory/zz_controller.go b/internal/controller/obs/bucketinventory/zz_controller.go new file mode 100755 index 0000000..a2c2214 --- /dev/null +++ b/internal/controller/obs/bucketinventory/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package bucketinventory + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/obs/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles BucketInventory managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.BucketInventory_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.BucketInventory_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.BucketInventory_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_obs_bucket_inventory"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.BucketInventory_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.BucketInventory{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/obs/bucketobject/zz_controller.go b/internal/controller/obs/bucketobject/zz_controller.go new file mode 100755 index 0000000..41b7f52 --- /dev/null +++ b/internal/controller/obs/bucketobject/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package bucketobject + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/obs/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles BucketObject managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.BucketObject_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.BucketObject_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.BucketObject_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_obs_bucket_object"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.BucketObject_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.BucketObject{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/obs/bucketpolicy/zz_controller.go b/internal/controller/obs/bucketpolicy/zz_controller.go new file mode 100755 index 0000000..b74065b --- /dev/null +++ b/internal/controller/obs/bucketpolicy/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package bucketpolicy + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/obs/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles BucketPolicy managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.BucketPolicy_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.BucketPolicy_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.BucketPolicy_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_obs_bucket_policy"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.BucketPolicy_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.BucketPolicy{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/obs/bucketreplication/zz_controller.go b/internal/controller/obs/bucketreplication/zz_controller.go new file mode 100755 index 0000000..87b0c8f --- /dev/null +++ b/internal/controller/obs/bucketreplication/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package bucketreplication + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/obs/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles BucketReplication managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.BucketReplication_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.BucketReplication_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.BucketReplication_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_obs_bucket_replication"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.BucketReplication_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.BucketReplication{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/providerconfig/config.go b/internal/controller/providerconfig/config.go index 73c10b4..993f5c0 100644 --- a/internal/controller/providerconfig/config.go +++ b/internal/controller/providerconfig/config.go @@ -11,7 +11,7 @@ import ( "github.com/crossplane/upjet/pkg/controller" ctrl "sigs.k8s.io/controller-runtime" - "github.com/upbound/upjet-provider-template/apis/v1beta1" + "github.com/opentelekomcloud/provider-opentelekomcloud/apis/v1beta1" ) // Setup adds a controller that reconciles ProviderConfigs by accounting for diff --git a/internal/controller/rds/backupv3/zz_controller.go b/internal/controller/rds/backupv3/zz_controller.go new file mode 100755 index 0000000..2da5772 --- /dev/null +++ b/internal/controller/rds/backupv3/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package backupv3 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/rds/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles BackupV3 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.BackupV3_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.BackupV3_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.BackupV3_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_rds_backup_v3"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.BackupV3_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.BackupV3{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/rds/instancev1/zz_controller.go b/internal/controller/rds/instancev1/zz_controller.go new file mode 100755 index 0000000..763e877 --- /dev/null +++ b/internal/controller/rds/instancev1/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package instancev1 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/rds/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles InstanceV1 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.InstanceV1_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.InstanceV1_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.InstanceV1_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_rds_instance_v1"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.InstanceV1_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.InstanceV1{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/rds/instancev3/zz_controller.go b/internal/controller/rds/instancev3/zz_controller.go new file mode 100755 index 0000000..879c796 --- /dev/null +++ b/internal/controller/rds/instancev3/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package instancev3 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/rds/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles InstanceV3 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.InstanceV3_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.InstanceV3_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.InstanceV3_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_rds_instance_v3"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.InstanceV3_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.InstanceV3{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/rds/parametergroupv3/zz_controller.go b/internal/controller/rds/parametergroupv3/zz_controller.go new file mode 100755 index 0000000..70b30e6 --- /dev/null +++ b/internal/controller/rds/parametergroupv3/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package parametergroupv3 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/rds/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles ParametergroupV3 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.ParametergroupV3_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.ParametergroupV3_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.ParametergroupV3_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_rds_parametergroup_v3"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.ParametergroupV3_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.ParametergroupV3{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/rds/readreplicav3/zz_controller.go b/internal/controller/rds/readreplicav3/zz_controller.go new file mode 100755 index 0000000..e07638f --- /dev/null +++ b/internal/controller/rds/readreplicav3/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package readreplicav3 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/rds/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles ReadReplicaV3 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.ReadReplicaV3_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.ReadReplicaV3_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.ReadReplicaV3_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_rds_read_replica_v3"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.ReadReplicaV3_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.ReadReplicaV3{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/s3/bucket/zz_controller.go b/internal/controller/s3/bucket/zz_controller.go new file mode 100755 index 0000000..146ee6c --- /dev/null +++ b/internal/controller/s3/bucket/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package bucket + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/s3/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles Bucket managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.Bucket_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.Bucket_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.Bucket_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_s3_bucket"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.Bucket_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.Bucket{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/s3/bucketobject/zz_controller.go b/internal/controller/s3/bucketobject/zz_controller.go new file mode 100755 index 0000000..0397557 --- /dev/null +++ b/internal/controller/s3/bucketobject/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package bucketobject + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/s3/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles BucketObject managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.BucketObject_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.BucketObject_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.BucketObject_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_s3_bucket_object"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.BucketObject_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.BucketObject{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/s3/bucketpolicy/zz_controller.go b/internal/controller/s3/bucketpolicy/zz_controller.go new file mode 100755 index 0000000..dd97041 --- /dev/null +++ b/internal/controller/s3/bucketpolicy/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package bucketpolicy + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/s3/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles BucketPolicy managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.BucketPolicy_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.BucketPolicy_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.BucketPolicy_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_s3_bucket_policy"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.BucketPolicy_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.BucketPolicy{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/sfs/filesystemv2/zz_controller.go b/internal/controller/sfs/filesystemv2/zz_controller.go new file mode 100755 index 0000000..8ac5a4a --- /dev/null +++ b/internal/controller/sfs/filesystemv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package filesystemv2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/sfs/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles FileSystemV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.FileSystemV2_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.FileSystemV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.FileSystemV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_sfs_file_system_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.FileSystemV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.FileSystemV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/sfs/shareaccessrulesv2/zz_controller.go b/internal/controller/sfs/shareaccessrulesv2/zz_controller.go new file mode 100755 index 0000000..2da4317 --- /dev/null +++ b/internal/controller/sfs/shareaccessrulesv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package shareaccessrulesv2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/sfs/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles ShareAccessRulesV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.ShareAccessRulesV2_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.ShareAccessRulesV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.ShareAccessRulesV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_sfs_share_access_rules_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.ShareAccessRulesV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.ShareAccessRulesV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/sfs/turbosharev1/zz_controller.go b/internal/controller/sfs/turbosharev1/zz_controller.go new file mode 100755 index 0000000..95806d8 --- /dev/null +++ b/internal/controller/sfs/turbosharev1/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package turbosharev1 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/sfs/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles TurboShareV1 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.TurboShareV1_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.TurboShareV1_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.TurboShareV1_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_sfs_turbo_share_v1"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.TurboShareV1_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.TurboShareV1{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/smn/subscriptionv2/zz_controller.go b/internal/controller/smn/subscriptionv2/zz_controller.go new file mode 100755 index 0000000..89c6865 --- /dev/null +++ b/internal/controller/smn/subscriptionv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package subscriptionv2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/smn/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles SubscriptionV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.SubscriptionV2_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.SubscriptionV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.SubscriptionV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_smn_subscription_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.SubscriptionV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.SubscriptionV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/smn/topicattributev2/zz_controller.go b/internal/controller/smn/topicattributev2/zz_controller.go new file mode 100755 index 0000000..3032a5f --- /dev/null +++ b/internal/controller/smn/topicattributev2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package topicattributev2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/smn/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles TopicAttributeV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.TopicAttributeV2_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.TopicAttributeV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.TopicAttributeV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_smn_topic_attribute_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.TopicAttributeV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.TopicAttributeV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/smn/topicv2/zz_controller.go b/internal/controller/smn/topicv2/zz_controller.go new file mode 100755 index 0000000..ece7be2 --- /dev/null +++ b/internal/controller/smn/topicv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package topicv2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/smn/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles TopicV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.TopicV2_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.TopicV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.TopicV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_smn_topic_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.TopicV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.TopicV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/vpc/bandwidthassociatev2/zz_controller.go b/internal/controller/vpc/bandwidthassociatev2/zz_controller.go new file mode 100755 index 0000000..1f7cb34 --- /dev/null +++ b/internal/controller/vpc/bandwidthassociatev2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package bandwidthassociatev2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/vpc/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles BandwidthAssociateV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.BandwidthAssociateV2_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.BandwidthAssociateV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.BandwidthAssociateV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_vpc_bandwidth_associate_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.BandwidthAssociateV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.BandwidthAssociateV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/vpc/bandwidthv2/zz_controller.go b/internal/controller/vpc/bandwidthv2/zz_controller.go new file mode 100755 index 0000000..d1426d7 --- /dev/null +++ b/internal/controller/vpc/bandwidthv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package bandwidthv2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/vpc/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles BandwidthV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.BandwidthV2_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.BandwidthV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.BandwidthV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_vpc_bandwidth_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.BandwidthV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.BandwidthV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/vpc/eipv1/zz_controller.go b/internal/controller/vpc/eipv1/zz_controller.go new file mode 100755 index 0000000..9acad39 --- /dev/null +++ b/internal/controller/vpc/eipv1/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package eipv1 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/vpc/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles EIPV1 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.EIPV1_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.EIPV1_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.EIPV1_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_vpc_eip_v1"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.EIPV1_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.EIPV1{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/vpc/flowlogv1/zz_controller.go b/internal/controller/vpc/flowlogv1/zz_controller.go new file mode 100755 index 0000000..29898d1 --- /dev/null +++ b/internal/controller/vpc/flowlogv1/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package flowlogv1 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/vpc/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles FlowLogV1 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.FlowLogV1_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.FlowLogV1_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.FlowLogV1_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_vpc_flow_log_v1"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.FlowLogV1_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.FlowLogV1{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/vpc/peeringconnectionaccepterv2/zz_controller.go b/internal/controller/vpc/peeringconnectionaccepterv2/zz_controller.go new file mode 100755 index 0000000..48a9c3c --- /dev/null +++ b/internal/controller/vpc/peeringconnectionaccepterv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package peeringconnectionaccepterv2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/vpc/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles PeeringConnectionAccepterV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.PeeringConnectionAccepterV2_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.PeeringConnectionAccepterV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.PeeringConnectionAccepterV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_vpc_peering_connection_accepter_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.PeeringConnectionAccepterV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.PeeringConnectionAccepterV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/vpc/peeringconnectionv2/zz_controller.go b/internal/controller/vpc/peeringconnectionv2/zz_controller.go new file mode 100755 index 0000000..8e12701 --- /dev/null +++ b/internal/controller/vpc/peeringconnectionv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package peeringconnectionv2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/vpc/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles PeeringConnectionV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.PeeringConnectionV2_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.PeeringConnectionV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.PeeringConnectionV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_vpc_peering_connection_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.PeeringConnectionV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.PeeringConnectionV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/vpc/routetablev1/zz_controller.go b/internal/controller/vpc/routetablev1/zz_controller.go new file mode 100755 index 0000000..0cc9538 --- /dev/null +++ b/internal/controller/vpc/routetablev1/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package routetablev1 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/vpc/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles RouteTableV1 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.RouteTableV1_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.RouteTableV1_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.RouteTableV1_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_vpc_route_table_v1"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.RouteTableV1_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.RouteTableV1{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/vpc/routev2/zz_controller.go b/internal/controller/vpc/routev2/zz_controller.go new file mode 100755 index 0000000..0c74b9c --- /dev/null +++ b/internal/controller/vpc/routev2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package routev2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/vpc/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles RouteV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.RouteV2_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.RouteV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.RouteV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_vpc_route_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.RouteV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.RouteV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/vpc/subnetv1/zz_controller.go b/internal/controller/vpc/subnetv1/zz_controller.go new file mode 100755 index 0000000..3377075 --- /dev/null +++ b/internal/controller/vpc/subnetv1/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package subnetv1 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/vpc/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles SubnetV1 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.SubnetV1_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.SubnetV1_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.SubnetV1_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_vpc_subnet_v1"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.SubnetV1_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.SubnetV1{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/vpc/v1/zz_controller.go b/internal/controller/vpc/v1/zz_controller.go new file mode 100755 index 0000000..b6e0a76 --- /dev/null +++ b/internal/controller/vpc/v1/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/vpc/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles V1 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.V1_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.V1_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.V1_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_vpc_v1"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.V1_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.V1{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/vpcep/endpointv1/zz_controller.go b/internal/controller/vpcep/endpointv1/zz_controller.go new file mode 100755 index 0000000..01bbcf1 --- /dev/null +++ b/internal/controller/vpcep/endpointv1/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package endpointv1 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/vpcep/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles EndpointV1 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.EndpointV1_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.EndpointV1_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.EndpointV1_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_vpcep_endpoint_v1"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.EndpointV1_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.EndpointV1{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/vpcep/servicev1/zz_controller.go b/internal/controller/vpcep/servicev1/zz_controller.go new file mode 100755 index 0000000..d82fe24 --- /dev/null +++ b/internal/controller/vpcep/servicev1/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package servicev1 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/vpcep/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles ServiceV1 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.ServiceV1_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.ServiceV1_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.ServiceV1_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_vpcep_service_v1"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.ServiceV1_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.ServiceV1{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/vpnaas/endpointgroupv2/zz_controller.go b/internal/controller/vpnaas/endpointgroupv2/zz_controller.go new file mode 100755 index 0000000..e607969 --- /dev/null +++ b/internal/controller/vpnaas/endpointgroupv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package endpointgroupv2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/vpnaas/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles EndpointGroupV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.EndpointGroupV2_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.EndpointGroupV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.EndpointGroupV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_vpnaas_endpoint_group_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.EndpointGroupV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.EndpointGroupV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/vpnaas/ikepolicyv2/zz_controller.go b/internal/controller/vpnaas/ikepolicyv2/zz_controller.go new file mode 100755 index 0000000..2728aa1 --- /dev/null +++ b/internal/controller/vpnaas/ikepolicyv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package ikepolicyv2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/vpnaas/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles IkePolicyV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.IkePolicyV2_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.IkePolicyV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.IkePolicyV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_vpnaas_ike_policy_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.IkePolicyV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.IkePolicyV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/vpnaas/ipsecpolicyv2/zz_controller.go b/internal/controller/vpnaas/ipsecpolicyv2/zz_controller.go new file mode 100755 index 0000000..f831453 --- /dev/null +++ b/internal/controller/vpnaas/ipsecpolicyv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package ipsecpolicyv2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/vpnaas/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles IpsecPolicyV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.IpsecPolicyV2_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.IpsecPolicyV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.IpsecPolicyV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_vpnaas_ipsec_policy_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.IpsecPolicyV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.IpsecPolicyV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/vpnaas/servicev2/zz_controller.go b/internal/controller/vpnaas/servicev2/zz_controller.go new file mode 100755 index 0000000..20ce425 --- /dev/null +++ b/internal/controller/vpnaas/servicev2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package servicev2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/vpnaas/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles ServiceV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.ServiceV2_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.ServiceV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.ServiceV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_vpnaas_service_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.ServiceV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.ServiceV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/vpnaas/siteconnectionv2/zz_controller.go b/internal/controller/vpnaas/siteconnectionv2/zz_controller.go new file mode 100755 index 0000000..fcbb2e1 --- /dev/null +++ b/internal/controller/vpnaas/siteconnectionv2/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package siteconnectionv2 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/vpnaas/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles SiteConnectionV2 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.SiteConnectionV2_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.SiteConnectionV2_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.SiteConnectionV2_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_vpnaas_site_connection_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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.SiteConnectionV2_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.SiteConnectionV2{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/waf/dedicatedalarmmaskingrulev1/zz_controller.go b/internal/controller/waf/dedicatedalarmmaskingrulev1/zz_controller.go new file mode 100755 index 0000000..6fe1147 --- /dev/null +++ b/internal/controller/waf/dedicatedalarmmaskingrulev1/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package dedicatedalarmmaskingrulev1 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/waf/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles DedicatedAlarmMaskingRuleV1 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.DedicatedAlarmMaskingRuleV1_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.DedicatedAlarmMaskingRuleV1_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.DedicatedAlarmMaskingRuleV1_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_waf_dedicated_alarm_masking_rule_v1"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.DedicatedAlarmMaskingRuleV1_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.DedicatedAlarmMaskingRuleV1{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/waf/dedicatedanticrawlerrulev1/zz_controller.go b/internal/controller/waf/dedicatedanticrawlerrulev1/zz_controller.go new file mode 100755 index 0000000..89d4af3 --- /dev/null +++ b/internal/controller/waf/dedicatedanticrawlerrulev1/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package dedicatedanticrawlerrulev1 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/waf/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles DedicatedAntiCrawlerRuleV1 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.DedicatedAntiCrawlerRuleV1_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.DedicatedAntiCrawlerRuleV1_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.DedicatedAntiCrawlerRuleV1_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_waf_dedicated_anti_crawler_rule_v1"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.DedicatedAntiCrawlerRuleV1_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.DedicatedAntiCrawlerRuleV1{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/waf/dedicatedantileakagerulev1/zz_controller.go b/internal/controller/waf/dedicatedantileakagerulev1/zz_controller.go new file mode 100755 index 0000000..1ef7ef9 --- /dev/null +++ b/internal/controller/waf/dedicatedantileakagerulev1/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package dedicatedantileakagerulev1 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/waf/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles DedicatedAntiLeakageRuleV1 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.DedicatedAntiLeakageRuleV1_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.DedicatedAntiLeakageRuleV1_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.DedicatedAntiLeakageRuleV1_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_waf_dedicated_anti_leakage_rule_v1"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.DedicatedAntiLeakageRuleV1_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.DedicatedAntiLeakageRuleV1{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/waf/dedicatedblacklistrulev1/zz_controller.go b/internal/controller/waf/dedicatedblacklistrulev1/zz_controller.go new file mode 100755 index 0000000..fbce98b --- /dev/null +++ b/internal/controller/waf/dedicatedblacklistrulev1/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package dedicatedblacklistrulev1 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/waf/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles DedicatedBlacklistRuleV1 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.DedicatedBlacklistRuleV1_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.DedicatedBlacklistRuleV1_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.DedicatedBlacklistRuleV1_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_waf_dedicated_blacklist_rule_v1"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.DedicatedBlacklistRuleV1_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.DedicatedBlacklistRuleV1{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/waf/dedicatedccrulev1/zz_controller.go b/internal/controller/waf/dedicatedccrulev1/zz_controller.go new file mode 100755 index 0000000..337645d --- /dev/null +++ b/internal/controller/waf/dedicatedccrulev1/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package dedicatedccrulev1 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/waf/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles DedicatedCcRuleV1 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.DedicatedCcRuleV1_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.DedicatedCcRuleV1_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.DedicatedCcRuleV1_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_waf_dedicated_cc_rule_v1"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.DedicatedCcRuleV1_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.DedicatedCcRuleV1{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/waf/dedicatedcertificatev1/zz_controller.go b/internal/controller/waf/dedicatedcertificatev1/zz_controller.go new file mode 100755 index 0000000..92e909e --- /dev/null +++ b/internal/controller/waf/dedicatedcertificatev1/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package dedicatedcertificatev1 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/waf/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles DedicatedCertificateV1 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.DedicatedCertificateV1_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.DedicatedCertificateV1_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.DedicatedCertificateV1_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_waf_dedicated_certificate_v1"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.DedicatedCertificateV1_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.DedicatedCertificateV1{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/waf/dedicateddatamaskingrulev1/zz_controller.go b/internal/controller/waf/dedicateddatamaskingrulev1/zz_controller.go new file mode 100755 index 0000000..6d79abe --- /dev/null +++ b/internal/controller/waf/dedicateddatamaskingrulev1/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package dedicateddatamaskingrulev1 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/waf/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles DedicatedDataMaskingRuleV1 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.DedicatedDataMaskingRuleV1_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.DedicatedDataMaskingRuleV1_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.DedicatedDataMaskingRuleV1_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_waf_dedicated_data_masking_rule_v1"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.DedicatedDataMaskingRuleV1_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.DedicatedDataMaskingRuleV1{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/waf/dedicateddomainv1/zz_controller.go b/internal/controller/waf/dedicateddomainv1/zz_controller.go new file mode 100755 index 0000000..8b2b9e5 --- /dev/null +++ b/internal/controller/waf/dedicateddomainv1/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package dedicateddomainv1 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/waf/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles DedicatedDomainV1 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.DedicatedDomainV1_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.DedicatedDomainV1_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.DedicatedDomainV1_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_waf_dedicated_domain_v1"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.DedicatedDomainV1_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.DedicatedDomainV1{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/waf/dedicatedgeoiprulev1/zz_controller.go b/internal/controller/waf/dedicatedgeoiprulev1/zz_controller.go new file mode 100755 index 0000000..e205de8 --- /dev/null +++ b/internal/controller/waf/dedicatedgeoiprulev1/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package dedicatedgeoiprulev1 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/waf/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles DedicatedGeoIPRuleV1 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.DedicatedGeoIPRuleV1_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.DedicatedGeoIPRuleV1_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.DedicatedGeoIPRuleV1_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_waf_dedicated_geo_ip_rule_v1"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.DedicatedGeoIPRuleV1_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.DedicatedGeoIPRuleV1{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/waf/dedicatedinstancev1/zz_controller.go b/internal/controller/waf/dedicatedinstancev1/zz_controller.go new file mode 100755 index 0000000..2c36933 --- /dev/null +++ b/internal/controller/waf/dedicatedinstancev1/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package dedicatedinstancev1 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/waf/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles DedicatedInstanceV1 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.DedicatedInstanceV1_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.DedicatedInstanceV1_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.DedicatedInstanceV1_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_waf_dedicated_instance_v1"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.DedicatedInstanceV1_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.DedicatedInstanceV1{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/waf/dedicatedknownattacksourcerulev1/zz_controller.go b/internal/controller/waf/dedicatedknownattacksourcerulev1/zz_controller.go new file mode 100755 index 0000000..0d585af --- /dev/null +++ b/internal/controller/waf/dedicatedknownattacksourcerulev1/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package dedicatedknownattacksourcerulev1 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/waf/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles DedicatedKnownAttackSourceRuleV1 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.DedicatedKnownAttackSourceRuleV1_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.DedicatedKnownAttackSourceRuleV1_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.DedicatedKnownAttackSourceRuleV1_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_waf_dedicated_known_attack_source_rule_v1"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.DedicatedKnownAttackSourceRuleV1_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.DedicatedKnownAttackSourceRuleV1{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/waf/dedicatedpolicyv1/zz_controller.go b/internal/controller/waf/dedicatedpolicyv1/zz_controller.go new file mode 100755 index 0000000..6665a85 --- /dev/null +++ b/internal/controller/waf/dedicatedpolicyv1/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package dedicatedpolicyv1 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/waf/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles DedicatedPolicyV1 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.DedicatedPolicyV1_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.DedicatedPolicyV1_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.DedicatedPolicyV1_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_waf_dedicated_policy_v1"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.DedicatedPolicyV1_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.DedicatedPolicyV1{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/waf/dedicatedpreciseprotectionrulev1/zz_controller.go b/internal/controller/waf/dedicatedpreciseprotectionrulev1/zz_controller.go new file mode 100755 index 0000000..1f86da9 --- /dev/null +++ b/internal/controller/waf/dedicatedpreciseprotectionrulev1/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package dedicatedpreciseprotectionrulev1 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/waf/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles DedicatedPreciseProtectionRuleV1 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.DedicatedPreciseProtectionRuleV1_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.DedicatedPreciseProtectionRuleV1_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.DedicatedPreciseProtectionRuleV1_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_waf_dedicated_precise_protection_rule_v1"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.DedicatedPreciseProtectionRuleV1_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.DedicatedPreciseProtectionRuleV1{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/waf/dedicatedreferencetablev1/zz_controller.go b/internal/controller/waf/dedicatedreferencetablev1/zz_controller.go new file mode 100755 index 0000000..3841b8a --- /dev/null +++ b/internal/controller/waf/dedicatedreferencetablev1/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package dedicatedreferencetablev1 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/waf/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles DedicatedReferenceTableV1 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.DedicatedReferenceTableV1_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.DedicatedReferenceTableV1_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.DedicatedReferenceTableV1_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_waf_dedicated_reference_table_v1"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.DedicatedReferenceTableV1_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.DedicatedReferenceTableV1{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/waf/dedicatedwebtamperrulev1/zz_controller.go b/internal/controller/waf/dedicatedwebtamperrulev1/zz_controller.go new file mode 100755 index 0000000..6abdc21 --- /dev/null +++ b/internal/controller/waf/dedicatedwebtamperrulev1/zz_controller.go @@ -0,0 +1,66 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package dedicatedwebtamperrulev1 + +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" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/terraform" + ctrl "sigs.k8s.io/controller-runtime" + + v1alpha1 "github.com/opentelekomcloud/provider-opentelekomcloud/apis/waf/v1alpha1" + features "github.com/opentelekomcloud/provider-opentelekomcloud/internal/features" +) + +// Setup adds a controller that reconciles DedicatedWebTamperRuleV1 managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1alpha1.DedicatedWebTamperRuleV1_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.DedicatedWebTamperRuleV1_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.DedicatedWebTamperRuleV1_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["opentelekomcloud_waf_dedicated_web_tamper_rule_v1"], 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()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.DedicatedWebTamperRuleV1_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1alpha1.DedicatedWebTamperRuleV1{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/zz_setup.go b/internal/controller/zz_setup.go index 80f7342..ef1b2f4 100755 --- a/internal/controller/zz_setup.go +++ b/internal/controller/zz_setup.go @@ -9,16 +9,304 @@ import ( "github.com/crossplane/upjet/pkg/controller" - resource "github.com/upbound/upjet-provider-template/internal/controller/null/resource" - providerconfig "github.com/upbound/upjet-provider-template/internal/controller/providerconfig" + volumev2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/blockstorage/volumev2" + addonv3 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/cce/addonv3" + clusterv3 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/cce/clusterv3" + nodepoolv3 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/cce/nodepoolv3" + nodev3 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/cce/nodev3" + floatingipassociatev2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/compute/floatingipassociatev2" + floatingipv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/compute/floatingipv2" + instancev2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/compute/instancev2" + keypairv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/compute/keypairv2" + secgroupv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/compute/secgroupv2" + servergroupv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/compute/servergroupv2" + volumeattachv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/compute/volumeattachv2" + instancev1 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/dcs/instancev1" + instancev2dcs "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/dcs/instancev2" + instancev3 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/dds/instancev3" + hostv1 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/deh/hostv1" + appv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/dis/appv2" + checkpointv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/dis/checkpointv2" + dumptaskv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/dis/dumptaskv2" + streamv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/dis/streamv2" + instancev1dms "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/dms/instancev1" + instancev2dms "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/dms/instancev2" + topicv1 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/dms/topicv1" + userpermissionv1 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/dms/userpermissionv1" + userv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/dms/userv2" + ptrrecordv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/dns/ptrrecordv2" + recordsetv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/dns/recordsetv2" + zonev2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/dns/zonev2" + instancev1ecs "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/ecs/instancev1" + volumev3 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/evs/volumev3" + asyncinvokeconfigv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/fgs/asyncinvokeconfigv2" + eventv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/fgs/eventv2" + functionv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/fgs/functionv2" + triggerv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/fgs/triggerv2" + firewallgroupv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/fw/firewallgroupv2" + policyv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/fw/policyv2" + rulev2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/fw/rulev2" + agencyv3 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/identity/agencyv3" + credentialv3 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/identity/credentialv3" + groupmembershipv3 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/identity/groupmembershipv3" + groupv3 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/identity/groupv3" + loginpolicyv3 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/identity/loginpolicyv3" + mappingv3 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/identity/mappingv3" + passwordpolicyv3 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/identity/passwordpolicyv3" + projectv3 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/identity/projectv3" + protectionpolicyv3 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/identity/protectionpolicyv3" + protocolv3 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/identity/protocolv3" + provider "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/identity/provider" + providerv3 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/identity/providerv3" + roleassignmentv3 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/identity/roleassignmentv3" + rolev3 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/identity/rolev3" + usergroupmembershipv3 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/identity/usergroupmembershipv3" + userv3 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/identity/userv3" + imageaccessacceptv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/images/imageaccessacceptv2" + imageaccessv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/images/imageaccessv2" + imagev2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/images/imagev2" + dataimagev2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/ims/dataimagev2" + imagev2ims "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/ims/imagev2" + grantv1 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/kms/grantv1" + 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" + dnatrulev2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/nat/dnatrulev2" + gatewayv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/nat/gatewayv2" + snatrulev2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/nat/snatrulev2" + floatingipassociatev2networking "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/networking/floatingipassociatev2" + floatingipv2networking "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/networking/floatingipv2" + networkv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/networking/networkv2" + portsecgroupassociatev2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/networking/portsecgroupassociatev2" + portv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/networking/portv2" + routerinterfacev2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/networking/routerinterfacev2" + routerroutev2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/networking/routerroutev2" + routerv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/networking/routerv2" + secgrouprulev2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/networking/secgrouprulev2" + secgroupv2networking "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/networking/secgroupv2" + subnetv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/networking/subnetv2" + vipassociatev2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/networking/vipassociatev2" + vipv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/networking/vipv2" + bucket "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/obs/bucket" + bucketinventory "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/obs/bucketinventory" + bucketobject "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/obs/bucketobject" + bucketpolicy "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/obs/bucketpolicy" + bucketreplication "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/obs/bucketreplication" + providerconfig "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/providerconfig" + backupv3 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/rds/backupv3" + instancev1rds "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/rds/instancev1" + instancev3rds "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/rds/instancev3" + parametergroupv3 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/rds/parametergroupv3" + readreplicav3 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/rds/readreplicav3" + buckets3 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/s3/bucket" + bucketobjects3 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/s3/bucketobject" + bucketpolicys3 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/s3/bucketpolicy" + filesystemv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/sfs/filesystemv2" + shareaccessrulesv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/sfs/shareaccessrulesv2" + turbosharev1 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/sfs/turbosharev1" + subscriptionv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/smn/subscriptionv2" + topicattributev2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/smn/topicattributev2" + topicv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/smn/topicv2" + bandwidthassociatev2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/vpc/bandwidthassociatev2" + bandwidthv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/vpc/bandwidthv2" + eipv1 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/vpc/eipv1" + flowlogv1 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/vpc/flowlogv1" + peeringconnectionaccepterv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/vpc/peeringconnectionaccepterv2" + peeringconnectionv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/vpc/peeringconnectionv2" + routetablev1 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/vpc/routetablev1" + routev2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/vpc/routev2" + subnetv1 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/vpc/subnetv1" + v1 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/vpc/v1" + endpointv1 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/vpcep/endpointv1" + servicev1 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/vpcep/servicev1" + endpointgroupv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/vpnaas/endpointgroupv2" + ikepolicyv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/vpnaas/ikepolicyv2" + ipsecpolicyv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/vpnaas/ipsecpolicyv2" + servicev2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/vpnaas/servicev2" + siteconnectionv2 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/vpnaas/siteconnectionv2" + dedicatedalarmmaskingrulev1 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/waf/dedicatedalarmmaskingrulev1" + dedicatedanticrawlerrulev1 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/waf/dedicatedanticrawlerrulev1" + dedicatedantileakagerulev1 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/waf/dedicatedantileakagerulev1" + dedicatedblacklistrulev1 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/waf/dedicatedblacklistrulev1" + dedicatedccrulev1 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/waf/dedicatedccrulev1" + dedicatedcertificatev1 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/waf/dedicatedcertificatev1" + dedicateddatamaskingrulev1 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/waf/dedicateddatamaskingrulev1" + dedicateddomainv1 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/waf/dedicateddomainv1" + dedicatedgeoiprulev1 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/waf/dedicatedgeoiprulev1" + dedicatedinstancev1 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/waf/dedicatedinstancev1" + dedicatedknownattacksourcerulev1 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/waf/dedicatedknownattacksourcerulev1" + dedicatedpolicyv1 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/waf/dedicatedpolicyv1" + dedicatedpreciseprotectionrulev1 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/waf/dedicatedpreciseprotectionrulev1" + dedicatedreferencetablev1 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/waf/dedicatedreferencetablev1" + dedicatedwebtamperrulev1 "github.com/opentelekomcloud/provider-opentelekomcloud/internal/controller/waf/dedicatedwebtamperrulev1" ) // Setup creates all controllers with the supplied logger and adds them to // the supplied manager. func Setup(mgr ctrl.Manager, o controller.Options) error { for _, setup := range []func(ctrl.Manager, controller.Options) error{ - resource.Setup, + volumev2.Setup, + addonv3.Setup, + clusterv3.Setup, + nodepoolv3.Setup, + nodev3.Setup, + floatingipassociatev2.Setup, + floatingipv2.Setup, + instancev2.Setup, + keypairv2.Setup, + secgroupv2.Setup, + servergroupv2.Setup, + volumeattachv2.Setup, + instancev1.Setup, + instancev2dcs.Setup, + instancev3.Setup, + hostv1.Setup, + appv2.Setup, + checkpointv2.Setup, + dumptaskv2.Setup, + streamv2.Setup, + instancev1dms.Setup, + instancev2dms.Setup, + topicv1.Setup, + userpermissionv1.Setup, + userv2.Setup, + ptrrecordv2.Setup, + recordsetv2.Setup, + zonev2.Setup, + instancev1ecs.Setup, + volumev3.Setup, + asyncinvokeconfigv2.Setup, + eventv2.Setup, + functionv2.Setup, + triggerv2.Setup, + firewallgroupv2.Setup, + policyv2.Setup, + rulev2.Setup, + agencyv3.Setup, + credentialv3.Setup, + groupmembershipv3.Setup, + groupv3.Setup, + loginpolicyv3.Setup, + mappingv3.Setup, + passwordpolicyv3.Setup, + projectv3.Setup, + protectionpolicyv3.Setup, + protocolv3.Setup, + provider.Setup, + providerv3.Setup, + roleassignmentv3.Setup, + rolev3.Setup, + usergroupmembershipv3.Setup, + userv3.Setup, + imageaccessacceptv2.Setup, + imageaccessv2.Setup, + imagev2.Setup, + dataimagev2.Setup, + imagev2ims.Setup, + grantv1.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, + dnatrulev2.Setup, + gatewayv2.Setup, + snatrulev2.Setup, + floatingipassociatev2networking.Setup, + floatingipv2networking.Setup, + networkv2.Setup, + portsecgroupassociatev2.Setup, + portv2.Setup, + routerinterfacev2.Setup, + routerroutev2.Setup, + routerv2.Setup, + secgrouprulev2.Setup, + secgroupv2networking.Setup, + subnetv2.Setup, + vipassociatev2.Setup, + vipv2.Setup, + bucket.Setup, + bucketinventory.Setup, + bucketobject.Setup, + bucketpolicy.Setup, + bucketreplication.Setup, providerconfig.Setup, + backupv3.Setup, + instancev1rds.Setup, + instancev3rds.Setup, + parametergroupv3.Setup, + readreplicav3.Setup, + buckets3.Setup, + bucketobjects3.Setup, + bucketpolicys3.Setup, + filesystemv2.Setup, + shareaccessrulesv2.Setup, + turbosharev1.Setup, + subscriptionv2.Setup, + topicattributev2.Setup, + topicv2.Setup, + bandwidthassociatev2.Setup, + bandwidthv2.Setup, + eipv1.Setup, + flowlogv1.Setup, + peeringconnectionaccepterv2.Setup, + peeringconnectionv2.Setup, + routetablev1.Setup, + routev2.Setup, + subnetv1.Setup, + v1.Setup, + endpointv1.Setup, + servicev1.Setup, + endpointgroupv2.Setup, + ikepolicyv2.Setup, + ipsecpolicyv2.Setup, + servicev2.Setup, + siteconnectionv2.Setup, + dedicatedalarmmaskingrulev1.Setup, + dedicatedanticrawlerrulev1.Setup, + dedicatedantileakagerulev1.Setup, + dedicatedblacklistrulev1.Setup, + dedicatedccrulev1.Setup, + dedicatedcertificatev1.Setup, + dedicateddatamaskingrulev1.Setup, + dedicateddomainv1.Setup, + dedicatedgeoiprulev1.Setup, + dedicatedinstancev1.Setup, + dedicatedknownattacksourcerulev1.Setup, + dedicatedpolicyv1.Setup, + dedicatedpreciseprotectionrulev1.Setup, + dedicatedreferencetablev1.Setup, + dedicatedwebtamperrulev1.Setup, } { if err := setup(mgr, o); err != nil { return err diff --git a/package/crds/_.yaml b/package/crds/_.yaml new file mode 100644 index 0000000..6179b3e --- /dev/null +++ b/package/crds/_.yaml @@ -0,0 +1,13 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 +spec: + group: "" + names: + kind: "" + plural: "" + scope: "" + versions: null diff --git a/package/crds/blockstorage.crossplane.io_volumev2s.yaml b/package/crds/blockstorage.crossplane.io_volumev2s.yaml new file mode 100644 index 0000000..b33c132 --- /dev/null +++ b/package/crds/blockstorage.crossplane.io_volumev2s.yaml @@ -0,0 +1,519 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: volumev2s.blockstorage.crossplane.io +spec: + group: blockstorage.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: VolumeV2 + listKind: VolumeV2List + plural: volumev2s + singular: volumev2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: VolumeV2 is the Schema for the VolumeV2s API. Manages a BlockStorage + volume 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: VolumeV2Spec defines the desired state of VolumeV2 + 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: + availabilityZone: + description: The availability zone for the volume. Changing this + creates a new volume. + type: string + cascade: + description: Specifies to delete all snapshots associated with + the EVS disk. + type: boolean + consistencyGroupId: + description: The consistency group to place the volume in. + type: string + description: + description: A description of the volume. Changing this updates + the volume's description. + type: string + deviceType: + description: The device type of volume to create. Valid options + are VBD and SCSI. Defaults to VBD. Changing this creates a new + volume. + type: string + imageId: + description: The image ID from which to create the volume. Changing + this creates a new volume. + type: string + metadata: + additionalProperties: + type: string + description: 'Metadata key/value pairs to associate with the volume. + Changing this updates the existing volume metadata. The EVS + encryption capability with KMS key can be set with the following + parameters:' + type: object + name: + description: A unique name for the volume. Changing this updates + the volume's name. + type: string + region: + type: string + size: + description: The size of the volume to create (in gigabytes). + Decreasing this parameter creates a new volume. + type: number + snapshotId: + description: The snapshot ID from which to create the volume. + Changing this creates a new volume. + type: string + sourceReplica: + description: The volume ID to replicate with. + type: string + sourceVolId: + description: The volume ID from which to create the volume. Changing + this creates a new volume. + type: string + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the volume. + Changing this updates the existing volume tags. + type: object + volumeType: + description: 'Currently, the value can be SSD (ultra-high I/O + disk type), SAS (high I/O disk type), SATA (common I/O disk + type), co-p1 (Exclusive HPC/ SAP HANA: high I/O, performance + optimized), or uh-l1 (Exclusive HPC/ SAP HANA: ultra-high-I/O, + latency optimized). Read Note for uh-l1 and co-p1: OTC-API. + Changing this creates a new volume.' + 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: + availabilityZone: + description: The availability zone for the volume. Changing this + creates a new volume. + type: string + cascade: + description: Specifies to delete all snapshots associated with + the EVS disk. + type: boolean + consistencyGroupId: + description: The consistency group to place the volume in. + type: string + description: + description: A description of the volume. Changing this updates + the volume's description. + type: string + deviceType: + description: The device type of volume to create. Valid options + are VBD and SCSI. Defaults to VBD. Changing this creates a new + volume. + type: string + imageId: + description: The image ID from which to create the volume. Changing + this creates a new volume. + type: string + metadata: + additionalProperties: + type: string + description: 'Metadata key/value pairs to associate with the volume. + Changing this updates the existing volume metadata. The EVS + encryption capability with KMS key can be set with the following + parameters:' + type: object + name: + description: A unique name for the volume. Changing this updates + the volume's name. + type: string + region: + type: string + size: + description: The size of the volume to create (in gigabytes). + Decreasing this parameter creates a new volume. + type: number + snapshotId: + description: The snapshot ID from which to create the volume. + Changing this creates a new volume. + type: string + sourceReplica: + description: The volume ID to replicate with. + type: string + sourceVolId: + description: The volume ID from which to create the volume. Changing + this creates a new volume. + type: string + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the volume. + Changing this updates the existing volume tags. + type: object + volumeType: + description: 'Currently, the value can be SSD (ultra-high I/O + disk type), SAS (high I/O disk type), SATA (common I/O disk + type), co-p1 (Exclusive HPC/ SAP HANA: high I/O, performance + optimized), or uh-l1 (Exclusive HPC/ SAP HANA: ultra-high-I/O, + latency optimized). Read Note for uh-l1 and co-p1: OTC-API. + Changing this creates a new volume.' + 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.size is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.size) + || (has(self.initProvider) && has(self.initProvider.size))' + status: + description: VolumeV2Status defines the observed state of VolumeV2. + properties: + atProvider: + properties: + attachment: + description: If a volume is attached to an instance, this attribute + will display the Attachment ID, Instance ID, and the Device + as the Instance sees it. + items: + properties: + device: + type: string + id: + type: string + instanceId: + type: string + type: object + type: array + availabilityZone: + description: The availability zone for the volume. Changing this + creates a new volume. + type: string + cascade: + description: Specifies to delete all snapshots associated with + the EVS disk. + type: boolean + consistencyGroupId: + description: The consistency group to place the volume in. + type: string + description: + description: A description of the volume. Changing this updates + the volume's description. + type: string + deviceType: + description: The device type of volume to create. Valid options + are VBD and SCSI. Defaults to VBD. Changing this creates a new + volume. + type: string + id: + type: string + imageId: + description: The image ID from which to create the volume. Changing + this creates a new volume. + type: string + metadata: + additionalProperties: + type: string + description: 'Metadata key/value pairs to associate with the volume. + Changing this updates the existing volume metadata. The EVS + encryption capability with KMS key can be set with the following + parameters:' + type: object + name: + description: A unique name for the volume. Changing this updates + the volume's name. + type: string + region: + type: string + size: + description: The size of the volume to create (in gigabytes). + Decreasing this parameter creates a new volume. + type: number + snapshotId: + description: The snapshot ID from which to create the volume. + Changing this creates a new volume. + type: string + sourceReplica: + description: The volume ID to replicate with. + type: string + sourceVolId: + description: The volume ID from which to create the volume. Changing + this creates a new volume. + type: string + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the volume. + Changing this updates the existing volume tags. + type: object + volumeType: + description: 'Currently, the value can be SSD (ultra-high I/O + disk type), SAS (high I/O disk type), SATA (common I/O disk + type), co-p1 (Exclusive HPC/ SAP HANA: high I/O, performance + optimized), or uh-l1 (Exclusive HPC/ SAP HANA: ultra-high-I/O, + latency optimized). Read Note for uh-l1 and co-p1: OTC-API. + Changing this creates a new volume.' + type: string + wwn: + description: Specifies the unique identifier used for mounting + the EVS disk. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/cce.crossplane.io_addonv3s.yaml b/package/crds/cce.crossplane.io_addonv3s.yaml new file mode 100644 index 0000000..c48ea2a --- /dev/null +++ b/package/crds/cce.crossplane.io_addonv3s.yaml @@ -0,0 +1,411 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: addonv3s.cce.crossplane.io +spec: + group: cce.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: AddonV3 + listKind: AddonV3List + plural: addonv3s + singular: addonv3 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: AddonV3 is the Schema for the AddonV3s API. Manages a CCE Addon + 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: AddonV3Spec defines the desired state of AddonV3 + 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: + clusterId: + description: ID of cluster to install the add-on on. + type: string + templateName: + description: Name of the add-on template to be installed, for + example, coredns. + type: string + templateVersion: + description: Version number of the add-on to be installed or upgraded, + for example, v1.0.0. + type: string + values: + description: Parameters of the template to be installed or upgraded. + items: + properties: + basic: + additionalProperties: + type: string + description: Basic add-on information. + type: object + custom: + additionalProperties: + type: string + description: Custom parameters of the add-on. + type: object + flavor: + description: Specifies the json string vary depending on + the add-on. + type: string + type: object + type: array + 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: + clusterId: + description: ID of cluster to install the add-on on. + type: string + templateName: + description: Name of the add-on template to be installed, for + example, coredns. + type: string + templateVersion: + description: Version number of the add-on to be installed or upgraded, + for example, v1.0.0. + type: string + values: + description: Parameters of the template to be installed or upgraded. + items: + properties: + basic: + additionalProperties: + type: string + description: Basic add-on information. + type: object + custom: + additionalProperties: + type: string + description: Custom parameters of the add-on. + type: object + flavor: + description: Specifies the json string vary depending on + the add-on. + type: string + type: object + type: array + 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.clusterId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.clusterId) + || (has(self.initProvider) && has(self.initProvider.clusterId))' + - message: spec.forProvider.templateName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.templateName) + || (has(self.initProvider) && has(self.initProvider.templateName))' + - message: spec.forProvider.templateVersion is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.templateVersion) + || (has(self.initProvider) && has(self.initProvider.templateVersion))' + - message: spec.forProvider.values is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.values) + || (has(self.initProvider) && has(self.initProvider.values))' + status: + description: AddonV3Status defines the observed state of AddonV3. + properties: + atProvider: + properties: + clusterId: + description: ID of cluster to install the add-on on. + type: string + description: + description: Installed add-on description + type: string + id: + type: string + name: + description: Installed add-on name. + type: string + templateName: + description: Name of the add-on template to be installed, for + example, coredns. + type: string + templateVersion: + description: Version number of the add-on to be installed or upgraded, + for example, v1.0.0. + type: string + values: + description: Parameters of the template to be installed or upgraded. + items: + properties: + basic: + additionalProperties: + type: string + description: Basic add-on information. + type: object + custom: + additionalProperties: + type: string + description: Custom parameters of the add-on. + type: object + flavor: + description: Specifies the json string vary depending on + the add-on. + type: string + type: object + type: array + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/cce.crossplane.io_clusterv3s.yaml b/package/crds/cce.crossplane.io_clusterv3s.yaml new file mode 100644 index 0000000..ed33bc4 --- /dev/null +++ b/package/crds/cce.crossplane.io_clusterv3s.yaml @@ -0,0 +1,917 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: clusterv3s.cce.crossplane.io +spec: + group: cce.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: ClusterV3 + listKind: ClusterV3List + plural: clusterv3s + singular: clusterv3 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: ClusterV3 is the Schema for the ClusterV3s API. Manages a CCE + Cluster 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: ClusterV3Spec defines the desired state of ClusterV3 + 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: + annotations: + additionalProperties: + type: string + description: Cluster annotation, key/value pair format. Changing + this parameter will create a new cluster resource. + type: object + authenticatingProxy: + description: Authenticating proxy configuration. Required if authentication_mode + is set to authenticating_proxy. + items: + properties: + ca: + description: X509 CA certificate configured in authenticating_proxy + mode. The maximum size of the certificate is 1 MB. + type: string + cert: + description: Client certificate issued by the X509 CA certificate + configured in authenticating_proxy mode. This certificate + is used for authentication from kube-apiserver to the + extended API server. + type: string + privateKey: + description: 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. + type: string + type: object + type: array + authenticatingProxyCa: + description: CA root certificate provided in the authenticating_proxy + mode. Deprecated, use authenticating_proxy instead. + type: string + authenticationMode: + description: Authentication mode of the cluster, possible values + are rbac and authenticating_proxy. Defaults to rbac. Changing + this parameter will create a new cluster resource. + type: string + billingMode: + description: Charging mode of the cluster, which is 0 (on demand). + Changing this parameter will create a new cluster resource. + type: number + clusterType: + description: Cluster Type, possible values are VirtualMachine + and BareMetal. Changing this parameter will create a new cluster + resource. + type: string + clusterVersion: + description: For the cluster version, possible values are v1.27, + v1.25, v1.23, v1.21. If this parameter is not set, the cluster + of the latest version is created by default. Changing this parameter + will create a new cluster resource. OTC-API + type: string + containerNetworkCidr: + description: Container network segment. Changing this parameter + will create a new cluster resource. + type: string + containerNetworkType: + description: Container network type. + type: string + deleteAllNetwork: + description: Specified whether to delete all associated network + resources when deleting the CCE cluster. valid values are true, + try and false. Default is false. + type: string + deleteAllStorage: + description: Specified whether to delete all associated storage + resources when deleting the CCE cluster. valid values are true, + try and false. Default is false. + type: string + deleteEfs: + description: Specified whether to unbind associated SFS Turbo + file systems when deleting the CCE cluster. valid values are + true, try and false. Default is false. + type: string + deleteEni: + description: Specified whether to delete ENI ports when deleting + the CCE cluster. valid values are true, try and false. Default + is false. + type: string + deleteEvs: + description: Specified whether to delete associated EVS disks + when deleting the CCE cluster. valid values are true, try and + false. Default is false. + type: string + deleteNet: + description: Specified whether to delete cluster Service/ingress-related + resources, such as ELB when deleting the CCE cluster. valid + values are true, try and false. Default is false. + type: string + deleteObs: + description: Specified whether to delete associated OBS buckets + when deleting the CCE cluster. valid values are true, try and + false. Default is false. + type: string + deleteSfs: + description: Specified whether to delete associated SFS file systems + when deleting the CCE cluster. valid values are true, try and + false. Default is false. + type: string + description: + description: Cluster description. + type: string + eip: + description: EIP address of the cluster. + type: string + enableVolumeEncryption: + description: System and data disks encryption of master nodes. + Changing this parameter will create a new cluster resource. + type: boolean + eniSubnetCidr: + description: Specifies the ENI network segment. Specified when + creating a CCE Turbo cluster. Changing this parameter will create + a new cluster resource. + type: string + eniSubnetId: + description: '- Specifies the ENI subnet ID. Specified when creating + a CCE Turbo cluster. Changing this parameter will create a new + cluster resource.' + type: string + extendParam: + additionalProperties: + type: string + description: Extended parameter. Changing this parameter will + create a new cluster resource. List of cluster extended params. + type: object + flavorId: + description: Cluster specifications. Changing this parameter will + create a new cluster resource. + type: string + highwaySubnetId: + description: The ID of the high speed network used to create bare + metal nodes. Changing this parameter will create a new cluster + resource. + type: string + ignoreAddons: + description: Skip all cluster addons operations. + type: boolean + ignoreCertificateClustersData: + description: Skip sensitive cluster data. + type: boolean + ignoreCertificateUsersData: + description: Skip sensitive user data. + type: boolean + kubeProxyMode: + description: 'Service forwarding mode. Two modes are available:' + type: string + kubernetesSvcIpRange: + description: Service CIDR block, or the IP address range which + the kubernetes clusterIp must fall within. This parameter is + available only for clusters of v1.11.7 and later. + type: string + labels: + additionalProperties: + type: string + description: Cluster tag, key/value pair format. Changing this + parameter will create a new cluster resource. + type: object + multiAz: + description: Enable multiple AZs for the cluster, only when using + HA flavors. Changing this parameter will create a new cluster + resource. + type: boolean + name: + description: Cluster name. Changing this parameter will create + a new cluster resource. + type: string + noAddons: + description: Remove addons installed by the default after the + cluster creation. + type: boolean + region: + type: string + subnetId: + description: The Network ID of the subnet used to create the node. + Changing this parameter will create a new cluster resource. + type: string + vpcId: + description: The ID of the VPC used to create the node. Changing + this parameter will create a new cluster resource. + 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: + annotations: + additionalProperties: + type: string + description: Cluster annotation, key/value pair format. Changing + this parameter will create a new cluster resource. + type: object + authenticatingProxy: + description: Authenticating proxy configuration. Required if authentication_mode + is set to authenticating_proxy. + items: + properties: + ca: + description: X509 CA certificate configured in authenticating_proxy + mode. The maximum size of the certificate is 1 MB. + type: string + cert: + description: Client certificate issued by the X509 CA certificate + configured in authenticating_proxy mode. This certificate + is used for authentication from kube-apiserver to the + extended API server. + type: string + privateKey: + description: 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. + type: string + type: object + type: array + authenticatingProxyCa: + description: CA root certificate provided in the authenticating_proxy + mode. Deprecated, use authenticating_proxy instead. + type: string + authenticationMode: + description: Authentication mode of the cluster, possible values + are rbac and authenticating_proxy. Defaults to rbac. Changing + this parameter will create a new cluster resource. + type: string + billingMode: + description: Charging mode of the cluster, which is 0 (on demand). + Changing this parameter will create a new cluster resource. + type: number + clusterType: + description: Cluster Type, possible values are VirtualMachine + and BareMetal. Changing this parameter will create a new cluster + resource. + type: string + clusterVersion: + description: For the cluster version, possible values are v1.27, + v1.25, v1.23, v1.21. If this parameter is not set, the cluster + of the latest version is created by default. Changing this parameter + will create a new cluster resource. OTC-API + type: string + containerNetworkCidr: + description: Container network segment. Changing this parameter + will create a new cluster resource. + type: string + containerNetworkType: + description: Container network type. + type: string + deleteAllNetwork: + description: Specified whether to delete all associated network + resources when deleting the CCE cluster. valid values are true, + try and false. Default is false. + type: string + deleteAllStorage: + description: Specified whether to delete all associated storage + resources when deleting the CCE cluster. valid values are true, + try and false. Default is false. + type: string + deleteEfs: + description: Specified whether to unbind associated SFS Turbo + file systems when deleting the CCE cluster. valid values are + true, try and false. Default is false. + type: string + deleteEni: + description: Specified whether to delete ENI ports when deleting + the CCE cluster. valid values are true, try and false. Default + is false. + type: string + deleteEvs: + description: Specified whether to delete associated EVS disks + when deleting the CCE cluster. valid values are true, try and + false. Default is false. + type: string + deleteNet: + description: Specified whether to delete cluster Service/ingress-related + resources, such as ELB when deleting the CCE cluster. valid + values are true, try and false. Default is false. + type: string + deleteObs: + description: Specified whether to delete associated OBS buckets + when deleting the CCE cluster. valid values are true, try and + false. Default is false. + type: string + deleteSfs: + description: Specified whether to delete associated SFS file systems + when deleting the CCE cluster. valid values are true, try and + false. Default is false. + type: string + description: + description: Cluster description. + type: string + eip: + description: EIP address of the cluster. + type: string + enableVolumeEncryption: + description: System and data disks encryption of master nodes. + Changing this parameter will create a new cluster resource. + type: boolean + eniSubnetCidr: + description: Specifies the ENI network segment. Specified when + creating a CCE Turbo cluster. Changing this parameter will create + a new cluster resource. + type: string + eniSubnetId: + description: '- Specifies the ENI subnet ID. Specified when creating + a CCE Turbo cluster. Changing this parameter will create a new + cluster resource.' + type: string + extendParam: + additionalProperties: + type: string + description: Extended parameter. Changing this parameter will + create a new cluster resource. List of cluster extended params. + type: object + flavorId: + description: Cluster specifications. Changing this parameter will + create a new cluster resource. + type: string + highwaySubnetId: + description: The ID of the high speed network used to create bare + metal nodes. Changing this parameter will create a new cluster + resource. + type: string + ignoreAddons: + description: Skip all cluster addons operations. + type: boolean + ignoreCertificateClustersData: + description: Skip sensitive cluster data. + type: boolean + ignoreCertificateUsersData: + description: Skip sensitive user data. + type: boolean + kubeProxyMode: + description: 'Service forwarding mode. Two modes are available:' + type: string + kubernetesSvcIpRange: + description: Service CIDR block, or the IP address range which + the kubernetes clusterIp must fall within. This parameter is + available only for clusters of v1.11.7 and later. + type: string + labels: + additionalProperties: + type: string + description: Cluster tag, key/value pair format. Changing this + parameter will create a new cluster resource. + type: object + multiAz: + description: Enable multiple AZs for the cluster, only when using + HA flavors. Changing this parameter will create a new cluster + resource. + type: boolean + name: + description: Cluster name. Changing this parameter will create + a new cluster resource. + type: string + noAddons: + description: Remove addons installed by the default after the + cluster creation. + type: boolean + region: + type: string + subnetId: + description: The Network ID of the subnet used to create the node. + Changing this parameter will create a new cluster resource. + type: string + vpcId: + description: The ID of the VPC used to create the node. Changing + this parameter will create a new cluster resource. + 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.clusterType is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.clusterType) + || (has(self.initProvider) && has(self.initProvider.clusterType))' + - message: spec.forProvider.containerNetworkType is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.containerNetworkType) + || (has(self.initProvider) && has(self.initProvider.containerNetworkType))' + - message: spec.forProvider.flavorId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.flavorId) + || (has(self.initProvider) && has(self.initProvider.flavorId))' + - message: spec.forProvider.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + - 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))' + - message: spec.forProvider.vpcId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.vpcId) + || (has(self.initProvider) && has(self.initProvider.vpcId))' + status: + description: ClusterV3Status defines the observed state of ClusterV3. + properties: + atProvider: + properties: + annotations: + additionalProperties: + type: string + description: Cluster annotation, key/value pair format. Changing + this parameter will create a new cluster resource. + type: object + authenticatingProxy: + description: Authenticating proxy configuration. Required if authentication_mode + is set to authenticating_proxy. + items: + properties: + ca: + description: X509 CA certificate configured in authenticating_proxy + mode. The maximum size of the certificate is 1 MB. + type: string + cert: + description: Client certificate issued by the X509 CA certificate + configured in authenticating_proxy mode. This certificate + is used for authentication from kube-apiserver to the + extended API server. + type: string + privateKey: + description: 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. + type: string + type: object + type: array + authenticatingProxyCa: + description: CA root certificate provided in the authenticating_proxy + mode. Deprecated, use authenticating_proxy instead. + type: string + authenticationMode: + description: Authentication mode of the cluster, possible values + are rbac and authenticating_proxy. Defaults to rbac. Changing + this parameter will create a new cluster resource. + type: string + billingMode: + description: Charging mode of the cluster, which is 0 (on demand). + Changing this parameter will create a new cluster resource. + type: number + certificateClusters: + items: + properties: + certificateAuthorityData: + type: string + name: + description: Cluster name. Changing this parameter will + create a new cluster resource. + type: string + server: + type: string + type: object + type: array + certificateUsers: + items: + properties: + clientCertificateData: + type: string + clientKeyData: + type: string + name: + description: Cluster name. Changing this parameter will + create a new cluster resource. + type: string + type: object + type: array + clusterType: + description: Cluster Type, possible values are VirtualMachine + and BareMetal. Changing this parameter will create a new cluster + resource. + type: string + clusterVersion: + description: For the cluster version, possible values are v1.27, + v1.25, v1.23, v1.21. If this parameter is not set, the cluster + of the latest version is created by default. Changing this parameter + will create a new cluster resource. OTC-API + type: string + containerNetworkCidr: + description: Container network segment. Changing this parameter + will create a new cluster resource. + type: string + containerNetworkType: + description: Container network type. + type: string + deleteAllNetwork: + description: Specified whether to delete all associated network + resources when deleting the CCE cluster. valid values are true, + try and false. Default is false. + type: string + deleteAllStorage: + description: Specified whether to delete all associated storage + resources when deleting the CCE cluster. valid values are true, + try and false. Default is false. + type: string + deleteEfs: + description: Specified whether to unbind associated SFS Turbo + file systems when deleting the CCE cluster. valid values are + true, try and false. Default is false. + type: string + deleteEni: + description: Specified whether to delete ENI ports when deleting + the CCE cluster. valid values are true, try and false. Default + is false. + type: string + deleteEvs: + description: Specified whether to delete associated EVS disks + when deleting the CCE cluster. valid values are true, try and + false. Default is false. + type: string + deleteNet: + description: Specified whether to delete cluster Service/ingress-related + resources, such as ELB when deleting the CCE cluster. valid + values are true, try and false. Default is false. + type: string + deleteObs: + description: Specified whether to delete associated OBS buckets + when deleting the CCE cluster. valid values are true, try and + false. Default is false. + type: string + deleteSfs: + description: Specified whether to delete associated SFS file systems + when deleting the CCE cluster. valid values are true, try and + false. Default is false. + type: string + description: + description: Cluster description. + type: string + eip: + description: EIP address of the cluster. + type: string + enableVolumeEncryption: + description: System and data disks encryption of master nodes. + Changing this parameter will create a new cluster resource. + type: boolean + eniSubnetCidr: + description: Specifies the ENI network segment. Specified when + creating a CCE Turbo cluster. Changing this parameter will create + a new cluster resource. + type: string + eniSubnetId: + description: '- Specifies the ENI subnet ID. Specified when creating + a CCE Turbo cluster. Changing this parameter will create a new + cluster resource.' + type: string + extendParam: + additionalProperties: + type: string + description: Extended parameter. Changing this parameter will + create a new cluster resource. List of cluster extended params. + type: object + external: + description: The external network address. + type: string + externalOtc: + description: The endpoint of the cluster to be accessed through + API Gateway. + type: string + flavorId: + description: Cluster specifications. Changing this parameter will + create a new cluster resource. + type: string + highwaySubnetId: + description: The ID of the high speed network used to create bare + metal nodes. Changing this parameter will create a new cluster + resource. + type: string + id: + description: ID of the cluster resource. + type: string + ignoreAddons: + description: Skip all cluster addons operations. + type: boolean + ignoreCertificateClustersData: + description: Skip sensitive cluster data. + type: boolean + ignoreCertificateUsersData: + description: Skip sensitive user data. + type: boolean + installedAddons: + description: List of installed addon IDs. Empty if ignore_addons + is true. + items: + type: string + type: array + internal: + description: The internal network address. + type: string + kubeProxyMode: + description: 'Service forwarding mode. Two modes are available:' + type: string + kubernetesSvcIpRange: + description: Service CIDR block, or the IP address range which + the kubernetes clusterIp must fall within. This parameter is + available only for clusters of v1.11.7 and later. + type: string + labels: + additionalProperties: + type: string + description: Cluster tag, key/value pair format. Changing this + parameter will create a new cluster resource. + type: object + multiAz: + description: Enable multiple AZs for the cluster, only when using + HA flavors. Changing this parameter will create a new cluster + resource. + type: boolean + name: + description: Cluster name. Changing this parameter will create + a new cluster resource. + type: string + noAddons: + description: Remove addons installed by the default after the + cluster creation. + type: boolean + region: + type: string + securityGroupControl: + description: ID of the autogenerated security group for the CCE + master port. + type: string + securityGroupNode: + description: ID of the autogenerated security group for the CCE + nodes. + type: string + status: + description: Cluster status information. + type: string + subnetId: + description: The Network ID of the subnet used to create the node. + Changing this parameter will create a new cluster resource. + type: string + vpcId: + description: The ID of the VPC used to create the node. Changing + this parameter will create a new cluster resource. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/cce.crossplane.io_nodepoolv3s.yaml b/package/crds/cce.crossplane.io_nodepoolv3s.yaml new file mode 100644 index 0000000..19c2a4a --- /dev/null +++ b/package/crds/cce.crossplane.io_nodepoolv3s.yaml @@ -0,0 +1,886 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: nodepoolv3s.cce.crossplane.io +spec: + group: cce.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: NodePoolV3 + listKind: NodePoolV3List + plural: nodepoolv3s + singular: nodepoolv3 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: NodePoolV3 is the Schema for the NodePoolV3s API. Manages a CCE + Cluster Node 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: NodePoolV3Spec defines the desired state of NodePoolV3 + 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: + agencyName: + description: IAM agency name. Changing this parameter will create + a new resource. + type: string + availabilityZone: + description: Specify the name of the available partition (AZ). + If zone is not specified than node_pool will be in randomly + selected AZ. The default value is random. Changing this parameter + will create a new resource. + type: string + clusterId: + description: ID of the cluster. Changing this parameter will create + a new resource. + type: string + dataVolumes: + description: Represents the data disk to be created. Changing + this parameter will create a new resource. + items: + properties: + extendParam: + description: Disk expansion parameters. Please use alternative + parameter extend_params. + type: string + extendParams: + additionalProperties: + type: string + description: Disk expansion parameters. A list of strings + which describes additional disk parameters. + type: object + kmsId: + description: The Encryption KMS ID of the system volume. + By default, it tries to get from env by OS_KMS_ID. + type: string + size: + description: Disk size in GB. + type: number + volumetype: + description: Disk type. + type: string + type: object + type: array + dockerBaseSize: + description: Available disk space of a single Docker container + on the node using the device mapper. Changing this parameter + will create a new node pool. + type: number + dockerLvmConfigOverride: + description: ConfigMap of the Docker data disk. Changing this + parameter will create a new node. + type: string + flavor: + description: Specifies the flavor id. Changing this parameter + will create a new resource. + type: string + initialNodeCount: + description: Initial number of expected nodes in the node pool. + type: number + k8sTags: + additionalProperties: + type: string + description: Tags of a Kubernetes node, key/value pair format. + type: object + keyPair: + description: Key pair name when logging in to select the key pair + mode. This parameter and password are alternative. Changing + this parameter will create a new resource. + type: string + maxNodeCount: + description: Maximum number of nodes allowed if auto scaling is + enabled. + type: number + maxPods: + description: The maximum number of instances a node is allowed + to create. Changing this parameter will create a new node pool. + type: number + minNodeCount: + description: Minimum number of nodes allowed if auto scaling is + enabled. + type: number + name: + description: Node Pool Name. + type: string + os: + description: Node OS. Changing this parameter will create a new + resource. Supported OS depends on kubernetes version of the + cluster. + type: string + passwordSecretRef: + description: Key pair name when logging in to select the key pair + mode. This parameter and password are alternative. Changing + this parameter will create a new resource. + properties: + key: + description: The key to select. + type: string + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - key + - name + - namespace + type: object + postinstall: + description: Script required after installation. The input value + can be a Base64 encoded string or not. Changing this parameter + will create a new resource. + type: string + preinstall: + description: Script required before installation. The input value + can be a Base64 encoded string or not. Changing this parameter + will create a new resource. + type: string + priority: + description: Weight of a node pool. A node pool with a higher + weight has a higher priority during scaling. + type: number + rootVolume: + description: It corresponds to the system disk related configuration. + Changing this parameter will create a new resource. + items: + properties: + extendParam: + description: Disk expansion parameters. Please use alternative + parameter extend_params. + type: string + extendParams: + additionalProperties: + type: string + description: Disk expansion parameters. A list of strings + which describes additional disk parameters. + type: object + kmsId: + description: The Encryption KMS ID of the system volume. + By default, it tries to get from env by OS_KMS_ID. + type: string + size: + description: Disk size in GB. + type: number + volumetype: + description: Disk type. + type: string + type: object + type: array + runtime: + description: 'Container runtime. Changing this parameter will + create a new resource. Use with high-caution, may trigger resource + recreation. Options are: docker - Docker containerd - Containerd' + type: string + scaleDownCooldownTime: + description: Interval between two scaling operations, in minutes. + type: number + scaleEnable: + description: Whether to enable auto scaling. If Autoscaler is + enabled, install the autoscaler add-on to use the auto scaling + feature. + type: boolean + serverGroupReference: + description: ECS group ID. If this parameter is specified, all + nodes in the node pool will be created in this ECS group. + type: string + storage: + description: Specifies the json string vary depending on CCE node + pools storage options. -> Please refer to the documentation + for actual fields. + type: string + subnetId: + description: The ID of the subnet to which the NIC belongs. Changing + this parameter will create a new resource. + type: string + taints: + description: Taints to created nodes to configure anti-affinity. + items: + properties: + effect: + description: Available options are NoSchedule, PreferNoSchedule, + and NoExecute. + type: string + key: + description: A key must contain 1 to 63 characters starting + with a letter or digit. Only letters, digits, hyphens + (-), underscores (_), and periods (.) are allowed. A DNS + subdomain name can be used as the prefix of a key. + type: string + value: + description: A value must start with a letter or digit and + can contain a maximum of 63 characters, including letters, + digits, hyphens (-), underscores (_), and periods (.). + type: string + type: object + type: array + userTags: + additionalProperties: + type: string + description: Tag of a VM, key/value pair format. Changing this + parameter will create a new resource. + type: object + 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: + agencyName: + description: IAM agency name. Changing this parameter will create + a new resource. + type: string + availabilityZone: + description: Specify the name of the available partition (AZ). + If zone is not specified than node_pool will be in randomly + selected AZ. The default value is random. Changing this parameter + will create a new resource. + type: string + clusterId: + description: ID of the cluster. Changing this parameter will create + a new resource. + type: string + dataVolumes: + description: Represents the data disk to be created. Changing + this parameter will create a new resource. + items: + properties: + extendParam: + description: Disk expansion parameters. Please use alternative + parameter extend_params. + type: string + extendParams: + additionalProperties: + type: string + description: Disk expansion parameters. A list of strings + which describes additional disk parameters. + type: object + kmsId: + description: The Encryption KMS ID of the system volume. + By default, it tries to get from env by OS_KMS_ID. + type: string + size: + description: Disk size in GB. + type: number + volumetype: + description: Disk type. + type: string + type: object + type: array + dockerBaseSize: + description: Available disk space of a single Docker container + on the node using the device mapper. Changing this parameter + will create a new node pool. + type: number + dockerLvmConfigOverride: + description: ConfigMap of the Docker data disk. Changing this + parameter will create a new node. + type: string + flavor: + description: Specifies the flavor id. Changing this parameter + will create a new resource. + type: string + initialNodeCount: + description: Initial number of expected nodes in the node pool. + type: number + k8sTags: + additionalProperties: + type: string + description: Tags of a Kubernetes node, key/value pair format. + type: object + keyPair: + description: Key pair name when logging in to select the key pair + mode. This parameter and password are alternative. Changing + this parameter will create a new resource. + type: string + maxNodeCount: + description: Maximum number of nodes allowed if auto scaling is + enabled. + type: number + maxPods: + description: The maximum number of instances a node is allowed + to create. Changing this parameter will create a new node pool. + type: number + minNodeCount: + description: Minimum number of nodes allowed if auto scaling is + enabled. + type: number + name: + description: Node Pool Name. + type: string + os: + description: Node OS. Changing this parameter will create a new + resource. Supported OS depends on kubernetes version of the + cluster. + type: string + postinstall: + description: Script required after installation. The input value + can be a Base64 encoded string or not. Changing this parameter + will create a new resource. + type: string + preinstall: + description: Script required before installation. The input value + can be a Base64 encoded string or not. Changing this parameter + will create a new resource. + type: string + priority: + description: Weight of a node pool. A node pool with a higher + weight has a higher priority during scaling. + type: number + rootVolume: + description: It corresponds to the system disk related configuration. + Changing this parameter will create a new resource. + items: + properties: + extendParam: + description: Disk expansion parameters. Please use alternative + parameter extend_params. + type: string + extendParams: + additionalProperties: + type: string + description: Disk expansion parameters. A list of strings + which describes additional disk parameters. + type: object + kmsId: + description: The Encryption KMS ID of the system volume. + By default, it tries to get from env by OS_KMS_ID. + type: string + size: + description: Disk size in GB. + type: number + volumetype: + description: Disk type. + type: string + type: object + type: array + runtime: + description: 'Container runtime. Changing this parameter will + create a new resource. Use with high-caution, may trigger resource + recreation. Options are: docker - Docker containerd - Containerd' + type: string + scaleDownCooldownTime: + description: Interval between two scaling operations, in minutes. + type: number + scaleEnable: + description: Whether to enable auto scaling. If Autoscaler is + enabled, install the autoscaler add-on to use the auto scaling + feature. + type: boolean + serverGroupReference: + description: ECS group ID. If this parameter is specified, all + nodes in the node pool will be created in this ECS group. + type: string + storage: + description: Specifies the json string vary depending on CCE node + pools storage options. -> Please refer to the documentation + for actual fields. + type: string + subnetId: + description: The ID of the subnet to which the NIC belongs. Changing + this parameter will create a new resource. + type: string + taints: + description: Taints to created nodes to configure anti-affinity. + items: + properties: + effect: + description: Available options are NoSchedule, PreferNoSchedule, + and NoExecute. + type: string + key: + description: A key must contain 1 to 63 characters starting + with a letter or digit. Only letters, digits, hyphens + (-), underscores (_), and periods (.) are allowed. A DNS + subdomain name can be used as the prefix of a key. + type: string + value: + description: A value must start with a letter or digit and + can contain a maximum of 63 characters, including letters, + digits, hyphens (-), underscores (_), and periods (.). + type: string + type: object + type: array + userTags: + additionalProperties: + type: string + description: Tag of a VM, key/value pair format. Changing this + parameter will create a new resource. + type: object + 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.clusterId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.clusterId) + || (has(self.initProvider) && has(self.initProvider.clusterId))' + - message: spec.forProvider.dataVolumes is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.dataVolumes) + || (has(self.initProvider) && has(self.initProvider.dataVolumes))' + - message: spec.forProvider.flavor is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.flavor) + || (has(self.initProvider) && has(self.initProvider.flavor))' + - message: spec.forProvider.initialNodeCount is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.initialNodeCount) + || (has(self.initProvider) && has(self.initProvider.initialNodeCount))' + - message: spec.forProvider.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + - message: spec.forProvider.rootVolume is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.rootVolume) + || (has(self.initProvider) && has(self.initProvider.rootVolume))' + status: + description: NodePoolV3Status defines the observed state of NodePoolV3. + properties: + atProvider: + properties: + agencyName: + description: IAM agency name. Changing this parameter will create + a new resource. + type: string + availabilityZone: + description: Specify the name of the available partition (AZ). + If zone is not specified than node_pool will be in randomly + selected AZ. The default value is random. Changing this parameter + will create a new resource. + type: string + clusterId: + description: ID of the cluster. Changing this parameter will create + a new resource. + type: string + dataVolumes: + description: Represents the data disk to be created. Changing + this parameter will create a new resource. + items: + properties: + extendParam: + description: Disk expansion parameters. Please use alternative + parameter extend_params. + type: string + extendParams: + additionalProperties: + type: string + description: Disk expansion parameters. A list of strings + which describes additional disk parameters. + type: object + kmsId: + description: The Encryption KMS ID of the system volume. + By default, it tries to get from env by OS_KMS_ID. + type: string + size: + description: Disk size in GB. + type: number + volumetype: + description: Disk type. + type: string + type: object + type: array + dockerBaseSize: + description: Available disk space of a single Docker container + on the node using the device mapper. Changing this parameter + will create a new node pool. + type: number + dockerLvmConfigOverride: + description: ConfigMap of the Docker data disk. Changing this + parameter will create a new node. + type: string + flavor: + description: Specifies the flavor id. Changing this parameter + will create a new resource. + type: string + id: + description: Specifies a resource ID in UUID format. + type: string + initialNodeCount: + description: Initial number of expected nodes in the node pool. + type: number + k8sTags: + additionalProperties: + type: string + description: Tags of a Kubernetes node, key/value pair format. + type: object + keyPair: + description: Key pair name when logging in to select the key pair + mode. This parameter and password are alternative. Changing + this parameter will create a new resource. + type: string + maxNodeCount: + description: Maximum number of nodes allowed if auto scaling is + enabled. + type: number + maxPods: + description: The maximum number of instances a node is allowed + to create. Changing this parameter will create a new node pool. + type: number + minNodeCount: + description: Minimum number of nodes allowed if auto scaling is + enabled. + type: number + name: + description: Node Pool Name. + type: string + os: + description: Node OS. Changing this parameter will create a new + resource. Supported OS depends on kubernetes version of the + cluster. + type: string + postinstall: + description: Script required after installation. The input value + can be a Base64 encoded string or not. Changing this parameter + will create a new resource. + type: string + preinstall: + description: Script required before installation. The input value + can be a Base64 encoded string or not. Changing this parameter + will create a new resource. + type: string + priority: + description: Weight of a node pool. A node pool with a higher + weight has a higher priority during scaling. + type: number + rootVolume: + description: It corresponds to the system disk related configuration. + Changing this parameter will create a new resource. + items: + properties: + extendParam: + description: Disk expansion parameters. Please use alternative + parameter extend_params. + type: string + extendParams: + additionalProperties: + type: string + description: Disk expansion parameters. A list of strings + which describes additional disk parameters. + type: object + kmsId: + description: The Encryption KMS ID of the system volume. + By default, it tries to get from env by OS_KMS_ID. + type: string + size: + description: Disk size in GB. + type: number + volumetype: + description: Disk type. + type: string + type: object + type: array + runtime: + description: 'Container runtime. Changing this parameter will + create a new resource. Use with high-caution, may trigger resource + recreation. Options are: docker - Docker containerd - Containerd' + type: string + scaleDownCooldownTime: + description: Interval between two scaling operations, in minutes. + type: number + scaleEnable: + description: Whether to enable auto scaling. If Autoscaler is + enabled, install the autoscaler add-on to use the auto scaling + feature. + type: boolean + serverGroupReference: + description: ECS group ID. If this parameter is specified, all + nodes in the node pool will be created in this ECS group. + type: string + status: + description: Node status information. + type: string + storage: + description: Specifies the json string vary depending on CCE node + pools storage options. -> Please refer to the documentation + for actual fields. + type: string + subnetId: + description: The ID of the subnet to which the NIC belongs. Changing + this parameter will create a new resource. + type: string + taints: + description: Taints to created nodes to configure anti-affinity. + items: + properties: + effect: + description: Available options are NoSchedule, PreferNoSchedule, + and NoExecute. + type: string + key: + description: A key must contain 1 to 63 characters starting + with a letter or digit. Only letters, digits, hyphens + (-), underscores (_), and periods (.) are allowed. A DNS + subdomain name can be used as the prefix of a key. + type: string + value: + description: A value must start with a letter or digit and + can contain a maximum of 63 characters, including letters, + digits, hyphens (-), underscores (_), and periods (.). + type: string + type: object + type: array + userTags: + additionalProperties: + type: string + description: Tag of a VM, key/value pair format. Changing this + parameter will create a new resource. + type: object + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/cce.crossplane.io_nodev3s.yaml b/package/crds/cce.crossplane.io_nodev3s.yaml new file mode 100644 index 0000000..4bc1020 --- /dev/null +++ b/package/crds/cce.crossplane.io_nodev3s.yaml @@ -0,0 +1,953 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: nodev3s.cce.crossplane.io +spec: + group: cce.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: NodeV3 + listKind: NodeV3List + plural: nodev3s + singular: nodev3 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: NodeV3 is the Schema for the NodeV3s API. Manages a CCE Cluster + Node 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: NodeV3Spec defines the desired state of NodeV3 + 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: + agencyName: + description: IAM agency name. Changing this parameter will create + a new resource. + type: string + annotations: + additionalProperties: + type: string + description: Node annotation, key/value pair format. Changing + this parameter will create a new resource + type: object + availabilityZone: + description: specify the name of the available partition (AZ). + Changing this parameter will create a new resource. + type: string + bandwidthChargeMode: + description: Bandwidth billing type. + type: string + bandwidthSize: + description: Bandwidth size. + type: number + billingMode: + description: 'Node''s billing mode: The value is 0 (on demand). + Changing this parameter will create a new resource.' + type: number + clusterId: + description: ID of the cluster. Changing this parameter will create + a new resource. + type: string + dataVolumes: + description: Represents the data disk to be created. Changing + this parameter will create a new resource. + items: + properties: + extendParam: + description: Disk expansion parameters. Please use alternative + parameter extend_params. + type: string + extendParams: + additionalProperties: + type: string + description: Disk expansion parameters. A list of strings + which describes additional disk parameters. + type: object + kmsId: + description: The Encryption KMS ID of the system volume. + By default, it tries to get from env by OS_KMS_ID. + type: string + size: + description: Disk size in GB. + type: number + volumetype: + description: Disk type. + type: string + type: object + type: array + dockerBaseSize: + description: Available disk space of a single Docker container + on the node using the device mapper. Changing this parameter + will create a new node. + type: number + dockerLvmConfigOverride: + description: ConfigMap of the Docker data disk. Changing this + parameter will create a new node. + type: string + ecsPerformanceType: + description: Classification of cloud server specifications. Changing + this parameter will create a new cluster resource. + type: string + eipCount: + description: Number of elastic IPs to be dynamically created. + type: number + eipIds: + description: List of existing elastic IP IDs. + items: + type: string + type: array + extendParamChargingMode: + description: Node charging mode, 0 is on-demand charging. Changing + this parameter will create a new cluster resource. + type: number + flavorId: + description: Specifies the flavor id. Changing this parameter + will create a new resource. + type: string + iptype: + description: Elastic IP type. + type: string + k8sTags: + additionalProperties: + type: string + description: Tags of a Kubernetes node, key/value pair format. + type: object + keyPair: + description: Key pair name when logging in to select the key pair + mode. Changing this parameter will create a new resource. + type: string + labels: + additionalProperties: + type: string + description: Node tag, key/value pair format. Changing this parameter + will create a new resource. + type: object + maxPods: + description: The maximum number of instances a node is allowed + to create. Changing this parameter will create a new node resource. + type: number + name: + description: Node Name. + type: string + orderId: + description: Order ID, mandatory when the node payment type is + the automatic payment package period type. Changing this parameter + will create a new cluster resource. + type: string + os: + description: Node OS. Changing this parameter will create a new + resource. + type: string + postinstall: + description: Script required after installation. The input value + can be a Base64 encoded string or not. Changing this parameter + will create a new resource. + type: string + preinstall: + description: Script required before installation. The input value + can be a Base64 encoded string or not. Changing this parameter + will create a new resource. + type: string + privateIp: + description: Private IP of the CCE node. Changing this parameter + will create a new resource. + type: string + productId: + description: The Product ID. Changing this parameter will create + a new cluster resource. + type: string + publicKey: + description: The Public key. Changing this parameter will create + a new cluster resource. + type: string + region: + type: string + rootVolume: + description: It corresponds to the system disk related configuration. + Changing this parameter will create a new resource. + items: + properties: + extendParam: + description: Disk expansion parameters. Please use alternative + parameter extend_params. + type: string + extendParams: + additionalProperties: + type: string + description: Disk expansion parameters. A list of strings + which describes additional disk parameters. + type: object + kmsId: + description: The Encryption KMS ID of the system volume. + By default, it tries to get from env by OS_KMS_ID. + type: string + size: + description: Disk size in GB. + type: number + volumetype: + description: Disk type. + type: string + type: object + type: array + runtime: + description: 'Container runtime. Changing this parameter will + create a new resource. Use with high-caution, may trigger resource + recreation. Options are: docker - Docker containerd - Containerd' + type: string + sharetype: + description: Bandwidth sharing type. + type: string + subnetId: + description: The ID of the subnet to which the NIC belongs. Changing + this parameter will create a new resource. + type: string + tags: + additionalProperties: + type: string + description: The field is alternative to labels, key/value pair + format. + type: object + taints: + description: Taints to created nodes to configure anti-affinity. + items: + properties: + effect: + description: Available options are NoSchedule, PreferNoSchedule, + and NoExecute. + type: string + key: + description: A key must contain 1 to 63 characters starting + with a letter or digit. Only letters, digits, hyphens + (-), underscores (_), and periods (.) are allowed. A DNS + subdomain name can be used as the prefix of a key. + type: string + value: + description: A value must start with a letter or digit and + can contain a maximum of 63 characters, including letters, + digits, hyphens (-), underscores (_), and periods (.). + type: string + type: object + type: array + 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: + agencyName: + description: IAM agency name. Changing this parameter will create + a new resource. + type: string + annotations: + additionalProperties: + type: string + description: Node annotation, key/value pair format. Changing + this parameter will create a new resource + type: object + availabilityZone: + description: specify the name of the available partition (AZ). + Changing this parameter will create a new resource. + type: string + bandwidthChargeMode: + description: Bandwidth billing type. + type: string + bandwidthSize: + description: Bandwidth size. + type: number + billingMode: + description: 'Node''s billing mode: The value is 0 (on demand). + Changing this parameter will create a new resource.' + type: number + clusterId: + description: ID of the cluster. Changing this parameter will create + a new resource. + type: string + dataVolumes: + description: Represents the data disk to be created. Changing + this parameter will create a new resource. + items: + properties: + extendParam: + description: Disk expansion parameters. Please use alternative + parameter extend_params. + type: string + extendParams: + additionalProperties: + type: string + description: Disk expansion parameters. A list of strings + which describes additional disk parameters. + type: object + kmsId: + description: The Encryption KMS ID of the system volume. + By default, it tries to get from env by OS_KMS_ID. + type: string + size: + description: Disk size in GB. + type: number + volumetype: + description: Disk type. + type: string + type: object + type: array + dockerBaseSize: + description: Available disk space of a single Docker container + on the node using the device mapper. Changing this parameter + will create a new node. + type: number + dockerLvmConfigOverride: + description: ConfigMap of the Docker data disk. Changing this + parameter will create a new node. + type: string + ecsPerformanceType: + description: Classification of cloud server specifications. Changing + this parameter will create a new cluster resource. + type: string + eipCount: + description: Number of elastic IPs to be dynamically created. + type: number + eipIds: + description: List of existing elastic IP IDs. + items: + type: string + type: array + extendParamChargingMode: + description: Node charging mode, 0 is on-demand charging. Changing + this parameter will create a new cluster resource. + type: number + flavorId: + description: Specifies the flavor id. Changing this parameter + will create a new resource. + type: string + iptype: + description: Elastic IP type. + type: string + k8sTags: + additionalProperties: + type: string + description: Tags of a Kubernetes node, key/value pair format. + type: object + keyPair: + description: Key pair name when logging in to select the key pair + mode. Changing this parameter will create a new resource. + type: string + labels: + additionalProperties: + type: string + description: Node tag, key/value pair format. Changing this parameter + will create a new resource. + type: object + maxPods: + description: The maximum number of instances a node is allowed + to create. Changing this parameter will create a new node resource. + type: number + name: + description: Node Name. + type: string + orderId: + description: Order ID, mandatory when the node payment type is + the automatic payment package period type. Changing this parameter + will create a new cluster resource. + type: string + os: + description: Node OS. Changing this parameter will create a new + resource. + type: string + postinstall: + description: Script required after installation. The input value + can be a Base64 encoded string or not. Changing this parameter + will create a new resource. + type: string + preinstall: + description: Script required before installation. The input value + can be a Base64 encoded string or not. Changing this parameter + will create a new resource. + type: string + privateIp: + description: Private IP of the CCE node. Changing this parameter + will create a new resource. + type: string + productId: + description: The Product ID. Changing this parameter will create + a new cluster resource. + type: string + publicKey: + description: The Public key. Changing this parameter will create + a new cluster resource. + type: string + region: + type: string + rootVolume: + description: It corresponds to the system disk related configuration. + Changing this parameter will create a new resource. + items: + properties: + extendParam: + description: Disk expansion parameters. Please use alternative + parameter extend_params. + type: string + extendParams: + additionalProperties: + type: string + description: Disk expansion parameters. A list of strings + which describes additional disk parameters. + type: object + kmsId: + description: The Encryption KMS ID of the system volume. + By default, it tries to get from env by OS_KMS_ID. + type: string + size: + description: Disk size in GB. + type: number + volumetype: + description: Disk type. + type: string + type: object + type: array + runtime: + description: 'Container runtime. Changing this parameter will + create a new resource. Use with high-caution, may trigger resource + recreation. Options are: docker - Docker containerd - Containerd' + type: string + sharetype: + description: Bandwidth sharing type. + type: string + subnetId: + description: The ID of the subnet to which the NIC belongs. Changing + this parameter will create a new resource. + type: string + tags: + additionalProperties: + type: string + description: The field is alternative to labels, key/value pair + format. + type: object + taints: + description: Taints to created nodes to configure anti-affinity. + items: + properties: + effect: + description: Available options are NoSchedule, PreferNoSchedule, + and NoExecute. + type: string + key: + description: A key must contain 1 to 63 characters starting + with a letter or digit. Only letters, digits, hyphens + (-), underscores (_), and periods (.) are allowed. A DNS + subdomain name can be used as the prefix of a key. + type: string + value: + description: A value must start with a letter or digit and + can contain a maximum of 63 characters, including letters, + digits, hyphens (-), underscores (_), and periods (.). + type: string + type: object + type: array + 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.availabilityZone is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.availabilityZone) + || (has(self.initProvider) && has(self.initProvider.availabilityZone))' + - message: spec.forProvider.clusterId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.clusterId) + || (has(self.initProvider) && has(self.initProvider.clusterId))' + - message: spec.forProvider.dataVolumes is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.dataVolumes) + || (has(self.initProvider) && has(self.initProvider.dataVolumes))' + - message: spec.forProvider.flavorId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.flavorId) + || (has(self.initProvider) && has(self.initProvider.flavorId))' + - message: spec.forProvider.keyPair is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.keyPair) + || (has(self.initProvider) && has(self.initProvider.keyPair))' + - message: spec.forProvider.rootVolume is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.rootVolume) + || (has(self.initProvider) && has(self.initProvider.rootVolume))' + status: + description: NodeV3Status defines the observed state of NodeV3. + properties: + atProvider: + properties: + agencyName: + description: IAM agency name. Changing this parameter will create + a new resource. + type: string + annotations: + additionalProperties: + type: string + description: Node annotation, key/value pair format. Changing + this parameter will create a new resource + type: object + availabilityZone: + description: specify the name of the available partition (AZ). + Changing this parameter will create a new resource. + type: string + bandwidthChargeMode: + description: Bandwidth billing type. + type: string + bandwidthSize: + description: Bandwidth size. + type: number + billingMode: + description: 'Node''s billing mode: The value is 0 (on demand). + Changing this parameter will create a new resource.' + type: number + clusterId: + description: ID of the cluster. Changing this parameter will create + a new resource. + type: string + dataVolumes: + description: Represents the data disk to be created. Changing + this parameter will create a new resource. + items: + properties: + extendParam: + description: Disk expansion parameters. Please use alternative + parameter extend_params. + type: string + extendParams: + additionalProperties: + type: string + description: Disk expansion parameters. A list of strings + which describes additional disk parameters. + type: object + kmsId: + description: The Encryption KMS ID of the system volume. + By default, it tries to get from env by OS_KMS_ID. + type: string + size: + description: Disk size in GB. + type: number + volumetype: + description: Disk type. + type: string + type: object + type: array + dockerBaseSize: + description: Available disk space of a single Docker container + on the node using the device mapper. Changing this parameter + will create a new node. + type: number + dockerLvmConfigOverride: + description: ConfigMap of the Docker data disk. Changing this + parameter will create a new node. + type: string + ecsPerformanceType: + description: Classification of cloud server specifications. Changing + this parameter will create a new cluster resource. + type: string + eipCount: + description: Number of elastic IPs to be dynamically created. + type: number + eipIds: + description: List of existing elastic IP IDs. + items: + type: string + type: array + extendParamChargingMode: + description: Node charging mode, 0 is on-demand charging. Changing + this parameter will create a new cluster resource. + type: number + flavorId: + description: Specifies the flavor id. Changing this parameter + will create a new resource. + type: string + id: + type: string + iptype: + description: Elastic IP type. + type: string + k8sTags: + additionalProperties: + type: string + description: Tags of a Kubernetes node, key/value pair format. + type: object + keyPair: + description: Key pair name when logging in to select the key pair + mode. Changing this parameter will create a new resource. + type: string + labels: + additionalProperties: + type: string + description: Node tag, key/value pair format. Changing this parameter + will create a new resource. + type: object + maxPods: + description: The maximum number of instances a node is allowed + to create. Changing this parameter will create a new node resource. + type: number + name: + description: Node Name. + type: string + orderId: + description: Order ID, mandatory when the node payment type is + the automatic payment package period type. Changing this parameter + will create a new cluster resource. + type: string + os: + description: Node OS. Changing this parameter will create a new + resource. + type: string + postinstall: + description: Script required after installation. The input value + can be a Base64 encoded string or not. Changing this parameter + will create a new resource. + type: string + preinstall: + description: Script required before installation. The input value + can be a Base64 encoded string or not. Changing this parameter + will create a new resource. + type: string + privateIp: + description: Private IP of the CCE node. Changing this parameter + will create a new resource. + type: string + productId: + description: The Product ID. Changing this parameter will create + a new cluster resource. + type: string + publicIp: + description: Public IP of the CCE node. + type: string + publicKey: + description: The Public key. Changing this parameter will create + a new cluster resource. + type: string + region: + type: string + rootVolume: + description: It corresponds to the system disk related configuration. + Changing this parameter will create a new resource. + items: + properties: + extendParam: + description: Disk expansion parameters. Please use alternative + parameter extend_params. + type: string + extendParams: + additionalProperties: + type: string + description: Disk expansion parameters. A list of strings + which describes additional disk parameters. + type: object + kmsId: + description: The Encryption KMS ID of the system volume. + By default, it tries to get from env by OS_KMS_ID. + type: string + size: + description: Disk size in GB. + type: number + volumetype: + description: Disk type. + type: string + type: object + type: array + runtime: + description: 'Container runtime. Changing this parameter will + create a new resource. Use with high-caution, may trigger resource + recreation. Options are: docker - Docker containerd - Containerd' + type: string + serverId: + description: ID of the ECS where the node resides. + type: string + sharetype: + description: Bandwidth sharing type. + type: string + status: + description: Node status information. + type: string + subnetId: + description: The ID of the subnet to which the NIC belongs. Changing + this parameter will create a new resource. + type: string + tags: + additionalProperties: + type: string + description: The field is alternative to labels, key/value pair + format. + type: object + taints: + description: Taints to created nodes to configure anti-affinity. + items: + properties: + effect: + description: Available options are NoSchedule, PreferNoSchedule, + and NoExecute. + type: string + key: + description: A key must contain 1 to 63 characters starting + with a letter or digit. Only letters, digits, hyphens + (-), underscores (_), and periods (.) are allowed. A DNS + subdomain name can be used as the prefix of a key. + type: string + value: + description: A value must start with a letter or digit and + can contain a maximum of 63 characters, including letters, + digits, hyphens (-), underscores (_), and periods (.). + type: string + type: object + type: array + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/compute.crossplane.io_floatingipassociatev2s.yaml b/package/crds/compute.crossplane.io_floatingipassociatev2s.yaml new file mode 100644 index 0000000..9a11c37 --- /dev/null +++ b/package/crds/compute.crossplane.io_floatingipassociatev2s.yaml @@ -0,0 +1,338 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: floatingipassociatev2s.compute.crossplane.io +spec: + group: compute.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: FloatingipAssociateV2 + listKind: FloatingipAssociateV2List + plural: floatingipassociatev2s + singular: floatingipassociatev2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: FloatingipAssociateV2 is the Schema for the FloatingipAssociateV2s + API. Manages an EIP Associate 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: FloatingipAssociateV2Spec defines the desired state of FloatingipAssociateV2 + 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: + fixedIp: + description: The specific IP address to direct traffic to. + type: string + floatingIp: + description: The floating IP to associate. + type: string + instanceId: + description: The instance to associte the floating IP with. + type: string + region: + 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: + fixedIp: + description: The specific IP address to direct traffic to. + type: string + floatingIp: + description: The floating IP to associate. + type: string + instanceId: + description: The instance to associte the floating IP with. + type: string + region: + 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.floatingIp is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.floatingIp) + || (has(self.initProvider) && has(self.initProvider.floatingIp))' + - message: spec.forProvider.instanceId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.instanceId) + || (has(self.initProvider) && has(self.initProvider.instanceId))' + status: + description: FloatingipAssociateV2Status defines the observed state of + FloatingipAssociateV2. + properties: + atProvider: + properties: + fixedIp: + description: The specific IP address to direct traffic to. + type: string + floatingIp: + description: The floating IP to associate. + type: string + id: + type: string + instanceId: + description: The instance to associte the floating IP with. + type: string + region: + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/compute.crossplane.io_floatingipv2s.yaml b/package/crds/compute.crossplane.io_floatingipv2s.yaml new file mode 100644 index 0000000..37d9498 --- /dev/null +++ b/package/crds/compute.crossplane.io_floatingipv2s.yaml @@ -0,0 +1,327 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: floatingipv2s.compute.crossplane.io +spec: + group: compute.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: FloatingipV2 + listKind: FloatingipV2List + plural: floatingipv2s + singular: floatingipv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: FloatingipV2 is the Schema for the FloatingipV2s API. Manages + an EIP 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: FloatingipV2Spec defines the desired state of FloatingipV2 + 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: + pool: + description: The name of the pool from which to obtain the floating + IP. Default value is admin_external_net. Changing this creates + a new floating IP. + type: string + region: + 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: + pool: + description: The name of the pool from which to obtain the floating + IP. Default value is admin_external_net. Changing this creates + a new floating IP. + type: string + region: + 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 + status: + description: FloatingipV2Status defines the observed state of FloatingipV2. + properties: + atProvider: + properties: + address: + description: The actual floating IP address itself. + type: string + fixedIp: + description: The fixed IP address corresponding to the floating + IP. + type: string + id: + type: string + instanceId: + description: UUID of the compute instance associated with the + floating IP. + type: string + pool: + description: The name of the pool from which to obtain the floating + IP. Default value is admin_external_net. Changing this creates + a new floating IP. + type: string + region: + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/compute.crossplane.io_instancev2s.yaml b/package/crds/compute.crossplane.io_instancev2s.yaml new file mode 100644 index 0000000..b9f72af --- /dev/null +++ b/package/crds/compute.crossplane.io_instancev2s.yaml @@ -0,0 +1,1108 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: instancev2s.compute.crossplane.io +spec: + group: compute.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: InstanceV2 + listKind: InstanceV2List + plural: instancev2s + singular: instancev2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: InstanceV2 is the Schema for the InstanceV2s API. Manages an + ECS Instance 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: InstanceV2Spec defines the desired state of InstanceV2 + 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: + accessIpV4: + description: The first detected Fixed IPv4 address or the Floating + IP. + type: string + accessIpV6: + description: The first detected Fixed IPv6 address. + type: string + adminPassSecretRef: + description: The administrative password to assign to the server. + Changing this changes the root password on the existing server. + properties: + key: + description: The key to select. + type: string + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - key + - name + - namespace + type: object + autoRecovery: + description: Configures or deletes automatic recovery of an instance. + Defaults to true. + type: boolean + availabilityZone: + description: The availability zone in which to create the server. + Changing this creates a new server. + type: string + blockDevice: + description: Configuration of block devices. The block_device + structure is documented below. Changing this creates a new server. + You can specify multiple block devices which will create an + instance with multiple disks. This configuration is very flexible, + so please see the following reference for more information. + items: + properties: + bootIndex: + description: The boot index of the volume. It defaults to + 0. Changing this creates a new server. + type: number + deleteOnTermination: + description: Delete the volume / block device upon termination + of the instance. Defaults to false. Changing this creates + a new server. + type: boolean + destinationType: + description: The type that gets created. Currently only + support "volume". Changing this creates a new server. + type: string + deviceName: + description: A unique name for the resource. + type: string + guestFormat: + type: string + sourceType: + description: The source type of the device. Must be one + of "blank", "image", "volume", or "snapshot". Changing + this creates a new server. + type: string + uuid: + description: The UUID of the image, volume, or snapshot. + Changing this creates a new server. + type: string + volumeSize: + description: 'The size of the volume to create (in gigabytes). + Required in the following combinations: source=image and + destination=volume, and source=blank and destination=volume. + Changing this creates a new server.' + type: number + volumeType: + description: Currently, the value can be SSD (ultra-I/O + disk type), SAS (high I/O disk type), or SATA (common + I/O disk type) OTC-API + type: string + type: object + type: array + configDrive: + description: Whether to use the config_drive feature to configure + the instance. Changing this creates a new server. + type: boolean + description: + description: Server description. + type: string + flavorId: + description: The flavor ID of the desired flavor for the server. + Changing this resizes the existing server. + type: string + flavorName: + description: The name of the desired flavor for the server. Changing + this resizes the existing server. + type: string + imageId: + description: The image ID of the desired image for the server. + Changing this creates a new server. + type: string + imageName: + description: The name of the desired image for the server. Changing + this creates a new server. + type: string + keyPair: + description: 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. + type: string + keyPairRef: + description: Reference to a KeypairV2 to populate keyPair. + 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 + keyPairSelector: + description: Selector for a KeypairV2 to populate keyPair. + 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 + metadata: + additionalProperties: + type: string + description: Metadata key/value pairs to make available from within + the instance. Changing this updates the existing server metadata. + type: object + name: + description: A unique name for the resource. + type: string + network: + description: An array of one or more networks to attach to the + instance. Required when there are multiple networks defined + for the tenant. The network object structure is documented below. + Changing this creates a new server. + items: + properties: + accessNetwork: + description: Specifies if this network should be used for + provisioning access. Accepts true or false. Defaults to + false. + type: boolean + fixedIpV4: + description: Specifies a fixed IPv4 address to be used on + this network. Changing this creates a new server. + type: string + fixedIpV6: + description: Specifies a fixed IPv6 address to be used on + this network. Changing this creates a new server. + type: string + name: + description: The human-readable name of the network. Changing + this creates a new server. + type: string + port: + description: The port UUID of a network to attach to the + server. Changing this creates a new server. + type: string + uuid: + description: The network UUID to attach to the server. Changing + this creates a new server. + type: string + type: object + type: array + powerState: + description: Provide the VM state. Only active and shutoff are + supported values. + type: string + region: + type: string + schedulerHints: + description: Provide the Nova scheduler with hints on how the + instance should be launched. The available hints are described + below. + items: + properties: + buildNearHostIp: + description: An IP Address in CIDR form. The instance will + be placed on a compute node that is in the same subnet. + type: string + dehId: + description: The ID of DeH. This parameter takes effect + only when the value of tenancy is dedicated. + type: string + differentHost: + description: A list of instance UUIDs. The instance will + be scheduled on a different host than all other instances. + items: + type: string + type: array + group: + description: A UUID of a Server Group. The instance will + be placed into that group. + type: string + query: + description: A conditional query that a compute node must + pass in order to host an instance. + items: + type: string + type: array + sameHost: + description: A list of instance UUIDs. The instance will + be scheduled on the same host of those specified. + items: + type: string + type: array + targetCell: + description: The name of a cell to host the instance. + type: string + tenancy: + description: The tenancy specifies whether the ECS is to + be created on a Dedicated Host (DeH) or in a shared pool. + type: string + type: object + type: array + securityGroups: + description: An array of one or more security group names to associate + with the server. Changing this results in adding/removing security + groups from the existing server. + items: + type: string + type: array + securityGroupsRefs: + description: References to SecgroupV2 to populate securityGroups. + 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 + securityGroupsSelector: + description: Selector for a list of SecgroupV2 to populate securityGroups. + 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 + sshPrivateKeyPathSecretRef: + description: The path to the private key to use for SSH access. + Required only if you want to get the password from the windows + instance. + properties: + key: + description: The key to select. + type: string + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - key + - name + - namespace + type: object + stopBeforeDestroy: + description: Whether to try stop instance gracefully before destroying + it, thus giving chance for guest OS daemons to stop correctly. + If instance doesn't stop within a timeout, it will be destroyed + anyway. + type: boolean + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the instance. + type: object + userData: + description: The user data to provide when launching the instance. + Changing this creates a new server. + 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: + accessIpV4: + description: The first detected Fixed IPv4 address or the Floating + IP. + type: string + accessIpV6: + description: The first detected Fixed IPv6 address. + type: string + autoRecovery: + description: Configures or deletes automatic recovery of an instance. + Defaults to true. + type: boolean + availabilityZone: + description: The availability zone in which to create the server. + Changing this creates a new server. + type: string + blockDevice: + description: Configuration of block devices. The block_device + structure is documented below. Changing this creates a new server. + You can specify multiple block devices which will create an + instance with multiple disks. This configuration is very flexible, + so please see the following reference for more information. + items: + properties: + bootIndex: + description: The boot index of the volume. It defaults to + 0. Changing this creates a new server. + type: number + deleteOnTermination: + description: Delete the volume / block device upon termination + of the instance. Defaults to false. Changing this creates + a new server. + type: boolean + destinationType: + description: The type that gets created. Currently only + support "volume". Changing this creates a new server. + type: string + deviceName: + description: A unique name for the resource. + type: string + guestFormat: + type: string + sourceType: + description: The source type of the device. Must be one + of "blank", "image", "volume", or "snapshot". Changing + this creates a new server. + type: string + uuid: + description: The UUID of the image, volume, or snapshot. + Changing this creates a new server. + type: string + volumeSize: + description: 'The size of the volume to create (in gigabytes). + Required in the following combinations: source=image and + destination=volume, and source=blank and destination=volume. + Changing this creates a new server.' + type: number + volumeType: + description: Currently, the value can be SSD (ultra-I/O + disk type), SAS (high I/O disk type), or SATA (common + I/O disk type) OTC-API + type: string + type: object + type: array + configDrive: + description: Whether to use the config_drive feature to configure + the instance. Changing this creates a new server. + type: boolean + description: + description: Server description. + type: string + flavorId: + description: The flavor ID of the desired flavor for the server. + Changing this resizes the existing server. + type: string + flavorName: + description: The name of the desired flavor for the server. Changing + this resizes the existing server. + type: string + imageId: + description: The image ID of the desired image for the server. + Changing this creates a new server. + type: string + imageName: + description: The name of the desired image for the server. Changing + this creates a new server. + type: string + metadata: + additionalProperties: + type: string + description: Metadata key/value pairs to make available from within + the instance. Changing this updates the existing server metadata. + type: object + name: + description: A unique name for the resource. + type: string + network: + description: An array of one or more networks to attach to the + instance. Required when there are multiple networks defined + for the tenant. The network object structure is documented below. + Changing this creates a new server. + items: + properties: + accessNetwork: + description: Specifies if this network should be used for + provisioning access. Accepts true or false. Defaults to + false. + type: boolean + fixedIpV4: + description: Specifies a fixed IPv4 address to be used on + this network. Changing this creates a new server. + type: string + fixedIpV6: + description: Specifies a fixed IPv6 address to be used on + this network. Changing this creates a new server. + type: string + name: + description: The human-readable name of the network. Changing + this creates a new server. + type: string + port: + description: The port UUID of a network to attach to the + server. Changing this creates a new server. + type: string + uuid: + description: The network UUID to attach to the server. Changing + this creates a new server. + type: string + type: object + type: array + powerState: + description: Provide the VM state. Only active and shutoff are + supported values. + type: string + region: + type: string + schedulerHints: + description: Provide the Nova scheduler with hints on how the + instance should be launched. The available hints are described + below. + items: + properties: + buildNearHostIp: + description: An IP Address in CIDR form. The instance will + be placed on a compute node that is in the same subnet. + type: string + dehId: + description: The ID of DeH. This parameter takes effect + only when the value of tenancy is dedicated. + type: string + differentHost: + description: A list of instance UUIDs. The instance will + be scheduled on a different host than all other instances. + items: + type: string + type: array + group: + description: A UUID of a Server Group. The instance will + be placed into that group. + type: string + query: + description: A conditional query that a compute node must + pass in order to host an instance. + items: + type: string + type: array + sameHost: + description: A list of instance UUIDs. The instance will + be scheduled on the same host of those specified. + items: + type: string + type: array + targetCell: + description: The name of a cell to host the instance. + type: string + tenancy: + description: The tenancy specifies whether the ECS is to + be created on a Dedicated Host (DeH) or in a shared pool. + type: string + type: object + type: array + stopBeforeDestroy: + description: Whether to try stop instance gracefully before destroying + it, thus giving chance for guest OS daemons to stop correctly. + If instance doesn't stop within a timeout, it will be destroyed + anyway. + type: boolean + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the instance. + type: object + userData: + description: The user data to provide when launching the instance. + Changing this creates a new server. + 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.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + status: + description: InstanceV2Status defines the observed state of InstanceV2. + properties: + atProvider: + properties: + accessIpV4: + description: The first detected Fixed IPv4 address or the Floating + IP. + type: string + accessIpV6: + description: The first detected Fixed IPv6 address. + type: string + allMetadata: + additionalProperties: + type: string + type: object + autoRecovery: + description: Configures or deletes automatic recovery of an instance. + Defaults to true. + type: boolean + availabilityZone: + description: The availability zone in which to create the server. + Changing this creates a new server. + type: string + blockDevice: + description: Configuration of block devices. The block_device + structure is documented below. Changing this creates a new server. + You can specify multiple block devices which will create an + instance with multiple disks. This configuration is very flexible, + so please see the following reference for more information. + items: + properties: + bootIndex: + description: The boot index of the volume. It defaults to + 0. Changing this creates a new server. + type: number + deleteOnTermination: + description: Delete the volume / block device upon termination + of the instance. Defaults to false. Changing this creates + a new server. + type: boolean + destinationType: + description: The type that gets created. Currently only + support "volume". Changing this creates a new server. + type: string + deviceName: + description: A unique name for the resource. + type: string + guestFormat: + type: string + sourceType: + description: The source type of the device. Must be one + of "blank", "image", "volume", or "snapshot". Changing + this creates a new server. + type: string + uuid: + description: The UUID of the image, volume, or snapshot. + Changing this creates a new server. + type: string + volumeSize: + description: 'The size of the volume to create (in gigabytes). + Required in the following combinations: source=image and + destination=volume, and source=blank and destination=volume. + Changing this creates a new server.' + type: number + volumeType: + description: Currently, the value can be SSD (ultra-I/O + disk type), SAS (high I/O disk type), or SATA (common + I/O disk type) OTC-API + type: string + type: object + type: array + configDrive: + description: Whether to use the config_drive feature to configure + the instance. Changing this creates a new server. + type: boolean + description: + description: Server description. + type: string + flavorId: + description: The flavor ID of the desired flavor for the server. + Changing this resizes the existing server. + type: string + flavorName: + description: The name of the desired flavor for the server. Changing + this resizes the existing server. + type: string + id: + type: string + imageId: + description: The image ID of the desired image for the server. + Changing this creates a new server. + type: string + imageName: + description: The name of the desired image for the server. Changing + this creates a new server. + type: string + keyPair: + description: 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. + type: string + metadata: + additionalProperties: + type: string + description: Metadata key/value pairs to make available from within + the instance. Changing this updates the existing server metadata. + type: object + name: + description: A unique name for the resource. + type: string + network: + description: An array of one or more networks to attach to the + instance. Required when there are multiple networks defined + for the tenant. The network object structure is documented below. + Changing this creates a new server. + items: + properties: + accessNetwork: + description: Specifies if this network should be used for + provisioning access. Accepts true or false. Defaults to + false. + type: boolean + fixedIpV4: + description: Specifies a fixed IPv4 address to be used on + this network. Changing this creates a new server. + type: string + fixedIpV6: + description: Specifies a fixed IPv6 address to be used on + this network. Changing this creates a new server. + type: string + mac: + type: string + name: + description: The human-readable name of the network. Changing + this creates a new server. + type: string + port: + description: The port UUID of a network to attach to the + server. Changing this creates a new server. + type: string + uuid: + description: The network UUID to attach to the server. Changing + this creates a new server. + type: string + type: object + type: array + powerState: + description: Provide the VM state. Only active and shutoff are + supported values. + type: string + region: + type: string + schedulerHints: + description: Provide the Nova scheduler with hints on how the + instance should be launched. The available hints are described + below. + items: + properties: + buildNearHostIp: + description: An IP Address in CIDR form. The instance will + be placed on a compute node that is in the same subnet. + type: string + dehId: + description: The ID of DeH. This parameter takes effect + only when the value of tenancy is dedicated. + type: string + differentHost: + description: A list of instance UUIDs. The instance will + be scheduled on a different host than all other instances. + items: + type: string + type: array + group: + description: A UUID of a Server Group. The instance will + be placed into that group. + type: string + query: + description: A conditional query that a compute node must + pass in order to host an instance. + items: + type: string + type: array + sameHost: + description: A list of instance UUIDs. The instance will + be scheduled on the same host of those specified. + items: + type: string + type: array + targetCell: + description: The name of a cell to host the instance. + type: string + tenancy: + description: The tenancy specifies whether the ECS is to + be created on a Dedicated Host (DeH) or in a shared pool. + type: string + type: object + type: array + securityGroups: + description: An array of one or more security group names to associate + with the server. Changing this results in adding/removing security + groups from the existing server. + items: + type: string + type: array + stopBeforeDestroy: + description: Whether to try stop instance gracefully before destroying + it, thus giving chance for guest OS daemons to stop correctly. + If instance doesn't stop within a timeout, it will be destroyed + anyway. + type: boolean + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the instance. + type: object + userData: + description: The user data to provide when launching the instance. + Changing this creates a new server. + type: string + volumeAttached: + items: + properties: + id: + type: string + type: object + type: array + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/compute.crossplane.io_keypairv2s.yaml b/package/crds/compute.crossplane.io_keypairv2s.yaml new file mode 100644 index 0000000..2c83540 --- /dev/null +++ b/package/crds/compute.crossplane.io_keypairv2s.yaml @@ -0,0 +1,359 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: keypairv2s.compute.crossplane.io +spec: + group: compute.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: KeypairV2 + listKind: KeypairV2List + plural: keypairv2s + singular: keypairv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: KeypairV2 is the Schema for the KeypairV2s API. Manages an ECS + Key Management 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: KeypairV2Spec defines the desired state of KeypairV2 + 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: + name: + description: A unique name for the keypair. Changing this creates + a new keypair. + type: string + publicKey: + description: A pregenerated OpenSSH-formatted public key. Changing + this creates a new keypair. If a public key is not specified, + then a public/private key pair will be automatically generated. + If a pair is created, then destroying this resource means you + will lose access to that keypair forever. + type: string + region: + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + 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: + name: + description: A unique name for the keypair. Changing this creates + a new keypair. + type: string + publicKey: + description: A pregenerated OpenSSH-formatted public key. Changing + this creates a new keypair. If a public key is not specified, + then a public/private key pair will be automatically generated. + If a pair is created, then destroying this resource means you + will lose access to that keypair forever. + type: string + region: + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + 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.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + status: + description: KeypairV2Status defines the observed state of KeypairV2. + properties: + atProvider: + properties: + id: + type: string + name: + description: A unique name for the keypair. Changing this creates + a new keypair. + type: string + privateKey: + description: The generated private key when no public key is specified. + type: string + publicKey: + description: A pregenerated OpenSSH-formatted public key. Changing + this creates a new keypair. If a public key is not specified, + then a public/private key pair will be automatically generated. + If a pair is created, then destroying this resource means you + will lose access to that keypair forever. + type: string + region: + type: string + shared: + type: boolean + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/compute.crossplane.io_secgroupv2s.yaml b/package/crds/compute.crossplane.io_secgroupv2s.yaml new file mode 100644 index 0000000..e7ca3a4 --- /dev/null +++ b/package/crds/compute.crossplane.io_secgroupv2s.yaml @@ -0,0 +1,462 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: secgroupv2s.compute.crossplane.io +spec: + group: compute.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: SecgroupV2 + listKind: SecgroupV2List + plural: secgroupv2s + singular: secgroupv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: SecgroupV2 is the Schema for the SecgroupV2s API. Manages an + ECS Security Group Management 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: SecgroupV2Spec defines the desired state of SecgroupV2 + 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: + description: + description: A description for the security group. Changing this + updates the description of an existing security group. + type: string + name: + description: A unique name for the security group. Changing this + updates the name of an existing security group. + type: string + region: + type: string + rule: + description: A rule describing how the security group operates. + The rule object structure is documented below. Changing this + updates the security group rules. As shown in the example above, + multiple rule blocks may be used. + items: + properties: + cidr: + description: Required if from_group_id or self is empty. + The IP range that will be the source of network traffic + to the security group. Use 0.0.0.0/0 to allow all IP addresses. + Changing this creates a new security group rule. Cannot + be combined with from_group_id or self. + type: string + fromGroupId: + description: Required if cidr or self is empty. The ID of + a group from which to forward traffic to the parent group. + Changing this creates a new security group rule. Cannot + be combined with cidr or self. + type: string + fromPort: + description: An integer representing the lower bound of + the port range to open. Changing this creates a new security + group rule. + type: number + ipProtocol: + description: The protocol type that will be allowed. Changing + this creates a new security group rule. + type: string + self: + description: Required if cidr and from_group_id is empty. + If true, the security group itself will be added as a + source to this ingress rule. Cannot be combined with cidr + or from_group_id. + type: boolean + toPort: + description: An integer representing the upper bound of + the port range to open. Changing this creates a new security + group rule. + type: number + type: object + type: array + 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: + description: + description: A description for the security group. Changing this + updates the description of an existing security group. + type: string + name: + description: A unique name for the security group. Changing this + updates the name of an existing security group. + type: string + region: + type: string + rule: + description: A rule describing how the security group operates. + The rule object structure is documented below. Changing this + updates the security group rules. As shown in the example above, + multiple rule blocks may be used. + items: + properties: + cidr: + description: Required if from_group_id or self is empty. + The IP range that will be the source of network traffic + to the security group. Use 0.0.0.0/0 to allow all IP addresses. + Changing this creates a new security group rule. Cannot + be combined with from_group_id or self. + type: string + fromGroupId: + description: Required if cidr or self is empty. The ID of + a group from which to forward traffic to the parent group. + Changing this creates a new security group rule. Cannot + be combined with cidr or self. + type: string + fromPort: + description: An integer representing the lower bound of + the port range to open. Changing this creates a new security + group rule. + type: number + ipProtocol: + description: The protocol type that will be allowed. Changing + this creates a new security group rule. + type: string + self: + description: Required if cidr and from_group_id is empty. + If true, the security group itself will be added as a + source to this ingress rule. Cannot be combined with cidr + or from_group_id. + type: boolean + toPort: + description: An integer representing the upper bound of + the port range to open. Changing this creates a new security + group rule. + type: number + type: object + type: array + 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.description is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.description) + || (has(self.initProvider) && has(self.initProvider.description))' + - message: spec.forProvider.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + status: + description: SecgroupV2Status defines the observed state of SecgroupV2. + properties: + atProvider: + properties: + description: + description: A description for the security group. Changing this + updates the description of an existing security group. + type: string + id: + type: string + name: + description: A unique name for the security group. Changing this + updates the name of an existing security group. + type: string + region: + type: string + rule: + description: A rule describing how the security group operates. + The rule object structure is documented below. Changing this + updates the security group rules. As shown in the example above, + multiple rule blocks may be used. + items: + properties: + cidr: + description: Required if from_group_id or self is empty. + The IP range that will be the source of network traffic + to the security group. Use 0.0.0.0/0 to allow all IP addresses. + Changing this creates a new security group rule. Cannot + be combined with from_group_id or self. + type: string + fromGroupId: + description: Required if cidr or self is empty. The ID of + a group from which to forward traffic to the parent group. + Changing this creates a new security group rule. Cannot + be combined with cidr or self. + type: string + fromPort: + description: An integer representing the lower bound of + the port range to open. Changing this creates a new security + group rule. + type: number + id: + type: string + ipProtocol: + description: The protocol type that will be allowed. Changing + this creates a new security group rule. + type: string + self: + description: Required if cidr and from_group_id is empty. + If true, the security group itself will be added as a + source to this ingress rule. Cannot be combined with cidr + or from_group_id. + type: boolean + toPort: + description: An integer representing the upper bound of + the port range to open. Changing this creates a new security + group rule. + type: number + type: object + type: array + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/compute.crossplane.io_servergroupv2s.yaml b/package/crds/compute.crossplane.io_servergroupv2s.yaml new file mode 100644 index 0000000..0beedcd --- /dev/null +++ b/package/crds/compute.crossplane.io_servergroupv2s.yaml @@ -0,0 +1,367 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: servergroupv2s.compute.crossplane.io +spec: + group: compute.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: ServergroupV2 + listKind: ServergroupV2List + plural: servergroupv2s + singular: servergroupv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: ServergroupV2 is the Schema for the ServergroupV2s API. Manages + an ECS Server Group Management 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: ServergroupV2Spec defines the desired state of ServergroupV2 + 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: + name: + description: A unique name for the server group. Changing this + creates a new server group. + type: string + policies: + description: The set of policies for the server group. Only two + two policies are available right now, and both are mutually + exclusive. See the Policies section for more information. Changing + this creates a new server group. + items: + type: string + type: array + region: + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + 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: + name: + description: A unique name for the server group. Changing this + creates a new server group. + type: string + policies: + description: The set of policies for the server group. Only two + two policies are available right now, and both are mutually + exclusive. See the Policies section for more information. Changing + this creates a new server group. + items: + type: string + type: array + region: + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + 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.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + - message: spec.forProvider.policies is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.policies) + || (has(self.initProvider) && has(self.initProvider.policies))' + status: + description: ServergroupV2Status defines the observed state of ServergroupV2. + properties: + atProvider: + properties: + id: + description: ID of the server group. + type: string + members: + description: The instances that are part of this server group. + items: + type: string + type: array + name: + description: A unique name for the server group. Changing this + creates a new server group. + type: string + policies: + description: The set of policies for the server group. Only two + two policies are available right now, and both are mutually + exclusive. See the Policies section for more information. Changing + this creates a new server group. + items: + type: string + type: array + region: + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/compute.crossplane.io_volumeattachv2s.yaml b/package/crds/compute.crossplane.io_volumeattachv2s.yaml new file mode 100644 index 0000000..b40e4a7 --- /dev/null +++ b/package/crds/compute.crossplane.io_volumeattachv2s.yaml @@ -0,0 +1,337 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: volumeattachv2s.compute.crossplane.io +spec: + group: compute.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: VolumeAttachV2 + listKind: VolumeAttachV2List + plural: volumeattachv2s + singular: volumeattachv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: VolumeAttachV2 is the Schema for the VolumeAttachV2s API. Manages + an ECS Disk Management 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: VolumeAttachV2Spec defines the desired state of VolumeAttachV2 + 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: + device: + description: 'The device of the volume attachment (ex: /dev/vdc).' + type: string + instanceId: + description: The ID of the Instance to attach the Volume to. + type: string + region: + type: string + volumeId: + description: The ID of the Volume to attach to an Instance. + 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: + device: + description: 'The device of the volume attachment (ex: /dev/vdc).' + type: string + instanceId: + description: The ID of the Instance to attach the Volume to. + type: string + region: + type: string + volumeId: + description: The ID of the Volume to attach to an Instance. + 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.instanceId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.instanceId) + || (has(self.initProvider) && has(self.initProvider.instanceId))' + - message: spec.forProvider.volumeId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.volumeId) + || (has(self.initProvider) && has(self.initProvider.volumeId))' + status: + description: VolumeAttachV2Status defines the observed state of VolumeAttachV2. + properties: + atProvider: + properties: + device: + description: 'The device of the volume attachment (ex: /dev/vdc).' + type: string + id: + type: string + instanceId: + description: The ID of the Instance to attach the Volume to. + type: string + region: + type: string + volumeId: + description: The ID of the Volume to attach to an Instance. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/dcs.crossplane.io_instancev1s.yaml b/package/crds/dcs.crossplane.io_instancev1s.yaml new file mode 100644 index 0000000..941d7fe --- /dev/null +++ b/package/crds/dcs.crossplane.io_instancev1s.yaml @@ -0,0 +1,877 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: instancev1s.dcs.crossplane.io +spec: + group: dcs.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: InstanceV1 + listKind: InstanceV1List + plural: instancev1s + singular: instancev1 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: InstanceV1 is the Schema for the InstanceV1s API. Manages a DCS + Instance v1 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: InstanceV1Spec defines the desired state of InstanceV1 + 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: + availableZones: + description: 'IDs of the AZs where cache nodes reside. For details + on how to query AZs, see Querying AZ Information or use opentelekomcloud_dcs_az_v1 + data source:' + items: + type: string + type: array + backupAt: + description: 'Day in a week on which backup starts. Range: 1–7. + Where: 1 indicates Monday; 7 indicates Sunday.' + items: + type: number + type: array + backupPolicy: + description: Describes the backup configuration to be used with + the instance. + items: + properties: + backupAt: + description: 'Day in a week on which backup starts. Range: + 1–7. Where: 1 indicates Monday; 7 indicates Sunday.' + items: + type: number + type: array + backupType: + description: 'Backup type. Valid values are: auto automatic + backup, manual manual backup (default).' + type: string + beginAt: + description: Time at which backup starts. 00:00-01:00 indicates + that backup starts at 00:00:00. + type: string + periodType: + description: Interval at which backup is performed. Currently, + only weekly backup is supported. + type: string + saveDays: + description: 'Retention time. Unit: day. Range: 1–7.' + type: number + type: object + type: array + backupType: + description: 'Backup type. Valid values are: auto automatic backup, + manual manual backup (default).' + type: string + beginAt: + description: Time at which backup starts. 00:00-01:00 indicates + that backup starts at 00:00:00. + type: string + capacity: + description: 'Indicates the Cache capacity. Unit: GB.' + type: number + configuration: + description: Describes the array of configuration items of the + DCS instance. Configured values can be found here. + items: + properties: + parameterId: + description: Configuration item ID. + type: string + parameterName: + description: Configuration item name. + type: string + parameterValue: + description: Value of the configuration item. + type: string + type: object + type: array + description: + description: Indicates the description of an instance. It is a + character string containing not more than 1024 characters. + type: string + enableWhitelist: + description: Specifies whether to enable or disable whitelist. + Only available when engine_version is set to 4.0/5.0. Parameter + have to be used together with whitelist. + type: boolean + engine: + description: Indicates a cache engine. Only Redis is supported. + Changing this creates a new instance. + type: string + engineVersion: + description: Indicates the version of a cache engine, which can + be 3.0/4.0/5.0/6.0. Changing this creates a new instance. + type: string + maintainBegin: + description: 'Indicates the time at which a maintenance time window + starts. Format: HH:mm:ss. The start time and end time of a maintenance + time window must indicate the time segment of a supported maintenance + time window. For details, see section Querying Maintenance Time + Windows. The start time must be set to 22:00, 02:00, 06:00, + 10:00, 14:00, or 18:00.' + type: string + maintainEnd: + description: 'Indicates the time at which a maintenance time window + ends. Format: HH:mm:ss. The start time and end time of a maintenance + time window must indicate the time segment of a supported maintenance + time window. For details, see section Querying Maintenance Time + Windows. 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.' + type: string + name: + description: Indicates the name of an instance. An instance name + starts with a letter, consists of 4 to 64 characters, and supports + only letters, digits, and hyphens (-). + type: string + passwordSecretRef: + description: 'Indicates the password of an instance. An instance + password must meet the following complexity requirements: Must + be 8 to 32 characters long. Must contain at least 3 of the following + character types: lowercase letters, uppercase letters, digits, + and special characters: `~!@#$^&*()-_=+|{}:,<>./? Changing this + creates a new instance.' + properties: + key: + description: The key to select. + type: string + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - key + - name + - namespace + type: object + periodType: + description: Interval at which backup is performed. Currently, + only weekly backup is supported. + type: string + privateIp: + description: IP address that is manually specified for a DCS instance. + type: string + productId: + description: Product ID used to differentiate DCS instance types. + Changing this creates a new instance. + type: string + saveDays: + description: 'Retention time. Unit: day. Range: 1–7.' + type: number + securityGroupId: + description: Security group ID. This parameter is mandatory when + engine_version is 3.0. + type: string + subnetId: + description: Specifies the subnet Network ID. Changing this creates + a new instance. + type: string + tags: + additionalProperties: + type: string + description: The key/value pairs to associate with the dcs instance. + type: object + vpcId: + description: Specifies the VPC ID. Changing this creates a new + instance. + type: string + whitelist: + description: 'Describes the whitelist groups to be used with the + instance. Only available when engine_version is set to 4.0/5.0. + Parameter have to be used together with enable_whitelist. Resource + fields:' + items: + properties: + groupName: + description: Whitelist group name. A maximum of four groups + can be created for each instance. + type: string + ipList: + description: List of IP addresses in the whitelist group. + A maximum of 20 IP addresses or IP address ranges can + be added to an instance. Separate multiple IP addresses + or IP address ranges with commas (,). IP address 0.0.0.0 + and IP address range 0.0.0/0 are not supported. + items: + type: string + type: array + type: object + type: array + 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: + availableZones: + description: 'IDs of the AZs where cache nodes reside. For details + on how to query AZs, see Querying AZ Information or use opentelekomcloud_dcs_az_v1 + data source:' + items: + type: string + type: array + backupAt: + description: 'Day in a week on which backup starts. Range: 1–7. + Where: 1 indicates Monday; 7 indicates Sunday.' + items: + type: number + type: array + backupPolicy: + description: Describes the backup configuration to be used with + the instance. + items: + properties: + backupAt: + description: 'Day in a week on which backup starts. Range: + 1–7. Where: 1 indicates Monday; 7 indicates Sunday.' + items: + type: number + type: array + backupType: + description: 'Backup type. Valid values are: auto automatic + backup, manual manual backup (default).' + type: string + beginAt: + description: Time at which backup starts. 00:00-01:00 indicates + that backup starts at 00:00:00. + type: string + periodType: + description: Interval at which backup is performed. Currently, + only weekly backup is supported. + type: string + saveDays: + description: 'Retention time. Unit: day. Range: 1–7.' + type: number + type: object + type: array + backupType: + description: 'Backup type. Valid values are: auto automatic backup, + manual manual backup (default).' + type: string + beginAt: + description: Time at which backup starts. 00:00-01:00 indicates + that backup starts at 00:00:00. + type: string + capacity: + description: 'Indicates the Cache capacity. Unit: GB.' + type: number + configuration: + description: Describes the array of configuration items of the + DCS instance. Configured values can be found here. + items: + properties: + parameterId: + description: Configuration item ID. + type: string + parameterName: + description: Configuration item name. + type: string + parameterValue: + description: Value of the configuration item. + type: string + type: object + type: array + description: + description: Indicates the description of an instance. It is a + character string containing not more than 1024 characters. + type: string + enableWhitelist: + description: Specifies whether to enable or disable whitelist. + Only available when engine_version is set to 4.0/5.0. Parameter + have to be used together with whitelist. + type: boolean + engine: + description: Indicates a cache engine. Only Redis is supported. + Changing this creates a new instance. + type: string + engineVersion: + description: Indicates the version of a cache engine, which can + be 3.0/4.0/5.0/6.0. Changing this creates a new instance. + type: string + maintainBegin: + description: 'Indicates the time at which a maintenance time window + starts. Format: HH:mm:ss. The start time and end time of a maintenance + time window must indicate the time segment of a supported maintenance + time window. For details, see section Querying Maintenance Time + Windows. The start time must be set to 22:00, 02:00, 06:00, + 10:00, 14:00, or 18:00.' + type: string + maintainEnd: + description: 'Indicates the time at which a maintenance time window + ends. Format: HH:mm:ss. The start time and end time of a maintenance + time window must indicate the time segment of a supported maintenance + time window. For details, see section Querying Maintenance Time + Windows. 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.' + type: string + name: + description: Indicates the name of an instance. An instance name + starts with a letter, consists of 4 to 64 characters, and supports + only letters, digits, and hyphens (-). + type: string + periodType: + description: Interval at which backup is performed. Currently, + only weekly backup is supported. + type: string + privateIp: + description: IP address that is manually specified for a DCS instance. + type: string + productId: + description: Product ID used to differentiate DCS instance types. + Changing this creates a new instance. + type: string + saveDays: + description: 'Retention time. Unit: day. Range: 1–7.' + type: number + securityGroupId: + description: Security group ID. This parameter is mandatory when + engine_version is 3.0. + type: string + subnetId: + description: Specifies the subnet Network ID. Changing this creates + a new instance. + type: string + tags: + additionalProperties: + type: string + description: The key/value pairs to associate with the dcs instance. + type: object + vpcId: + description: Specifies the VPC ID. Changing this creates a new + instance. + type: string + whitelist: + description: 'Describes the whitelist groups to be used with the + instance. Only available when engine_version is set to 4.0/5.0. + Parameter have to be used together with enable_whitelist. Resource + fields:' + items: + properties: + groupName: + description: Whitelist group name. A maximum of four groups + can be created for each instance. + type: string + ipList: + description: List of IP addresses in the whitelist group. + A maximum of 20 IP addresses or IP address ranges can + be added to an instance. Separate multiple IP addresses + or IP address ranges with commas (,). IP address 0.0.0.0 + and IP address range 0.0.0/0 are not supported. + items: + type: string + type: array + type: object + type: array + 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.availableZones is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.availableZones) + || (has(self.initProvider) && has(self.initProvider.availableZones))' + - message: spec.forProvider.capacity is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.capacity) + || (has(self.initProvider) && has(self.initProvider.capacity))' + - message: spec.forProvider.engine is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.engine) + || (has(self.initProvider) && has(self.initProvider.engine))' + - message: spec.forProvider.engineVersion is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.engineVersion) + || (has(self.initProvider) && has(self.initProvider.engineVersion))' + - message: spec.forProvider.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + - message: spec.forProvider.productId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.productId) + || (has(self.initProvider) && has(self.initProvider.productId))' + - 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))' + - message: spec.forProvider.vpcId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.vpcId) + || (has(self.initProvider) && has(self.initProvider.vpcId))' + status: + description: InstanceV1Status defines the observed state of InstanceV1. + properties: + atProvider: + properties: + availableZones: + description: 'IDs of the AZs where cache nodes reside. For details + on how to query AZs, see Querying AZ Information or use opentelekomcloud_dcs_az_v1 + data source:' + items: + type: string + type: array + backupAt: + description: 'Day in a week on which backup starts. Range: 1–7. + Where: 1 indicates Monday; 7 indicates Sunday.' + items: + type: number + type: array + backupPolicy: + description: Describes the backup configuration to be used with + the instance. + items: + properties: + backupAt: + description: 'Day in a week on which backup starts. Range: + 1–7. Where: 1 indicates Monday; 7 indicates Sunday.' + items: + type: number + type: array + backupType: + description: 'Backup type. Valid values are: auto automatic + backup, manual manual backup (default).' + type: string + beginAt: + description: Time at which backup starts. 00:00-01:00 indicates + that backup starts at 00:00:00. + type: string + periodType: + description: Interval at which backup is performed. Currently, + only weekly backup is supported. + type: string + saveDays: + description: 'Retention time. Unit: day. Range: 1–7.' + type: number + type: object + type: array + backupType: + description: 'Backup type. Valid values are: auto automatic backup, + manual manual backup (default).' + type: string + beginAt: + description: Time at which backup starts. 00:00-01:00 indicates + that backup starts at 00:00:00. + type: string + capacity: + description: 'Indicates the Cache capacity. Unit: GB.' + type: number + configuration: + description: Describes the array of configuration items of the + DCS instance. Configured values can be found here. + items: + properties: + parameterId: + description: Configuration item ID. + type: string + parameterName: + description: Configuration item name. + type: string + parameterValue: + description: Value of the configuration item. + type: string + type: object + type: array + createdAt: + description: Time at which the DCS instance is created. For example, + 2017-03-31T12:24:46.297Z. + type: string + description: + description: Indicates the description of an instance. It is a + character string containing not more than 1024 characters. + type: string + enableWhitelist: + description: Specifies whether to enable or disable whitelist. + Only available when engine_version is set to 4.0/5.0. Parameter + have to be used together with whitelist. + type: boolean + engine: + description: Indicates a cache engine. Only Redis is supported. + Changing this creates a new instance. + type: string + engineVersion: + description: Indicates the version of a cache engine, which can + be 3.0/4.0/5.0/6.0. Changing this creates a new instance. + type: string + id: + type: string + internalVersion: + description: Internal DCS version. + type: string + ip: + description: Cache node's IP address in the tenant's VPC. + type: string + maintainBegin: + description: 'Indicates the time at which a maintenance time window + starts. Format: HH:mm:ss. The start time and end time of a maintenance + time window must indicate the time segment of a supported maintenance + time window. For details, see section Querying Maintenance Time + Windows. The start time must be set to 22:00, 02:00, 06:00, + 10:00, 14:00, or 18:00.' + type: string + maintainEnd: + description: 'Indicates the time at which a maintenance time window + ends. Format: HH:mm:ss. The start time and end time of a maintenance + time window must indicate the time segment of a supported maintenance + time window. For details, see section Querying Maintenance Time + Windows. 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.' + type: string + maxMemory: + description: 'Overall memory size. Unit: MB.' + type: number + name: + description: Indicates the name of an instance. An instance name + starts with a letter, consists of 4 to 64 characters, and supports + only letters, digits, and hyphens (-). + type: string + noPasswordAccess: + description: An indicator of whether a DCS instance can be accessed + in password-free mode. true when password not set. + type: string + orderId: + description: An order ID is generated only in the monthly or yearly + billing mode. In other billing modes, no value is returned for + this parameter. + type: string + periodType: + description: Interval at which backup is performed. Currently, + only weekly backup is supported. + type: string + port: + description: Port of the cache node. + type: number + privateIp: + description: IP address that is manually specified for a DCS instance. + type: string + productId: + description: Product ID used to differentiate DCS instance types. + Changing this creates a new instance. + type: string + resourceSpecCode: + description: Resource specifications. + type: string + saveDays: + description: 'Retention time. Unit: day. Range: 1–7.' + type: number + securityGroupId: + description: Security group ID. This parameter is mandatory when + engine_version is 3.0. + type: string + securityGroupName: + description: Indicates the name of a security group. + type: string + status: + description: Cache instance status. One of CREATING, CREATEFAILED, + RUNNING, ERROR, RESTARTING, EXTENDING, RESTORING + type: string + subnetId: + description: Specifies the subnet Network ID. Changing this creates + a new instance. + type: string + subnetName: + description: Indicates the name of a subnet. + type: string + tags: + additionalProperties: + type: string + description: The key/value pairs to associate with the dcs instance. + type: object + usedMemory: + description: 'Size of the used memory. Unit: MB.' + type: number + userId: + description: Indicates a user ID. + type: string + userName: + description: Username. + type: string + vpcId: + description: Specifies the VPC ID. Changing this creates a new + instance. + type: string + vpcName: + description: Indicates the name of a vpc. + type: string + whitelist: + description: 'Describes the whitelist groups to be used with the + instance. Only available when engine_version is set to 4.0/5.0. + Parameter have to be used together with enable_whitelist. Resource + fields:' + items: + properties: + groupName: + description: Whitelist group name. A maximum of four groups + can be created for each instance. + type: string + ipList: + description: List of IP addresses in the whitelist group. + A maximum of 20 IP addresses or IP address ranges can + be added to an instance. Separate multiple IP addresses + or IP address ranges with commas (,). IP address 0.0.0.0 + and IP address range 0.0.0/0 are not supported. + items: + type: string + type: array + type: object + type: array + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/dcs.crossplane.io_instancev2s.yaml b/package/crds/dcs.crossplane.io_instancev2s.yaml new file mode 100644 index 0000000..7744789 --- /dev/null +++ b/package/crds/dcs.crossplane.io_instancev2s.yaml @@ -0,0 +1,1009 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: instancev2s.dcs.crossplane.io +spec: + group: dcs.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: InstanceV2 + listKind: InstanceV2List + plural: instancev2s + singular: instancev2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: InstanceV2 is the Schema for the InstanceV2s API. Manages a DCS + Instance v2 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: InstanceV2Spec defines the desired state of InstanceV2 + 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: + accessUser: + description: Specifies the username used for accessing a DCS instance. + The username starts with a letter, consists of 1 to 64 characters, + and supports only letters, digits, and hyphens (-). Changing + this creates a new instance. + type: string + availabilityZones: + description: The code of the AZ where the cache node resides. + Master/Standby, Proxy Cluster, and Redis Cluster DCS instances + support cross-AZ deployment. You can specify an AZ for the standby + node. When specifying AZs for nodes, use commas (,) to separate + AZs. Changing this creates a new instance. + items: + type: string + type: array + backupPolicy: + description: Specifies the backup configuration to be used with + the instance. The structure is described below. + items: + properties: + backupAt: + description: 'Day in a week on which backup starts, the + value ranges from 1 to 7. Where: 1 indicates Monday; 7 + indicates Sunday.' + items: + type: number + type: array + backupType: + description: 'Backup type. Default value is auto. The valid + values are as follows:' + type: string + beginAt: + description: 'Time at which backup starts. Format: hh24:00-hh24:00, + "00:00-01:00" indicates that backup starts at 00:00:00.' + type: string + periodType: + description: Interval at which backup is performed. Default + value is weekly. Currently, only weekly backup is supported. + type: string + saveDays: + description: 'Retention time. Unit: day, the value ranges + from 1 to 7. This parameter is required if the backup_type + is auto.' + type: number + type: object + type: array + capacity: + description: 'Specifies the cache capacity. Unit: GB.' + type: number + deletedNodes: + description: Specifies the ID of the replica to delete. This parameter + is mandatory when you delete replicas of a master/standby DCS + Redis 4.0 or 5.0 instance. Currently, only one replica can be + deleted at a time. + items: + type: string + type: array + description: + description: Specifies the description of an instance. It is a + string that contains a maximum of 1024 characters. + type: string + enableWhitelist: + description: Enable or disable the IP address whitelists. Defaults + to true. If the whitelist is disabled, all IP addresses connected + to the VPC can access the instance. + type: boolean + engine: + description: 'Specifies a cache engine. Options: Redis and Memcached. + Changing this creates a new instance.' + type: string + engineVersion: + description: Specifies the version of a cache engine. It is mandatory + when the engine is Redis, the value can be 3.0, 4.0, 5.0 or + 6.0. Changing this creates a new instance. + type: string + flavor: + description: 'The flavor of the cache instance, which including + the total memory, available memory, maximum number of connections + allowed, maximum/assured bandwidth and reference performance. + It also includes the modes of Redis instances. You can query + the flavor as follows:' + type: string + maintainBegin: + description: Time at which the maintenance time window starts. + Defaults to 02:00:00. + type: string + maintainEnd: + description: Time at which the maintenance time window ends. Defaults + to 06:00:00. + type: string + name: + description: Specifies the name of an instance. The name must + be 4 to 64 characters and start with a letter. Only chinese, + letters (case-insensitive), digits, underscores (_) ,and hyphens + (-) are allowed. + type: string + parameters: + description: Specify an array of one or more parameters to be + set to the DCS instance after launched. You can check on console + to see which parameters supported. The parameters structure + is documented below. + items: + properties: + id: + description: Specifies the ID of the configuration item. + type: string + name: + description: Specifies the name of the configuration item. + type: string + value: + description: Specifies the value of the configuration item. + type: string + type: object + type: array + passwordSecretRef: + description: 'Specifies the password of a DCS instance. The password + of a DCS instance must meet the following complexity requirements:' + properties: + key: + description: The key to select. + type: string + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - key + - name + - namespace + type: object + port: + description: Port customization, which is supported only by Redis + 4.0 and Redis 5.0 instances. Redis instance defaults to 6379. + Memcached instance does not use this argument. + type: number + privateIp: + description: The IP address of the DCS instance, which can only + be the currently available IP address the selected subnet. You + can specify an available IP for the Redis instance (except for + the Redis Cluster type). If omitted, the system will automatically + allocate an available IP address to the Redis instance. Changing + this creates a new instance resource. + type: string + renameCommands: + additionalProperties: + type: string + description: 'Critical command renaming, which is supported only + by Redis 4.0 and Redis 5.0 instances but not by Redis 3.0 instance. + The valid commands that can be renamed are: command, keys, flushdb, + flushall and hgetall.' + type: object + reservedIps: + description: Specifies IP addresses to retain. Mandatory during + cluster scale-in. If this parameter is not set, the system randomly + deletes unnecessary shards. + items: + type: string + type: array + securityGroupId: + description: The ID of the security group which the instance belongs + to. This parameter is mandatory for Memcached and Redis 3.0 + version. + type: string + sslEnable: + description: 'Specifies whether to enable the SSL. Value options: + true, false.' + type: boolean + subnetId: + description: The ID of subnet which the instance belongs to. Changing + this creates a new instance resource. + type: string + tags: + additionalProperties: + type: string + description: The key/value pairs to associate with the dcs instance. + type: object + templateId: + description: The Parameter Template ID. Changing this creates + a new instance resource. + type: string + vpcId: + description: The ID of VPC which the instance belongs to. Changing + this creates a new instance resource. + type: string + whitelist: + description: Specifies the IP addresses which can access the instance. + This parameter is valid for Redis 4.0 and 5.0 versions. The + structure is described below. + items: + properties: + groupName: + description: Specifies the name of IP address group. + type: string + ipList: + description: Specifies the list of IP address or CIDR which + can be whitelisted for an instance. The maximum is 20. + items: + type: string + type: array + type: object + type: array + 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: + accessUser: + description: Specifies the username used for accessing a DCS instance. + The username starts with a letter, consists of 1 to 64 characters, + and supports only letters, digits, and hyphens (-). Changing + this creates a new instance. + type: string + availabilityZones: + description: The code of the AZ where the cache node resides. + Master/Standby, Proxy Cluster, and Redis Cluster DCS instances + support cross-AZ deployment. You can specify an AZ for the standby + node. When specifying AZs for nodes, use commas (,) to separate + AZs. Changing this creates a new instance. + items: + type: string + type: array + backupPolicy: + description: Specifies the backup configuration to be used with + the instance. The structure is described below. + items: + properties: + backupAt: + description: 'Day in a week on which backup starts, the + value ranges from 1 to 7. Where: 1 indicates Monday; 7 + indicates Sunday.' + items: + type: number + type: array + backupType: + description: 'Backup type. Default value is auto. The valid + values are as follows:' + type: string + beginAt: + description: 'Time at which backup starts. Format: hh24:00-hh24:00, + "00:00-01:00" indicates that backup starts at 00:00:00.' + type: string + periodType: + description: Interval at which backup is performed. Default + value is weekly. Currently, only weekly backup is supported. + type: string + saveDays: + description: 'Retention time. Unit: day, the value ranges + from 1 to 7. This parameter is required if the backup_type + is auto.' + type: number + type: object + type: array + capacity: + description: 'Specifies the cache capacity. Unit: GB.' + type: number + deletedNodes: + description: Specifies the ID of the replica to delete. This parameter + is mandatory when you delete replicas of a master/standby DCS + Redis 4.0 or 5.0 instance. Currently, only one replica can be + deleted at a time. + items: + type: string + type: array + description: + description: Specifies the description of an instance. It is a + string that contains a maximum of 1024 characters. + type: string + enableWhitelist: + description: Enable or disable the IP address whitelists. Defaults + to true. If the whitelist is disabled, all IP addresses connected + to the VPC can access the instance. + type: boolean + engine: + description: 'Specifies a cache engine. Options: Redis and Memcached. + Changing this creates a new instance.' + type: string + engineVersion: + description: Specifies the version of a cache engine. It is mandatory + when the engine is Redis, the value can be 3.0, 4.0, 5.0 or + 6.0. Changing this creates a new instance. + type: string + flavor: + description: 'The flavor of the cache instance, which including + the total memory, available memory, maximum number of connections + allowed, maximum/assured bandwidth and reference performance. + It also includes the modes of Redis instances. You can query + the flavor as follows:' + type: string + maintainBegin: + description: Time at which the maintenance time window starts. + Defaults to 02:00:00. + type: string + maintainEnd: + description: Time at which the maintenance time window ends. Defaults + to 06:00:00. + type: string + name: + description: Specifies the name of an instance. The name must + be 4 to 64 characters and start with a letter. Only chinese, + letters (case-insensitive), digits, underscores (_) ,and hyphens + (-) are allowed. + type: string + parameters: + description: Specify an array of one or more parameters to be + set to the DCS instance after launched. You can check on console + to see which parameters supported. The parameters structure + is documented below. + items: + properties: + id: + description: Specifies the ID of the configuration item. + type: string + name: + description: Specifies the name of the configuration item. + type: string + value: + description: Specifies the value of the configuration item. + type: string + type: object + type: array + port: + description: Port customization, which is supported only by Redis + 4.0 and Redis 5.0 instances. Redis instance defaults to 6379. + Memcached instance does not use this argument. + type: number + privateIp: + description: The IP address of the DCS instance, which can only + be the currently available IP address the selected subnet. You + can specify an available IP for the Redis instance (except for + the Redis Cluster type). If omitted, the system will automatically + allocate an available IP address to the Redis instance. Changing + this creates a new instance resource. + type: string + renameCommands: + additionalProperties: + type: string + description: 'Critical command renaming, which is supported only + by Redis 4.0 and Redis 5.0 instances but not by Redis 3.0 instance. + The valid commands that can be renamed are: command, keys, flushdb, + flushall and hgetall.' + type: object + reservedIps: + description: Specifies IP addresses to retain. Mandatory during + cluster scale-in. If this parameter is not set, the system randomly + deletes unnecessary shards. + items: + type: string + type: array + securityGroupId: + description: The ID of the security group which the instance belongs + to. This parameter is mandatory for Memcached and Redis 3.0 + version. + type: string + sslEnable: + description: 'Specifies whether to enable the SSL. Value options: + true, false.' + type: boolean + subnetId: + description: The ID of subnet which the instance belongs to. Changing + this creates a new instance resource. + type: string + tags: + additionalProperties: + type: string + description: The key/value pairs to associate with the dcs instance. + type: object + templateId: + description: The Parameter Template ID. Changing this creates + a new instance resource. + type: string + vpcId: + description: The ID of VPC which the instance belongs to. Changing + this creates a new instance resource. + type: string + whitelist: + description: Specifies the IP addresses which can access the instance. + This parameter is valid for Redis 4.0 and 5.0 versions. The + structure is described below. + items: + properties: + groupName: + description: Specifies the name of IP address group. + type: string + ipList: + description: Specifies the list of IP address or CIDR which + can be whitelisted for an instance. The maximum is 20. + items: + type: string + type: array + type: object + type: array + 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.availabilityZones is a required parameter + 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.capacity is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.capacity) + || (has(self.initProvider) && has(self.initProvider.capacity))' + - message: spec.forProvider.engine is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.engine) + || (has(self.initProvider) && has(self.initProvider.engine))' + - message: spec.forProvider.flavor is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.flavor) + || (has(self.initProvider) && has(self.initProvider.flavor))' + - message: spec.forProvider.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + - 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))' + - message: spec.forProvider.vpcId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.vpcId) + || (has(self.initProvider) && has(self.initProvider.vpcId))' + status: + description: InstanceV2Status defines the observed state of InstanceV2. + properties: + atProvider: + properties: + accessUser: + description: Specifies the username used for accessing a DCS instance. + The username starts with a letter, consists of 1 to 64 characters, + and supports only letters, digits, and hyphens (-). Changing + this creates a new instance. + type: string + availabilityZones: + description: The code of the AZ where the cache node resides. + Master/Standby, Proxy Cluster, and Redis Cluster DCS instances + support cross-AZ deployment. You can specify an AZ for the standby + node. When specifying AZs for nodes, use commas (,) to separate + AZs. Changing this creates a new instance. + items: + type: string + type: array + backupPolicy: + description: Specifies the backup configuration to be used with + the instance. The structure is described below. + items: + properties: + backupAt: + description: 'Day in a week on which backup starts, the + value ranges from 1 to 7. Where: 1 indicates Monday; 7 + indicates Sunday.' + items: + type: number + type: array + backupType: + description: 'Backup type. Default value is auto. The valid + values are as follows:' + type: string + beginAt: + description: 'Time at which backup starts. Format: hh24:00-hh24:00, + "00:00-01:00" indicates that backup starts at 00:00:00.' + type: string + periodType: + description: Interval at which backup is performed. Default + value is weekly. Currently, only weekly backup is supported. + type: string + saveDays: + description: 'Retention time. Unit: day, the value ranges + from 1 to 7. This parameter is required if the backup_type + is auto.' + type: number + type: object + type: array + bandwidthInfo: + description: Indicates the bandwidth information of the instance. + The bandwidth_info structure is documented below. + items: + properties: + bandwidth: + description: Indicates the bandwidth size, the unit is GB. + type: number + beginTime: + description: Indicates the begin time of temporary increase. + type: string + currentTime: + description: Indicates the current time. + type: string + endTime: + description: Indicates the end time of temporary increase. + type: string + expandCount: + description: Indicates the number of increases. + type: number + expandEffectTime: + description: Indicates the interval between temporary increases, + the unit is ms. + type: number + expandIntervalTime: + description: Indicates the time interval to the next increase, + the unit is ms. + type: number + maxExpandCount: + description: Indicates the maximum number of increases. + type: number + nextExpandTime: + description: Indicates the next increase time. + type: string + taskRunning: + description: Indicates whether the increase task is running. + type: boolean + type: object + type: array + cacheMode: + description: Indicates the instance type. The value can be single, + ha, cluster or proxy. + type: string + capacity: + description: 'Specifies the cache capacity. Unit: GB.' + type: number + cpuType: + description: Indicates the CPU type of the instance. The value + can be x86_64 or aarch64. + type: string + createdAt: + description: Indicates the time when the instance is created, + in RFC3339 format. + type: string + deletedNodes: + description: Specifies the ID of the replica to delete. This parameter + is mandatory when you delete replicas of a master/standby DCS + Redis 4.0 or 5.0 instance. Currently, only one replica can be + deleted at a time. + items: + type: string + type: array + description: + description: Specifies the description of an instance. It is a + string that contains a maximum of 1024 characters. + type: string + domainName: + description: Domain name of the instance. Usually, we use domain + name and port to connect to the DCS instances. + type: string + enableWhitelist: + description: Enable or disable the IP address whitelists. Defaults + to true. If the whitelist is disabled, all IP addresses connected + to the VPC can access the instance. + type: boolean + engine: + description: 'Specifies a cache engine. Options: Redis and Memcached. + Changing this creates a new instance.' + type: string + engineVersion: + description: Specifies the version of a cache engine. It is mandatory + when the engine is Redis, the value can be 3.0, 4.0, 5.0 or + 6.0. Changing this creates a new instance. + type: string + flavor: + description: 'The flavor of the cache instance, which including + the total memory, available memory, maximum number of connections + allowed, maximum/assured bandwidth and reference performance. + It also includes the modes of Redis instances. You can query + the flavor as follows:' + type: string + id: + description: A resource ID in UUID format. + type: string + launchedAt: + description: Indicates the time when the instance is started, + in RFC3339 format. + type: string + maintainBegin: + description: Time at which the maintenance time window starts. + Defaults to 02:00:00. + type: string + maintainEnd: + description: Time at which the maintenance time window ends. Defaults + to 06:00:00. + type: string + maxMemory: + description: 'Total memory size. Unit: MB.' + type: number + name: + description: Specifies the name of an instance. The name must + be 4 to 64 characters and start with a letter. Only chinese, + letters (case-insensitive), digits, underscores (_) ,and hyphens + (-) are allowed. + type: string + parameters: + description: Specify an array of one or more parameters to be + set to the DCS instance after launched. You can check on console + to see which parameters supported. The parameters structure + is documented below. + items: + properties: + id: + description: Specifies the ID of the configuration item. + type: string + name: + description: Specifies the name of the configuration item. + type: string + value: + description: Specifies the value of the configuration item. + type: string + type: object + type: array + port: + description: Port customization, which is supported only by Redis + 4.0 and Redis 5.0 instances. Redis instance defaults to 6379. + Memcached instance does not use this argument. + type: number + privateIp: + description: The IP address of the DCS instance, which can only + be the currently available IP address the selected subnet. You + can specify an available IP for the Redis instance (except for + the Redis Cluster type). If omitted, the system will automatically + allocate an available IP address to the Redis instance. Changing + this creates a new instance resource. + type: string + productType: + description: 'Indicates the product type of the instance. The + value can be: generic or enterprise.' + type: string + readonlyDomainName: + description: Indicates the read-only domain name of the instance. + This parameter is available only for master/standby instances. + type: string + region: + description: Indicates the region in which DCS instance resource + is created. + type: string + renameCommands: + additionalProperties: + type: string + description: 'Critical command renaming, which is supported only + by Redis 4.0 and Redis 5.0 instances but not by Redis 3.0 instance. + The valid commands that can be renamed are: command, keys, flushdb, + flushall and hgetall.' + type: object + replicaCount: + description: Indicates the number of replicas in the instance. + type: number + reservedIps: + description: Specifies IP addresses to retain. Mandatory during + cluster scale-in. If this parameter is not set, the system randomly + deletes unnecessary shards. + items: + type: string + type: array + securityGroupId: + description: The ID of the security group which the instance belongs + to. This parameter is mandatory for Memcached and Redis 3.0 + version. + type: string + securityGroupName: + description: The name of security group which the instance belongs + to. + type: string + shardingCount: + description: Indicates the number of shards in a cluster instance. + type: number + sslEnable: + description: 'Specifies whether to enable the SSL. Value options: + true, false.' + type: boolean + status: + description: 'Cache instance status. The valid values are as follows:' + type: string + subnetCidr: + description: Indicates the subnet segment. + type: string + subnetId: + description: The ID of subnet which the instance belongs to. Changing + this creates a new instance resource. + type: string + subnetName: + description: The name of subnet which the instance belongs to. + type: string + tags: + additionalProperties: + type: string + description: The key/value pairs to associate with the dcs instance. + type: object + templateId: + description: The Parameter Template ID. Changing this creates + a new instance resource. + type: string + transparentClientIpEnable: + description: Indicates whether client IP pass-through is enabled. + type: boolean + usedMemory: + description: 'Size of the used memory. Unit: MB.' + type: number + userId: + description: A resource ID in UUID format. + type: string + userName: + description: Specifies the name of an instance. The name must + be 4 to 64 characters and start with a letter. Only chinese, + letters (case-insensitive), digits, underscores (_) ,and hyphens + (-) are allowed. + type: string + vpcId: + description: The ID of VPC which the instance belongs to. Changing + this creates a new instance resource. + type: string + vpcName: + description: The name of VPC which the instance belongs to. + type: string + whitelist: + description: Specifies the IP addresses which can access the instance. + This parameter is valid for Redis 4.0 and 5.0 versions. The + structure is described below. + items: + properties: + groupName: + description: Specifies the name of IP address group. + type: string + ipList: + description: Specifies the list of IP address or CIDR which + can be whitelisted for an instance. The maximum is 20. + items: + type: string + type: array + type: object + type: array + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/dds.crossplane.io_instancev3s.yaml b/package/crds/dds.crossplane.io_instancev3s.yaml new file mode 100644 index 0000000..de09198 --- /dev/null +++ b/package/crds/dds.crossplane.io_instancev3s.yaml @@ -0,0 +1,715 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: instancev3s.dds.crossplane.io +spec: + group: dds.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: InstanceV3 + listKind: InstanceV3List + plural: instancev3s + singular: instancev3 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: InstanceV3 is the Schema for the InstanceV3s API. Manages a DDS + Instance 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: InstanceV3Spec defines the desired state of InstanceV3 + 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: + availabilityZone: + description: Specifies the ID of the availability zone. Changing + this creates a new instance. + type: string + backupStrategy: + description: Specifies the advanced backup policy. The structure + is described below. Changing this creates a new instance. + items: + properties: + keepDays: + description: Specifies the number of days to retain the + generated backup files. The value range is from 0 to 732. + type: number + startTime: + description: Specifies the backup time window. Automated + backups will be triggered during the backup time window. + The value cannot be empty. It must be a valid value in + the "hh:mm-HH:MM" format. The current time is in the UTC + format. + type: string + type: object + type: array + datastore: + description: Specifies database information. The structure is + described below. Changing this creates a new instance. + items: + properties: + storageEngine: + description: Specifies the storage engine. Currently, DDS + supports the WiredTiger and RocksDB storage engine. The + values are wiredTiger, rocksDB. WiredTiger engine supports + versions 3.2, 3.4, 4.0 while RocksDB supports versions + 4.2, 4.4 + type: string + type: + description: Specifies the database type. DDS Community + Edition is supported. The value is DDS-Community. + type: string + version: + description: Specifies the database version. The values + are 3.2, 3.4, 4.0, 4.2, 4.4. + type: string + type: object + type: array + diskEncryptionId: + description: Specifies the disk encryption ID of the instance. + Changing this creates a new instance. + type: string + flavor: + description: Specifies the flavors information. The structure + is described below. Changing this creates a new instance. + items: + properties: + num: + description: 'Specifies the node quantity. Valid value:' + type: number + size: + description: Specifies the disk size. The value must be + a multiple of 10. The unit is GB. + type: number + specCode: + description: Specifies the resource specification code. + type: string + storage: + description: 'Specifies the disk type. Valid value: ULTRAHIGH + which indicates the type SSD.' + type: string + type: + description: 'Specifies the node type. Valid value:' + type: string + type: object + type: array + mode: + description: Specifies the mode of the database instance. Changing + this creates a new instance. + type: string + name: + description: Specifies the DB instance name. The DB instance name + of the same type is unique in the same tenant. + type: string + passwordSecretRef: + description: Specifies the Administrator password of the database + instance. + properties: + key: + description: The key to select. + type: string + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - key + - name + - namespace + type: object + region: + description: Specifies the region of the DDS instance. Changing + this creates a new instance. + type: string + securityGroupId: + description: Specifies the security group ID of the DDS instance. + type: string + ssl: + description: Specifies whether to enable or disable SSL. Defaults + to true. -> The instance will be restarted in the background + when switching SSL. Please operate with caution. + type: boolean + subnetId: + description: Specifies the subnet Network ID. Changing this creates + a new instance. + type: string + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the volume. + Changing this updates the existing volume tags. + type: object + vpcId: + description: Specifies the VPC ID. Changing this creates a new + instance. + 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: + availabilityZone: + description: Specifies the ID of the availability zone. Changing + this creates a new instance. + type: string + backupStrategy: + description: Specifies the advanced backup policy. The structure + is described below. Changing this creates a new instance. + items: + properties: + keepDays: + description: Specifies the number of days to retain the + generated backup files. The value range is from 0 to 732. + type: number + startTime: + description: Specifies the backup time window. Automated + backups will be triggered during the backup time window. + The value cannot be empty. It must be a valid value in + the "hh:mm-HH:MM" format. The current time is in the UTC + format. + type: string + type: object + type: array + datastore: + description: Specifies database information. The structure is + described below. Changing this creates a new instance. + items: + properties: + storageEngine: + description: Specifies the storage engine. Currently, DDS + supports the WiredTiger and RocksDB storage engine. The + values are wiredTiger, rocksDB. WiredTiger engine supports + versions 3.2, 3.4, 4.0 while RocksDB supports versions + 4.2, 4.4 + type: string + type: + description: Specifies the database type. DDS Community + Edition is supported. The value is DDS-Community. + type: string + version: + description: Specifies the database version. The values + are 3.2, 3.4, 4.0, 4.2, 4.4. + type: string + type: object + type: array + diskEncryptionId: + description: Specifies the disk encryption ID of the instance. + Changing this creates a new instance. + type: string + flavor: + description: Specifies the flavors information. The structure + is described below. Changing this creates a new instance. + items: + properties: + num: + description: 'Specifies the node quantity. Valid value:' + type: number + size: + description: Specifies the disk size. The value must be + a multiple of 10. The unit is GB. + type: number + specCode: + description: Specifies the resource specification code. + type: string + storage: + description: 'Specifies the disk type. Valid value: ULTRAHIGH + which indicates the type SSD.' + type: string + type: + description: 'Specifies the node type. Valid value:' + type: string + type: object + type: array + mode: + description: Specifies the mode of the database instance. Changing + this creates a new instance. + type: string + name: + description: Specifies the DB instance name. The DB instance name + of the same type is unique in the same tenant. + type: string + region: + description: Specifies the region of the DDS instance. Changing + this creates a new instance. + type: string + securityGroupId: + description: Specifies the security group ID of the DDS instance. + type: string + ssl: + description: Specifies whether to enable or disable SSL. Defaults + to true. -> The instance will be restarted in the background + when switching SSL. Please operate with caution. + type: boolean + subnetId: + description: Specifies the subnet Network ID. Changing this creates + a new instance. + type: string + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the volume. + Changing this updates the existing volume tags. + type: object + vpcId: + description: Specifies the VPC ID. Changing this creates a new + instance. + 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.availabilityZone is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.availabilityZone) + || (has(self.initProvider) && has(self.initProvider.availabilityZone))' + - message: spec.forProvider.datastore is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.datastore) + || (has(self.initProvider) && has(self.initProvider.datastore))' + - message: spec.forProvider.flavor is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.flavor) + || (has(self.initProvider) && has(self.initProvider.flavor))' + - message: spec.forProvider.mode is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.mode) + || (has(self.initProvider) && has(self.initProvider.mode))' + - message: spec.forProvider.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + - message: spec.forProvider.passwordSecretRef is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.passwordSecretRef)' + - message: spec.forProvider.securityGroupId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.securityGroupId) + || (has(self.initProvider) && has(self.initProvider.securityGroupId))' + - 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))' + - message: spec.forProvider.vpcId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.vpcId) + || (has(self.initProvider) && has(self.initProvider.vpcId))' + status: + description: InstanceV3Status defines the observed state of InstanceV3. + properties: + atProvider: + properties: + availabilityZone: + description: Specifies the ID of the availability zone. Changing + this creates a new instance. + type: string + backupStrategy: + description: Specifies the advanced backup policy. The structure + is described below. Changing this creates a new instance. + items: + properties: + keepDays: + description: Specifies the number of days to retain the + generated backup files. The value range is from 0 to 732. + type: number + startTime: + description: Specifies the backup time window. Automated + backups will be triggered during the backup time window. + The value cannot be empty. It must be a valid value in + the "hh:mm-HH:MM" format. The current time is in the UTC + format. + type: string + type: object + type: array + datastore: + description: Specifies database information. The structure is + described below. Changing this creates a new instance. + items: + properties: + storageEngine: + description: Specifies the storage engine. Currently, DDS + supports the WiredTiger and RocksDB storage engine. The + values are wiredTiger, rocksDB. WiredTiger engine supports + versions 3.2, 3.4, 4.0 while RocksDB supports versions + 4.2, 4.4 + type: string + type: + description: Specifies the database type. DDS Community + Edition is supported. The value is DDS-Community. + type: string + version: + description: Specifies the database version. The values + are 3.2, 3.4, 4.0, 4.2, 4.4. + type: string + type: object + type: array + dbUsername: + description: Indicates the DB Administator name. + type: string + diskEncryptionId: + description: Specifies the disk encryption ID of the instance. + Changing this creates a new instance. + type: string + flavor: + description: Specifies the flavors information. The structure + is described below. Changing this creates a new instance. + items: + properties: + num: + description: 'Specifies the node quantity. Valid value:' + type: number + size: + description: Specifies the disk size. The value must be + a multiple of 10. The unit is GB. + type: number + specCode: + description: Specifies the resource specification code. + type: string + storage: + description: 'Specifies the disk type. Valid value: ULTRAHIGH + which indicates the type SSD.' + type: string + type: + description: 'Specifies the node type. Valid value:' + type: string + type: object + type: array + id: + description: Indicates the node ID. + type: string + mode: + description: Specifies the mode of the database instance. Changing + this creates a new instance. + type: string + name: + description: Specifies the DB instance name. The DB instance name + of the same type is unique in the same tenant. + type: string + nodes: + description: Indicates the instance nodes information. Structure + is documented below. + items: + properties: + id: + description: Indicates the node ID. + type: string + name: + description: Indicates the node name. + type: string + privateIp: + description: Indicates the private IP address of a node. + This parameter is valid only for mongos nodes, replica + set instances. + type: string + publicIp: + description: Indicates the EIP that has been bound on a + node. This parameter is valid only for mongos nodes of + cluster instances, primary nodes and secondary nodes of + replica set instances. + type: string + role: + description: Indicates the node role. + type: string + status: + description: Indicates the node status. + type: string + type: + description: Indicates the node type. + type: string + type: object + type: array + payMode: + description: 'Indicates the billing mode. 0: indicates the pay-per-use + billing mode.' + type: string + port: + description: Indicates the database port number. The port range + is 2100 to 9500. + type: number + region: + description: Specifies the region of the DDS instance. Changing + this creates a new instance. + type: string + securityGroupId: + description: Specifies the security group ID of the DDS instance. + type: string + ssl: + description: Specifies whether to enable or disable SSL. Defaults + to true. -> The instance will be restarted in the background + when switching SSL. Please operate with caution. + type: boolean + status: + description: Indicates the the DB instance status. + type: string + subnetId: + description: Specifies the subnet Network ID. Changing this creates + a new instance. + type: string + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the volume. + Changing this updates the existing volume tags. + type: object + vpcId: + description: Specifies the VPC ID. Changing this creates a new + instance. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/deh.crossplane.io_hostv1s.yaml b/package/crds/deh.crossplane.io_hostv1s.yaml new file mode 100644 index 0000000..0eac2a6 --- /dev/null +++ b/package/crds/deh.crossplane.io_hostv1s.yaml @@ -0,0 +1,473 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: hostv1s.deh.crossplane.io +spec: + group: deh.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: HostV1 + listKind: HostV1List + plural: hostv1s + singular: hostv1 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: HostV1 is the Schema for the HostV1s API. Manages a DEH Host + 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: HostV1Spec defines the desired state of HostV1 + 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: + autoPlacement: + description: Allows a instance to be automatically placed onto + the available Dedicated Hosts. The default value is on. + type: string + availabilityZone: + description: The Availability Zone to which the Dedicated Host + belongs. Changing this parameter creates a new resource. + type: string + availableInstanceCapacities: + description: The VM flavors placed on the Dedicated Host. + items: + type: object + type: array + availableMemory: + description: The size of available memory for the Dedicated Host. + type: number + availableVcpus: + description: The number of available vCPUs for the Dedicated Host. + type: number + cores: + description: The number of host physical cores. + type: number + hostType: + description: The Dedicated Host type. Expected values are h1, + general and d1. Changing this parameter creates a new resource. + type: string + hostTypeName: + description: The name of the Dedicated Host type. + type: string + instanceTotal: + description: The number of the placed VMs. + type: number + instanceUuids: + description: The VMs started on the Dedicated Host. + items: + type: string + type: array + memory: + description: The size of host physical memory (MB). + type: number + name: + description: The name of the Dedicated Host. + type: string + region: + type: string + sockets: + description: The number of host physical sockets. + type: number + status: + description: Specifies the Dedicated Host status. + type: string + vcpus: + description: The number of host vCPUs. + 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: + autoPlacement: + description: Allows a instance to be automatically placed onto + the available Dedicated Hosts. The default value is on. + type: string + availabilityZone: + description: The Availability Zone to which the Dedicated Host + belongs. Changing this parameter creates a new resource. + type: string + availableInstanceCapacities: + description: The VM flavors placed on the Dedicated Host. + items: + type: object + type: array + availableMemory: + description: The size of available memory for the Dedicated Host. + type: number + availableVcpus: + description: The number of available vCPUs for the Dedicated Host. + type: number + cores: + description: The number of host physical cores. + type: number + hostType: + description: The Dedicated Host type. Expected values are h1, + general and d1. Changing this parameter creates a new resource. + type: string + hostTypeName: + description: The name of the Dedicated Host type. + type: string + instanceTotal: + description: The number of the placed VMs. + type: number + instanceUuids: + description: The VMs started on the Dedicated Host. + items: + type: string + type: array + memory: + description: The size of host physical memory (MB). + type: number + name: + description: The name of the Dedicated Host. + type: string + region: + type: string + sockets: + description: The number of host physical sockets. + type: number + status: + description: Specifies the Dedicated Host status. + type: string + vcpus: + description: The number of host vCPUs. + 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.availabilityZone is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.availabilityZone) + || (has(self.initProvider) && has(self.initProvider.availabilityZone))' + - message: spec.forProvider.hostType is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.hostType) + || (has(self.initProvider) && has(self.initProvider.hostType))' + - message: spec.forProvider.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + status: + description: HostV1Status defines the observed state of HostV1. + properties: + atProvider: + properties: + autoPlacement: + description: Allows a instance to be automatically placed onto + the available Dedicated Hosts. The default value is on. + type: string + availabilityZone: + description: The Availability Zone to which the Dedicated Host + belongs. Changing this parameter creates a new resource. + type: string + availableInstanceCapacities: + description: The VM flavors placed on the Dedicated Host. + items: + properties: + flavor: + type: string + type: object + type: array + availableMemory: + description: The size of available memory for the Dedicated Host. + type: number + availableVcpus: + description: The number of available vCPUs for the Dedicated Host. + type: number + cores: + description: The number of host physical cores. + type: number + hostType: + description: The Dedicated Host type. Expected values are h1, + general and d1. Changing this parameter creates a new resource. + type: string + hostTypeName: + description: The name of the Dedicated Host type. + type: string + id: + type: string + instanceTotal: + description: The number of the placed VMs. + type: number + instanceUuids: + description: The VMs started on the Dedicated Host. + items: + type: string + type: array + memory: + description: The size of host physical memory (MB). + type: number + name: + description: The name of the Dedicated Host. + type: string + region: + type: string + sockets: + description: The number of host physical sockets. + type: number + status: + description: Specifies the Dedicated Host status. + type: string + vcpus: + description: The number of host vCPUs. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/dis.crossplane.io_appv2s.yaml b/package/crds/dis.crossplane.io_appv2s.yaml new file mode 100644 index 0000000..336a18e --- /dev/null +++ b/package/crds/dis.crossplane.io_appv2s.yaml @@ -0,0 +1,348 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: appv2s.dis.crossplane.io +spec: + group: dis.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: AppV2 + listKind: AppV2List + plural: appv2s + singular: appv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: AppV2 is the Schema for the AppV2s API. Manages a DIS App 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: AppV2Spec defines the desired state of AppV2 + 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: + name: + description: Name of the consumer application to be created The + application name contains 1 to 200 characters. Only letters, + digits, hyphens (-), and underscores (_) are allowed. + 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: + name: + description: Name of the consumer application to be created The + application name contains 1 to 200 characters. Only letters, + digits, hyphens (-), and underscores (_) are allowed. + 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.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + status: + description: AppV2Status defines the observed state of AppV2. + properties: + atProvider: + properties: + commitCheckpointStreamNames: + description: List of associated streams. + items: + type: string + type: array + created: + description: Time when the app is created. The value is a timestamp. + type: number + id: + description: Unique identifier of the app. + type: string + name: + description: Name of the consumer application to be created The + application name contains 1 to 200 characters. Only letters, + digits, hyphens (-), and underscores (_) are allowed. + type: string + partitionConsumingStates: + description: Associated partitions details. + items: + properties: + checkpointType: + description: ': Type of the checkpoint.' + type: string + earliestOffset: + description: ': Partition data earliest offset' + type: number + id: + description: Unique identifier of the app. + type: string + latestOffset: + description: ': Partition data latest offset' + type: number + sequenceNumber: + description: ': Partition Sequence Number' + type: string + status: + description: ': Partition Status, can be:' + type: string + type: object + type: array + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/dis.crossplane.io_checkpointv2s.yaml b/package/crds/dis.crossplane.io_checkpointv2s.yaml new file mode 100644 index 0000000..5fb0037 --- /dev/null +++ b/package/crds/dis.crossplane.io_checkpointv2s.yaml @@ -0,0 +1,393 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: checkpointv2s.dis.crossplane.io +spec: + group: dis.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: CheckpointV2 + listKind: CheckpointV2List + plural: checkpointv2s + singular: checkpointv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: CheckpointV2 is the Schema for the CheckpointV2s API. Manages + a DIS Checkpoint 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: CheckpointV2Spec defines the desired state of CheckpointV2 + 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: + appName: + description: Name of the consumer application to be created The + application name contains 1 to 200 characters. Only letters, + digits, hyphens (-), and underscores (_) are allowed. + type: string + checkpointType: + description: 'Type of the checkpoint. LAST_READ: Only sequence + numbers are recorded in databases. Default value: LAST_READ' + type: string + metadata: + description: 'Metadata information of the consumer application. + Maximum length: 1000' + type: string + partitionId: + description: 'Partition ID of the stream The value can be in either + of the following formats:' + type: string + sequenceNumber: + description: Sequence number to be submitted, which is used to + record the consumption checkpoint of the stream. Ensure that + the sequence number is within the valid range. + type: string + streamName: + description: Name of the stream. The stream name can contain 1 + to 64 characters, including letters, digits, underscores (_), + and hyphens (-). + 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: + appName: + description: Name of the consumer application to be created The + application name contains 1 to 200 characters. Only letters, + digits, hyphens (-), and underscores (_) are allowed. + type: string + checkpointType: + description: 'Type of the checkpoint. LAST_READ: Only sequence + numbers are recorded in databases. Default value: LAST_READ' + type: string + metadata: + description: 'Metadata information of the consumer application. + Maximum length: 1000' + type: string + partitionId: + description: 'Partition ID of the stream The value can be in either + of the following formats:' + type: string + sequenceNumber: + description: Sequence number to be submitted, which is used to + record the consumption checkpoint of the stream. Ensure that + the sequence number is within the valid range. + type: string + streamName: + description: Name of the stream. The stream name can contain 1 + to 64 characters, including letters, digits, underscores (_), + and hyphens (-). + 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.appName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.appName) + || (has(self.initProvider) && has(self.initProvider.appName))' + - message: spec.forProvider.partitionId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.partitionId) + || (has(self.initProvider) && has(self.initProvider.partitionId))' + - message: spec.forProvider.sequenceNumber is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.sequenceNumber) + || (has(self.initProvider) && has(self.initProvider.sequenceNumber))' + - message: spec.forProvider.streamName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.streamName) + || (has(self.initProvider) && has(self.initProvider.streamName))' + status: + description: CheckpointV2Status defines the observed state of CheckpointV2. + properties: + atProvider: + properties: + appName: + description: Name of the consumer application to be created The + application name contains 1 to 200 characters. Only letters, + digits, hyphens (-), and underscores (_) are allowed. + type: string + checkpointType: + description: 'Type of the checkpoint. LAST_READ: Only sequence + numbers are recorded in databases. Default value: LAST_READ' + type: string + id: + type: string + metadata: + description: 'Metadata information of the consumer application. + Maximum length: 1000' + type: string + partitionId: + description: 'Partition ID of the stream The value can be in either + of the following formats:' + type: string + sequenceNumber: + description: Sequence number to be submitted, which is used to + record the consumption checkpoint of the stream. Ensure that + the sequence number is within the valid range. + type: string + streamName: + description: Name of the stream. The stream name can contain 1 + to 64 characters, including letters, digits, underscores (_), + and hyphens (-). + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/dis.crossplane.io_dumptaskv2s.yaml b/package/crds/dis.crossplane.io_dumptaskv2s.yaml new file mode 100644 index 0000000..23bbb8b --- /dev/null +++ b/package/crds/dis.crossplane.io_dumptaskv2s.yaml @@ -0,0 +1,590 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: dumptaskv2s.dis.crossplane.io +spec: + group: dis.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: DumpTaskV2 + listKind: DumpTaskV2List + plural: dumptaskv2s + singular: dumptaskv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: DumpTaskV2 is the Schema for the DumpTaskV2s API. Manages a DIS + Dump Task 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: DumpTaskV2Spec defines the desired state of DumpTaskV2 + 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: Dump task operation. The value can only be start + or stop. + type: string + destination: + description: 'Dump destination. Possible values: OBS: Data is + dumped to OBS.' + type: string + obsDestinationDescriptor: + description: Parameter list of OBS to which data in the DIS stream + will be dumped. + items: + properties: + agencyName: + description: 'Name of the agency created on IAM. DIS uses + an agency to access your specified resources. The parameters + for creating an agency are as follows:' + type: string + consumerStrategy: + description: 'Offset. LATEST: Maximum offset, indicating + that the latest data will be extracted. TRIM_HORIZON: + Minimum offset, indicating that the earliest data will + be extracted.' + type: string + deliverTimeInterval: + description: 'User-defined interval at which data is imported + from the current DIS stream into OBS. If no data is pushed + to the DIS stream during the current interval, no dump + file package will be generated. Value range: 30-900.' + type: number + destinationFileType: + description: 'Dump file format. Possible values: text' + type: string + filePrefix: + description: Directory to store files that will be dumped + to OBS. Different directory levels are separated by slashes + (/) and cannot start with slashes. + type: string + obsBucketPath: + description: Name of the OBS bucket used to store data from + the DIS stream. + type: string + partitionFormat: + description: 'Directory structure of the object file written + into OBS. The directory structure is in the format of + yyyy/MM/dd/HH/mm (time at which the dump task was created). + Possible values:' + type: string + recordDelimiter: + description: Delimiter for the dump file, which is used + to separate the user data that is written into the dump + file. + type: string + taskName: + description: Name of the dump task. The task name consists + of letters, digits, hyphens (-), and underscores (_). + It must be a string of 1 to 64 characters. + type: string + type: object + type: array + obsProcessingSchema: + description: Dump time directory generated based on the timestamp + of the source data and the configured partition_format. Directory + structure of the object file written into OBS. The directory + structure is in the format of yyyy/MM/dd/HH/mm. + items: + properties: + timestampFormat: + description: OBS directory generated based on the timestamp + format. This parameter is mandatory when the timestamp + type of the source data is String. + type: string + timestampName: + description: Attribute name of the source data timestamp. + type: string + timestampType: + description: 'Type of the source data timestamp. Possible + values:' + type: string + type: object + type: array + streamName: + description: Name of the stream. + 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: Dump task operation. The value can only be start + or stop. + type: string + destination: + description: 'Dump destination. Possible values: OBS: Data is + dumped to OBS.' + type: string + obsDestinationDescriptor: + description: Parameter list of OBS to which data in the DIS stream + will be dumped. + items: + properties: + agencyName: + description: 'Name of the agency created on IAM. DIS uses + an agency to access your specified resources. The parameters + for creating an agency are as follows:' + type: string + consumerStrategy: + description: 'Offset. LATEST: Maximum offset, indicating + that the latest data will be extracted. TRIM_HORIZON: + Minimum offset, indicating that the earliest data will + be extracted.' + type: string + deliverTimeInterval: + description: 'User-defined interval at which data is imported + from the current DIS stream into OBS. If no data is pushed + to the DIS stream during the current interval, no dump + file package will be generated. Value range: 30-900.' + type: number + destinationFileType: + description: 'Dump file format. Possible values: text' + type: string + filePrefix: + description: Directory to store files that will be dumped + to OBS. Different directory levels are separated by slashes + (/) and cannot start with slashes. + type: string + obsBucketPath: + description: Name of the OBS bucket used to store data from + the DIS stream. + type: string + partitionFormat: + description: 'Directory structure of the object file written + into OBS. The directory structure is in the format of + yyyy/MM/dd/HH/mm (time at which the dump task was created). + Possible values:' + type: string + recordDelimiter: + description: Delimiter for the dump file, which is used + to separate the user data that is written into the dump + file. + type: string + taskName: + description: Name of the dump task. The task name consists + of letters, digits, hyphens (-), and underscores (_). + It must be a string of 1 to 64 characters. + type: string + type: object + type: array + obsProcessingSchema: + description: Dump time directory generated based on the timestamp + of the source data and the configured partition_format. Directory + structure of the object file written into OBS. The directory + structure is in the format of yyyy/MM/dd/HH/mm. + items: + properties: + timestampFormat: + description: OBS directory generated based on the timestamp + format. This parameter is mandatory when the timestamp + type of the source data is String. + type: string + timestampName: + description: Attribute name of the source data timestamp. + type: string + timestampType: + description: 'Type of the source data timestamp. Possible + values:' + type: string + type: object + type: array + streamName: + description: Name of the stream. + 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.streamName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.streamName) + || (has(self.initProvider) && has(self.initProvider.streamName))' + status: + description: DumpTaskV2Status defines the observed state of DumpTaskV2. + properties: + atProvider: + properties: + action: + description: Dump task operation. The value can only be start + or stop. + type: string + createdAt: + description: Time when the dump task is created. + type: number + destination: + description: 'Dump destination. Possible values: OBS: Data is + dumped to OBS.' + type: string + id: + description: ': Unique identifier of the partition.' + type: string + lastTransferTimestamp: + description: Latest dump time of the dump task. + type: number + name: + description: Name of the dump task. + type: string + obsDestinationDescriptor: + description: Parameter list of OBS to which data in the DIS stream + will be dumped. + items: + properties: + agencyName: + description: 'Name of the agency created on IAM. DIS uses + an agency to access your specified resources. The parameters + for creating an agency are as follows:' + type: string + consumerStrategy: + description: 'Offset. LATEST: Maximum offset, indicating + that the latest data will be extracted. TRIM_HORIZON: + Minimum offset, indicating that the earliest data will + be extracted.' + type: string + deliverTimeInterval: + description: 'User-defined interval at which data is imported + from the current DIS stream into OBS. If no data is pushed + to the DIS stream during the current interval, no dump + file package will be generated. Value range: 30-900.' + type: number + destinationFileType: + description: 'Dump file format. Possible values: text' + type: string + filePrefix: + description: Directory to store files that will be dumped + to OBS. Different directory levels are separated by slashes + (/) and cannot start with slashes. + type: string + obsBucketPath: + description: Name of the OBS bucket used to store data from + the DIS stream. + type: string + partitionFormat: + description: 'Directory structure of the object file written + into OBS. The directory structure is in the format of + yyyy/MM/dd/HH/mm (time at which the dump task was created). + Possible values:' + type: string + recordDelimiter: + description: Delimiter for the dump file, which is used + to separate the user data that is written into the dump + file. + type: string + taskName: + description: Name of the dump task. The task name consists + of letters, digits, hyphens (-), and underscores (_). + It must be a string of 1 to 64 characters. + type: string + type: object + type: array + obsProcessingSchema: + description: Dump time directory generated based on the timestamp + of the source data and the configured partition_format. Directory + structure of the object file written into OBS. The directory + structure is in the format of yyyy/MM/dd/HH/mm. + items: + properties: + timestampFormat: + description: OBS directory generated based on the timestamp + format. This parameter is mandatory when the timestamp + type of the source data is String. + type: string + timestampName: + description: Attribute name of the source data timestamp. + type: string + timestampType: + description: 'Type of the source data timestamp. Possible + values:' + type: string + type: object + type: array + partitions: + description: List of partition dump details. + items: + properties: + hashRange: + description: ': Possible value range of the hash key used + by the partition.' + type: string + id: + description: ': Unique identifier of the partition.' + type: string + parentPartitions: + description: ': Parent partition.' + type: string + sequenceNumberRange: + description: ': Sequence number range of the partition.' + type: string + status: + description: 'Current status of the stream, can be:' + type: string + type: object + type: array + status: + description: 'Current status of the stream, can be:' + type: string + streamName: + description: Name of the stream. + type: string + taskId: + description: ID of the dump task. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/dis.crossplane.io_streamv2s.yaml b/package/crds/dis.crossplane.io_streamv2s.yaml new file mode 100644 index 0000000..884e994 --- /dev/null +++ b/package/crds/dis.crossplane.io_streamv2s.yaml @@ -0,0 +1,464 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: streamv2s.dis.crossplane.io +spec: + group: dis.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: StreamV2 + listKind: StreamV2List + plural: streamv2s + singular: streamv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: StreamV2 is the Schema for the StreamV2s API. Manages a DIS Stream + 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: StreamV2Spec defines the desired state of StreamV2 + 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: + autoScaleMaxPartitionCount: + description: Maximum number of partitions for automatic scale-up + when auto-scaling is enabled. + type: number + autoScaleMinPartitionCount: + description: 'Minimum number of partitions for automatic scale-down + when auto-scaling is enabled. Minimum: 1.' + type: number + compressionFormat: + description: 'Data compression type. The following types are available: + snappy, gzip, zip. Data is not compressed by default.' + type: string + dataType: + description: 'Source data type. BLOB: a collection of binary data + stored as a single entity in a database management system. Default + value: BLOB.' + type: string + name: + description: Name of the stream. The stream name can contain 1 + to 64 characters, including letters, digits, underscores (_), + and hyphens (-). + type: string + partitionCount: + description: Number of partitions. Partitions are the base throughput + unit of a DIS stream. + type: number + retentionPeriod: + description: 'Period of time for which data is retained in the + stream. Value range: 24-72 Unit: hour. If this parameter is + left blank, the default value is used. Maximum: 72 Default: + 24' + type: number + streamType: + description: Stream type. + type: string + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the instance. + type: object + 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: + autoScaleMaxPartitionCount: + description: Maximum number of partitions for automatic scale-up + when auto-scaling is enabled. + type: number + autoScaleMinPartitionCount: + description: 'Minimum number of partitions for automatic scale-down + when auto-scaling is enabled. Minimum: 1.' + type: number + compressionFormat: + description: 'Data compression type. The following types are available: + snappy, gzip, zip. Data is not compressed by default.' + type: string + dataType: + description: 'Source data type. BLOB: a collection of binary data + stored as a single entity in a database management system. Default + value: BLOB.' + type: string + name: + description: Name of the stream. The stream name can contain 1 + to 64 characters, including letters, digits, underscores (_), + and hyphens (-). + type: string + partitionCount: + description: Number of partitions. Partitions are the base throughput + unit of a DIS stream. + type: number + retentionPeriod: + description: 'Period of time for which data is retained in the + stream. Value range: 24-72 Unit: hour. If this parameter is + left blank, the default value is used. Maximum: 72 Default: + 24' + type: number + streamType: + description: Stream type. + type: string + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the instance. + type: object + 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.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + - message: spec.forProvider.partitionCount is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.partitionCount) + || (has(self.initProvider) && has(self.initProvider.partitionCount))' + status: + description: StreamV2Status defines the observed state of StreamV2. + properties: + atProvider: + properties: + autoScaleMaxPartitionCount: + description: Maximum number of partitions for automatic scale-up + when auto-scaling is enabled. + type: number + autoScaleMinPartitionCount: + description: 'Minimum number of partitions for automatic scale-down + when auto-scaling is enabled. Minimum: 1.' + type: number + compressionFormat: + description: 'Data compression type. The following types are available: + snappy, gzip, zip. Data is not compressed by default.' + type: string + created: + description: Time when the stream is created. The value is a timestamp. + type: number + dataType: + description: 'Source data type. BLOB: a collection of binary data + stored as a single entity in a database management system. Default + value: BLOB.' + type: string + id: + description: ': Unique identifier of the partition.' + type: string + name: + description: Name of the stream. The stream name can contain 1 + to 64 characters, including letters, digits, underscores (_), + and hyphens (-). + type: string + partitionCount: + description: Number of partitions. Partitions are the base throughput + unit of a DIS stream. + type: number + partitions: + description: Stream partitions details. + items: + properties: + hashRange: + description: ': Possible value range of the hash key used + by the partition.' + type: string + id: + description: ': Unique identifier of the partition.' + type: string + parentPartitions: + description: ': Parent partition.' + type: string + sequenceNumberRange: + description: ': Sequence number range of the partition.' + type: string + status: + description: 'Current status of the stream, can be:' + type: string + type: object + type: array + readablePartitionCount: + description: Total number of readable partitions (including partitions + in ACTIVE and DELETED state). + type: number + retentionPeriod: + description: 'Period of time for which data is retained in the + stream. Value range: 24-72 Unit: hour. If this parameter is + left blank, the default value is used. Maximum: 72 Default: + 24' + type: number + status: + description: 'Current status of the stream, can be:' + type: string + streamId: + description: Unique identifier of the stream. + type: string + streamType: + description: Stream type. + type: string + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the instance. + type: object + writablePartitionCount: + description: Total number of writable partitions (including partitions + in ACTIVE state only). + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/dms.crossplane.io_instancev1s.yaml b/package/crds/dms.crossplane.io_instancev1s.yaml new file mode 100644 index 0000000..0e8ee6d --- /dev/null +++ b/package/crds/dms.crossplane.io_instancev1s.yaml @@ -0,0 +1,621 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: instancev1s.dms.crossplane.io +spec: + group: dms.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: InstanceV1 + listKind: InstanceV1List + plural: instancev1s + singular: instancev1 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: InstanceV1 is the Schema for the InstanceV1s API. Manages a DMS + Instance v1 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: InstanceV1Spec defines the desired state of InstanceV1 + 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: + accessUser: + description: Indicates a username. A username consists of 4 to + 64 characters and supports only letters, digits, and hyphens + (-). + type: string + availableZones: + description: 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. + items: + type: string + type: array + description: + description: Indicates the description of an instance. It is a + character string containing not more than 1024 characters. + type: string + engine: + description: Indicates a message engine. Only kafka is supported + now. + type: string + engineVersion: + description: Indicates the version of a message engine. Only 2.3.0 + is supported now. + type: string + maintainBegin: + description: 'Indicates the time at which a maintenance time window + starts. Format: HH:mm.' + type: string + maintainEnd: + description: 'Indicates the time at which a maintenance time window + ends. Format: HH:mm.' + type: string + name: + description: Indicates the name of an instance. An instance name + starts with a letter, consists of 4 to 64 characters, and supports + only letters, digits, and hyphens (-). + type: string + partitionNum: + description: This parameter is mandatory when a kafka instance + is created. Indicates the maximum number of topics in a Kafka + instance. + type: number + passwordSecretRef: + description: 'Indicates the password of an instance. An instance + 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 (~!@#$%^&*()-_=+\|[{}]:''",<.>/?).' + properties: + key: + description: The key to select. + type: string + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - key + - name + - namespace + type: object + productId: + description: Indicates a product ID. + type: string + retentionPolicy: + description: 'Indicates the action to be taken when the memory + usage reaches the disk capacity threshold. The possible values + are:' + type: string + securityGroupId: + description: Indicates the ID of a security group. + type: string + specification: + description: 'This parameter is mandatory if the engine is kafka. + Indicates the baseline bandwidth of a Kafka instance, that is, + the maximum amount of data transferred per unit time. Unit: + byte/s. Options: 100MB, 300MB, 600MB, 1200MB.' + type: string + storageSpace: + description: 'Indicates the message storage space. Value range:' + type: number + storageSpecCode: + description: 'Indicates the storage I/O specification. Options + for a Kafka instance:' + type: string + subnetId: + description: Indicates the ID of the subnet (OpenStack network + ID). + type: string + vpcId: + description: Indicates the ID of a VPC (OpenStack router ID). + 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: + accessUser: + description: Indicates a username. A username consists of 4 to + 64 characters and supports only letters, digits, and hyphens + (-). + type: string + availableZones: + description: 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. + items: + type: string + type: array + description: + description: Indicates the description of an instance. It is a + character string containing not more than 1024 characters. + type: string + engine: + description: Indicates a message engine. Only kafka is supported + now. + type: string + engineVersion: + description: Indicates the version of a message engine. Only 2.3.0 + is supported now. + type: string + maintainBegin: + description: 'Indicates the time at which a maintenance time window + starts. Format: HH:mm.' + type: string + maintainEnd: + description: 'Indicates the time at which a maintenance time window + ends. Format: HH:mm.' + type: string + name: + description: Indicates the name of an instance. An instance name + starts with a letter, consists of 4 to 64 characters, and supports + only letters, digits, and hyphens (-). + type: string + partitionNum: + description: This parameter is mandatory when a kafka instance + is created. Indicates the maximum number of topics in a Kafka + instance. + type: number + productId: + description: Indicates a product ID. + type: string + retentionPolicy: + description: 'Indicates the action to be taken when the memory + usage reaches the disk capacity threshold. The possible values + are:' + type: string + securityGroupId: + description: Indicates the ID of a security group. + type: string + specification: + description: 'This parameter is mandatory if the engine is kafka. + Indicates the baseline bandwidth of a Kafka instance, that is, + the maximum amount of data transferred per unit time. Unit: + byte/s. Options: 100MB, 300MB, 600MB, 1200MB.' + type: string + storageSpace: + description: 'Indicates the message storage space. Value range:' + type: number + storageSpecCode: + description: 'Indicates the storage I/O specification. Options + for a Kafka instance:' + type: string + subnetId: + description: Indicates the ID of the subnet (OpenStack network + ID). + type: string + vpcId: + description: Indicates the ID of a VPC (OpenStack router ID). + 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.availableZones is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.availableZones) + || (has(self.initProvider) && has(self.initProvider.availableZones))' + - message: spec.forProvider.engine is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.engine) + || (has(self.initProvider) && has(self.initProvider.engine))' + - message: spec.forProvider.engineVersion is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.engineVersion) + || (has(self.initProvider) && has(self.initProvider.engineVersion))' + - message: spec.forProvider.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + - message: spec.forProvider.productId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.productId) + || (has(self.initProvider) && has(self.initProvider.productId))' + - message: spec.forProvider.securityGroupId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.securityGroupId) + || (has(self.initProvider) && has(self.initProvider.securityGroupId))' + - message: spec.forProvider.storageSpace is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.storageSpace) + || (has(self.initProvider) && has(self.initProvider.storageSpace))' + - message: spec.forProvider.storageSpecCode is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.storageSpecCode) + || (has(self.initProvider) && has(self.initProvider.storageSpecCode))' + - 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))' + - message: spec.forProvider.vpcId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.vpcId) + || (has(self.initProvider) && has(self.initProvider.vpcId))' + status: + description: InstanceV1Status defines the observed state of InstanceV1. + properties: + atProvider: + properties: + accessUser: + description: Indicates a username. A username consists of 4 to + 64 characters and supports only letters, digits, and hyphens + (-). + type: string + availableZones: + description: 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. + items: + type: string + type: array + connectAddress: + description: Indicates the IP address of an instance. + type: string + createdAt: + description: Indicates the time when an instance is created. The + time is in the format of timestamp, that is, the offset milliseconds + from 1970-01-01 00:00:00 UTC to the specified time. + type: string + description: + description: Indicates the description of an instance. It is a + character string containing not more than 1024 characters. + type: string + engine: + description: Indicates a message engine. Only kafka is supported + now. + type: string + engineVersion: + description: Indicates the version of a message engine. Only 2.3.0 + is supported now. + type: string + id: + type: string + maintainBegin: + description: 'Indicates the time at which a maintenance time window + starts. Format: HH:mm.' + type: string + maintainEnd: + description: 'Indicates the time at which a maintenance time window + ends. Format: HH:mm.' + type: string + name: + description: Indicates the name of an instance. An instance name + starts with a letter, consists of 4 to 64 characters, and supports + only letters, digits, and hyphens (-). + type: string + orderId: + type: string + partitionNum: + description: This parameter is mandatory when a kafka instance + is created. Indicates the maximum number of topics in a Kafka + instance. + type: number + port: + description: Indicates the port number of an instance. + type: number + productId: + description: Indicates a product ID. + type: string + resourceSpecCode: + description: Indicates a resource specifications identifier. + type: string + retentionPolicy: + description: 'Indicates the action to be taken when the memory + usage reaches the disk capacity threshold. The possible values + are:' + type: string + securityGroupId: + description: Indicates the ID of a security group. + type: string + securityGroupName: + description: Indicates the name of a security group. + type: string + specification: + description: 'This parameter is mandatory if the engine is kafka. + Indicates the baseline bandwidth of a Kafka instance, that is, + the maximum amount of data transferred per unit time. Unit: + byte/s. Options: 100MB, 300MB, 600MB, 1200MB.' + type: string + status: + description: Indicates the status of an instance. For details, + see section Instance Status. + type: string + storageSpace: + description: 'Indicates the message storage space. Value range:' + type: number + storageSpecCode: + description: 'Indicates the storage I/O specification. Options + for a Kafka instance:' + type: string + subnetId: + description: Indicates the ID of the subnet (OpenStack network + ID). + type: string + subnetName: + description: Indicates the name of a subnet. + type: string + type: + description: 'Indicates an instance type. Options: single and + cluster.' + type: string + usedStorageSpace: + description: 'Indicates the used message storage space. Unit: + GB' + type: number + userId: + description: Indicates a user ID. + type: string + userName: + description: Indicates a username. + type: string + vpcId: + description: Indicates the ID of a VPC (OpenStack router ID). + type: string + vpcName: + description: Indicates the name of an instance. An instance name + starts with a letter, consists of 4 to 64 characters, and supports + only letters, digits, and hyphens (-). + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/dms.crossplane.io_instancev2s.yaml b/package/crds/dms.crossplane.io_instancev2s.yaml new file mode 100644 index 0000000..6441acf --- /dev/null +++ b/package/crds/dms.crossplane.io_instancev2s.yaml @@ -0,0 +1,717 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: instancev2s.dms.crossplane.io +spec: + group: dms.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: InstanceV2 + listKind: InstanceV2List + plural: instancev2s + singular: instancev2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: InstanceV2 is the Schema for the InstanceV2s API. Manages a DMS + Instance v2 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: InstanceV2Spec defines the desired state of InstanceV2 + 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: + accessUser: + description: Indicates a username. A username consists of 4 to + 64 characters and supports only letters, digits, and hyphens + (-). + type: string + availableZones: + description: 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. + items: + type: string + type: array + description: + description: Indicates the description of an instance. It is a + character string containing not more than 1024 characters. + type: string + diskEncryptedEnable: + description: '- Indicates whether disk encryption is enabled.' + type: boolean + diskEncryptedKey: + description: '- Disk encryption key. If disk encryption is not + enabled, this parameter is left blank.' + type: string + enablePublicip: + description: '- Whether to enable public access. By default, public + access is disabled.' + type: boolean + engine: + description: Indicates a message engine. Only kafka is supported + now. + type: string + engineVersion: + description: 'Indicates the version of a message engine. Options: + 1.1.0, 2.3.0, 2.7.' + type: string + maintainBegin: + description: 'Indicates the time at which a maintenance time window + starts. Format: HH:mm.' + type: string + maintainEnd: + description: 'Indicates the time at which a maintenance time window + ends. Format: HH:mm.' + type: string + name: + description: Indicates the name of an instance. An instance name + starts with a letter, consists of 4 to 64 characters, and supports + only letters, digits, and hyphens (-). + type: string + partitionNum: + description: This parameter is mandatory when a kafka instance + is created. Indicates the maximum number of topics in a Kafka + instance. + type: number + passwordSecretRef: + description: 'Indicates the password of an instance. An instance + 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 (~!@#$%^&*()-_=+\|[{}]:''",<.>/?).' + properties: + key: + description: The key to select. + type: string + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - key + - name + - namespace + type: object + productId: + description: Indicates a product ID. + type: string + publicBandwidth: + type: number + publicipId: + description: '- List of public ip IDs to be bound to DMS instance + nodes.' + items: + type: string + type: array + retentionPolicy: + description: 'Indicates the action to be taken when the memory + usage reaches the disk capacity threshold. The possible values + are:' + type: string + securityGroupId: + description: Indicates the ID of a security group. + type: string + specification: + description: 'This parameter is mandatory if the engine is kafka. + Indicates the baseline bandwidth of a Kafka instance, that is, + the maximum amount of data transferred per unit time. Unit: + byte/s. Options: 100MB, 300MB, 600MB, 1200MB.' + type: string + storageSpace: + description: 'Indicates the message storage space. Value range:' + type: number + storageSpecCode: + description: 'Indicates the storage I/O specification. Options + for a Kafka instance:' + type: string + subnetId: + description: Indicates the ID of the subnet (OpenStack network + ID). + type: string + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the instance. + type: object + vpcId: + description: Indicates the ID of a VPC (OpenStack router ID). + 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: + accessUser: + description: Indicates a username. A username consists of 4 to + 64 characters and supports only letters, digits, and hyphens + (-). + type: string + availableZones: + description: 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. + items: + type: string + type: array + description: + description: Indicates the description of an instance. It is a + character string containing not more than 1024 characters. + type: string + diskEncryptedEnable: + description: '- Indicates whether disk encryption is enabled.' + type: boolean + diskEncryptedKey: + description: '- Disk encryption key. If disk encryption is not + enabled, this parameter is left blank.' + type: string + enablePublicip: + description: '- Whether to enable public access. By default, public + access is disabled.' + type: boolean + engine: + description: Indicates a message engine. Only kafka is supported + now. + type: string + engineVersion: + description: 'Indicates the version of a message engine. Options: + 1.1.0, 2.3.0, 2.7.' + type: string + maintainBegin: + description: 'Indicates the time at which a maintenance time window + starts. Format: HH:mm.' + type: string + maintainEnd: + description: 'Indicates the time at which a maintenance time window + ends. Format: HH:mm.' + type: string + name: + description: Indicates the name of an instance. An instance name + starts with a letter, consists of 4 to 64 characters, and supports + only letters, digits, and hyphens (-). + type: string + partitionNum: + description: This parameter is mandatory when a kafka instance + is created. Indicates the maximum number of topics in a Kafka + instance. + type: number + productId: + description: Indicates a product ID. + type: string + publicBandwidth: + type: number + publicipId: + description: '- List of public ip IDs to be bound to DMS instance + nodes.' + items: + type: string + type: array + retentionPolicy: + description: 'Indicates the action to be taken when the memory + usage reaches the disk capacity threshold. The possible values + are:' + type: string + securityGroupId: + description: Indicates the ID of a security group. + type: string + specification: + description: 'This parameter is mandatory if the engine is kafka. + Indicates the baseline bandwidth of a Kafka instance, that is, + the maximum amount of data transferred per unit time. Unit: + byte/s. Options: 100MB, 300MB, 600MB, 1200MB.' + type: string + storageSpace: + description: 'Indicates the message storage space. Value range:' + type: number + storageSpecCode: + description: 'Indicates the storage I/O specification. Options + for a Kafka instance:' + type: string + subnetId: + description: Indicates the ID of the subnet (OpenStack network + ID). + type: string + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the instance. + type: object + vpcId: + description: Indicates the ID of a VPC (OpenStack router ID). + 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.availableZones is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.availableZones) + || (has(self.initProvider) && has(self.initProvider.availableZones))' + - message: spec.forProvider.engine is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.engine) + || (has(self.initProvider) && has(self.initProvider.engine))' + - message: spec.forProvider.engineVersion is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.engineVersion) + || (has(self.initProvider) && has(self.initProvider.engineVersion))' + - message: spec.forProvider.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + - message: spec.forProvider.productId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.productId) + || (has(self.initProvider) && has(self.initProvider.productId))' + - message: spec.forProvider.securityGroupId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.securityGroupId) + || (has(self.initProvider) && has(self.initProvider.securityGroupId))' + - message: spec.forProvider.storageSpace is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.storageSpace) + || (has(self.initProvider) && has(self.initProvider.storageSpace))' + - message: spec.forProvider.storageSpecCode is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.storageSpecCode) + || (has(self.initProvider) && has(self.initProvider.storageSpecCode))' + - 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))' + - message: spec.forProvider.vpcId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.vpcId) + || (has(self.initProvider) && has(self.initProvider.vpcId))' + status: + description: InstanceV2Status defines the observed state of InstanceV2. + properties: + atProvider: + properties: + accessUser: + description: Indicates a username. A username consists of 4 to + 64 characters and supports only letters, digits, and hyphens + (-). + type: string + availableZones: + description: 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. + items: + type: string + type: array + connectAddress: + description: Indicates the IP address of an instance. + type: string + createdAt: + description: Indicates the time when an instance is created. The + time is in the format of timestamp, that is, the offset milliseconds + from 1970-01-01 00:00:00 UTC to the specified time. + type: string + description: + description: Indicates the description of an instance. It is a + character string containing not more than 1024 characters. + type: string + diskEncryptedEnable: + description: '- Indicates whether disk encryption is enabled.' + type: boolean + diskEncryptedKey: + description: '- Disk encryption key. If disk encryption is not + enabled, this parameter is left blank.' + type: string + enablePublicip: + description: '- Whether to enable public access. By default, public + access is disabled.' + type: boolean + engine: + description: Indicates a message engine. Only kafka is supported + now. + type: string + engineVersion: + description: 'Indicates the version of a message engine. Options: + 1.1.0, 2.3.0, 2.7.' + type: string + id: + type: string + maintainBegin: + description: 'Indicates the time at which a maintenance time window + starts. Format: HH:mm.' + type: string + maintainEnd: + description: 'Indicates the time at which a maintenance time window + ends. Format: HH:mm.' + type: string + name: + description: Indicates the name of an instance. An instance name + starts with a letter, consists of 4 to 64 characters, and supports + only letters, digits, and hyphens (-). + type: string + nodeNum: + description: Node quantity. + type: number + partitionNum: + description: This parameter is mandatory when a kafka instance + is created. Indicates the maximum number of topics in a Kafka + instance. + type: number + port: + description: Indicates the port number of an instance. + type: number + productId: + description: Indicates a product ID. + type: string + publicAccessEnabled: + description: Time when public access was enabled for an instance. + The value can be true, actived, closed, or false. + type: string + publicBandwidth: + type: number + publicConnectAddress: + description: Instance public access address. This parameter is + available only when public access is enabled for the instance. + items: + type: string + type: array + publicipId: + description: '- List of public ip IDs to be bound to DMS instance + nodes.' + items: + type: string + type: array + resourceSpecCode: + description: Indicates a resource specifications identifier. + type: string + retentionPolicy: + description: 'Indicates the action to be taken when the memory + usage reaches the disk capacity threshold. The possible values + are:' + type: string + securityGroupId: + description: Indicates the ID of a security group. + type: string + securityGroupName: + description: Indicates the name of a security group. + type: string + specification: + description: 'This parameter is mandatory if the engine is kafka. + Indicates the baseline bandwidth of a Kafka instance, that is, + the maximum amount of data transferred per unit time. Unit: + byte/s. Options: 100MB, 300MB, 600MB, 1200MB.' + type: string + sslEnable: + description: 'Indicates whether security authentication is enabled. + Possible values: true, false.' + type: boolean + status: + description: Indicates the status of an instance. For details, + see section Instance Status. + type: string + storageResourceId: + description: Storage resource ID. + type: string + storageSpace: + description: 'Indicates the message storage space. Value range:' + type: number + storageSpecCode: + description: 'Indicates the storage I/O specification. Options + for a Kafka instance:' + type: string + subnetCidr: + description: Indicates a subnet segment. + type: string + subnetId: + description: Indicates the ID of the subnet (OpenStack network + ID). + type: string + subnetName: + description: Indicates the name of a subnet. + type: string + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the instance. + type: object + totalStorageSpace: + description: Total message storage space in GB. + type: number + type: + description: 'Indicates an instance type. Options: single and + cluster.' + type: string + usedStorageSpace: + description: 'Indicates the used message storage space. Unit: + GB' + type: number + userId: + description: Indicates a user ID. + type: string + userName: + description: Indicates a username. + type: string + vpcId: + description: Indicates the ID of a VPC (OpenStack router ID). + type: string + vpcName: + description: Indicates the name of an instance. An instance name + starts with a letter, consists of 4 to 64 characters, and supports + only letters, digits, and hyphens (-). + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/dms.crossplane.io_topicv1s.yaml b/package/crds/dms.crossplane.io_topicv1s.yaml new file mode 100644 index 0000000..c77fa43 --- /dev/null +++ b/package/crds/dms.crossplane.io_topicv1s.yaml @@ -0,0 +1,424 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: topicv1s.dms.crossplane.io +spec: + group: dms.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: TopicV1 + listKind: TopicV1List + plural: topicv1s + singular: topicv1 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: TopicV1 is the Schema for the TopicV1s API. Manages a DMS Topic + 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: TopicV1Spec defines the desired state of TopicV1 + 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: + instanceId: + description: Indicates the ID of primary DMS instance. + type: string + maxPartitions: + description: Total partitions number. + type: number + name: + description: Indicates the name of a topic. + type: string + partition: + description: 'Indicates the number of topic partitions, which + is used to set the number of concurrently consumed messages. + Value range: 1–20. Default value: 3.' + type: number + remainPartitions: + description: Number of remaining partitions. + type: number + replication: + description: 'Indicates the number of replicas, which is configured + to ensure data reliability. Value range: 1–3. Default value: + 3.' + type: number + retentionTime: + description: 'Indicates the retention period of a message. Its + default value is 72. Value range: 1–720. Default value: 72. + Unit: hour.' + type: number + size: + description: The partition size of the topic. + type: number + syncMessageFlush: + description: 'Indicates whether to enable synchronous flushing. + Default value: false. Synchronous flushing compromises performance.' + type: boolean + syncReplication: + description: Indicates whether to enable synchronous replication. + After this function is enabled, the acks parameter on the producer + client must be set to –1. Otherwise, this parameter does not + take effect. + 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: + instanceId: + description: Indicates the ID of primary DMS instance. + type: string + maxPartitions: + description: Total partitions number. + type: number + name: + description: Indicates the name of a topic. + type: string + partition: + description: 'Indicates the number of topic partitions, which + is used to set the number of concurrently consumed messages. + Value range: 1–20. Default value: 3.' + type: number + remainPartitions: + description: Number of remaining partitions. + type: number + replication: + description: 'Indicates the number of replicas, which is configured + to ensure data reliability. Value range: 1–3. Default value: + 3.' + type: number + retentionTime: + description: 'Indicates the retention period of a message. Its + default value is 72. Value range: 1–720. Default value: 72. + Unit: hour.' + type: number + size: + description: The partition size of the topic. + type: number + syncMessageFlush: + description: 'Indicates whether to enable synchronous flushing. + Default value: false. Synchronous flushing compromises performance.' + type: boolean + syncReplication: + description: Indicates whether to enable synchronous replication. + After this function is enabled, the acks parameter on the producer + client must be set to –1. Otherwise, this parameter does not + take effect. + 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.instanceId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.instanceId) + || (has(self.initProvider) && has(self.initProvider.instanceId))' + - message: spec.forProvider.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + status: + description: TopicV1Status defines the observed state of TopicV1. + properties: + atProvider: + properties: + id: + type: string + instanceId: + description: Indicates the ID of primary DMS instance. + type: string + maxPartitions: + description: Total partitions number. + type: number + name: + description: Indicates the name of a topic. + type: string + partition: + description: 'Indicates the number of topic partitions, which + is used to set the number of concurrently consumed messages. + Value range: 1–20. Default value: 3.' + type: number + remainPartitions: + description: Number of remaining partitions. + type: number + replication: + description: 'Indicates the number of replicas, which is configured + to ensure data reliability. Value range: 1–3. Default value: + 3.' + type: number + retentionTime: + description: 'Indicates the retention period of a message. Its + default value is 72. Value range: 1–720. Default value: 72. + Unit: hour.' + type: number + size: + description: The partition size of the topic. + type: number + syncMessageFlush: + description: 'Indicates whether to enable synchronous flushing. + Default value: false. Synchronous flushing compromises performance.' + type: boolean + syncReplication: + description: Indicates whether to enable synchronous replication. + After this function is enabled, the acks parameter on the producer + client must be set to –1. Otherwise, this parameter does not + take effect. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/dms.crossplane.io_userpermissionv1s.yaml b/package/crds/dms.crossplane.io_userpermissionv1s.yaml new file mode 100644 index 0000000..4e75b5d --- /dev/null +++ b/package/crds/dms.crossplane.io_userpermissionv1s.yaml @@ -0,0 +1,373 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: userpermissionv1s.dms.crossplane.io +spec: + group: dms.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: UserPermissionV1 + listKind: UserPermissionV1List + plural: userpermissionv1s + singular: userpermissionv1 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: UserPermissionV1 is the Schema for the UserPermissionV1s API. + Manages a DMS User Permissions 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: UserPermissionV1Spec defines the desired state of UserPermissionV1 + 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: + instanceId: + description: Indicates the ID of primary DMS instance. + type: string + policies: + description: 'Indicates policy configuration for the topic. Supported + fields:' + items: + properties: + accessPolicy: + description: 'Permission type. Possible values:' + type: string + username: + description: DMS instance user name. + type: string + type: object + type: array + topicName: + description: Indicates the name of a topic. + 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: + instanceId: + description: Indicates the ID of primary DMS instance. + type: string + policies: + description: 'Indicates policy configuration for the topic. Supported + fields:' + items: + properties: + accessPolicy: + description: 'Permission type. Possible values:' + type: string + username: + description: DMS instance user name. + type: string + type: object + type: array + topicName: + description: Indicates the name of a topic. + 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.instanceId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.instanceId) + || (has(self.initProvider) && has(self.initProvider.instanceId))' + - message: spec.forProvider.policies is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.policies) + || (has(self.initProvider) && has(self.initProvider.policies))' + - message: spec.forProvider.topicName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.topicName) + || (has(self.initProvider) && has(self.initProvider.topicName))' + status: + description: UserPermissionV1Status defines the observed state of UserPermissionV1. + properties: + atProvider: + properties: + id: + type: string + instanceId: + description: Indicates the ID of primary DMS instance. + type: string + policies: + description: 'Indicates policy configuration for the topic. Supported + fields:' + items: + properties: + accessPolicy: + description: 'Permission type. Possible values:' + type: string + owner: + description: Indicates whether the user is the one selected + during topic creation. + type: boolean + username: + description: DMS instance user name. + type: string + type: object + type: array + topicName: + description: Indicates the name of a topic. + type: string + topicType: + description: 'Indicates topic type. 0: common topic; 1: system + (internal) topic.' + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/dms.crossplane.io_userv2s.yaml b/package/crds/dms.crossplane.io_userv2s.yaml new file mode 100644 index 0000000..b434ed2 --- /dev/null +++ b/package/crds/dms.crossplane.io_userv2s.yaml @@ -0,0 +1,361 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: userv2s.dms.crossplane.io +spec: + group: dms.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: UserV2 + listKind: UserV2List + plural: userv2s + singular: userv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: UserV2 is the Schema for the UserV2s API. Manages a DMS User + 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: UserV2Spec defines the desired state of UserV2 + 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: + instanceId: + description: Indicates the ID of primary DMS instance. + type: string + passwordSecretRef: + description: 'Indicates the password of an instance. An instance + 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 (~!@#$%^&*()-_=+\|[{}]:''",<.>/?).' + properties: + key: + description: The key to select. + type: string + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - key + - name + - namespace + type: object + username: + description: Indicates a username. A username consists of 4 to + 64 characters and supports only letters, digits, and hyphens + (-). + 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: + instanceId: + description: Indicates the ID of primary DMS instance. + type: string + username: + description: Indicates a username. A username consists of 4 to + 64 characters and supports only letters, digits, and hyphens + (-). + 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.instanceId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.instanceId) + || (has(self.initProvider) && has(self.initProvider.instanceId))' + - message: spec.forProvider.passwordSecretRef is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.passwordSecretRef)' + - message: spec.forProvider.username is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.username) + || (has(self.initProvider) && has(self.initProvider.username))' + status: + description: UserV2Status defines the observed state of UserV2. + properties: + atProvider: + properties: + creationTime: + description: Specifies the time when a user was created. + type: number + defaultApp: + description: Specifies whether an application is the default application. + type: boolean + id: + type: string + instanceId: + description: Indicates the ID of primary DMS instance. + type: string + role: + description: Specifies user role. + type: string + username: + description: Indicates a username. A username consists of 4 to + 64 characters and supports only letters, digits, and hyphens + (-). + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/dns.crossplane.io_ptrrecordv2s.yaml b/package/crds/dns.crossplane.io_ptrrecordv2s.yaml new file mode 100644 index 0000000..ec383bc --- /dev/null +++ b/package/crds/dns.crossplane.io_ptrrecordv2s.yaml @@ -0,0 +1,369 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: ptrrecordv2s.dns.crossplane.io +spec: + group: dns.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: PtrrecordV2 + listKind: PtrrecordV2List + plural: ptrrecordv2s + singular: ptrrecordv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: PtrrecordV2 is the Schema for the PtrrecordV2s API. Manages a + DNS PTR Record 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: PtrrecordV2Spec defines the desired state of PtrrecordV2 + 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: + description: + description: Description of the PTR record. + type: string + floatingipId: + description: The ID of the FloatingIP/EIP. + type: string + name: + description: Domain name of the PTR record. A domain name is case + insensitive. Uppercase letters will also be converted into lowercase + letters. + type: string + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the PTR record. + type: object + ttl: + description: The time to live (TTL) of the record set (in seconds). + The value range is 300–2147483647. The default value is 300. + 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: + description: + description: Description of the PTR record. + type: string + floatingipId: + description: The ID of the FloatingIP/EIP. + type: string + name: + description: Domain name of the PTR record. A domain name is case + insensitive. Uppercase letters will also be converted into lowercase + letters. + type: string + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the PTR record. + type: object + ttl: + description: The time to live (TTL) of the record set (in seconds). + The value range is 300–2147483647. The default value is 300. + 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.floatingipId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.floatingipId) + || (has(self.initProvider) && has(self.initProvider.floatingipId))' + - message: spec.forProvider.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + status: + description: PtrrecordV2Status defines the observed state of PtrrecordV2. + properties: + atProvider: + properties: + address: + description: The address of the FloatingIP/EIP. + type: string + description: + description: Description of the PTR record. + type: string + floatingipId: + description: The ID of the FloatingIP/EIP. + type: string + id: + description: The PTR record ID, which is in {region}:{floatingip_id} + format. + type: string + name: + description: Domain name of the PTR record. A domain name is case + insensitive. Uppercase letters will also be converted into lowercase + letters. + type: string + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the PTR record. + type: object + ttl: + description: The time to live (TTL) of the record set (in seconds). + The value range is 300–2147483647. The default value is 300. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/dns.crossplane.io_recordsetv2s.yaml b/package/crds/dns.crossplane.io_recordsetv2s.yaml new file mode 100644 index 0000000..3ada7ef --- /dev/null +++ b/package/crds/dns.crossplane.io_recordsetv2s.yaml @@ -0,0 +1,422 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: recordsetv2s.dns.crossplane.io +spec: + group: dns.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: RecordsetV2 + listKind: RecordsetV2List + plural: recordsetv2s + singular: recordsetv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: RecordsetV2 is the Schema for the RecordsetV2s API. Manages a + DNS Recordset 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: RecordsetV2Spec defines the desired state of RecordsetV2 + 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: + description: + description: A description of the record set. + type: string + name: + description: The name of the record set. Changing this creates + a new DNS record set. + type: string + records: + description: An array of DNS records. + items: + type: string + type: array + region: + type: string + tags: + additionalProperties: + type: string + description: The key/value pairs to associate with the zone. + type: object + ttl: + description: The time to live (TTL) of the record set. + type: number + type: + description: 'The type of record set. Examples: "A", "MX". Changing + this creates a new DNS record set.' + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. Changing this creates + a new record set. + type: object + zoneId: + description: The ID of the zone in which to create the record + set. Changing this creates a new DNS record set. + 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: + description: + description: A description of the record set. + type: string + name: + description: The name of the record set. Changing this creates + a new DNS record set. + type: string + records: + description: An array of DNS records. + items: + type: string + type: array + region: + type: string + tags: + additionalProperties: + type: string + description: The key/value pairs to associate with the zone. + type: object + ttl: + description: The time to live (TTL) of the record set. + type: number + type: + description: 'The type of record set. Examples: "A", "MX". Changing + this creates a new DNS record set.' + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. Changing this creates + a new record set. + type: object + zoneId: + description: The ID of the zone in which to create the record + set. Changing this creates a new DNS record set. + 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.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + - message: spec.forProvider.records is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.records) + || (has(self.initProvider) && has(self.initProvider.records))' + - 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.zoneId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.zoneId) + || (has(self.initProvider) && has(self.initProvider.zoneId))' + status: + description: RecordsetV2Status defines the observed state of RecordsetV2. + properties: + atProvider: + properties: + description: + description: A description of the record set. + type: string + id: + type: string + name: + description: The name of the record set. Changing this creates + a new DNS record set. + type: string + records: + description: An array of DNS records. + items: + type: string + type: array + region: + type: string + shared: + type: boolean + tags: + additionalProperties: + type: string + description: The key/value pairs to associate with the zone. + type: object + ttl: + description: The time to live (TTL) of the record set. + type: number + type: + description: 'The type of record set. Examples: "A", "MX". Changing + this creates a new DNS record set.' + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. Changing this creates + a new record set. + type: object + zoneId: + description: The ID of the zone in which to create the record + set. Changing this creates a new DNS record set. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/dns.crossplane.io_zonev2s.yaml b/package/crds/dns.crossplane.io_zonev2s.yaml new file mode 100644 index 0000000..e77f143 --- /dev/null +++ b/package/crds/dns.crossplane.io_zonev2s.yaml @@ -0,0 +1,437 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: zonev2s.dns.crossplane.io +spec: + group: dns.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: ZoneV2 + listKind: ZoneV2List + plural: zonev2s + singular: zonev2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: ZoneV2 is the Schema for the ZoneV2s API. Manages a DNS Zones + 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: ZoneV2Spec defines the desired state of ZoneV2 + 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: + description: + description: A description of the zone. + type: string + email: + description: The email contact for the zone record. + type: string + name: + description: 'The name of the zone. Changing this creates a + new DNS zone. -> Note: The . at the end of the name.' + type: string + region: + type: string + router: + description: The Routers(VPCs) configuration for the private zone. + it is required when type is private. + items: + properties: + routerId: + description: The Router(VPC) ID. which VPC network will + assicate with. + type: string + routerRegion: + description: The Region name for this private zone. + type: string + type: object + type: array + tags: + additionalProperties: + type: string + description: The key/value pairs to associate with the zone. + type: object + ttl: + description: The time to live (TTL) of the zone. + type: number + type: + description: The type of zone. Can either be public or private. + Changing this creates a new zone. + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. Changing this creates + a new zone. + type: object + 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: + description: + description: A description of the zone. + type: string + email: + description: The email contact for the zone record. + type: string + name: + description: 'The name of the zone. Changing this creates a + new DNS zone. -> Note: The . at the end of the name.' + type: string + region: + type: string + router: + description: The Routers(VPCs) configuration for the private zone. + it is required when type is private. + items: + properties: + routerId: + description: The Router(VPC) ID. which VPC network will + assicate with. + type: string + routerRegion: + description: The Region name for this private zone. + type: string + type: object + type: array + tags: + additionalProperties: + type: string + description: The key/value pairs to associate with the zone. + type: object + ttl: + description: The time to live (TTL) of the zone. + type: number + type: + description: The type of zone. Can either be public or private. + Changing this creates a new zone. + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. Changing this creates + a new zone. + type: object + 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.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + status: + description: ZoneV2Status defines the observed state of ZoneV2. + properties: + atProvider: + properties: + description: + description: A description of the zone. + type: string + email: + description: The email contact for the zone record. + type: string + id: + type: string + masters: + description: An array of master DNS servers. + items: + type: string + type: array + name: + description: 'The name of the zone. Changing this creates a + new DNS zone. -> Note: The . at the end of the name.' + type: string + region: + type: string + router: + description: The Routers(VPCs) configuration for the private zone. + it is required when type is private. + items: + properties: + routerId: + description: The Router(VPC) ID. which VPC network will + assicate with. + type: string + routerRegion: + description: The Region name for this private zone. + type: string + type: object + type: array + tags: + additionalProperties: + type: string + description: The key/value pairs to associate with the zone. + type: object + ttl: + description: The time to live (TTL) of the zone. + type: number + type: + description: The type of zone. Can either be public or private. + Changing this creates a new zone. + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. Changing this creates + a new zone. + type: object + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/ecs.crossplane.io_instancev1s.yaml b/package/crds/ecs.crossplane.io_instancev1s.yaml new file mode 100644 index 0000000..4dafbd0 --- /dev/null +++ b/package/crds/ecs.crossplane.io_instancev1s.yaml @@ -0,0 +1,757 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: instancev1s.ecs.crossplane.io +spec: + group: ecs.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: InstanceV1 + listKind: InstanceV1List + plural: instancev1s + singular: instancev1 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: InstanceV1 is the Schema for the InstanceV1s API. Manages a ECS + Instance 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: InstanceV1Spec defines the desired state of InstanceV1 + 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: + autoRecovery: + description: Whether configure automatic recovery of an instance. + type: boolean + availabilityZone: + description: The availability zone in which to create the server. + Changing this creates a new server. + type: string + dataDisks: + description: 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. + items: + properties: + kmsId: + description: The Encryption KMS ID of the data disk. Changing + this creates a new server. + type: string + size: + description: The size of the data disk in GB. The value + range is 10 to 32768. Changing this creates a new server. + type: number + snapshotId: + description: Specifies the snapshot ID or ID of the original + data disk contained in the full-ECS image. Changing this + creates a new server. + type: string + type: + description: '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:' + type: string + type: object + type: array + deleteDisksOnTermination: + description: Delete the data disks upon termination of the instance. + Defaults to false. Changing this creates a new server. + type: boolean + flavor: + description: The name of the desired flavor for the server. + type: string + imageId: + description: The ID of the desired image for the server. Changing + this creates a new server. + type: string + keyName: + description: 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. + type: string + name: + description: A unique name for the instance. + type: string + nics: + description: 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. + items: + properties: + ipAddress: + description: Specifies a fixed IPv4 address to be used on + this network. Changing this creates a new server. + type: string + networkId: + description: The network UUID to attach to the server. Changing + this creates a new server. + type: string + type: object + type: array + passwordSecretRef: + description: The administrative password to assign to the server. + Changing this creates a new server. + properties: + key: + description: The key to select. + type: string + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - key + - name + - namespace + type: object + securityGroups: + description: 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. + items: + type: string + type: array + securityGroupsRefs: + description: References to SecgroupV2 to populate securityGroups. + 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 + securityGroupsSelector: + description: Selector for a list of SecgroupV2 to populate securityGroups. + 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 + systemDiskKmsId: + description: The Encryption KMS ID of the system disk. Changing + this creates a new server. + type: string + systemDiskSize: + description: The system disk size in GB, The value range is 1 + to 1024. Changing this creates a new server. + type: number + systemDiskType: + description: '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:' + type: string + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the instance. + type: object + userData: + description: The user data to provide when launching the instance. + Changing this creates a new server. + type: string + vpcId: + description: The ID of the desired VPC for the server. Changing + this creates a new server. + 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: + autoRecovery: + description: Whether configure automatic recovery of an instance. + type: boolean + availabilityZone: + description: The availability zone in which to create the server. + Changing this creates a new server. + type: string + dataDisks: + description: 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. + items: + properties: + kmsId: + description: The Encryption KMS ID of the data disk. Changing + this creates a new server. + type: string + size: + description: The size of the data disk in GB. The value + range is 10 to 32768. Changing this creates a new server. + type: number + snapshotId: + description: Specifies the snapshot ID or ID of the original + data disk contained in the full-ECS image. Changing this + creates a new server. + type: string + type: + description: '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:' + type: string + type: object + type: array + deleteDisksOnTermination: + description: Delete the data disks upon termination of the instance. + Defaults to false. Changing this creates a new server. + type: boolean + flavor: + description: The name of the desired flavor for the server. + type: string + imageId: + description: The ID of the desired image for the server. Changing + this creates a new server. + type: string + keyName: + description: 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. + type: string + name: + description: A unique name for the instance. + type: string + nics: + description: 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. + items: + properties: + ipAddress: + description: Specifies a fixed IPv4 address to be used on + this network. Changing this creates a new server. + type: string + networkId: + description: The network UUID to attach to the server. Changing + this creates a new server. + type: string + type: object + type: array + systemDiskKmsId: + description: The Encryption KMS ID of the system disk. Changing + this creates a new server. + type: string + systemDiskSize: + description: The system disk size in GB, The value range is 1 + to 1024. Changing this creates a new server. + type: number + systemDiskType: + description: '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:' + type: string + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the instance. + type: object + userData: + description: The user data to provide when launching the instance. + Changing this creates a new server. + type: string + vpcId: + description: The ID of the desired VPC for the server. Changing + this creates a new server. + 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.availabilityZone is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.availabilityZone) + || (has(self.initProvider) && has(self.initProvider.availabilityZone))' + - message: spec.forProvider.flavor is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.flavor) + || (has(self.initProvider) && has(self.initProvider.flavor))' + - message: spec.forProvider.imageId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.imageId) + || (has(self.initProvider) && has(self.initProvider.imageId))' + - message: spec.forProvider.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + - message: spec.forProvider.nics is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.nics) + || (has(self.initProvider) && has(self.initProvider.nics))' + - message: spec.forProvider.vpcId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.vpcId) + || (has(self.initProvider) && has(self.initProvider.vpcId))' + status: + description: InstanceV1Status defines the observed state of InstanceV1. + properties: + atProvider: + properties: + autoRecovery: + description: Whether configure automatic recovery of an instance. + type: boolean + availabilityZone: + description: The availability zone in which to create the server. + Changing this creates a new server. + type: string + dataDisks: + description: 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. + items: + properties: + id: + type: string + kmsId: + description: The Encryption KMS ID of the data disk. Changing + this creates a new server. + type: string + size: + description: The size of the data disk in GB. The value + range is 10 to 32768. Changing this creates a new server. + type: number + snapshotId: + description: Specifies the snapshot ID or ID of the original + data disk contained in the full-ECS image. Changing this + creates a new server. + type: string + type: + description: '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:' + type: string + type: object + type: array + deleteDisksOnTermination: + description: Delete the data disks upon termination of the instance. + Defaults to false. Changing this creates a new server. + type: boolean + flavor: + description: The name of the desired flavor for the server. + type: string + id: + type: string + imageId: + description: The ID of the desired image for the server. Changing + this creates a new server. + type: string + keyName: + description: 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. + type: string + name: + description: A unique name for the instance. + type: string + nics: + description: 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. + items: + properties: + ipAddress: + description: Specifies a fixed IPv4 address to be used on + this network. Changing this creates a new server. + type: string + macAddress: + type: string + networkId: + description: The network UUID to attach to the server. Changing + this creates a new server. + type: string + portId: + type: string + type: + description: '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:' + type: string + type: object + type: array + securityGroups: + description: 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. + items: + type: string + type: array + systemDiskId: + description: The ID of the system disk. + type: string + systemDiskKmsId: + description: The Encryption KMS ID of the system disk. Changing + this creates a new server. + type: string + systemDiskSize: + description: The system disk size in GB, The value range is 1 + to 1024. Changing this creates a new server. + type: number + systemDiskType: + description: '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:' + type: string + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the instance. + type: object + userData: + description: The user data to provide when launching the instance. + Changing this creates a new server. + type: string + volumesAttached: + items: + properties: + id: + type: string + kmsId: + description: The Encryption KMS ID of the data disk. Changing + this creates a new server. + type: string + size: + description: The size of the data disk in GB. The value + range is 10 to 32768. Changing this creates a new server. + type: number + snapshotId: + description: Specifies the snapshot ID or ID of the original + data disk contained in the full-ECS image. Changing this + creates a new server. + type: string + type: + description: '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:' + type: string + type: object + type: array + vpcId: + description: The ID of the desired VPC for the server. Changing + this creates a new server. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/evs.crossplane.io_volumev3s.yaml b/package/crds/evs.crossplane.io_volumev3s.yaml new file mode 100644 index 0000000..26471e1 --- /dev/null +++ b/package/crds/evs.crossplane.io_volumev3s.yaml @@ -0,0 +1,496 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: volumev3s.evs.crossplane.io +spec: + group: evs.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: VolumeV3 + listKind: VolumeV3List + plural: volumev3s + singular: volumev3 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: VolumeV3 is the Schema for the VolumeV3s API. Manages an EVS + 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: VolumeV3Spec defines the desired state of VolumeV3 + 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: + availabilityZone: + description: The availability zone for the volume. Changing this + creates a new volume. + type: string + backupId: + description: The backup ID from which to create the volume. Changing + this creates a new volume. + type: string + cascade: + description: Specifies to delete all snapshots associated with + the EVS disk. Default is false. + type: boolean + description: + description: A description of the volume. Changing this updates + the volume's description. + type: string + deviceType: + description: The device type of volume to create. Valid options + are VBD and SCSI. Defaults to VBD. Changing this creates a new + volume. + type: string + imageId: + description: The image ID from which to create the volume. Changing + this creates a new volume. + type: string + kmsId: + description: The Encryption KMS ID to create the volume. Changing + this creates a new volume. + type: string + multiattach: + description: Specifies whether the disk is shareable. The default + value is false. Changing this creates a new volume. + type: boolean + name: + description: A unique name for the volume. Changing this updates + the volume's name. + type: string + size: + description: The size of the volume to create (in gigabytes). + This parameter is mandatory when you create an empty EVS disk + or use an image or a snapshot to create an EVS disk. Decreasing + this value creates a new volume. + type: number + snapshotId: + description: The snapshot ID from which to create the volume. + Changing this creates a new volume. + type: string + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the volume. + Changing this updates the existing volume tags. + type: object + volumeType: + description: The type of volume to create. Currently, the value + can be SSD, SAS, SATA, co-p1, or uh-l1. Changing this creates + a new volume. + 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: + availabilityZone: + description: The availability zone for the volume. Changing this + creates a new volume. + type: string + backupId: + description: The backup ID from which to create the volume. Changing + this creates a new volume. + type: string + cascade: + description: Specifies to delete all snapshots associated with + the EVS disk. Default is false. + type: boolean + description: + description: A description of the volume. Changing this updates + the volume's description. + type: string + deviceType: + description: The device type of volume to create. Valid options + are VBD and SCSI. Defaults to VBD. Changing this creates a new + volume. + type: string + imageId: + description: The image ID from which to create the volume. Changing + this creates a new volume. + type: string + kmsId: + description: The Encryption KMS ID to create the volume. Changing + this creates a new volume. + type: string + multiattach: + description: Specifies whether the disk is shareable. The default + value is false. Changing this creates a new volume. + type: boolean + name: + description: A unique name for the volume. Changing this updates + the volume's name. + type: string + size: + description: The size of the volume to create (in gigabytes). + This parameter is mandatory when you create an empty EVS disk + or use an image or a snapshot to create an EVS disk. Decreasing + this value creates a new volume. + type: number + snapshotId: + description: The snapshot ID from which to create the volume. + Changing this creates a new volume. + type: string + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the volume. + Changing this updates the existing volume tags. + type: object + volumeType: + description: The type of volume to create. Currently, the value + can be SSD, SAS, SATA, co-p1, or uh-l1. Changing this creates + a new volume. + 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.availabilityZone is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.availabilityZone) + || (has(self.initProvider) && has(self.initProvider.availabilityZone))' + - message: spec.forProvider.volumeType is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.volumeType) + || (has(self.initProvider) && has(self.initProvider.volumeType))' + status: + description: VolumeV3Status defines the observed state of VolumeV3. + properties: + atProvider: + properties: + attachment: + description: If a volume is attached to an instance, this attribute + will display the Attachment ID, Instance ID, and the Device + as the Instance sees it. + items: + properties: + device: + type: string + id: + type: string + instanceId: + type: string + type: object + type: array + availabilityZone: + description: The availability zone for the volume. Changing this + creates a new volume. + type: string + backupId: + description: The backup ID from which to create the volume. Changing + this creates a new volume. + type: string + cascade: + description: Specifies to delete all snapshots associated with + the EVS disk. Default is false. + type: boolean + description: + description: A description of the volume. Changing this updates + the volume's description. + type: string + deviceType: + description: The device type of volume to create. Valid options + are VBD and SCSI. Defaults to VBD. Changing this creates a new + volume. + type: string + id: + type: string + imageId: + description: The image ID from which to create the volume. Changing + this creates a new volume. + type: string + kmsId: + description: The Encryption KMS ID to create the volume. Changing + this creates a new volume. + type: string + multiattach: + description: Specifies whether the disk is shareable. The default + value is false. Changing this creates a new volume. + type: boolean + name: + description: A unique name for the volume. Changing this updates + the volume's name. + type: string + size: + description: The size of the volume to create (in gigabytes). + This parameter is mandatory when you create an empty EVS disk + or use an image or a snapshot to create an EVS disk. Decreasing + this value creates a new volume. + type: number + snapshotId: + description: The snapshot ID from which to create the volume. + Changing this creates a new volume. + type: string + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the volume. + Changing this updates the existing volume tags. + type: object + volumeType: + description: The type of volume to create. Currently, the value + can be SSD, SAS, SATA, co-p1, or uh-l1. Changing this creates + a new volume. + type: string + wwn: + description: Specifies the unique identifier used for mounting + the EVS disk. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/fgs.crossplane.io_asyncinvokeconfigv2s.yaml b/package/crds/fgs.crossplane.io_asyncinvokeconfigv2s.yaml new file mode 100644 index 0000000..9408bdb --- /dev/null +++ b/package/crds/fgs.crossplane.io_asyncinvokeconfigv2s.yaml @@ -0,0 +1,442 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: asyncinvokeconfigv2s.fgs.crossplane.io +spec: + group: fgs.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: AsyncInvokeConfigV2 + listKind: AsyncInvokeConfigV2List + plural: asyncinvokeconfigv2s + singular: asyncinvokeconfigv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: AsyncInvokeConfigV2 is the Schema for the AsyncInvokeConfigV2s + API. Manages an FGS Async Invoke Config 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: AsyncInvokeConfigV2Spec defines the desired state of AsyncInvokeConfigV2 + 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: + functionUrn: + description: Specifies the function URN to which the asynchronous + invocation belongs. Changing this will create a new resource. + type: string + maxAsyncEventAgeInSeconds: + description: Specifies the maximum validity period of a message. + type: number + maxAsyncRetryAttempts: + description: Specifies the maximum number of retry attempts to + be made if asynchronous invocation fails. + type: number + onFailure: + description: Specifies the target to be invoked when a function + fails to be executed due to a system error or an internal error. + The object structure is documented below. + items: + properties: + destination: + description: 'Specifies the object type. The valid values + are as follows:' + type: string + param: + description: Specifies the parameters (map object in JSON + format) corresponding to the target service. + type: string + type: object + type: array + onSuccess: + description: Specifies the target to be invoked when a function + is successfully executed. The object structure is documented + below. + items: + properties: + destination: + description: 'Specifies the object type. The valid values + are as follows:' + type: string + param: + description: Specifies the parameters (map object in JSON + format) corresponding to the target service. + type: string + type: object + type: array + 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: + functionUrn: + description: Specifies the function URN to which the asynchronous + invocation belongs. Changing this will create a new resource. + type: string + maxAsyncEventAgeInSeconds: + description: Specifies the maximum validity period of a message. + type: number + maxAsyncRetryAttempts: + description: Specifies the maximum number of retry attempts to + be made if asynchronous invocation fails. + type: number + onFailure: + description: Specifies the target to be invoked when a function + fails to be executed due to a system error or an internal error. + The object structure is documented below. + items: + properties: + destination: + description: 'Specifies the object type. The valid values + are as follows:' + type: string + param: + description: Specifies the parameters (map object in JSON + format) corresponding to the target service. + type: string + type: object + type: array + onSuccess: + description: Specifies the target to be invoked when a function + is successfully executed. The object structure is documented + below. + items: + properties: + destination: + description: 'Specifies the object type. The valid values + are as follows:' + type: string + param: + description: Specifies the parameters (map object in JSON + format) corresponding to the target service. + type: string + type: object + type: array + 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.functionUrn is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.functionUrn) + || (has(self.initProvider) && has(self.initProvider.functionUrn))' + - message: spec.forProvider.maxAsyncEventAgeInSeconds is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.maxAsyncEventAgeInSeconds) + || (has(self.initProvider) && has(self.initProvider.maxAsyncEventAgeInSeconds))' + - message: spec.forProvider.maxAsyncRetryAttempts is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.maxAsyncRetryAttempts) + || (has(self.initProvider) && has(self.initProvider.maxAsyncRetryAttempts))' + status: + description: AsyncInvokeConfigV2Status defines the observed state of AsyncInvokeConfigV2. + properties: + atProvider: + properties: + functionUrn: + description: Specifies the function URN to which the asynchronous + invocation belongs. Changing this will create a new resource. + type: string + id: + description: Specifies a resource ID in UUID format. + type: string + maxAsyncEventAgeInSeconds: + description: Specifies the maximum validity period of a message. + type: number + maxAsyncRetryAttempts: + description: Specifies the maximum number of retry attempts to + be made if asynchronous invocation fails. + type: number + onFailure: + description: Specifies the target to be invoked when a function + fails to be executed due to a system error or an internal error. + The object structure is documented below. + items: + properties: + destination: + description: 'Specifies the object type. The valid values + are as follows:' + type: string + param: + description: Specifies the parameters (map object in JSON + format) corresponding to the target service. + type: string + type: object + type: array + onSuccess: + description: Specifies the target to be invoked when a function + is successfully executed. The object structure is documented + below. + items: + properties: + destination: + description: 'Specifies the object type. The valid values + are as follows:' + type: string + param: + description: Specifies the parameters (map object in JSON + format) corresponding to the target service. + type: string + type: object + type: array + region: + description: Specifies the region in which the asynchronous invocation + is configured. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/fgs.crossplane.io_eventv2s.yaml b/package/crds/fgs.crossplane.io_eventv2s.yaml new file mode 100644 index 0000000..28beed2 --- /dev/null +++ b/package/crds/fgs.crossplane.io_eventv2s.yaml @@ -0,0 +1,354 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: eventv2s.fgs.crossplane.io +spec: + group: fgs.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: EventV2 + listKind: EventV2List + plural: eventv2s + singular: eventv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: EventV2 is the Schema for the EventV2s API. Manages an FGS Event + 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: EventV2Spec defines the desired state of EventV2 + 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: + content: + description: Specifies the function event content. The value is + the base64 encoding of the JSON string. + type: string + functionUrn: + description: Specifies the URN of the function to which the event + belongs. + type: string + name: + description: Specifies the function event name. The name can contain + a maximum of 25, only letters, digits, underscores (_) and hyphens + (-) are allowed. + 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: + content: + description: Specifies the function event content. The value is + the base64 encoding of the JSON string. + type: string + functionUrn: + description: Specifies the URN of the function to which the event + belongs. + type: string + name: + description: Specifies the function event name. The name can contain + a maximum of 25, only letters, digits, underscores (_) and hyphens + (-) are allowed. + 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.content is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.content) + || (has(self.initProvider) && has(self.initProvider.content))' + - message: spec.forProvider.functionUrn is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.functionUrn) + || (has(self.initProvider) && has(self.initProvider.functionUrn))' + - message: spec.forProvider.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + status: + description: EventV2Status defines the observed state of EventV2. + properties: + atProvider: + properties: + content: + description: Specifies the function event content. The value is + the base64 encoding of the JSON string. + type: string + functionUrn: + description: Specifies the URN of the function to which the event + belongs. + type: string + id: + description: The resource ID in UUID format. + type: string + name: + description: Specifies the function event name. The name can contain + a maximum of 25, only letters, digits, underscores (_) and hyphens + (-) are allowed. + type: string + region: + description: The region in which function graph resource is created. + type: string + updatedAt: + description: The latest update time of the function event. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/fgs.crossplane.io_functionv2s.yaml b/package/crds/fgs.crossplane.io_functionv2s.yaml new file mode 100644 index 0000000..7186228 --- /dev/null +++ b/package/crds/fgs.crossplane.io_functionv2s.yaml @@ -0,0 +1,1045 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: functionv2s.fgs.crossplane.io +spec: + group: fgs.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: FunctionV2 + listKind: FunctionV2List + plural: functionv2s + singular: functionv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: FunctionV2 is the Schema for the FunctionV2s API. Manages an + FGS Function 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: FunctionV2Spec defines the desired state of FunctionV2 + 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: + agency: + description: Specifies the agency. This parameter is mandatory + if the function needs to access other cloud services. + type: string + app: + description: Specifies the group to which the function belongs. + type: string + appAgency: + description: Specifies the execution agency enables you to obtain + a token or an AK/SK for accessing other cloud services. + type: string + codeFilename: + description: Specifies the name of a function file. Required if + the code_type is set to jar or zip. + type: string + codeType: + description: 'Specifies the function code type, which can be:' + type: string + codeUrl: + description: Specifies the code url. Required if the code_type + is set to obs. + type: string + concurrencyNum: + description: Specifies the number of concurrent requests of the + function. The valid value ranges from 1 to 1,000, the default + value is 1. + type: number + customImage: + description: Specifies the custom image configuration for creating + function. The custom_image structure is documented below. + items: + properties: + url: + description: Specifies the URL of SWR image, the URL must + start with swr.. + type: string + type: object + type: array + dependList: + description: Specifies the ID list of the dependencies. + items: + type: string + type: array + description: + description: Specifies the description of the function. + type: string + encryptedUserDataSecretRef: + description: Specifies the key/value information defined to be + encrypted for the function. + properties: + key: + description: The key to select. + type: string + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - key + - name + - namespace + type: object + funcCode: + description: Specifies the function code. The code value can be + encoded using Base64 or just with the text code. Required if + the code_type is set to inline, zip, or jar. + type: string + funcMounts: + description: Specifies the file system list. The func_mounts object + structure is documented below. + items: + properties: + localMountPath: + description: Specifies the function access path. + type: string + mountResource: + description: Specifies the ID of the mounted resource (corresponding + cloud service). + type: string + mountSharePath: + description: 'Specifies the remote mount path. Example: + 192.168.0.12:/data.' + type: string + mountType: + description: Specifies the mount type. + type: string + type: object + type: array + functiongraphVersion: + description: 'Specifies the FunctionGraph version, default value + is v2. The valid values are as follows:' + type: string + gpuMemory: + description: Specifies the GPU memory size allocated to the function, + in MByte (MB). The valid value ranges form 1,024 to 16,384, + the value must be a multiple of 1,024. If not specified, the + GPU function is disabled. + type: number + handler: + description: Specifies the entry point of the function. + type: string + initializerHandler: + description: Specifies the initializer of the function. + type: string + initializerTimeout: + description: 'Specifies the maximum duration the function can + be initialized. Value range: 1s to 300s.' + type: number + logGroupId: + description: Specifies the ID of the LTS log group. + type: string + logGroupName: + description: Specifies the name of the LTS log group. + type: string + logTopicId: + description: Specifies the ID of the LTS log stream. + type: string + logTopicName: + description: Specifies the name of the LTS stream. + type: string + maxInstanceNum: + description: Specifies the maximum number of instances of the + function. The valid value ranges from -1 to 1,000, defaults + to 400. + type: string + memorySize: + description: Specifies the memory size allocated to the function, + in MByte (MB). + type: number + mountUserGroupId: + description: Specifies the user group ID, a non-0 integer from + –1 to 65,534. Defaults to -1. + type: number + mountUserId: + description: Specifies the user ID, a non-0 integer from –1 to + 65,534. Defaults to -1. + type: number + name: + description: Specifies the name of the function. Changing this + will create a new resource. + type: string + networkId: + description: Specifies the network ID of subnet. + type: string + reservedInstances: + description: Specifies the reserved instance policies of the function. + The reserved_instances structure is documented below. + items: + properties: + count: + description: Specifies the number of reserved instance. + The valid value ranges from 0 to 1,000. If this parameter + is set to 0, the reserved instance will not run. + type: number + idleMode: + description: Specifies whether to enable the idle mode. + The default value is false. If this parameter is enabled, + reserved instances are initialized and the mode change + needs some time to take effect. You will still be billed + at the price of reserved instances for non-idle mode in + this period. + type: boolean + qualifierName: + description: Specifies the version name or alias name. + type: string + qualifierType: + description: 'Specifies qualifier type of reserved instance. + The valid values are as follows:' + type: string + tacticsConfig: + description: Specifies the auto scaling policies for reserved + instance. The tactics_config structure is documented below. + items: + properties: + cronConfigs: + description: Specifies the list of scheduled policy + configurations. The cron_configs structure is documented + below. + items: + properties: + count: + description: Specifies the number of reserved + instance to which the policy belongs. The + valid value ranges from 0 to 1,000. + type: number + cron: + description: Specifies the cron expression. + type: string + expiredTime: + description: Specifies the expiration timestamp + of the policy. The unit is s, e.g. 1740560074. + type: number + name: + description: Specifies the version name. + type: string + startTime: + description: Specifies the effective timestamp + of policy. The unit is s, e.g. 1740560074. + type: number + type: object + type: array + type: object + type: array + type: object + type: array + runtime: + description: 'Specifies the environment for executing the function. + The valid values are as follows:' + type: string + tags: + additionalProperties: + type: string + description: Specifies the key/value pairs to associate with the + function. + type: object + timeout: + description: Specifies the timeout interval of the function, in + seconds. The value ranges from 3 to 900. + type: number + userData: + description: Specifies the Key/Value information defined for the + function. + type: string + versions: + description: Specifies the versions management of the function. + The versions structure is documented below. + items: + properties: + aliases: + description: Specifies the aliases management for specified + version. The aliases structure is documented below. + items: + properties: + description: + description: Specifies the description of the function. + type: string + name: + description: Specifies the version name. + type: string + type: object + type: array + name: + description: Specifies the version name. The version name. + type: string + type: object + type: array + vpcId: + description: Specifies the ID of VPC. + 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: + agency: + description: Specifies the agency. This parameter is mandatory + if the function needs to access other cloud services. + type: string + app: + description: Specifies the group to which the function belongs. + type: string + appAgency: + description: Specifies the execution agency enables you to obtain + a token or an AK/SK for accessing other cloud services. + type: string + codeFilename: + description: Specifies the name of a function file. Required if + the code_type is set to jar or zip. + type: string + codeType: + description: 'Specifies the function code type, which can be:' + type: string + codeUrl: + description: Specifies the code url. Required if the code_type + is set to obs. + type: string + concurrencyNum: + description: Specifies the number of concurrent requests of the + function. The valid value ranges from 1 to 1,000, the default + value is 1. + type: number + customImage: + description: Specifies the custom image configuration for creating + function. The custom_image structure is documented below. + items: + properties: + url: + description: Specifies the URL of SWR image, the URL must + start with swr.. + type: string + type: object + type: array + dependList: + description: Specifies the ID list of the dependencies. + items: + type: string + type: array + description: + description: Specifies the description of the function. + type: string + funcCode: + description: Specifies the function code. The code value can be + encoded using Base64 or just with the text code. Required if + the code_type is set to inline, zip, or jar. + type: string + funcMounts: + description: Specifies the file system list. The func_mounts object + structure is documented below. + items: + properties: + localMountPath: + description: Specifies the function access path. + type: string + mountResource: + description: Specifies the ID of the mounted resource (corresponding + cloud service). + type: string + mountSharePath: + description: 'Specifies the remote mount path. Example: + 192.168.0.12:/data.' + type: string + mountType: + description: Specifies the mount type. + type: string + type: object + type: array + functiongraphVersion: + description: 'Specifies the FunctionGraph version, default value + is v2. The valid values are as follows:' + type: string + gpuMemory: + description: Specifies the GPU memory size allocated to the function, + in MByte (MB). The valid value ranges form 1,024 to 16,384, + the value must be a multiple of 1,024. If not specified, the + GPU function is disabled. + type: number + handler: + description: Specifies the entry point of the function. + type: string + initializerHandler: + description: Specifies the initializer of the function. + type: string + initializerTimeout: + description: 'Specifies the maximum duration the function can + be initialized. Value range: 1s to 300s.' + type: number + logGroupId: + description: Specifies the ID of the LTS log group. + type: string + logGroupName: + description: Specifies the name of the LTS log group. + type: string + logTopicId: + description: Specifies the ID of the LTS log stream. + type: string + logTopicName: + description: Specifies the name of the LTS stream. + type: string + maxInstanceNum: + description: Specifies the maximum number of instances of the + function. The valid value ranges from -1 to 1,000, defaults + to 400. + type: string + memorySize: + description: Specifies the memory size allocated to the function, + in MByte (MB). + type: number + mountUserGroupId: + description: Specifies the user group ID, a non-0 integer from + –1 to 65,534. Defaults to -1. + type: number + mountUserId: + description: Specifies the user ID, a non-0 integer from –1 to + 65,534. Defaults to -1. + type: number + name: + description: Specifies the name of the function. Changing this + will create a new resource. + type: string + networkId: + description: Specifies the network ID of subnet. + type: string + reservedInstances: + description: Specifies the reserved instance policies of the function. + The reserved_instances structure is documented below. + items: + properties: + count: + description: Specifies the number of reserved instance. + The valid value ranges from 0 to 1,000. If this parameter + is set to 0, the reserved instance will not run. + type: number + idleMode: + description: Specifies whether to enable the idle mode. + The default value is false. If this parameter is enabled, + reserved instances are initialized and the mode change + needs some time to take effect. You will still be billed + at the price of reserved instances for non-idle mode in + this period. + type: boolean + qualifierName: + description: Specifies the version name or alias name. + type: string + qualifierType: + description: 'Specifies qualifier type of reserved instance. + The valid values are as follows:' + type: string + tacticsConfig: + description: Specifies the auto scaling policies for reserved + instance. The tactics_config structure is documented below. + items: + properties: + cronConfigs: + description: Specifies the list of scheduled policy + configurations. The cron_configs structure is documented + below. + items: + properties: + count: + description: Specifies the number of reserved + instance to which the policy belongs. The + valid value ranges from 0 to 1,000. + type: number + cron: + description: Specifies the cron expression. + type: string + expiredTime: + description: Specifies the expiration timestamp + of the policy. The unit is s, e.g. 1740560074. + type: number + name: + description: Specifies the version name. + type: string + startTime: + description: Specifies the effective timestamp + of policy. The unit is s, e.g. 1740560074. + type: number + type: object + type: array + type: object + type: array + type: object + type: array + runtime: + description: 'Specifies the environment for executing the function. + The valid values are as follows:' + type: string + tags: + additionalProperties: + type: string + description: Specifies the key/value pairs to associate with the + function. + type: object + timeout: + description: Specifies the timeout interval of the function, in + seconds. The value ranges from 3 to 900. + type: number + userData: + description: Specifies the Key/Value information defined for the + function. + type: string + versions: + description: Specifies the versions management of the function. + The versions structure is documented below. + items: + properties: + aliases: + description: Specifies the aliases management for specified + version. The aliases structure is documented below. + items: + properties: + description: + description: Specifies the description of the function. + type: string + name: + description: Specifies the version name. + type: string + type: object + type: array + name: + description: Specifies the version name. The version name. + type: string + type: object + type: array + vpcId: + description: Specifies the ID of VPC. + 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.memorySize is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.memorySize) + || (has(self.initProvider) && has(self.initProvider.memorySize))' + - message: spec.forProvider.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + - message: spec.forProvider.runtime is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.runtime) + || (has(self.initProvider) && has(self.initProvider.runtime))' + - 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))' + status: + description: FunctionV2Status defines the observed state of FunctionV2. + properties: + atProvider: + properties: + agency: + description: Specifies the agency. This parameter is mandatory + if the function needs to access other cloud services. + type: string + app: + description: Specifies the group to which the function belongs. + type: string + appAgency: + description: Specifies the execution agency enables you to obtain + a token or an AK/SK for accessing other cloud services. + type: string + codeFilename: + description: Specifies the name of a function file. Required if + the code_type is set to jar or zip. + type: string + codeType: + description: 'Specifies the function code type, which can be:' + type: string + codeUrl: + description: Specifies the code url. Required if the code_type + is set to obs. + type: string + concurrencyNum: + description: Specifies the number of concurrent requests of the + function. The valid value ranges from 1 to 1,000, the default + value is 1. + type: number + customImage: + description: Specifies the custom image configuration for creating + function. The custom_image structure is documented below. + items: + properties: + url: + description: Specifies the URL of SWR image, the URL must + start with swr.. + type: string + type: object + type: array + dependList: + description: Specifies the ID list of the dependencies. + items: + type: string + type: array + description: + description: Specifies the description of the function. + type: string + dnsList: + description: The private DNS configuration of the function network. + type: string + funcCode: + description: Specifies the function code. The code value can be + encoded using Base64 or just with the text code. Required if + the code_type is set to inline, zip, or jar. + type: string + funcMounts: + description: Specifies the file system list. The func_mounts object + structure is documented below. + items: + properties: + localMountPath: + description: Specifies the function access path. + type: string + mountResource: + description: Specifies the ID of the mounted resource (corresponding + cloud service). + type: string + mountSharePath: + description: 'Specifies the remote mount path. Example: + 192.168.0.12:/data.' + type: string + mountType: + description: Specifies the mount type. + type: string + type: object + type: array + functiongraphVersion: + description: 'Specifies the FunctionGraph version, default value + is v2. The valid values are as follows:' + type: string + gpuMemory: + description: Specifies the GPU memory size allocated to the function, + in MByte (MB). The valid value ranges form 1,024 to 16,384, + the value must be a multiple of 1,024. If not specified, the + GPU function is disabled. + type: number + gpuType: + type: string + handler: + description: Specifies the entry point of the function. + type: string + id: + description: The resource ID, consist of urn and current version, + the format is :. + type: string + initializerHandler: + description: Specifies the initializer of the function. + type: string + initializerTimeout: + description: 'Specifies the maximum duration the function can + be initialized. Value range: 1s to 300s.' + type: number + logGroupId: + description: Specifies the ID of the LTS log group. + type: string + logGroupName: + description: Specifies the name of the LTS log group. + type: string + logTopicId: + description: Specifies the ID of the LTS log stream. + type: string + logTopicName: + description: Specifies the name of the LTS stream. + type: string + maxInstanceNum: + description: Specifies the maximum number of instances of the + function. The valid value ranges from -1 to 1,000, defaults + to 400. + type: string + memorySize: + description: Specifies the memory size allocated to the function, + in MByte (MB). + type: number + mountUserGroupId: + description: Specifies the user group ID, a non-0 integer from + –1 to 65,534. Defaults to -1. + type: number + mountUserId: + description: Specifies the user ID, a non-0 integer from –1 to + 65,534. Defaults to -1. + type: number + name: + description: Specifies the name of the function. Changing this + will create a new resource. + type: string + networkId: + description: Specifies the network ID of subnet. + type: string + region: + description: The region in which function graph resource is created. + type: string + reservedInstances: + description: Specifies the reserved instance policies of the function. + The reserved_instances structure is documented below. + items: + properties: + count: + description: Specifies the number of reserved instance. + The valid value ranges from 0 to 1,000. If this parameter + is set to 0, the reserved instance will not run. + type: number + idleMode: + description: Specifies whether to enable the idle mode. + The default value is false. If this parameter is enabled, + reserved instances are initialized and the mode change + needs some time to take effect. You will still be billed + at the price of reserved instances for non-idle mode in + this period. + type: boolean + qualifierName: + description: Specifies the version name or alias name. + type: string + qualifierType: + description: 'Specifies qualifier type of reserved instance. + The valid values are as follows:' + type: string + tacticsConfig: + description: Specifies the auto scaling policies for reserved + instance. The tactics_config structure is documented below. + items: + properties: + cronConfigs: + description: Specifies the list of scheduled policy + configurations. The cron_configs structure is documented + below. + items: + properties: + count: + description: Specifies the number of reserved + instance to which the policy belongs. The + valid value ranges from 0 to 1,000. + type: number + cron: + description: Specifies the cron expression. + type: string + expiredTime: + description: Specifies the expiration timestamp + of the policy. The unit is s, e.g. 1740560074. + type: number + name: + description: Specifies the version name. + type: string + startTime: + description: Specifies the effective timestamp + of policy. The unit is s, e.g. 1740560074. + type: number + type: object + type: array + type: object + type: array + type: object + type: array + runtime: + description: 'Specifies the environment for executing the function. + The valid values are as follows:' + type: string + tags: + additionalProperties: + type: string + description: Specifies the key/value pairs to associate with the + function. + type: object + timeout: + description: Specifies the timeout interval of the function, in + seconds. The value ranges from 3 to 900. + type: number + urn: + description: Uniform Resource Name. + type: string + userData: + description: Specifies the Key/Value information defined for the + function. + type: string + version: + description: The version of the function. + type: string + versions: + description: Specifies the versions management of the function. + The versions structure is documented below. + items: + properties: + aliases: + description: Specifies the aliases management for specified + version. The aliases structure is documented below. + items: + properties: + description: + description: Specifies the description of the function. + type: string + name: + description: Specifies the version name. + type: string + type: object + type: array + name: + description: Specifies the version name. The version name. + type: string + type: object + type: array + vpcId: + description: Specifies the ID of VPC. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/fgs.crossplane.io_triggerv2s.yaml b/package/crds/fgs.crossplane.io_triggerv2s.yaml new file mode 100644 index 0000000..c4dba5b --- /dev/null +++ b/package/crds/fgs.crossplane.io_triggerv2s.yaml @@ -0,0 +1,375 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: triggerv2s.fgs.crossplane.io +spec: + group: fgs.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: TriggerV2 + listKind: TriggerV2List + plural: triggerv2s + singular: triggerv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: TriggerV2 is the Schema for the TriggerV2s API. Manages an FGS + Trigger 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: TriggerV2Spec defines the desired state of TriggerV2 + 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: + eventData: + description: Specifies the detailed configuration of the function + trigger event. For various types of trigger parameter configurations, + please refer to the documentation. + type: string + functionUrn: + description: Specifies the function URN to which the function + trigger belongs. + type: string + status: + description: Specifies the status of the function trigger. The + valid values are ACTIVE and DISABLED. For DDS and Kafka triggers + the default value is DISABLED, for other triggers= the default + value is ACTIVE. + type: string + type: + description: Specifies the type of the function trigger. The valid + values are TIMER, APIG, CTS, DDS, DEDICATEDGATEWAY, etc. + 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: + eventData: + description: Specifies the detailed configuration of the function + trigger event. For various types of trigger parameter configurations, + please refer to the documentation. + type: string + functionUrn: + description: Specifies the function URN to which the function + trigger belongs. + type: string + status: + description: Specifies the status of the function trigger. The + valid values are ACTIVE and DISABLED. For DDS and Kafka triggers + the default value is DISABLED, for other triggers= the default + value is ACTIVE. + type: string + type: + description: Specifies the type of the function trigger. The valid + values are TIMER, APIG, CTS, DDS, DEDICATEDGATEWAY, etc. + 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.eventData is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.eventData) + || (has(self.initProvider) && has(self.initProvider.eventData))' + - message: spec.forProvider.functionUrn is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.functionUrn) + || (has(self.initProvider) && has(self.initProvider.functionUrn))' + - 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: TriggerV2Status defines the observed state of TriggerV2. + properties: + atProvider: + properties: + createdAt: + description: The creation time of the function trigger. + type: string + eventData: + description: Specifies the detailed configuration of the function + trigger event. For various types of trigger parameter configurations, + please refer to the documentation. + type: string + functionUrn: + description: Specifies the function URN to which the function + trigger belongs. + type: string + id: + description: resource ID in UUID format. + type: string + region: + description: The region where the function trigger is located. + type: string + status: + description: Specifies the status of the function trigger. The + valid values are ACTIVE and DISABLED. For DDS and Kafka triggers + the default value is DISABLED, for other triggers= the default + value is ACTIVE. + type: string + type: + description: Specifies the type of the function trigger. The valid + values are TIMER, APIG, CTS, DDS, DEDICATEDGATEWAY, etc. + type: string + updatedAt: + description: The latest update time of the function trigger. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/fw.crossplane.io_firewallgroupv2s.yaml b/package/crds/fw.crossplane.io_firewallgroupv2s.yaml new file mode 100644 index 0000000..3df8fe3 --- /dev/null +++ b/package/crds/fw.crossplane.io_firewallgroupv2s.yaml @@ -0,0 +1,424 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: firewallgroupv2s.fw.crossplane.io +spec: + group: fw.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: FirewallGroupV2 + listKind: FirewallGroupV2List + plural: firewallgroupv2s + singular: firewallgroupv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: FirewallGroupV2 is the Schema for the FirewallGroupV2s API. Manages + a VPC Firewall Group 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: FirewallGroupV2Spec defines the desired state of FirewallGroupV2 + 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: Administrative up/down status for the firewall group + (must be "true" or "false" if provided - defaults to "true"). + Changing this updates the admin_state_up of an existing firewall + group. + type: boolean + description: + description: A description for the firewall group. Changing this + updates the description of an existing firewall group. + type: string + egressPolicyId: + description: The egress policy resource id for the firewall group. + Changing this updates the egress_policy_id of an existing firewall + group. + type: string + ingressPolicyId: + description: The ingress policy resource id for the firewall group. + Changing this updates the ingress_policy_id of an existing firewall + group. + type: string + name: + description: A name for the firewall group. Changing this updates + the name of an existing firewall group. + type: string + ports: + description: Port(s) to associate this firewall group instance + with. Must be a list of strings. Changing this updates the associated + routers of an existing firewall group. + items: + type: string + type: array + region: + type: string + tenantId: + description: The owner of the floating IP. Required if admin wants + to create a firewall group for another tenant. Changing this + creates a new firewall group. + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + 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: Administrative up/down status for the firewall group + (must be "true" or "false" if provided - defaults to "true"). + Changing this updates the admin_state_up of an existing firewall + group. + type: boolean + description: + description: A description for the firewall group. Changing this + updates the description of an existing firewall group. + type: string + egressPolicyId: + description: The egress policy resource id for the firewall group. + Changing this updates the egress_policy_id of an existing firewall + group. + type: string + ingressPolicyId: + description: The ingress policy resource id for the firewall group. + Changing this updates the ingress_policy_id of an existing firewall + group. + type: string + name: + description: A name for the firewall group. Changing this updates + the name of an existing firewall group. + type: string + ports: + description: Port(s) to associate this firewall group instance + with. Must be a list of strings. Changing this updates the associated + routers of an existing firewall group. + items: + type: string + type: array + region: + type: string + tenantId: + description: The owner of the floating IP. Required if admin wants + to create a firewall group for another tenant. Changing this + creates a new firewall group. + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + 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 + status: + description: FirewallGroupV2Status defines the observed state of FirewallGroupV2. + properties: + atProvider: + properties: + adminStateUp: + description: Administrative up/down status for the firewall group + (must be "true" or "false" if provided - defaults to "true"). + Changing this updates the admin_state_up of an existing firewall + group. + type: boolean + description: + description: A description for the firewall group. Changing this + updates the description of an existing firewall group. + type: string + egressPolicyId: + description: The egress policy resource id for the firewall group. + Changing this updates the egress_policy_id of an existing firewall + group. + type: string + id: + type: string + ingressPolicyId: + description: The ingress policy resource id for the firewall group. + Changing this updates the ingress_policy_id of an existing firewall + group. + type: string + name: + description: A name for the firewall group. Changing this updates + the name of an existing firewall group. + type: string + ports: + description: Port(s) to associate this firewall group instance + with. Must be a list of strings. Changing this updates the associated + routers of an existing firewall group. + items: + type: string + type: array + region: + type: string + tenantId: + description: The owner of the floating IP. Required if admin wants + to create a firewall group for another tenant. Changing this + creates a new firewall group. + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/fw.crossplane.io_policyv2s.yaml b/package/crds/fw.crossplane.io_policyv2s.yaml new file mode 100644 index 0000000..a3a7436 --- /dev/null +++ b/package/crds/fw.crossplane.io_policyv2s.yaml @@ -0,0 +1,412 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: policyv2s.fw.crossplane.io +spec: + group: fw.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: PolicyV2 + listKind: PolicyV2List + plural: policyv2s + singular: policyv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: PolicyV2 is the Schema for the PolicyV2s API. Manages a VPC Firewall + 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: PolicyV2Spec defines the desired state of PolicyV2 + 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: + audited: + description: Audit status of the firewall policy (must be "true" + or "false" if provided - defaults to "false"). This status is + set to "false" whenever the firewall policy or any of its rules + are changed. Changing this updates the audited status of an + existing firewall policy. + type: boolean + description: + description: A description for the firewall policy. Changing this + updates the description of an existing firewall policy. + type: string + name: + description: A name for the firewall policy. Changing this updates + the name of an existing firewall policy. + type: string + region: + type: string + rules: + description: An array of one or more firewall rules that comprise + the policy. Changing this results in adding/removing rules from + the existing firewall policy. + items: + type: string + type: array + shared: + description: Sharing status of the firewall policy (must be "true" + or "false" if provided). If this is "true" the policy is visible + to, and can be used in, firewalls in other tenants. Changing + this updates the shared status of an existing firewall policy. + Only administrative users can specify if the policy should be + shared. + type: boolean + tenantId: + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + 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: + audited: + description: Audit status of the firewall policy (must be "true" + or "false" if provided - defaults to "false"). This status is + set to "false" whenever the firewall policy or any of its rules + are changed. Changing this updates the audited status of an + existing firewall policy. + type: boolean + description: + description: A description for the firewall policy. Changing this + updates the description of an existing firewall policy. + type: string + name: + description: A name for the firewall policy. Changing this updates + the name of an existing firewall policy. + type: string + region: + type: string + rules: + description: An array of one or more firewall rules that comprise + the policy. Changing this results in adding/removing rules from + the existing firewall policy. + items: + type: string + type: array + shared: + description: Sharing status of the firewall policy (must be "true" + or "false" if provided). If this is "true" the policy is visible + to, and can be used in, firewalls in other tenants. Changing + this updates the shared status of an existing firewall policy. + Only administrative users can specify if the policy should be + shared. + type: boolean + tenantId: + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + 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 + status: + description: PolicyV2Status defines the observed state of PolicyV2. + properties: + atProvider: + properties: + audited: + description: Audit status of the firewall policy (must be "true" + or "false" if provided - defaults to "false"). This status is + set to "false" whenever the firewall policy or any of its rules + are changed. Changing this updates the audited status of an + existing firewall policy. + type: boolean + description: + description: A description for the firewall policy. Changing this + updates the description of an existing firewall policy. + type: string + id: + type: string + name: + description: A name for the firewall policy. Changing this updates + the name of an existing firewall policy. + type: string + region: + type: string + rules: + description: An array of one or more firewall rules that comprise + the policy. Changing this results in adding/removing rules from + the existing firewall policy. + items: + type: string + type: array + shared: + description: Sharing status of the firewall policy (must be "true" + or "false" if provided). If this is "true" the policy is visible + to, and can be used in, firewalls in other tenants. Changing + this updates the shared status of an existing firewall policy. + Only administrative users can specify if the policy should be + shared. + type: boolean + tenantId: + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/fw.crossplane.io_rulev2s.yaml b/package/crds/fw.crossplane.io_rulev2s.yaml new file mode 100644 index 0000000..83e9613 --- /dev/null +++ b/package/crds/fw.crossplane.io_rulev2s.yaml @@ -0,0 +1,481 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: rulev2s.fw.crossplane.io +spec: + group: fw.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: RuleV2 + listKind: RuleV2List + plural: rulev2s + singular: rulev2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: RuleV2 is the Schema for the RuleV2s API. Manages a VPC Firewall + 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: RuleV2Spec defines the desired state of RuleV2 + 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: Action to be taken ( must be "allow" or "deny") when + the firewall rule matches. Changing this updates the action + of an existing firewall rule. + type: string + description: + description: A description for the firewall rule. Changing this + updates the description of an existing firewall rule. + type: string + destinationIpAddress: + description: The destination IP address on which the firewall + rule operates. Changing this updates the destination_ip_address + of an existing firewall rule. + type: string + destinationPort: + description: The destination port on which the firewall rule operates. + Changing this updates the destination_port of an existing firewall + rule. + type: string + enabled: + description: Enabled status for the firewall rule (must be "true" + or "false" if provided - defaults to "true"). Changing this + updates the enabled status of an existing firewall rule. + type: boolean + ipVersion: + description: IP version, either 4 (default) or 6. Changing this + updates the ip_version of an existing firewall rule. + type: number + name: + description: A unique name for the firewall rule. Changing this + updates the name of an existing firewall rule. + type: string + protocol: + description: 'The protocol type on which the firewall rule operates. + Valid values are: tcp, udp, icmp, and any. Changing this updates + the protocol of an existing firewall rule.' + type: string + region: + type: string + sourceIpAddress: + description: The source IP address on which the firewall rule + operates. Changing this updates the source_ip_address of an + existing firewall rule. + type: string + sourcePort: + description: The source port on which the firewall rule operates. + Changing this updates the source_port of an existing firewall + rule. + type: string + tenantId: + description: The owner of the firewall rule. Required if admin + wants to create a firewall rule for another tenant. Changing + this creates a new firewall rule. + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + 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: Action to be taken ( must be "allow" or "deny") when + the firewall rule matches. Changing this updates the action + of an existing firewall rule. + type: string + description: + description: A description for the firewall rule. Changing this + updates the description of an existing firewall rule. + type: string + destinationIpAddress: + description: The destination IP address on which the firewall + rule operates. Changing this updates the destination_ip_address + of an existing firewall rule. + type: string + destinationPort: + description: The destination port on which the firewall rule operates. + Changing this updates the destination_port of an existing firewall + rule. + type: string + enabled: + description: Enabled status for the firewall rule (must be "true" + or "false" if provided - defaults to "true"). Changing this + updates the enabled status of an existing firewall rule. + type: boolean + ipVersion: + description: IP version, either 4 (default) or 6. Changing this + updates the ip_version of an existing firewall rule. + type: number + name: + description: A unique name for the firewall rule. Changing this + updates the name of an existing firewall rule. + type: string + protocol: + description: 'The protocol type on which the firewall rule operates. + Valid values are: tcp, udp, icmp, and any. Changing this updates + the protocol of an existing firewall rule.' + type: string + region: + type: string + sourceIpAddress: + description: The source IP address on which the firewall rule + operates. Changing this updates the source_ip_address of an + existing firewall rule. + type: string + sourcePort: + description: The source port on which the firewall rule operates. + Changing this updates the source_port of an existing firewall + rule. + type: string + tenantId: + description: The owner of the firewall rule. Required if admin + wants to create a firewall rule for another tenant. Changing + this creates a new firewall rule. + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + 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.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: RuleV2Status defines the observed state of RuleV2. + properties: + atProvider: + properties: + action: + description: Action to be taken ( must be "allow" or "deny") when + the firewall rule matches. Changing this updates the action + of an existing firewall rule. + type: string + description: + description: A description for the firewall rule. Changing this + updates the description of an existing firewall rule. + type: string + destinationIpAddress: + description: The destination IP address on which the firewall + rule operates. Changing this updates the destination_ip_address + of an existing firewall rule. + type: string + destinationPort: + description: The destination port on which the firewall rule operates. + Changing this updates the destination_port of an existing firewall + rule. + type: string + enabled: + description: Enabled status for the firewall rule (must be "true" + or "false" if provided - defaults to "true"). Changing this + updates the enabled status of an existing firewall rule. + type: boolean + id: + type: string + ipVersion: + description: IP version, either 4 (default) or 6. Changing this + updates the ip_version of an existing firewall rule. + type: number + name: + description: A unique name for the firewall rule. Changing this + updates the name of an existing firewall rule. + type: string + protocol: + description: 'The protocol type on which the firewall rule operates. + Valid values are: tcp, udp, icmp, and any. Changing this updates + the protocol of an existing firewall rule.' + type: string + region: + type: string + sourceIpAddress: + description: The source IP address on which the firewall rule + operates. Changing this updates the source_ip_address of an + existing firewall rule. + type: string + sourcePort: + description: The source port on which the firewall rule operates. + Changing this updates the source_port of an existing firewall + rule. + type: string + tenantId: + description: The owner of the firewall rule. Required if admin + wants to create a firewall rule for another tenant. Changing + this creates a new firewall rule. + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/identity.crossplane.io_agencyv3s.yaml b/package/crds/identity.crossplane.io_agencyv3s.yaml new file mode 100644 index 0000000..423f74e --- /dev/null +++ b/package/crds/identity.crossplane.io_agencyv3s.yaml @@ -0,0 +1,414 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: agencyv3s.identity.crossplane.io +spec: + group: identity.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: AgencyV3 + listKind: AgencyV3List + plural: agencyv3s + singular: agencyv3 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: AgencyV3 is the Schema for the AgencyV3s API. Manages a IAM Cgency + 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: AgencyV3Spec defines the desired state of AgencyV3 + 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: + delegatedDomainName: + description: The name of delegated domain. + type: string + description: + description: Provides supplementary information about the agency. + The value is a string of 0 to 255 characters. + type: string + domainRoles: + description: An array of role names which stand for the permissions + to be granted to agency on domain. + items: + type: string + type: array + name: + description: The name of agency. The name is a string of 1 to + 64 characters. + type: string + projectRole: + description: An array of roles and projects which are used to + grant permissions to agency on project. The structure is documented + below. + items: + properties: + project: + description: The name of project + type: string + roles: + description: An array of role names + items: + type: string + type: array + type: object + type: array + 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: + delegatedDomainName: + description: The name of delegated domain. + type: string + description: + description: Provides supplementary information about the agency. + The value is a string of 0 to 255 characters. + type: string + domainRoles: + description: An array of role names which stand for the permissions + to be granted to agency on domain. + items: + type: string + type: array + name: + description: The name of agency. The name is a string of 1 to + 64 characters. + type: string + projectRole: + description: An array of roles and projects which are used to + grant permissions to agency on project. The structure is documented + below. + items: + properties: + project: + description: The name of project + type: string + roles: + description: An array of role names + items: + type: string + type: array + type: object + type: array + 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.delegatedDomainName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.delegatedDomainName) + || (has(self.initProvider) && has(self.initProvider.delegatedDomainName))' + - message: spec.forProvider.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + status: + description: AgencyV3Status defines the observed state of AgencyV3. + properties: + atProvider: + properties: + createTime: + description: The time when the agency was created. + type: string + delegatedDomainName: + description: The name of delegated domain. + type: string + description: + description: Provides supplementary information about the agency. + The value is a string of 0 to 255 characters. + type: string + domainRoles: + description: An array of role names which stand for the permissions + to be granted to agency on domain. + items: + type: string + type: array + duration: + description: Validity period of an agency. The default value is + null, indicating that the agency is permanently valid. + type: string + expireTime: + description: The expiration time of agency + type: string + id: + description: The agency ID. + type: string + name: + description: The name of agency. The name is a string of 1 to + 64 characters. + type: string + projectRole: + description: An array of roles and projects which are used to + grant permissions to agency on project. The structure is documented + below. + items: + properties: + project: + description: The name of project + type: string + roles: + description: An array of role names + items: + type: string + type: array + type: object + type: array + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/identity.crossplane.io_credentialv3s.yaml b/package/crds/identity.crossplane.io_credentialv3s.yaml new file mode 100644 index 0000000..82559af --- /dev/null +++ b/package/crds/identity.crossplane.io_credentialv3s.yaml @@ -0,0 +1,348 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: credentialv3s.identity.crossplane.io +spec: + group: identity.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: CredentialV3 + listKind: CredentialV3List + plural: credentialv3s + singular: credentialv3 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: CredentialV3 is the Schema for the CredentialV3s API. Manages + a IAM Credential 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: CredentialV3Spec defines the desired state of CredentialV3 + 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: + description: + description: Description of the access key. + type: string + pgpKey: + description: Either a base-64 encoded PGP public key, or a keybase + username in the form keybase:some_person_that_exists. Changing + this creates a new resource. + type: string + status: + description: Status of the access key to be changed to. The value + can be active or inactive. + type: string + userId: + description: IAM user ID. If not set, will create AK/SK for yourself. + 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: + description: + description: Description of the access key. + type: string + pgpKey: + description: Either a base-64 encoded PGP public key, or a keybase + username in the form keybase:some_person_that_exists. Changing + this creates a new resource. + type: string + status: + description: Status of the access key to be changed to. The value + can be active or inactive. + type: string + userId: + description: IAM user ID. If not set, will create AK/SK for yourself. + 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 + status: + description: CredentialV3Status defines the observed state of CredentialV3. + properties: + atProvider: + properties: + createTime: + description: Time of the access key creation. + type: string + description: + description: Description of the access key. + type: string + id: + type: string + keyFingerprint: + type: string + lastUseTime: + description: Time of the access key last usage. + type: string + pgpKey: + description: Either a base-64 encoded PGP public key, or a keybase + username in the form keybase:some_person_that_exists. Changing + this creates a new resource. + type: string + status: + description: Status of the access key to be changed to. The value + can be active or inactive. + type: string + userId: + description: IAM user ID. If not set, will create AK/SK for yourself. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/identity.crossplane.io_groupmembershipv3s.yaml b/package/crds/identity.crossplane.io_groupmembershipv3s.yaml new file mode 100644 index 0000000..ace15bc --- /dev/null +++ b/package/crds/identity.crossplane.io_groupmembershipv3s.yaml @@ -0,0 +1,328 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: groupmembershipv3s.identity.crossplane.io +spec: + group: identity.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: GroupMembershipV3 + listKind: GroupMembershipV3List + plural: groupmembershipv3s + singular: groupmembershipv3 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: GroupMembershipV3 is the Schema for the GroupMembershipV3s API. + Manages a IAM Group Membership 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: GroupMembershipV3Spec defines the desired state of GroupMembershipV3 + 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: + group: + description: The group ID of this membership. + type: string + users: + description: A List of user IDs to associate to the group. + items: + type: string + type: array + 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: + group: + description: The group ID of this membership. + type: string + users: + description: A List of user IDs to associate to the group. + items: + type: string + type: array + 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.group is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.group) + || (has(self.initProvider) && has(self.initProvider.group))' + - message: spec.forProvider.users is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.users) + || (has(self.initProvider) && has(self.initProvider.users))' + status: + description: GroupMembershipV3Status defines the observed state of GroupMembershipV3. + properties: + atProvider: + properties: + group: + description: The group ID of this membership. + type: string + id: + type: string + users: + description: A List of user IDs to associate to the group. + items: + type: string + type: array + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/identity.crossplane.io_groupv3s.yaml b/package/crds/identity.crossplane.io_groupv3s.yaml new file mode 100644 index 0000000..b646ae4 --- /dev/null +++ b/package/crds/identity.crossplane.io_groupv3s.yaml @@ -0,0 +1,336 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: groupv3s.identity.crossplane.io +spec: + group: identity.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: GroupV3 + listKind: GroupV3List + plural: groupv3s + singular: groupv3 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: GroupV3 is the Schema for the GroupV3s API. Manages a IAM Group + 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: GroupV3Spec defines the desired state of GroupV3 + 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: + description: + description: A description of the group. + type: string + domainId: + description: The domain this group belongs to. + type: string + name: + description: The name of the group.The length is less than or + equal to 64 bytes. + type: string + region: + 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: + description: + description: A description of the group. + type: string + domainId: + description: The domain this group belongs to. + type: string + name: + description: The name of the group.The length is less than or + equal to 64 bytes. + type: string + region: + 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.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + status: + description: GroupV3Status defines the observed state of GroupV3. + properties: + atProvider: + properties: + description: + description: A description of the group. + type: string + domainId: + description: The domain this group belongs to. + type: string + id: + type: string + name: + description: The name of the group.The length is less than or + equal to 64 bytes. + type: string + region: + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/identity.crossplane.io_loginpolicyv3s.yaml b/package/crds/identity.crossplane.io_loginpolicyv3s.yaml new file mode 100644 index 0000000..bcfa964 --- /dev/null +++ b/package/crds/identity.crossplane.io_loginpolicyv3s.yaml @@ -0,0 +1,360 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: loginpolicyv3s.identity.crossplane.io +spec: + group: identity.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: LoginPolicyV3 + listKind: LoginPolicyV3List + plural: loginpolicyv3s + singular: loginpolicyv3 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: LoginPolicyV3 is the Schema for the LoginPolicyV3s API. Manages + a IAM Login 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: LoginPolicyV3Spec defines the desired state of LoginPolicyV3 + 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: + accountValidityPeriod: + description: = 0 + type: number + customInfoForLogin: + description: = "" + type: string + lockoutDuration: + description: = 15 + type: number + loginFailedTimes: + description: = 3 + type: number + periodWithLoginFailures: + description: = 60 + type: number + sessionTimeout: + description: = 1395 + type: number + showRecentLoginInfo: + description: = false + 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: + accountValidityPeriod: + description: = 0 + type: number + customInfoForLogin: + description: = "" + type: string + lockoutDuration: + description: = 15 + type: number + loginFailedTimes: + description: = 3 + type: number + periodWithLoginFailures: + description: = 60 + type: number + sessionTimeout: + description: = 1395 + type: number + showRecentLoginInfo: + description: = false + 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 + status: + description: LoginPolicyV3Status defines the observed state of LoginPolicyV3. + properties: + atProvider: + properties: + accountValidityPeriod: + description: = 0 + type: number + customInfoForLogin: + description: = "" + type: string + id: + description: The ID of account login policy, which is the same + as the domain ID. + type: string + lockoutDuration: + description: = 15 + type: number + loginFailedTimes: + description: = 3 + type: number + periodWithLoginFailures: + description: = 60 + type: number + sessionTimeout: + description: = 1395 + type: number + showRecentLoginInfo: + description: = false + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/identity.crossplane.io_mappingv3s.yaml b/package/crds/identity.crossplane.io_mappingv3s.yaml new file mode 100644 index 0000000..c92181d --- /dev/null +++ b/package/crds/identity.crossplane.io_mappingv3s.yaml @@ -0,0 +1,329 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: mappingv3s.identity.crossplane.io +spec: + group: identity.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: MappingV3 + listKind: MappingV3List + plural: mappingv3s + singular: mappingv3 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: MappingV3 is the Schema for the MappingV3s API. Manages a IAM + Mapping 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: MappingV3Spec defines the desired state of MappingV3 + 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: + mappingId: + description: The ID of the mapping. Changing this creates a new + mapping. + type: string + rules: + description: Rules used to map federated users to local users. + 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: + mappingId: + description: The ID of the mapping. Changing this creates a new + mapping. + type: string + rules: + description: Rules used to map federated users to local users. + 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.mappingId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.mappingId) + || (has(self.initProvider) && has(self.initProvider.mappingId))' + - message: spec.forProvider.rules is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.rules) + || (has(self.initProvider) && has(self.initProvider.rules))' + status: + description: MappingV3Status defines the observed state of MappingV3. + properties: + atProvider: + properties: + id: + type: string + links: + additionalProperties: + type: string + type: object + mappingId: + description: The ID of the mapping. Changing this creates a new + mapping. + type: string + rules: + description: Rules used to map federated users to local users. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/identity.crossplane.io_passwordpolicyv3s.yaml b/package/crds/identity.crossplane.io_passwordpolicyv3s.yaml new file mode 100644 index 0000000..ce54687 --- /dev/null +++ b/package/crds/identity.crossplane.io_passwordpolicyv3s.yaml @@ -0,0 +1,357 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: passwordpolicyv3s.identity.crossplane.io +spec: + group: identity.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: PasswordPolicyV3 + listKind: PasswordPolicyV3List + plural: passwordpolicyv3s + singular: passwordpolicyv3 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: PasswordPolicyV3 is the Schema for the PasswordPolicyV3s API. + Manages a IAM Password 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: PasswordPolicyV3Spec defines the desired state of PasswordPolicyV3 + 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: + maximumConsecutiveIdenticalChars: + description: = 0 + type: number + minimumPasswordAge: + description: = 0 + type: number + minimumPasswordLength: + description: = 8 + type: number + numberOfRecentPasswordsDisallowed: + description: = 1 + type: number + passwordNotUsernameOrInvert: + description: = true + type: boolean + passwordValidityPeriod: + description: = 0 + 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: + maximumConsecutiveIdenticalChars: + description: = 0 + type: number + minimumPasswordAge: + description: = 0 + type: number + minimumPasswordLength: + description: = 8 + type: number + numberOfRecentPasswordsDisallowed: + description: = 1 + type: number + passwordNotUsernameOrInvert: + description: = true + type: boolean + passwordValidityPeriod: + description: = 0 + 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 + status: + description: PasswordPolicyV3Status defines the observed state of PasswordPolicyV3. + properties: + atProvider: + properties: + id: + description: The ID of account password policy, which is the same + as the domain ID. + type: string + maximumConsecutiveIdenticalChars: + description: = 0 + type: number + maximumPasswordLength: + description: The maximum number of characters that a password + can contain. + type: number + minimumPasswordAge: + description: = 0 + type: number + minimumPasswordLength: + description: = 8 + type: number + numberOfRecentPasswordsDisallowed: + description: = 1 + type: number + passwordNotUsernameOrInvert: + description: = true + type: boolean + passwordRequirements: + type: string + passwordValidityPeriod: + description: = 0 + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/identity.crossplane.io_projectv3s.yaml b/package/crds/identity.crossplane.io_projectv3s.yaml new file mode 100644 index 0000000..1a9ac12 --- /dev/null +++ b/package/crds/identity.crossplane.io_projectv3s.yaml @@ -0,0 +1,358 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: projectv3s.identity.crossplane.io +spec: + group: identity.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: ProjectV3 + listKind: ProjectV3List + plural: projectv3s + singular: projectv3 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: ProjectV3 is the Schema for the ProjectV3s API. Manages a IAM + Project 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: ProjectV3Spec defines the desired state of ProjectV3 + 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: + description: + description: A description of the project. + type: string + domainId: + description: The domain this project belongs to. Changing this + creates a new Project. + type: string + name: + description: 'The name of the project. it must start with ID of + an existing region and be less than or equal to 64 characters. + Example: eu-de_project1.' + type: string + parentId: + description: The parent of this project. Changing this creates + a new Project. + type: string + region: + 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: + description: + description: A description of the project. + type: string + domainId: + description: The domain this project belongs to. Changing this + creates a new Project. + type: string + name: + description: 'The name of the project. it must start with ID of + an existing region and be less than or equal to 64 characters. + Example: eu-de_project1.' + type: string + parentId: + description: The parent of this project. Changing this creates + a new Project. + type: string + region: + 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.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + status: + description: ProjectV3Status defines the observed state of ProjectV3. + properties: + atProvider: + properties: + description: + description: A description of the project. + type: string + domainId: + description: The domain this project belongs to. Changing this + creates a new Project. + type: string + enabled: + type: boolean + id: + type: string + isDomain: + type: boolean + name: + description: 'The name of the project. it must start with ID of + an existing region and be less than or equal to 64 characters. + Example: eu-de_project1.' + type: string + parentId: + description: The parent of this project. Changing this creates + a new Project. + type: string + region: + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/null.template.upbound.io_resources.yaml b/package/crds/identity.crossplane.io_protectionpolicyv3s.yaml similarity index 89% rename from package/crds/null.template.upbound.io_resources.yaml rename to package/crds/identity.crossplane.io_protectionpolicyv3s.yaml index 04973c1..4db8fef 100644 --- a/package/crds/null.template.upbound.io_resources.yaml +++ b/package/crds/identity.crossplane.io_protectionpolicyv3s.yaml @@ -4,18 +4,18 @@ kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.13.0 - name: resources.null.template.upbound.io + name: protectionpolicyv3s.identity.crossplane.io spec: - group: null.template.upbound.io + group: identity.crossplane.io names: categories: - crossplane - managed - - template - kind: Resource - listKind: ResourceList - plural: resources - singular: resource + - opentelekomcloud + kind: ProtectionPolicyV3 + listKind: ProtectionPolicyV3List + plural: protectionpolicyv3s + singular: protectionpolicyv3 scope: Cluster versions: - additionalPrinterColumns: @@ -34,10 +34,8 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: Resource is the Schema for the Resources API. The null_resource - resource implements the standard resource lifecycle but takes no further - action. The triggers argument allows specifying an arbitrary set of values - that, when changed, will cause the resource to be replaced. + description: ProtectionPolicyV3 is the Schema for the ProtectionPolicyV3s + API. Manages a IAM Protection Policy resource within OpenTelekomCloud. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -52,7 +50,7 @@ spec: metadata: type: object spec: - description: ResourceSpec defines the desired state of Resource + description: ProtectionPolicyV3Spec defines the desired state of ProtectionPolicyV3 properties: deletionPolicy: default: Delete @@ -69,13 +67,9 @@ spec: type: string forProvider: properties: - triggers: - additionalProperties: - type: string - description: A map of arbitrary strings that, when changed, will - force the null resource to be replaced, re-running any associated - provisioners. - type: object + enableOperationProtectionPolicy: + description: = false + type: boolean type: object initProvider: description: THIS IS A BETA FIELD. It will be honored unless the Management @@ -89,13 +83,9 @@ spec: for example because of an external controller is managing them, like an autoscaler. properties: - triggers: - additionalProperties: - type: string - description: A map of arbitrary strings that, when changed, will - force the null resource to be replaced, re-running any associated - provisioners. - type: object + enableOperationProtectionPolicy: + description: = false + type: boolean type: object managementPolicies: default: @@ -258,19 +248,17 @@ spec: - forProvider type: object status: - description: ResourceStatus defines the observed state of Resource. + description: ProtectionPolicyV3Status defines the observed state of ProtectionPolicyV3. properties: atProvider: properties: + enableOperationProtectionPolicy: + description: = false + type: boolean id: + description: The ID of account protection policy, which is the + same as the domain ID. type: string - triggers: - additionalProperties: - type: string - description: A map of arbitrary strings that, when changed, will - force the null resource to be replaced, re-running any associated - provisioners. - type: object type: object conditions: description: Conditions of the resource. diff --git a/package/crds/identity.crossplane.io_protocolv3s.yaml b/package/crds/identity.crossplane.io_protocolv3s.yaml new file mode 100644 index 0000000..de330bd --- /dev/null +++ b/package/crds/identity.crossplane.io_protocolv3s.yaml @@ -0,0 +1,533 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: protocolv3s.identity.crossplane.io +spec: + group: identity.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: ProtocolV3 + listKind: ProtocolV3List + plural: protocolv3s + singular: protocolv3 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: ProtocolV3 is the Schema for the ProtocolV3s API. Manages a IAM + Protocol 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: ProtocolV3Spec defines the desired state of ProtocolV3 + 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: + accessConfig: + description: Specifies the description of the identity provider. + This field is required only if the protocol is set to oidc. + items: + properties: + accessType: + description: 'Specifies the access type of the identity + provider. Available options are:' + type: string + authorizationEndpoint: + description: Specifies the authorization endpoint of the + OpenID Connect identity provider. This field is required + only if the access type is set to program_console. + type: string + clientId: + description: Specifies the ID of a client registered with + the OpenID Connect identity provider. + type: string + providerUrl: + description: Specifies the URL of the identity provider. + This field corresponds to the iss field in the ID token. + type: string + responseMode: + description: Response mode. Valid values is form_post and + fragment, default value is form_post. This field is required + only if the access type is set to program_console. + type: string + responseType: + description: Response type. Valid values is id_token, default + value is id_token. This field is required only if the + access type is set to program_console. + type: string + scopes: + description: Specifies the scopes of authorization requests. + It is an array of one or more scopes. Valid values are + openid, email, profile and other values defined by you. + This field is required only if the access type is set + to program_console. + items: + type: string + type: array + signingKey: + description: Public key used to sign the ID token of the + OpenID Connect identity provider. This field is required + only if the protocol is set to oidc. + type: string + type: object + type: array + mappingId: + description: ID of an identity mapping. + type: string + metadata: + description: Metadata file configuration. + items: + properties: + domainId: + description: ID of the domain that a user belongs to. + type: string + metadata: + description: Metadata file configuration. + type: string + xaccountType: + description: Source of a domain. Blank by the default. + type: string + type: object + type: array + protocol: + description: ID of a protocol. Changing this creates a new protocol. + type: string + providerId: + description: ID of an identity provider. Changing this creates + a new protocol. + 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: + accessConfig: + description: Specifies the description of the identity provider. + This field is required only if the protocol is set to oidc. + items: + properties: + accessType: + description: 'Specifies the access type of the identity + provider. Available options are:' + type: string + authorizationEndpoint: + description: Specifies the authorization endpoint of the + OpenID Connect identity provider. This field is required + only if the access type is set to program_console. + type: string + clientId: + description: Specifies the ID of a client registered with + the OpenID Connect identity provider. + type: string + providerUrl: + description: Specifies the URL of the identity provider. + This field corresponds to the iss field in the ID token. + type: string + responseMode: + description: Response mode. Valid values is form_post and + fragment, default value is form_post. This field is required + only if the access type is set to program_console. + type: string + responseType: + description: Response type. Valid values is id_token, default + value is id_token. This field is required only if the + access type is set to program_console. + type: string + scopes: + description: Specifies the scopes of authorization requests. + It is an array of one or more scopes. Valid values are + openid, email, profile and other values defined by you. + This field is required only if the access type is set + to program_console. + items: + type: string + type: array + signingKey: + description: Public key used to sign the ID token of the + OpenID Connect identity provider. This field is required + only if the protocol is set to oidc. + type: string + type: object + type: array + mappingId: + description: ID of an identity mapping. + type: string + metadata: + description: Metadata file configuration. + items: + properties: + domainId: + description: ID of the domain that a user belongs to. + type: string + metadata: + description: Metadata file configuration. + type: string + xaccountType: + description: Source of a domain. Blank by the default. + type: string + type: object + type: array + protocol: + description: ID of a protocol. Changing this creates a new protocol. + type: string + providerId: + description: ID of an identity provider. Changing this creates + a new protocol. + 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.mappingId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.mappingId) + || (has(self.initProvider) && has(self.initProvider.mappingId))' + - 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.providerId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.providerId) + || (has(self.initProvider) && has(self.initProvider.providerId))' + status: + description: ProtocolV3Status defines the observed state of ProtocolV3. + properties: + atProvider: + properties: + accessConfig: + description: Specifies the description of the identity provider. + This field is required only if the protocol is set to oidc. + items: + properties: + accessType: + description: 'Specifies the access type of the identity + provider. Available options are:' + type: string + authorizationEndpoint: + description: Specifies the authorization endpoint of the + OpenID Connect identity provider. This field is required + only if the access type is set to program_console. + type: string + clientId: + description: Specifies the ID of a client registered with + the OpenID Connect identity provider. + type: string + providerUrl: + description: Specifies the URL of the identity provider. + This field corresponds to the iss field in the ID token. + type: string + responseMode: + description: Response mode. Valid values is form_post and + fragment, default value is form_post. This field is required + only if the access type is set to program_console. + type: string + responseType: + description: Response type. Valid values is id_token, default + value is id_token. This field is required only if the + access type is set to program_console. + type: string + scopes: + description: Specifies the scopes of authorization requests. + It is an array of one or more scopes. Valid values are + openid, email, profile and other values defined by you. + This field is required only if the access type is set + to program_console. + items: + type: string + type: array + signingKey: + description: Public key used to sign the ID token of the + OpenID Connect identity provider. This field is required + only if the protocol is set to oidc. + type: string + type: object + type: array + id: + type: string + links: + additionalProperties: + type: string + description: Resource links of an identity protocol, including + identity_provider and self. + type: object + mappingId: + description: ID of an identity mapping. + type: string + metadata: + description: Metadata file configuration. + items: + properties: + domainId: + description: ID of the domain that a user belongs to. + type: string + metadata: + description: Metadata file configuration. + type: string + xaccountType: + description: Source of a domain. Blank by the default. + type: string + type: object + type: array + protocol: + description: ID of a protocol. Changing this creates a new protocol. + type: string + providerId: + description: ID of an identity provider. Changing this creates + a new protocol. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/identity.crossplane.io_providers.yaml b/package/crds/identity.crossplane.io_providers.yaml new file mode 100644 index 0000000..b641180 --- /dev/null +++ b/package/crds/identity.crossplane.io_providers.yaml @@ -0,0 +1,591 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: providers.identity.crossplane.io +spec: + group: identity.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: Provider + listKind: ProviderList + plural: providers + singular: provider + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: Provider is the Schema for the Providers API. Manages a IAM Provider + 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: ProviderSpec defines the desired state of Provider + 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: + accessConfig: + description: Specifies the description of the identity provider. + This field is required only if the protocol is set to oidc. + items: + properties: + accessType: + description: 'Specifies the access type of the identity + provider. Available options are:' + type: string + authorizationEndpoint: + description: Specifies the authorization endpoint of the + OpenID Connect identity provider. This field is required + only if the access type is set to program_console. + type: string + clientId: + description: Specifies the ID of a client registered with + the OpenID Connect identity provider. + type: string + providerUrl: + description: Specifies the URL of the identity provider. + This field corresponds to the iss field in the ID token. + type: string + responseMode: + description: Response mode. Valid values is form_post and + fragment, default value is form_post. This field is required + only if the access type is set to program_console. + type: string + responseType: + description: Response type. Valid values is id_token, default + value is id_token. This field is required only if the + access type is set to program_console. + type: string + scopes: + description: Specifies the scopes of authorization requests. + It is an array of one or more scopes. Valid values are + openid, email, profile and other values defined by you. + This field is required only if the access type is set + to program_console. + items: + type: string + type: array + signingKey: + description: Public key used to sign the ID token of the + OpenID Connect identity provider. This field is required + only if the protocol is set to oidc. + type: string + type: object + type: array + description: + description: Specifies the description of the identity provider. + type: string + mappingRules: + description: Rules used to map federated users to local users. + Details on mapping_rules are available in this link under rules + section. + type: string + metadata: + description: Specifies the metadata of the IDP(Identity Provider) + server. This field is used to import a metadata file to IAM + to implement federated identity authentication. This field is + required only if the protocol is set to saml. The maximum length + is 30,000 characters and it stores in the state with SHA1 algorithm. + type: string + name: + description: Specifies the name of the identity provider to be + registered. The maximum length is 64 characters. Only letters, + digits, underscores (_), and hyphens (-) are allowed. The name + is unique, it is recommended to include domain name information. + Changing this creates a new resource. + type: string + protocol: + description: Specifies the protocol of the identity provider. + Valid values are saml and oidc. + type: string + status: + description: 'Enabled status for the identity provider. Default: + true.' + 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: + accessConfig: + description: Specifies the description of the identity provider. + This field is required only if the protocol is set to oidc. + items: + properties: + accessType: + description: 'Specifies the access type of the identity + provider. Available options are:' + type: string + authorizationEndpoint: + description: Specifies the authorization endpoint of the + OpenID Connect identity provider. This field is required + only if the access type is set to program_console. + type: string + clientId: + description: Specifies the ID of a client registered with + the OpenID Connect identity provider. + type: string + providerUrl: + description: Specifies the URL of the identity provider. + This field corresponds to the iss field in the ID token. + type: string + responseMode: + description: Response mode. Valid values is form_post and + fragment, default value is form_post. This field is required + only if the access type is set to program_console. + type: string + responseType: + description: Response type. Valid values is id_token, default + value is id_token. This field is required only if the + access type is set to program_console. + type: string + scopes: + description: Specifies the scopes of authorization requests. + It is an array of one or more scopes. Valid values are + openid, email, profile and other values defined by you. + This field is required only if the access type is set + to program_console. + items: + type: string + type: array + signingKey: + description: Public key used to sign the ID token of the + OpenID Connect identity provider. This field is required + only if the protocol is set to oidc. + type: string + type: object + type: array + description: + description: Specifies the description of the identity provider. + type: string + mappingRules: + description: Rules used to map federated users to local users. + Details on mapping_rules are available in this link under rules + section. + type: string + metadata: + description: Specifies the metadata of the IDP(Identity Provider) + server. This field is used to import a metadata file to IAM + to implement federated identity authentication. This field is + required only if the protocol is set to saml. The maximum length + is 30,000 characters and it stores in the state with SHA1 algorithm. + type: string + name: + description: Specifies the name of the identity provider to be + registered. The maximum length is 64 characters. Only letters, + digits, underscores (_), and hyphens (-) are allowed. The name + is unique, it is recommended to include domain name information. + Changing this creates a new resource. + type: string + protocol: + description: Specifies the protocol of the identity provider. + Valid values are saml and oidc. + type: string + status: + description: 'Enabled status for the identity provider. Default: + true.' + 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.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + - 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: ProviderStatus defines the observed state of Provider. + properties: + atProvider: + properties: + accessConfig: + description: Specifies the description of the identity provider. + This field is required only if the protocol is set to oidc. + items: + properties: + accessType: + description: 'Specifies the access type of the identity + provider. Available options are:' + type: string + authorizationEndpoint: + description: Specifies the authorization endpoint of the + OpenID Connect identity provider. This field is required + only if the access type is set to program_console. + type: string + clientId: + description: Specifies the ID of a client registered with + the OpenID Connect identity provider. + type: string + providerUrl: + description: Specifies the URL of the identity provider. + This field corresponds to the iss field in the ID token. + type: string + responseMode: + description: Response mode. Valid values is form_post and + fragment, default value is form_post. This field is required + only if the access type is set to program_console. + type: string + responseType: + description: Response type. Valid values is id_token, default + value is id_token. This field is required only if the + access type is set to program_console. + type: string + scopes: + description: Specifies the scopes of authorization requests. + It is an array of one or more scopes. Valid values are + openid, email, profile and other values defined by you. + This field is required only if the access type is set + to program_console. + items: + type: string + type: array + signingKey: + description: Public key used to sign the ID token of the + OpenID Connect identity provider. This field is required + only if the protocol is set to oidc. + type: string + type: object + type: array + conversionRules: + description: The identity conversion rules of the identity provider. + The structure is documented below. + items: + properties: + local: + description: The federated user information on the cloud + platform. + items: + properties: + group: + description: The user group to which the federated + user belongs on the cloud platform. + type: string + groups: + description: The user groups to which the federated + user belongs on the cloud platform. + type: string + username: + description: The name of a federated user on the cloud + platform. + type: string + type: object + type: array + remote: + description: The description of the identity provider. + items: + properties: + attribute: + description: The attribute in the IDP assertion. + type: string + condition: + description: The condition of conversion rule. + type: string + value: + description: The rule is matched only if the specified + strings appear in the attribute type. + items: + type: string + type: array + type: object + type: array + type: object + type: array + description: + description: Specifies the description of the identity provider. + type: string + id: + description: A resource ID in UUID format. + type: string + links: + additionalProperties: + type: string + description: Resource links of an identity mapping. + type: object + loginLink: + description: The login link of the identity provider. + type: string + mappingRules: + description: Rules used to map federated users to local users. + Details on mapping_rules are available in this link under rules + section. + type: string + metadata: + description: Specifies the metadata of the IDP(Identity Provider) + server. This field is used to import a metadata file to IAM + to implement federated identity authentication. This field is + required only if the protocol is set to saml. The maximum length + is 30,000 characters and it stores in the state with SHA1 algorithm. + type: string + name: + description: Specifies the name of the identity provider to be + registered. The maximum length is 64 characters. Only letters, + digits, underscores (_), and hyphens (-) are allowed. The name + is unique, it is recommended to include domain name information. + Changing this creates a new resource. + type: string + protocol: + description: Specifies the protocol of the identity provider. + Valid values are saml and oidc. + type: string + status: + description: 'Enabled status for the identity provider. Default: + true.' + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/identity.crossplane.io_providerv3s.yaml b/package/crds/identity.crossplane.io_providerv3s.yaml new file mode 100644 index 0000000..2fb4ed0 --- /dev/null +++ b/package/crds/identity.crossplane.io_providerv3s.yaml @@ -0,0 +1,341 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: providerv3s.identity.crossplane.io +spec: + group: identity.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: ProviderV3 + listKind: ProviderV3List + plural: providerv3s + singular: providerv3 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: ProviderV3 is the Schema for the ProviderV3s API. Manages a IAM + Provider v3 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: ProviderV3Spec defines the desired state of ProviderV3 + 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: + description: + description: A description of the provider. + type: string + enabled: + description: Whether an identity provider is enabled. Default + value is false. + type: boolean + name: + description: The name (ID) of the provider. Changing this creates + a new provider. + 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: + description: + description: A description of the provider. + type: string + enabled: + description: Whether an identity provider is enabled. Default + value is false. + type: boolean + name: + description: The name (ID) of the provider. Changing this creates + a new provider. + 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.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + status: + description: ProviderV3Status defines the observed state of ProviderV3. + properties: + atProvider: + properties: + description: + description: A description of the provider. + type: string + enabled: + description: Whether an identity provider is enabled. Default + value is false. + type: boolean + id: + type: string + links: + additionalProperties: + type: string + type: object + name: + description: The name (ID) of the provider. Changing this creates + a new provider. + type: string + remoteIds: + items: + type: string + type: array + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/identity.crossplane.io_roleassignmentv3s.yaml b/package/crds/identity.crossplane.io_roleassignmentv3s.yaml new file mode 100644 index 0000000..0dcc513 --- /dev/null +++ b/package/crds/identity.crossplane.io_roleassignmentv3s.yaml @@ -0,0 +1,425 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: roleassignmentv3s.identity.crossplane.io +spec: + group: identity.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: RoleAssignmentV3 + listKind: RoleAssignmentV3List + plural: roleassignmentv3s + singular: roleassignmentv3 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: RoleAssignmentV3 is the Schema for the RoleAssignmentV3s API. + Manages a IAM Role Assignment 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: RoleAssignmentV3Spec defines the desired state of RoleAssignmentV3 + 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: + allProjects: + description: Whether to assign role for all existing and future + projects. domain_id has to be specified if all_projects is set + to true. + type: boolean + domainId: + description: The domain to assign the role in. + type: string + groupId: + description: The group to assign the role to. + type: string + projectId: + description: The project to assign the role in. + type: string + projectIdRef: + description: Reference to a ProjectV3 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 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 + roleId: + description: The role to assign. + 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: + allProjects: + description: Whether to assign role for all existing and future + projects. domain_id has to be specified if all_projects is set + to true. + type: boolean + domainId: + description: The domain to assign the role in. + type: string + groupId: + description: The group to assign the role to. + type: string + roleId: + description: The role to assign. + 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.groupId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.groupId) + || (has(self.initProvider) && has(self.initProvider.groupId))' + - message: spec.forProvider.roleId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.roleId) + || (has(self.initProvider) && has(self.initProvider.roleId))' + status: + description: RoleAssignmentV3Status defines the observed state of RoleAssignmentV3. + properties: + atProvider: + properties: + allProjects: + description: Whether to assign role for all existing and future + projects. domain_id has to be specified if all_projects is set + to true. + type: boolean + domainId: + description: The domain to assign the role in. + type: string + groupId: + description: The group to assign the role to. + type: string + id: + type: string + projectId: + description: The project to assign the role in. + type: string + roleId: + description: The role to assign. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/identity.crossplane.io_rolev3s.yaml b/package/crds/identity.crossplane.io_rolev3s.yaml new file mode 100644 index 0000000..48986c0 --- /dev/null +++ b/package/crds/identity.crossplane.io_rolev3s.yaml @@ -0,0 +1,480 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: rolev3s.identity.crossplane.io +spec: + group: identity.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: RoleV3 + listKind: RoleV3List + plural: rolev3s + singular: rolev3 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: RoleV3 is the Schema for the RoleV3s API. Manages a IAM Role + 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: RoleV3Spec defines the desired state of RoleV3 + 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: + description: + description: Description of a role. The value cannot exceed 256 + characters. + type: string + displayLayer: + description: Display layer of a role. + type: string + displayName: + description: Displayed name of a role. The value cannot exceed + 64 characters. + type: string + statement: + description: 'Statement: The Statement field contains the Effect + and Action elements. Effect indicates whether the policy allows + or denies access. Action indicates authorization items. The + number of statements cannot exceed 8. Structure is documented + below.' + items: + properties: + action: + description: 'Permission set, which specifies the operation + permissions on resources. The number of permission sets + cannot exceed 100. Format: The value format is Service + name:Resource type:Action, for example, vpc:ports:create. + Service name: indicates the product name, such as ecs, + evs, or vpc. Only lowercase letters are allowed. Resource + type and Action: The values are case-insensitive, and + the wildcard () are allowed. A wildcard () can represent + all or part of information about resource types and actions + for the specific service.' + items: + type: string + type: array + condition: + description: The conditions for the permission to take effect. + A maximum of 10 conditions are allowed. Conditions should + be provided as string as in example above. + type: string + effect: + description: The value can be Allow and Deny. If both Allow + and Deny are found in statements, the policy evaluation + starts with Deny. + type: string + resource: + description: 'The resources which will be granted/denied + accesses. Format: Service:*:*:resource:resource_path. + Examples: KMS:*:*:KeyId:your_key, OBS:*:*:bucket:your_bucket, + OBS:*:*:object:your_object.' + items: + type: string + type: array + type: object + type: array + 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: + description: + description: Description of a role. The value cannot exceed 256 + characters. + type: string + displayLayer: + description: Display layer of a role. + type: string + displayName: + description: Displayed name of a role. The value cannot exceed + 64 characters. + type: string + statement: + description: 'Statement: The Statement field contains the Effect + and Action elements. Effect indicates whether the policy allows + or denies access. Action indicates authorization items. The + number of statements cannot exceed 8. Structure is documented + below.' + items: + properties: + action: + description: 'Permission set, which specifies the operation + permissions on resources. The number of permission sets + cannot exceed 100. Format: The value format is Service + name:Resource type:Action, for example, vpc:ports:create. + Service name: indicates the product name, such as ecs, + evs, or vpc. Only lowercase letters are allowed. Resource + type and Action: The values are case-insensitive, and + the wildcard () are allowed. A wildcard () can represent + all or part of information about resource types and actions + for the specific service.' + items: + type: string + type: array + condition: + description: The conditions for the permission to take effect. + A maximum of 10 conditions are allowed. Conditions should + be provided as string as in example above. + type: string + effect: + description: The value can be Allow and Deny. If both Allow + and Deny are found in statements, the policy evaluation + starts with Deny. + type: string + resource: + description: 'The resources which will be granted/denied + accesses. Format: Service:*:*:resource:resource_path. + Examples: KMS:*:*:KeyId:your_key, OBS:*:*:bucket:your_bucket, + OBS:*:*:object:your_object.' + items: + type: string + type: array + type: object + type: array + 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.description is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.description) + || (has(self.initProvider) && has(self.initProvider.description))' + - message: spec.forProvider.displayLayer is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.displayLayer) + || (has(self.initProvider) && has(self.initProvider.displayLayer))' + - message: spec.forProvider.displayName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.displayName) + || (has(self.initProvider) && has(self.initProvider.displayName))' + - message: spec.forProvider.statement is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.statement) + || (has(self.initProvider) && has(self.initProvider.statement))' + status: + description: RoleV3Status defines the observed state of RoleV3. + properties: + atProvider: + properties: + catalog: + description: Directory where a role locates + type: string + description: + description: Description of a role. The value cannot exceed 256 + characters. + type: string + displayLayer: + description: Display layer of a role. + type: string + displayName: + description: Displayed name of a role. The value cannot exceed + 64 characters. + type: string + domainId: + description: ID of the domain to which a role belongs + type: string + id: + type: string + name: + description: Name of a role + type: string + statement: + description: 'Statement: The Statement field contains the Effect + and Action elements. Effect indicates whether the policy allows + or denies access. Action indicates authorization items. The + number of statements cannot exceed 8. Structure is documented + below.' + items: + properties: + action: + description: 'Permission set, which specifies the operation + permissions on resources. The number of permission sets + cannot exceed 100. Format: The value format is Service + name:Resource type:Action, for example, vpc:ports:create. + Service name: indicates the product name, such as ecs, + evs, or vpc. Only lowercase letters are allowed. Resource + type and Action: The values are case-insensitive, and + the wildcard () are allowed. A wildcard () can represent + all or part of information about resource types and actions + for the specific service.' + items: + type: string + type: array + condition: + description: The conditions for the permission to take effect. + A maximum of 10 conditions are allowed. Conditions should + be provided as string as in example above. + type: string + effect: + description: The value can be Allow and Deny. If both Allow + and Deny are found in statements, the policy evaluation + starts with Deny. + type: string + resource: + description: 'The resources which will be granted/denied + accesses. Format: Service:*:*:resource:resource_path. + Examples: KMS:*:*:KeyId:your_key, OBS:*:*:bucket:your_bucket, + OBS:*:*:object:your_object.' + items: + type: string + type: array + type: object + type: array + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/identity.crossplane.io_usergroupmembershipv3s.yaml b/package/crds/identity.crossplane.io_usergroupmembershipv3s.yaml new file mode 100644 index 0000000..d0ec642 --- /dev/null +++ b/package/crds/identity.crossplane.io_usergroupmembershipv3s.yaml @@ -0,0 +1,329 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: usergroupmembershipv3s.identity.crossplane.io +spec: + group: identity.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: UserGroupMembershipV3 + listKind: UserGroupMembershipV3List + plural: usergroupmembershipv3s + singular: usergroupmembershipv3 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: UserGroupMembershipV3 is the Schema for the UserGroupMembershipV3s + API. Manages a IAM User Group Membership 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: UserGroupMembershipV3Spec defines the desired state of UserGroupMembershipV3 + 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: + groups: + description: IDs of the groups for the user to be assigned to. + items: + type: string + type: array + user: + description: ID of a user. + 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: + groups: + description: IDs of the groups for the user to be assigned to. + items: + type: string + type: array + user: + description: ID of a user. + 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.groups is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.groups) + || (has(self.initProvider) && has(self.initProvider.groups))' + - message: spec.forProvider.user is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.user) + || (has(self.initProvider) && has(self.initProvider.user))' + status: + description: UserGroupMembershipV3Status defines the observed state of + UserGroupMembershipV3. + properties: + atProvider: + properties: + groups: + description: IDs of the groups for the user to be assigned to. + items: + type: string + type: array + id: + type: string + user: + description: ID of a user. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/identity.crossplane.io_userv3s.yaml b/package/crds/identity.crossplane.io_userv3s.yaml new file mode 100644 index 0000000..627fbfc --- /dev/null +++ b/package/crds/identity.crossplane.io_userv3s.yaml @@ -0,0 +1,495 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: userv3s.identity.crossplane.io +spec: + group: identity.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: UserV3 + listKind: UserV3List + plural: userv3s + singular: userv3 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: UserV3 is the Schema for the UserV3s API. Manages a IAM User + 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: UserV3Spec defines the desired state of UserV3 + 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: + accessType: + description: 'Specifies the access type of the user. Available + values are:' + type: string + countryCode: + description: Specifies the country code. This parameter must be + used together with phone. + type: string + description: + description: Specifies the description of the user. + type: string + email: + description: Specifies the email address with a maximum of 255 + characters. + type: string + enabled: + description: Specifies whether the user is enabled or disabled. + Valid values are true and false. + type: boolean + loginProtection: + description: 'Login protection configuration. The login_protection + block supports:' + items: + properties: + enabled: + description: Specifies whether the user is enabled or disabled. + Valid values are true and false. + type: boolean + verificationMethod: + description: 'Login authentication method of the user. Options: + sms, email, and vmfa.' + type: string + type: object + type: array + name: + description: Specifies the name of the user. The user name consists + of 5 to 32 characters. It can contain only uppercase letters, + lowercase letters, digits, spaces, and special characters (-_) + and cannot start with a digit. + type: string + passwordSecretRef: + description: 'Specifies the password for the user with 6 to 32 + characters. It must contain at least two of the following character + types: uppercase letters, lowercase letters, digits, and special + characters.' + properties: + key: + description: The key to select. + type: string + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - key + - name + - namespace + type: object + phone: + description: Specifies the mobile number with a maximum of 32 + digits. This parameter must be used together with country_code. + type: string + pwdReset: + description: Specifies whether the password should be reset. By + default, the password is asked to reset at the first login. + type: boolean + sendWelcomeEmail: + description: Whether to send a Welcome Email or not. Possible + values are true and false. + 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: + accessType: + description: 'Specifies the access type of the user. Available + values are:' + type: string + countryCode: + description: Specifies the country code. This parameter must be + used together with phone. + type: string + description: + description: Specifies the description of the user. + type: string + email: + description: Specifies the email address with a maximum of 255 + characters. + type: string + enabled: + description: Specifies whether the user is enabled or disabled. + Valid values are true and false. + type: boolean + loginProtection: + description: 'Login protection configuration. The login_protection + block supports:' + items: + properties: + enabled: + description: Specifies whether the user is enabled or disabled. + Valid values are true and false. + type: boolean + verificationMethod: + description: 'Login authentication method of the user. Options: + sms, email, and vmfa.' + type: string + type: object + type: array + name: + description: Specifies the name of the user. The user name consists + of 5 to 32 characters. It can contain only uppercase letters, + lowercase letters, digits, spaces, and special characters (-_) + and cannot start with a digit. + type: string + phone: + description: Specifies the mobile number with a maximum of 32 + digits. This parameter must be used together with country_code. + type: string + pwdReset: + description: Specifies whether the password should be reset. By + default, the password is asked to reset at the first login. + type: boolean + sendWelcomeEmail: + description: Whether to send a Welcome Email or not. Possible + values are true and false. + 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.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + status: + description: UserV3Status defines the observed state of UserV3. + properties: + atProvider: + properties: + accessType: + description: 'Specifies the access type of the user. Available + values are:' + type: string + countryCode: + description: Specifies the country code. This parameter must be + used together with phone. + type: string + createTime: + description: The time when the IAM user was created. + type: string + description: + description: Specifies the description of the user. + type: string + domainId: + description: The domain user belongs to. + type: string + email: + description: Specifies the email address with a maximum of 255 + characters. + type: string + enabled: + description: Specifies whether the user is enabled or disabled. + Valid values are true and false. + type: boolean + id: + description: The resource ID in UUID format. + type: string + lastLogin: + description: The time when the IAM user last login. + type: string + loginProtection: + description: 'Login protection configuration. The login_protection + block supports:' + items: + properties: + enabled: + description: Specifies whether the user is enabled or disabled. + Valid values are true and false. + type: boolean + verificationMethod: + description: 'Login authentication method of the user. Options: + sms, email, and vmfa.' + type: string + type: object + type: array + name: + description: Specifies the name of the user. The user name consists + of 5 to 32 characters. It can contain only uppercase letters, + lowercase letters, digits, spaces, and special characters (-_) + and cannot start with a digit. + type: string + passwordStrength: + description: Indicates the password strength. + type: string + phone: + description: Specifies the mobile number with a maximum of 32 + digits. This parameter must be used together with country_code. + type: string + pwdReset: + description: Specifies whether the password should be reset. By + default, the password is asked to reset at the first login. + type: boolean + sendWelcomeEmail: + description: Whether to send a Welcome Email or not. Possible + values are true and false. + type: boolean + xuserId: + description: ID of the user in the external system. + type: string + xuserType: + description: Type of the user in the external system. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/images.crossplane.io_imageaccessacceptv2s.yaml b/package/crds/images.crossplane.io_imageaccessacceptv2s.yaml new file mode 100644 index 0000000..99aab1b --- /dev/null +++ b/package/crds/images.crossplane.io_imageaccessacceptv2s.yaml @@ -0,0 +1,349 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: imageaccessacceptv2s.images.crossplane.io +spec: + group: images.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: ImageAccessAcceptV2 + listKind: ImageAccessAcceptV2List + plural: imageaccessacceptv2s + singular: imageaccessacceptv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: ImageAccessAcceptV2 is the Schema for the ImageAccessAcceptV2s + API. Manages an Image Sharing Accept 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: ImageAccessAcceptV2Spec defines the desired state of ImageAccessAcceptV2 + 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: + imageId: + description: The proposed image ID. + type: string + memberId: + description: The member ID, e.g. the target project ID. + type: string + status: + description: The membership proposal status. Can either be accepted, + rejected or pending. + 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: + imageId: + description: The proposed image ID. + type: string + memberId: + description: The member ID, e.g. the target project ID. + type: string + status: + description: The membership proposal status. Can either be accepted, + rejected or pending. + 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.imageId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.imageId) + || (has(self.initProvider) && has(self.initProvider.imageId))' + - message: spec.forProvider.memberId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.memberId) + || (has(self.initProvider) && has(self.initProvider.memberId))' + - message: spec.forProvider.status is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.status) + || (has(self.initProvider) && has(self.initProvider.status))' + status: + description: ImageAccessAcceptV2Status defines the observed state of ImageAccessAcceptV2. + properties: + atProvider: + properties: + createdAt: + description: Specifies the time when a shared image was created. + The value is in UTC format. + type: string + id: + type: string + imageId: + description: The proposed image ID. + type: string + memberId: + description: The member ID, e.g. the target project ID. + type: string + schema: + description: Specifies the sharing schema. + type: string + status: + description: The membership proposal status. Can either be accepted, + rejected or pending. + type: string + updatedAt: + description: Specifies the time when a shared image was updated. + The value is in UTC format. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/images.crossplane.io_imageaccessv2s.yaml b/package/crds/images.crossplane.io_imageaccessv2s.yaml new file mode 100644 index 0000000..4a20bea --- /dev/null +++ b/package/crds/images.crossplane.io_imageaccessv2s.yaml @@ -0,0 +1,352 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: imageaccessv2s.images.crossplane.io +spec: + group: images.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: ImageAccessV2 + listKind: ImageAccessV2List + plural: imageaccessv2s + singular: imageaccessv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: ImageAccessV2 is the Schema for the ImageAccessV2s API. Manages + an Image Sharing 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: ImageAccessV2Spec defines the desired state of ImageAccessV2 + 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: + imageId: + description: The proposed image ID. + type: string + memberId: + description: The member ID, e.g. the target project ID. Optional + for admin accounts. Defaults to the current scope project ID. + type: string + status: + description: The member proposal status. Optional if admin wants + to force the member proposal acceptance. Can either be accepted, + rejected or pending. Defaults to pending. Forbidden for non-admin + users. + 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: + imageId: + description: The proposed image ID. + type: string + memberId: + description: The member ID, e.g. the target project ID. Optional + for admin accounts. Defaults to the current scope project ID. + type: string + status: + description: The member proposal status. Optional if admin wants + to force the member proposal acceptance. Can either be accepted, + rejected or pending. Defaults to pending. Forbidden for non-admin + users. + 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.imageId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.imageId) + || (has(self.initProvider) && has(self.initProvider.imageId))' + - message: spec.forProvider.memberId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.memberId) + || (has(self.initProvider) && has(self.initProvider.memberId))' + status: + description: ImageAccessV2Status defines the observed state of ImageAccessV2. + properties: + atProvider: + properties: + createdAt: + description: Specifies the time when a shared image was created. + The value is in UTC format. + type: string + id: + type: string + imageId: + description: The proposed image ID. + type: string + memberId: + description: The member ID, e.g. the target project ID. Optional + for admin accounts. Defaults to the current scope project ID. + type: string + schema: + description: Specifies the sharing schema. + type: string + status: + description: The member proposal status. Optional if admin wants + to force the member proposal acceptance. Can either be accepted, + rejected or pending. Defaults to pending. Forbidden for non-admin + users. + type: string + updateAt: + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/images.crossplane.io_imagev2s.yaml b/package/crds/images.crossplane.io_imagev2s.yaml new file mode 100644 index 0000000..9f45606 --- /dev/null +++ b/package/crds/images.crossplane.io_imagev2s.yaml @@ -0,0 +1,498 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: imagev2s.images.crossplane.io +spec: + group: images.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: ImageV2 + listKind: ImageV2List + plural: imagev2s + singular: imagev2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: ImageV2 is the Schema for the ImageV2s API. Manages an Image + Management 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: ImageV2Spec defines the desired state of ImageV2 + 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: + containerFormat: + description: The container format. Must be one of ami, ari, aki, + bare, ovf. + type: string + diskFormat: + description: The disk format. Must be one of ami, ari, aki, vhd, + vmdk, raw, qcow2, vdi, iso. + type: string + imageCachePath: + description: This is the directory where the images will be downloaded. + Images will be stored with a filename corresponding to the url's + md5 hash. Defaults to "$HOME/ + type: string + imageSourceUrl: + description: This is the url of the raw image that will be downloaded + in the image_cache_path before being uploaded to Glance. Glance + is able to download image from internet but the gophercloud + library does not yet provide a way to do so. Conflicts with + local_file_path. + type: string + localFilePath: + description: This is the filepath of the raw image file that will + be uploaded to Glance. Conflicts with image_source_url. + type: string + minDiskGb: + description: Amount of disk space (in GB) required to boot image. + Defaults to 0. + type: number + minRamMb: + description: Amount of ram (in MB) required to boot image. Defauts + to 0. + type: number + name: + description: The name of the image. + type: string + protected: + description: If true, image will not be deletable. Defaults to + false. + type: boolean + region: + type: string + tags: + description: The tags of the image. It must be a list of strings. + At this time, it is not possible to delete all tags of an image. + items: + type: string + type: array + visibility: + description: The visibility of the image. Must be one of "public", + "private", "community", or "shared". The ability to set the + visibility depends upon the configuration of the OpenTelekomCloud + cloud. + 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: + containerFormat: + description: The container format. Must be one of ami, ari, aki, + bare, ovf. + type: string + diskFormat: + description: The disk format. Must be one of ami, ari, aki, vhd, + vmdk, raw, qcow2, vdi, iso. + type: string + imageCachePath: + description: This is the directory where the images will be downloaded. + Images will be stored with a filename corresponding to the url's + md5 hash. Defaults to "$HOME/ + type: string + imageSourceUrl: + description: This is the url of the raw image that will be downloaded + in the image_cache_path before being uploaded to Glance. Glance + is able to download image from internet but the gophercloud + library does not yet provide a way to do so. Conflicts with + local_file_path. + type: string + localFilePath: + description: This is the filepath of the raw image file that will + be uploaded to Glance. Conflicts with image_source_url. + type: string + minDiskGb: + description: Amount of disk space (in GB) required to boot image. + Defaults to 0. + type: number + minRamMb: + description: Amount of ram (in MB) required to boot image. Defauts + to 0. + type: number + name: + description: The name of the image. + type: string + protected: + description: If true, image will not be deletable. Defaults to + false. + type: boolean + region: + type: string + tags: + description: The tags of the image. It must be a list of strings. + At this time, it is not possible to delete all tags of an image. + items: + type: string + type: array + visibility: + description: The visibility of the image. Must be one of "public", + "private", "community", or "shared". The ability to set the + visibility depends upon the configuration of the OpenTelekomCloud + cloud. + 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.containerFormat is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.containerFormat) + || (has(self.initProvider) && has(self.initProvider.containerFormat))' + - message: spec.forProvider.diskFormat is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.diskFormat) + || (has(self.initProvider) && has(self.initProvider.diskFormat))' + - message: spec.forProvider.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + status: + description: ImageV2Status defines the observed state of ImageV2. + properties: + atProvider: + properties: + checksum: + description: The checksum of the data associated with the image. + type: string + containerFormat: + description: The container format. Must be one of ami, ari, aki, + bare, ovf. + type: string + createdAt: + description: The date the image was created. + type: string + diskFormat: + description: The disk format. Must be one of ami, ari, aki, vhd, + vmdk, raw, qcow2, vdi, iso. + type: string + file: + description: the trailing path after the glance endpoint that + represent the location of the image or the path to retrieve + it. + type: string + id: + description: A unique ID assigned by Glance. + type: string + imageCachePath: + description: This is the directory where the images will be downloaded. + Images will be stored with a filename corresponding to the url's + md5 hash. Defaults to "$HOME/ + type: string + imageSourceUrl: + description: This is the url of the raw image that will be downloaded + in the image_cache_path before being uploaded to Glance. Glance + is able to download image from internet but the gophercloud + library does not yet provide a way to do so. Conflicts with + local_file_path. + type: string + localFilePath: + description: This is the filepath of the raw image file that will + be uploaded to Glance. Conflicts with image_source_url. + type: string + minDiskGb: + description: Amount of disk space (in GB) required to boot image. + Defaults to 0. + type: number + minRamMb: + description: Amount of ram (in MB) required to boot image. Defauts + to 0. + type: number + name: + description: The name of the image. + type: string + owner: + description: The id of the opentelekomcloud user who owns the + image. + type: string + protected: + description: If true, image will not be deletable. Defaults to + false. + type: boolean + region: + type: string + schema: + description: The path to the JSON-schema that represent the image + or image + type: string + sizeBytes: + description: The size in bytes of the data associated with the + image. + type: number + status: + description: The status of the image. It can be queued, active + or saving. + type: string + tags: + description: The tags of the image. It must be a list of strings. + At this time, it is not possible to delete all tags of an image. + items: + type: string + type: array + updateAt: + description: The date the image was last updated. + type: string + visibility: + description: The visibility of the image. Must be one of "public", + "private", "community", or "shared". The ability to set the + visibility depends upon the configuration of the OpenTelekomCloud + cloud. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/ims.crossplane.io_dataimagev2s.yaml b/package/crds/ims.crossplane.io_dataimagev2s.yaml new file mode 100644 index 0000000..db2b267 --- /dev/null +++ b/package/crds/ims.crossplane.io_dataimagev2s.yaml @@ -0,0 +1,438 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: dataimagev2s.ims.crossplane.io +spec: + group: ims.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: DataImageV2 + listKind: DataImageV2List + plural: dataimagev2s + singular: dataimagev2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: DataImageV2 is the Schema for the DataImageV2s API. Manages a + IMS Data Image 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: DataImageV2Spec defines the desired state of DataImageV2 + 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: + cmkId: + description: The master key used for encrypting an image. Changing + this creates a new image. + type: string + description: + description: A description of the image. Changing this creates + a new image. + type: string + imageUrl: + description: The URL of the external image file in the OBS bucket. + This parameter is mandatory when you create a private image + from an external file uploaded to an OBS bucket. The format + is OBS bucket name:Image file name. Changing this creates a + new image. + type: string + minDisk: + description: The minimum size of the system disk in the unit of + GB. This parameter is mandatory when you create a private image + from an external file uploaded to an OBS bucket. The value ranges + from 1 GB to 1024 GB. Changing this creates a new image. + type: number + name: + description: The name of the image. + type: string + osType: + description: The OS type. It can only be Windows or Linux. This + parameter is valid when you create a private image from an external + file uploaded to an OBS bucket. Changing this creates a new + image. + type: string + tags: + additionalProperties: + type: string + description: The tags of the image. + type: object + volumeId: + description: The ID of the ECS atatched volume that needs to be + converted into an image. This parameter is mandatory when you + create a privete image from an ECS. Changing this creates a + new image. + 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: + cmkId: + description: The master key used for encrypting an image. Changing + this creates a new image. + type: string + description: + description: A description of the image. Changing this creates + a new image. + type: string + imageUrl: + description: The URL of the external image file in the OBS bucket. + This parameter is mandatory when you create a private image + from an external file uploaded to an OBS bucket. The format + is OBS bucket name:Image file name. Changing this creates a + new image. + type: string + minDisk: + description: The minimum size of the system disk in the unit of + GB. This parameter is mandatory when you create a private image + from an external file uploaded to an OBS bucket. The value ranges + from 1 GB to 1024 GB. Changing this creates a new image. + type: number + name: + description: The name of the image. + type: string + osType: + description: The OS type. It can only be Windows or Linux. This + parameter is valid when you create a private image from an external + file uploaded to an OBS bucket. Changing this creates a new + image. + type: string + tags: + additionalProperties: + type: string + description: The tags of the image. + type: object + volumeId: + description: The ID of the ECS atatched volume that needs to be + converted into an image. This parameter is mandatory when you + create a privete image from an ECS. Changing this creates a + new image. + 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.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + status: + description: DataImageV2Status defines the observed state of DataImageV2. + properties: + atProvider: + properties: + cmkId: + description: The master key used for encrypting an image. Changing + this creates a new image. + type: string + dataOrigin: + description: The image resource. The pattern can be 'instance,instance_id' + or 'file,image_url'. + type: string + description: + description: A description of the image. Changing this creates + a new image. + type: string + diskFormat: + description: The image file format. The value can be vhd, zvhd, + raw, zvhd2, or qcow2. + type: string + id: + description: A unique ID assigned by IMS. + type: string + imageSize: + description: The size(bytes) of the image file format. + type: string + imageUrl: + description: The URL of the external image file in the OBS bucket. + This parameter is mandatory when you create a private image + from an external file uploaded to an OBS bucket. The format + is OBS bucket name:Image file name. Changing this creates a + new image. + type: string + minDisk: + description: The minimum size of the system disk in the unit of + GB. This parameter is mandatory when you create a private image + from an external file uploaded to an OBS bucket. The value ranges + from 1 GB to 1024 GB. Changing this creates a new image. + type: number + name: + description: The name of the image. + type: string + osType: + description: The OS type. It can only be Windows or Linux. This + parameter is valid when you create a private image from an external + file uploaded to an OBS bucket. Changing this creates a new + image. + type: string + tags: + additionalProperties: + type: string + description: The tags of the image. + type: object + visibility: + description: Whether the image is visible to other tenants. + type: string + volumeId: + description: The ID of the ECS atatched volume that needs to be + converted into an image. This parameter is mandatory when you + create a privete image from an ECS. Changing this creates a + new image. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/ims.crossplane.io_imagev2s.yaml b/package/crds/ims.crossplane.io_imagev2s.yaml new file mode 100644 index 0000000..1edc51f --- /dev/null +++ b/package/crds/ims.crossplane.io_imagev2s.yaml @@ -0,0 +1,507 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: imagev2s.ims.crossplane.io +spec: + group: ims.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: ImageV2 + listKind: ImageV2List + plural: imagev2s + singular: imagev2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: ImageV2 is the Schema for the ImageV2s API. Manages a IMS Image + 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: ImageV2Spec defines the desired state of ImageV2 + 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: + cmkId: + description: The master key used for encrypting an image. Changing + this creates a new image. + type: string + description: + description: A description of the image. Changing this creates + a new image. + type: string + imageUrl: + description: The URL of the external image file in the OBS bucket. + This parameter is mandatory when you create a private image + from an external file uploaded to an OBS bucket. The format + is OBS bucket name:Image file name. Changing this creates a + new image. + type: string + instanceId: + description: The ID of the ECS that needs to be converted into + an image. This parameter is mandatory when you create a private + image from an ECS. Changing this creates a new image. + type: string + isConfig: + description: If automatic configuration is required, set the value + to true. Otherwise, set the value to false. Changing this creates + a new image. + type: boolean + maxRam: + description: The maximum memory of the image in the unit of MB. + Changing this creates a new image. + type: number + minDisk: + description: The minimum size of the system disk in the unit of + GB. This parameter is mandatory when you create a private image + from an external file uploaded to an OBS bucket. The value ranges + from 1 GB to 1024 GB. Changing this creates a new image. + type: number + minRam: + description: The minimum memory of the image in the unit of MB. + The default value is 0, indicating that the memory is not restricted. + Changing this creates a new image. + type: number + name: + description: The name of the image. + type: string + osVersion: + description: The OS version. This parameter is valid when you + create a private image from an external file. This parameter + is mandatory when you create a private image from a volume. + uploaded to an OBS bucket. Changing this creates a new image. + type: string + tags: + additionalProperties: + type: string + description: The tags of the image. + type: object + type: + description: The image type. Must be one of ECS, FusionCompute, + BMS, Ironic or IsoImage. Changing this creates a new image. + type: string + volumeId: + description: Specifies the data disk ID. This parameter is mandatory + when you create a private image from a volume. Changing this + creates a new image. + 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: + cmkId: + description: The master key used for encrypting an image. Changing + this creates a new image. + type: string + description: + description: A description of the image. Changing this creates + a new image. + type: string + imageUrl: + description: The URL of the external image file in the OBS bucket. + This parameter is mandatory when you create a private image + from an external file uploaded to an OBS bucket. The format + is OBS bucket name:Image file name. Changing this creates a + new image. + type: string + instanceId: + description: The ID of the ECS that needs to be converted into + an image. This parameter is mandatory when you create a private + image from an ECS. Changing this creates a new image. + type: string + isConfig: + description: If automatic configuration is required, set the value + to true. Otherwise, set the value to false. Changing this creates + a new image. + type: boolean + maxRam: + description: The maximum memory of the image in the unit of MB. + Changing this creates a new image. + type: number + minDisk: + description: The minimum size of the system disk in the unit of + GB. This parameter is mandatory when you create a private image + from an external file uploaded to an OBS bucket. The value ranges + from 1 GB to 1024 GB. Changing this creates a new image. + type: number + minRam: + description: The minimum memory of the image in the unit of MB. + The default value is 0, indicating that the memory is not restricted. + Changing this creates a new image. + type: number + name: + description: The name of the image. + type: string + osVersion: + description: The OS version. This parameter is valid when you + create a private image from an external file. This parameter + is mandatory when you create a private image from a volume. + uploaded to an OBS bucket. Changing this creates a new image. + type: string + tags: + additionalProperties: + type: string + description: The tags of the image. + type: object + type: + description: The image type. Must be one of ECS, FusionCompute, + BMS, Ironic or IsoImage. Changing this creates a new image. + type: string + volumeId: + description: Specifies the data disk ID. This parameter is mandatory + when you create a private image from a volume. Changing this + creates a new image. + 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.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + status: + description: ImageV2Status defines the observed state of ImageV2. + properties: + atProvider: + properties: + cmkId: + description: The master key used for encrypting an image. Changing + this creates a new image. + type: string + dataOrigin: + description: The image resource. The pattern can be 'instance,instance_id' + or 'file,image_url'. + type: string + description: + description: A description of the image. Changing this creates + a new image. + type: string + diskFormat: + description: The image file format. The value can be vhd, zvhd, + raw, zvhd2, or qcow2. + type: string + file: + description: The URL for uploading and downloading the image file. + type: string + id: + description: A unique ID assigned by IMS. + type: string + imageSize: + description: The size(bytes) of the image file format. + type: string + imageUrl: + description: The URL of the external image file in the OBS bucket. + This parameter is mandatory when you create a private image + from an external file uploaded to an OBS bucket. The format + is OBS bucket name:Image file name. Changing this creates a + new image. + type: string + instanceId: + description: The ID of the ECS that needs to be converted into + an image. This parameter is mandatory when you create a private + image from an ECS. Changing this creates a new image. + type: string + isConfig: + description: If automatic configuration is required, set the value + to true. Otherwise, set the value to false. Changing this creates + a new image. + type: boolean + maxRam: + description: The maximum memory of the image in the unit of MB. + Changing this creates a new image. + type: number + minDisk: + description: The minimum size of the system disk in the unit of + GB. This parameter is mandatory when you create a private image + from an external file uploaded to an OBS bucket. The value ranges + from 1 GB to 1024 GB. Changing this creates a new image. + type: number + minRam: + description: The minimum memory of the image in the unit of MB. + The default value is 0, indicating that the memory is not restricted. + Changing this creates a new image. + type: number + name: + description: The name of the image. + type: string + osVersion: + description: The OS version. This parameter is valid when you + create a private image from an external file. This parameter + is mandatory when you create a private image from a volume. + uploaded to an OBS bucket. Changing this creates a new image. + type: string + tags: + additionalProperties: + type: string + description: The tags of the image. + type: object + type: + description: The image type. Must be one of ECS, FusionCompute, + BMS, Ironic or IsoImage. Changing this creates a new image. + type: string + visibility: + description: Whether the image is visible to other tenants. + type: string + volumeId: + description: Specifies the data disk ID. This parameter is mandatory + when you create a private image from a volume. Changing this + creates a new image. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/kms.crossplane.io_grantv1s.yaml b/package/crds/kms.crossplane.io_grantv1s.yaml new file mode 100644 index 0000000..a2d1f43 --- /dev/null +++ b/package/crds/kms.crossplane.io_grantv1s.yaml @@ -0,0 +1,386 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: grantv1s.kms.crossplane.io +spec: + group: kms.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: GrantV1 + listKind: GrantV1List + plural: grantv1s + singular: grantv1 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: GrantV1 is the Schema for the GrantV1s API. Manages a KMS Grant + 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: GrantV1Spec defines the desired state of GrantV1 + 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: + granteePrincipal: + description: Indicates the ID of the authorized user. Changing + this creates new grant. + type: string + keyId: + description: Indicates the ID of the KMS. Changing this creates + new grant. + type: string + name: + description: Name of a grant which can be 1 to 255 characters + in length and matches the regular expression ^[a-zA-Z0-9:/_-]{1,255}$. + Changing this creates new grant. + type: string + operations: + description: 'Permissions that can be granted. The valid values + are: create-datakey, create-datakey-without-plaintext, encrypt-datakey, + decrypt-datakey, describe-key, create-grant, retire-grant. Changing + this creates new grant.' + items: + type: string + type: array + retiringPrincipal: + description: Indicates the ID of the retiring user. Changing this + creates new grant. + 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: + granteePrincipal: + description: Indicates the ID of the authorized user. Changing + this creates new grant. + type: string + keyId: + description: Indicates the ID of the KMS. Changing this creates + new grant. + type: string + name: + description: Name of a grant which can be 1 to 255 characters + in length and matches the regular expression ^[a-zA-Z0-9:/_-]{1,255}$. + Changing this creates new grant. + type: string + operations: + description: 'Permissions that can be granted. The valid values + are: create-datakey, create-datakey-without-plaintext, encrypt-datakey, + decrypt-datakey, describe-key, create-grant, retire-grant. Changing + this creates new grant.' + items: + type: string + type: array + retiringPrincipal: + description: Indicates the ID of the retiring user. Changing this + creates new grant. + 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.granteePrincipal is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.granteePrincipal) + || (has(self.initProvider) && has(self.initProvider.granteePrincipal))' + - message: spec.forProvider.keyId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.keyId) + || (has(self.initProvider) && has(self.initProvider.keyId))' + status: + description: GrantV1Status defines the observed state of GrantV1. + properties: + atProvider: + properties: + creationDate: + description: Creation time. The value is a timestamp expressed + in the number of seconds since 00:00:00 UTC on January 1, 1970. + type: string + granteePrincipal: + description: Indicates the ID of the authorized user. Changing + this creates new grant. + type: string + id: + type: string + issuingPrincipal: + description: Indicates the ID of the user who created the grant. + type: string + keyId: + description: Indicates the ID of the KMS. Changing this creates + new grant. + type: string + name: + description: Name of a grant which can be 1 to 255 characters + in length and matches the regular expression ^[a-zA-Z0-9:/_-]{1,255}$. + Changing this creates new grant. + type: string + operations: + description: 'Permissions that can be granted. The valid values + are: create-datakey, create-datakey-without-plaintext, encrypt-datakey, + decrypt-datakey, describe-key, create-grant, retire-grant. Changing + this creates new grant.' + items: + type: string + type: array + retiringPrincipal: + description: Indicates the ID of the retiring user. Changing this + creates new grant. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/lb.crossplane.io_certificatev2s.yaml b/package/crds/lb.crossplane.io_certificatev2s.yaml new file mode 100644 index 0000000..7348c67 --- /dev/null +++ b/package/crds/lb.crossplane.io_certificatev2s.yaml @@ -0,0 +1,396 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: certificatev2s.lb.crossplane.io +spec: + group: lb.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: CertificateV2 + listKind: CertificateV2List + plural: certificatev2s + singular: certificatev2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/lb.crossplane.io_certificatev3s.yaml b/package/crds/lb.crossplane.io_certificatev3s.yaml new file mode 100644 index 0000000..2a2dac2 --- /dev/null +++ b/package/crds/lb.crossplane.io_certificatev3s.yaml @@ -0,0 +1,395 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: certificatev3s.lb.crossplane.io +spec: + group: lb.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: CertificateV3 + listKind: CertificateV3List + plural: certificatev3s + singular: certificatev3 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: CertificateV3 is the Schema for the CertificateV3s API. Manages + a LB 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: CertificateV3Spec defines the desired state of CertificateV3 + 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: Provides supplementary information about the certificate. + type: string + domain: + description: The domain of the Certificate. + type: string + name: + description: Specifies the certificate name. Only letters, digits, + underscores, and hyphens are allowed. + 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 V3 ELB client. + An ELB 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: Provides supplementary information about the certificate. + type: string + domain: + description: The domain of the Certificate. + type: string + name: + description: Specifies the certificate name. Only letters, digits, + underscores, and hyphens are allowed. + 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 V3 ELB client. + An ELB 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: CertificateV3Status defines the observed state of CertificateV3. + properties: + atProvider: + properties: + certificate: + description: The public encrypted key of the Certificate, PEM + format. + type: string + createdAt: + type: string + description: + description: Provides supplementary information about the certificate. + type: string + domain: + description: The domain of the Certificate. + type: string + expireTime: + description: Indicates the expiration time. + type: string + id: + type: string + name: + description: Specifies the certificate name. Only letters, digits, + underscores, and hyphens are allowed. + 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 V3 ELB client. + An ELB 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 + updatedAt: + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/lb.crossplane.io_ipgroupv3s.yaml b/package/crds/lb.crossplane.io_ipgroupv3s.yaml new file mode 100644 index 0000000..49c3179 --- /dev/null +++ b/package/crds/lb.crossplane.io_ipgroupv3s.yaml @@ -0,0 +1,385 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: ipgroupv3s.lb.crossplane.io +spec: + group: lb.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: IpgroupV3 + listKind: IpgroupV3List + plural: ipgroupv3s + singular: ipgroupv3 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: IpgroupV3 is the Schema for the IpgroupV3s API. Manages a LB + IpGroup 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: IpgroupV3Spec defines the desired state of IpgroupV3 + 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: + description: + description: Provides supplementary information about the IP address + group. + type: string + ipList: + description: Specifies the IP addresses or CIDR blocks in the + IP address group. Any IP address can be used if this block isn't + specified. + items: + properties: + description: + description: Provides remarks about the IP address group. + type: string + ip: + description: Specifies the IP addresses in the IP address + group. IPv6 is unsupported. The value cannot be an IPv6 + address. + type: string + type: object + type: array + name: + description: Specifies the IP address group name. + type: string + projectId: + description: Specifies the project ID of the IP address group. + 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: + description: + description: Provides supplementary information about the IP address + group. + type: string + ipList: + description: Specifies the IP addresses or CIDR blocks in the + IP address group. Any IP address can be used if this block isn't + specified. + items: + properties: + description: + description: Provides remarks about the IP address group. + type: string + ip: + description: Specifies the IP addresses in the IP address + group. IPv6 is unsupported. The value cannot be an IPv6 + address. + type: string + type: object + type: array + name: + description: Specifies the IP address group name. + type: string + projectId: + description: Specifies the project ID of the IP address group. + 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 + status: + description: IpgroupV3Status defines the observed state of IpgroupV3. + properties: + atProvider: + properties: + createdAt: + description: Indicates the creation time. + type: string + description: + description: Provides supplementary information about the IP address + group. + type: string + id: + type: string + ipList: + description: Specifies the IP addresses or CIDR blocks in the + IP address group. Any IP address can be used if this block isn't + specified. + items: + properties: + description: + description: Provides remarks about the IP address group. + type: string + ip: + description: Specifies the IP addresses in the IP address + group. IPv6 is unsupported. The value cannot be an IPv6 + address. + type: string + type: object + type: array + listeners: + description: Lists the IDs of listeners with which the IP address + group is associated. + items: + type: string + type: array + name: + description: Specifies the IP address group name. + type: string + projectId: + description: Specifies the project ID of the IP address group. + type: string + updatedAt: + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/lb.crossplane.io_l7policyv2s.yaml b/package/crds/lb.crossplane.io_l7policyv2s.yaml new file mode 100644 index 0000000..e0b29a9 --- /dev/null +++ b/package/crds/lb.crossplane.io_l7policyv2s.yaml @@ -0,0 +1,428 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: l7policyv2s.lb.crossplane.io +spec: + group: lb.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: L7PolicyV2 + listKind: L7PolicyV2List + plural: l7policyv2s + singular: l7policyv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/lb.crossplane.io_l7rulev2s.yaml b/package/crds/lb.crossplane.io_l7rulev2s.yaml new file mode 100644 index 0000000..32b7a65 --- /dev/null +++ b/package/crds/lb.crossplane.io_l7rulev2s.yaml @@ -0,0 +1,421 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: l7rulev2s.lb.crossplane.io +spec: + group: lb.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: L7RuleV2 + listKind: L7RuleV2List + plural: l7rulev2s + singular: l7rulev2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/lb.crossplane.io_listenerv2s.yaml b/package/crds/lb.crossplane.io_listenerv2s.yaml new file mode 100644 index 0000000..f051a42 --- /dev/null +++ b/package/crds/lb.crossplane.io_listenerv2s.yaml @@ -0,0 +1,645 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: listenerv2s.lb.crossplane.io +spec: + group: lb.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: ListenerV2 + listKind: ListenerV2List + plural: listenerv2s + singular: listenerv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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 + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the loadbalancer + listener. + type: object + 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 + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the loadbalancer + listener. + type: object + 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 + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the loadbalancer + listener. + type: object + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/lb.crossplane.io_listenerv3s.yaml b/package/crds/lb.crossplane.io_listenerv3s.yaml new file mode 100644 index 0000000..a779059 --- /dev/null +++ b/package/crds/lb.crossplane.io_listenerv3s.yaml @@ -0,0 +1,813 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: listenerv3s.lb.crossplane.io +spec: + group: lb.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: ListenerV3 + listKind: ListenerV3List + plural: listenerv3s + singular: listenerv3 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: ListenerV3 is the Schema for the ListenerV3s API. Manages a LB + 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: ListenerV3Spec defines the desired state of ListenerV3 + 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: + type: boolean + advancedForwarding: + description: Specifies whether to enable advanced forwarding. + If advanced forwarding is enabled, more flexible forwarding + policies and rules are supported. The value can be true (enable + advanced forwarding) or false (disable advanced forwarding), + and the default value is false. Changing this creates a new + Listener. + type: boolean + clientCaTlsContainerRef: + description: Specifies the ID of the CA certificate used by the + listener. + type: string + clientTimeout: + description: Specifies the timeout duration for waiting for a + request from a client, in seconds. This parameter is available + only for HTTP and HTTPS listeners. The value ranges from 1 to + 300, and the default value is 60. An error will be returned + if you configure this parameter for TCP and UDP listeners. + type: number + defaultPoolId: + description: 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 + defaultTlsContainerRef: + description: Specifies the ID of the server certificate used by + the listener. + type: string + description: + description: Provides supplementary information about the listener. + type: string + http2Enable: + description: Specifies whether to use HTTP/2. This parameter is + available only for HTTPS listeners. If you configure this parameter + for other types of listeners, it will not take effect. Enable + HTTP/2 if you want the clients to use HTTP/2 to communicate + with the load balancer. However, connections between the load + balancer and backend servers use HTTP/1.x by default. + type: boolean + insertHeaders: + description: Specifies the HTTP header fields. + items: + properties: + forwardElbIp: + description: Specifies whether to transparently transmit + the load balancer EIP to backend servers. If forward_elb_ip + is set to true, the load balancer EIP will be stored in + the HTTP header and passed to backend servers. + type: boolean + forwardedForPort: + description: Specifies whether to transparently transmit + the source port of the client to backend servers. If forwarded_for_port + is set to true, the source port of the client will be + stored in the HTTP header and passed to backend servers. + type: boolean + forwardedHost: + description: Specifies whether to rewrite the X-Forwarded-Host + header. If forwarded_host is set to true, X-Forwarded-Host + in the request header from the clients can be set to Host + in the request header sent from the load balancer to backend + servers. + type: boolean + forwardedPort: + description: Specifies whether to transparently transmit + the listening port of the load balancer to backend servers. + If forwarded_port is set to true, the listening port of + the load balancer will be stored in the HTTP header and + passed to backend servers. + type: boolean + type: object + type: array + 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 + keepAliveTimeout: + description: Specifies the idle timeout duration, in seconds. + type: number + loadbalancerId: + description: Specifies the ID of the load balancer that the listener + is added to. + type: string + memberRetryEnable: + description: 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. + type: boolean + memberTimeout: + description: Specifies the timeout duration for waiting for a + request from a backend server, in seconds. This parameter is + available only for HTTP and HTTPS listeners. The value ranges + from 1 to 300, and the default value is 60. An error will be + returned if you configure this parameter for TCP and UDP listeners. + type: number + name: + description: Specifies the listener name. + type: string + protocol: + description: The protocol - can either be TCP, HTTP, HTTPS or + UDP. Changing this creates a new Listener. + type: string + protocolPort: + description: Specifies the port used by the listener. Changing + this creates a new Listener. + type: number + securityPolicyId: + description: Specifies the ID of the custom security policy. + type: string + sniContainerRefs: + description: 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. + items: + type: string + type: array + sniMatchAlgo: + description: Specifies how wildcard domain name matches with the + SNI certificates used by the listener. + type: string + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the loadbalancer + listener. + type: object + tlsCiphersPolicy: + description: 'Specifies the security policy that will be used + by the listener. This parameter is available only for HTTPS + listeners. An error will be returned if the protocol of the + listener is not HTTPS. Possible values are: tls-1-0, tls-1-1, + tls-1-0-inherit, tls-1-2, tls-1-2-strict, tls-1-2-fs, tls-1-0-with-1-3, + tls-1-2-fs-with-1-3, hybrid-policy-1-0, tls-1-2-strict-no-cbc.' + 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: + type: boolean + advancedForwarding: + description: Specifies whether to enable advanced forwarding. + If advanced forwarding is enabled, more flexible forwarding + policies and rules are supported. The value can be true (enable + advanced forwarding) or false (disable advanced forwarding), + and the default value is false. Changing this creates a new + Listener. + type: boolean + clientCaTlsContainerRef: + description: Specifies the ID of the CA certificate used by the + listener. + type: string + clientTimeout: + description: Specifies the timeout duration for waiting for a + request from a client, in seconds. This parameter is available + only for HTTP and HTTPS listeners. The value ranges from 1 to + 300, and the default value is 60. An error will be returned + if you configure this parameter for TCP and UDP listeners. + type: number + defaultPoolId: + description: 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 + defaultTlsContainerRef: + description: Specifies the ID of the server certificate used by + the listener. + type: string + description: + description: Provides supplementary information about the listener. + type: string + http2Enable: + description: Specifies whether to use HTTP/2. This parameter is + available only for HTTPS listeners. If you configure this parameter + for other types of listeners, it will not take effect. Enable + HTTP/2 if you want the clients to use HTTP/2 to communicate + with the load balancer. However, connections between the load + balancer and backend servers use HTTP/1.x by default. + type: boolean + insertHeaders: + description: Specifies the HTTP header fields. + items: + properties: + forwardElbIp: + description: Specifies whether to transparently transmit + the load balancer EIP to backend servers. If forward_elb_ip + is set to true, the load balancer EIP will be stored in + the HTTP header and passed to backend servers. + type: boolean + forwardedForPort: + description: Specifies whether to transparently transmit + the source port of the client to backend servers. If forwarded_for_port + is set to true, the source port of the client will be + stored in the HTTP header and passed to backend servers. + type: boolean + forwardedHost: + description: Specifies whether to rewrite the X-Forwarded-Host + header. If forwarded_host is set to true, X-Forwarded-Host + in the request header from the clients can be set to Host + in the request header sent from the load balancer to backend + servers. + type: boolean + forwardedPort: + description: Specifies whether to transparently transmit + the listening port of the load balancer to backend servers. + If forwarded_port is set to true, the listening port of + the load balancer will be stored in the HTTP header and + passed to backend servers. + type: boolean + type: object + type: array + 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 + keepAliveTimeout: + description: Specifies the idle timeout duration, in seconds. + type: number + loadbalancerId: + description: Specifies the ID of the load balancer that the listener + is added to. + type: string + memberRetryEnable: + description: 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. + type: boolean + memberTimeout: + description: Specifies the timeout duration for waiting for a + request from a backend server, in seconds. This parameter is + available only for HTTP and HTTPS listeners. The value ranges + from 1 to 300, and the default value is 60. An error will be + returned if you configure this parameter for TCP and UDP listeners. + type: number + name: + description: Specifies the listener name. + type: string + protocol: + description: The protocol - can either be TCP, HTTP, HTTPS or + UDP. Changing this creates a new Listener. + type: string + protocolPort: + description: Specifies the port used by the listener. Changing + this creates a new Listener. + type: number + securityPolicyId: + description: Specifies the ID of the custom security policy. + type: string + sniContainerRefs: + description: 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. + items: + type: string + type: array + sniMatchAlgo: + description: Specifies how wildcard domain name matches with the + SNI certificates used by the listener. + type: string + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the loadbalancer + listener. + type: object + tlsCiphersPolicy: + description: 'Specifies the security policy that will be used + by the listener. This parameter is available only for HTTPS + listeners. An error will be returned if the protocol of the + listener is not HTTPS. Possible values are: tls-1-0, tls-1-1, + tls-1-0-inherit, tls-1-2, tls-1-2-strict, tls-1-2-fs, tls-1-0-with-1-3, + tls-1-2-fs-with-1-3, hybrid-policy-1-0, tls-1-2-strict-no-cbc.' + 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.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: ListenerV3Status defines the observed state of ListenerV3. + properties: + atProvider: + properties: + adminStateUp: + type: boolean + advancedForwarding: + description: Specifies whether to enable advanced forwarding. + If advanced forwarding is enabled, more flexible forwarding + policies and rules are supported. The value can be true (enable + advanced forwarding) or false (disable advanced forwarding), + and the default value is false. Changing this creates a new + Listener. + type: boolean + clientCaTlsContainerRef: + description: Specifies the ID of the CA certificate used by the + listener. + type: string + clientTimeout: + description: Specifies the timeout duration for waiting for a + request from a client, in seconds. This parameter is available + only for HTTP and HTTPS listeners. The value ranges from 1 to + 300, and the default value is 60. An error will be returned + if you configure this parameter for TCP and UDP listeners. + type: number + createdAt: + description: Indicates the creation time. + type: string + defaultPoolId: + description: 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 + defaultTlsContainerRef: + description: Specifies the ID of the server certificate used by + the listener. + type: string + description: + description: Provides supplementary information about the listener. + type: string + http2Enable: + description: Specifies whether to use HTTP/2. This parameter is + available only for HTTPS listeners. If you configure this parameter + for other types of listeners, it will not take effect. Enable + HTTP/2 if you want the clients to use HTTP/2 to communicate + with the load balancer. However, connections between the load + balancer and backend servers use HTTP/1.x by default. + 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 + insertHeaders: + description: Specifies the HTTP header fields. + items: + properties: + forwardElbIp: + description: Specifies whether to transparently transmit + the load balancer EIP to backend servers. If forward_elb_ip + is set to true, the load balancer EIP will be stored in + the HTTP header and passed to backend servers. + type: boolean + forwardedForPort: + description: Specifies whether to transparently transmit + the source port of the client to backend servers. If forwarded_for_port + is set to true, the source port of the client will be + stored in the HTTP header and passed to backend servers. + type: boolean + forwardedHost: + description: Specifies whether to rewrite the X-Forwarded-Host + header. If forwarded_host is set to true, X-Forwarded-Host + in the request header from the clients can be set to Host + in the request header sent from the load balancer to backend + servers. + type: boolean + forwardedPort: + description: Specifies whether to transparently transmit + the listening port of the load balancer to backend servers. + If forwarded_port is set to true, the listening port of + the load balancer will be stored in the HTTP header and + passed to backend servers. + type: boolean + type: object + type: array + 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 + keepAliveTimeout: + description: Specifies the idle timeout duration, in seconds. + type: number + loadbalancerId: + description: Specifies the ID of the load balancer that the listener + is added to. + type: string + memberRetryEnable: + description: 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. + type: boolean + memberTimeout: + description: Specifies the timeout duration for waiting for a + request from a backend server, in seconds. This parameter is + available only for HTTP and HTTPS listeners. The value ranges + from 1 to 300, and the default value is 60. An error will be + returned if you configure this parameter for TCP and UDP listeners. + type: number + name: + description: Specifies the listener name. + type: string + protocol: + description: The protocol - can either be TCP, HTTP, HTTPS or + UDP. Changing this creates a new Listener. + type: string + protocolPort: + description: Specifies the port used by the listener. Changing + this creates a new Listener. + type: number + securityPolicyId: + description: Specifies the ID of the custom security policy. + type: string + sniContainerRefs: + description: 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. + items: + type: string + type: array + sniMatchAlgo: + description: Specifies how wildcard domain name matches with the + SNI certificates used by the listener. + type: string + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the loadbalancer + listener. + type: object + tlsCiphersPolicy: + description: 'Specifies the security policy that will be used + by the listener. This parameter is available only for HTTPS + listeners. An error will be returned if the protocol of the + listener is not HTTPS. Possible values are: tls-1-0, tls-1-1, + tls-1-0-inherit, tls-1-2, tls-1-2-strict, tls-1-2-fs, tls-1-0-with-1-3, + tls-1-2-fs-with-1-3, hybrid-policy-1-0, tls-1-2-strict-no-cbc.' + type: string + updatedAt: + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/lb.crossplane.io_loadbalancerv2s.yaml b/package/crds/lb.crossplane.io_loadbalancerv2s.yaml new file mode 100644 index 0000000..e6562ef --- /dev/null +++ b/package/crds/lb.crossplane.io_loadbalancerv2s.yaml @@ -0,0 +1,414 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: loadbalancerv2s.lb.crossplane.io +spec: + group: lb.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: LoadbalancerV2 + listKind: LoadbalancerV2List + plural: loadbalancerv2s + singular: loadbalancerv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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 + 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 + 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 + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/lb.crossplane.io_loadbalancerv3s.yaml b/package/crds/lb.crossplane.io_loadbalancerv3s.yaml new file mode 100644 index 0000000..72383e9 --- /dev/null +++ b/package/crds/lb.crossplane.io_loadbalancerv3s.yaml @@ -0,0 +1,565 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: loadbalancerv3s.lb.crossplane.io +spec: + group: lb.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: LoadbalancerV3 + listKind: LoadbalancerV3List + plural: loadbalancerv3s + singular: loadbalancerv3 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: LoadbalancerV3 is the Schema for the LoadbalancerV3s API. Manages + a LB 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: LoadbalancerV3Spec defines the desired state of LoadbalancerV3 + 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 + availabilityZones: + description: Specifies the availability zones where the LoadBalancer + will be located. Changing this creates a new LoadBalancer. + items: + type: string + type: array + deletionProtection: + description: 'Specifies whether to enable deletion protection + for the load balancer. true: Enable deletion protection. false + (default): Disable deletion protection.' + type: boolean + description: + description: Provides supplementary information about the load + balancer. + type: string + ipTargetEnable: + description: The value can be true (enabled) or false (disabled). + type: boolean + l4Flavor: + description: The ID of the Layer-4 flavor. + type: string + l7Flavor: + description: The ID of the Layer-7 flavor. + type: string + name: + description: The LoadBalancer name. + type: string + networkIds: + description: Specifies the subnet Network ID. + items: + type: string + type: array + publicIp: + description: The elastic IP address of the instance. The public_ip + structure is described below. Changing this creates a new LoadBalancer. + items: + properties: + bandwidthChargeMode: + description: Bandwidth billing type. Possible value is traffic. + type: string + bandwidthName: + description: Bandwidth name. Required when creating a new + EIP. + type: string + bandwidthShareType: + description: 'Bandwidth sharing type. Possible values are: + PER, WHOLE. Required when creating a new EIP.' + type: string + bandwidthSize: + description: Bandwidth size. Required when creating a new + EIP. + type: number + id: + description: ID of an existing elastic IP. Required when + using existing EIP. + type: string + ipType: + description: Elastic IP type. The value can be 5_bgp or + 5_mailbgp. Required when creating a new EIP. + type: string + type: object + type: array + routerId: + description: ID of the router (or VPC) this LoadBalancer belongs + to. Changing this creates a new LoadBalancer. + type: string + subnetId: + description: The ID of the subnet to which the LoadBalancer belongs. + Required when using vip_address. + type: string + tags: + additionalProperties: + type: string + type: object + vipAddress: + description: The ip address of the LoadBalancer. 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 + availabilityZones: + description: Specifies the availability zones where the LoadBalancer + will be located. Changing this creates a new LoadBalancer. + items: + type: string + type: array + deletionProtection: + description: 'Specifies whether to enable deletion protection + for the load balancer. true: Enable deletion protection. false + (default): Disable deletion protection.' + type: boolean + description: + description: Provides supplementary information about the load + balancer. + type: string + ipTargetEnable: + description: The value can be true (enabled) or false (disabled). + type: boolean + l4Flavor: + description: The ID of the Layer-4 flavor. + type: string + l7Flavor: + description: The ID of the Layer-7 flavor. + type: string + name: + description: The LoadBalancer name. + type: string + networkIds: + description: Specifies the subnet Network ID. + items: + type: string + type: array + publicIp: + description: The elastic IP address of the instance. The public_ip + structure is described below. Changing this creates a new LoadBalancer. + items: + properties: + bandwidthChargeMode: + description: Bandwidth billing type. Possible value is traffic. + type: string + bandwidthName: + description: Bandwidth name. Required when creating a new + EIP. + type: string + bandwidthShareType: + description: 'Bandwidth sharing type. Possible values are: + PER, WHOLE. Required when creating a new EIP.' + type: string + bandwidthSize: + description: Bandwidth size. Required when creating a new + EIP. + type: number + id: + description: ID of an existing elastic IP. Required when + using existing EIP. + type: string + ipType: + description: Elastic IP type. The value can be 5_bgp or + 5_mailbgp. Required when creating a new EIP. + type: string + type: object + type: array + routerId: + description: ID of the router (or VPC) this LoadBalancer belongs + to. Changing this creates a new LoadBalancer. + type: string + subnetId: + description: The ID of the subnet to which the LoadBalancer belongs. + Required when using vip_address. + type: string + tags: + additionalProperties: + type: string + type: object + vipAddress: + description: The ip address of the LoadBalancer. 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.availabilityZones is a required parameter + 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: + atProvider: + properties: + adminStateUp: + description: The administrative state of the LoadBalancer. A valid + value is only true (UP). + type: boolean + availabilityZones: + description: Specifies the availability zones where the LoadBalancer + will be located. Changing this creates a new LoadBalancer. + items: + type: string + type: array + createdAt: + description: The time the LoadBalancer was created. + type: string + deletionProtection: + description: 'Specifies whether to enable deletion protection + for the load balancer. true: Enable deletion protection. false + (default): Disable deletion protection.' + type: boolean + description: + description: Provides supplementary information about the load + balancer. + type: string + id: + description: ID of an existing elastic IP. Required when using + existing EIP. + type: string + ipTargetEnable: + description: The value can be true (enabled) or false (disabled). + type: boolean + l4Flavor: + description: The ID of the Layer-4 flavor. + type: string + l7Flavor: + description: The ID of the Layer-7 flavor. + type: string + name: + description: The LoadBalancer name. + type: string + networkIds: + description: Specifies the subnet Network ID. + items: + type: string + type: array + publicIp: + description: The elastic IP address of the instance. The public_ip + structure is described below. Changing this creates a new LoadBalancer. + items: + properties: + Managed: + type: boolean + address: + type: string + bandwidthChargeMode: + description: Bandwidth billing type. Possible value is traffic. + type: string + bandwidthName: + description: Bandwidth name. Required when creating a new + EIP. + type: string + bandwidthShareType: + description: 'Bandwidth sharing type. Possible values are: + PER, WHOLE. Required when creating a new EIP.' + type: string + bandwidthSize: + description: Bandwidth size. Required when creating a new + EIP. + type: number + id: + description: ID of an existing elastic IP. Required when + using existing EIP. + type: string + ipType: + description: Elastic IP type. The value can be 5_bgp or + 5_mailbgp. Required when creating a new EIP. + type: string + type: object + type: array + routerId: + description: ID of the router (or VPC) this LoadBalancer belongs + to. Changing this creates a new LoadBalancer. + type: string + subnetId: + description: The ID of the subnet to which the LoadBalancer belongs. + Required when using vip_address. + type: string + tags: + additionalProperties: + type: string + type: object + updatedAt: + description: The time the LoadBalancer was last updated. + type: string + vipAddress: + description: The ip address of the LoadBalancer. Changing this + creates a new LoadBalancer. + type: string + vipPortId: + description: The Port ID of the Load Balancer IP. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/lb.crossplane.io_memberv2s.yaml b/package/crds/lb.crossplane.io_memberv2s.yaml new file mode 100644 index 0000000..bbcbb86 --- /dev/null +++ b/package/crds/lb.crossplane.io_memberv2s.yaml @@ -0,0 +1,421 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: memberv2s.lb.crossplane.io +spec: + group: lb.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: MemberV2 + listKind: MemberV2List + plural: memberv2s + singular: memberv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/lb.crossplane.io_memberv3s.yaml b/package/crds/lb.crossplane.io_memberv3s.yaml new file mode 100644 index 0000000..65f4ced --- /dev/null +++ b/package/crds/lb.crossplane.io_memberv3s.yaml @@ -0,0 +1,384 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: memberv3s.lb.crossplane.io +spec: + group: lb.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: MemberV3 + listKind: MemberV3List + plural: memberv3s + singular: memberv3 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: MemberV3 is the Schema for the MemberV3s API. Manages a LB 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: MemberV3Spec defines the desired state of MemberV3 + 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: Specifies the IP address of the backend server. + type: string + name: + description: Specifies the backend server name. The value is a + string of 0 to 255 characters. + type: string + poolId: + type: string + projectId: + description: Specifies the project ID. + type: string + protocolPort: + description: Specifies the port used by the backend server to + receive requests. The value should be a valid port. + type: number + subnetId: + description: ', for example, 192.168.3.11.' + type: string + weight: + description: Specifies the weight of the backend server. + 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: Specifies the IP address of the backend server. + type: string + name: + description: Specifies the backend server name. The value is a + string of 0 to 255 characters. + type: string + poolId: + type: string + projectId: + description: Specifies the project ID. + type: string + protocolPort: + description: Specifies the port used by the backend server to + receive requests. The value should be a valid port. + type: number + subnetId: + description: ', for example, 192.168.3.11.' + type: string + weight: + description: Specifies the weight of the backend server. + 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))' + status: + description: MemberV3Status defines the observed state of MemberV3. + properties: + atProvider: + properties: + address: + description: Specifies the IP address of the backend server. + type: string + id: + type: string + ipVersion: + description: Version of IP based on the address parameter. The + value can be v4 or v6. + type: string + memberId: + description: ID of the pool member. + type: string + name: + description: Specifies the backend server name. The value is a + string of 0 to 255 characters. + type: string + operatingStatus: + description: Specifies the operating status of the backend server. + type: string + poolId: + type: string + projectId: + description: Specifies the project ID. + type: string + protocolPort: + description: Specifies the port used by the backend server to + receive requests. The value should be a valid port. + type: number + subnetId: + description: ', for example, 192.168.3.11.' + type: string + weight: + description: Specifies the weight of the backend server. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/lb.crossplane.io_monitorv2s.yaml b/package/crds/lb.crossplane.io_monitorv2s.yaml new file mode 100644 index 0000000..9a57146 --- /dev/null +++ b/package/crds/lb.crossplane.io_monitorv2s.yaml @@ -0,0 +1,500 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: monitorv2s.lb.crossplane.io +spec: + group: lb.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: MonitorV2 + listKind: MonitorV2List + plural: monitorv2s + singular: monitorv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/lb.crossplane.io_monitorv3s.yaml b/package/crds/lb.crossplane.io_monitorv3s.yaml new file mode 100644 index 0000000..e7fea21 --- /dev/null +++ b/package/crds/lb.crossplane.io_monitorv3s.yaml @@ -0,0 +1,488 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: monitorv3s.lb.crossplane.io +spec: + group: lb.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: MonitorV3 + listKind: MonitorV3List + plural: monitorv3s + singular: monitorv3 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: MonitorV3 is the Schema for the MonitorV3s API. Manages a LB + 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: MonitorV3Spec defines the desired state of MonitorV3 + 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: Specifies the administrative status of the health + check. true indicates that the health check is enabled, and + false indicates that the health check is disabled. + type: boolean + delay: + description: Specifies the interval between health checks, in + seconds. + type: number + domainName: + description: Specifies the domain name that HTTP requests are + sent to during the health check. + type: string + expectedCodes: + description: Specifies the expected HTTP status code. This parameter + will take effect only when type is set to HTTP. + type: string + httpMethod: + description: Specifies the HTTP method. + type: string + maxRetries: + description: Specifies the number of consecutive health checks + when the health check result of a backend server changes from + OFFLINE to ONLINE. + type: number + maxRetriesDown: + description: Specifies the number of consecutive health checks + when the health check result of a backend server changes from + ONLINE to OFFLINE. + type: number + monitorPort: + description: Specifies the port used for the health check. If + this parameter is left blank, the port of the backend server + group will be used by default. + type: number + name: + description: Specifies the health check name. + type: string + poolId: + description: Specifies the ID of the backend server group for + which the health check is configured. Changing this creates + a new monitor. + type: string + projectId: + description: Specifies the project ID. Changing this creates a + new monitor. + type: string + timeout: + description: Specifies the maximum time required for waiting for + a response from the health check, in seconds. + type: number + type: + description: Specifies the health check protocol. + type: string + urlPath: + description: Specifies the HTTP request path for the health check. + 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: Specifies the administrative status of the health + check. true indicates that the health check is enabled, and + false indicates that the health check is disabled. + type: boolean + delay: + description: Specifies the interval between health checks, in + seconds. + type: number + domainName: + description: Specifies the domain name that HTTP requests are + sent to during the health check. + type: string + expectedCodes: + description: Specifies the expected HTTP status code. This parameter + will take effect only when type is set to HTTP. + type: string + httpMethod: + description: Specifies the HTTP method. + type: string + maxRetries: + description: Specifies the number of consecutive health checks + when the health check result of a backend server changes from + OFFLINE to ONLINE. + type: number + maxRetriesDown: + description: Specifies the number of consecutive health checks + when the health check result of a backend server changes from + ONLINE to OFFLINE. + type: number + monitorPort: + description: Specifies the port used for the health check. If + this parameter is left blank, the port of the backend server + group will be used by default. + type: number + name: + description: Specifies the health check name. + type: string + poolId: + description: Specifies the ID of the backend server group for + which the health check is configured. Changing this creates + a new monitor. + type: string + projectId: + description: Specifies the project ID. Changing this creates a + new monitor. + type: string + timeout: + description: Specifies the maximum time required for waiting for + a response from the health check, in seconds. + type: number + type: + description: Specifies the health check protocol. + type: string + urlPath: + description: Specifies the HTTP request path for the health check. + 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: MonitorV3Status defines the observed state of MonitorV3. + properties: + atProvider: + properties: + adminStateUp: + description: Specifies the administrative status of the health + check. true indicates that the health check is enabled, and + false indicates that the health check is disabled. + type: boolean + delay: + description: Specifies the interval between health checks, in + seconds. + type: number + domainName: + description: Specifies the domain name that HTTP requests are + sent to during the health check. + type: string + expectedCodes: + description: Specifies the expected HTTP status code. This parameter + will take effect only when type is set to HTTP. + type: string + httpMethod: + description: Specifies the HTTP method. + type: string + id: + description: Specifies the health check (monitor) ID. + type: string + maxRetries: + description: Specifies the number of consecutive health checks + when the health check result of a backend server changes from + OFFLINE to ONLINE. + type: number + maxRetriesDown: + description: Specifies the number of consecutive health checks + when the health check result of a backend server changes from + ONLINE to OFFLINE. + type: number + monitorPort: + description: Specifies the port used for the health check. If + this parameter is left blank, the port of the backend server + group will be used by default. + type: number + name: + description: Specifies the health check name. + type: string + poolId: + description: Specifies the ID of the backend server group for + which the health check is configured. Changing this creates + a new monitor. + type: string + projectId: + description: Specifies the project ID. Changing this creates a + new monitor. + type: string + timeout: + description: Specifies the maximum time required for waiting for + a response from the health check, in seconds. + type: number + type: + description: Specifies the health check protocol. + type: string + urlPath: + description: Specifies the HTTP request path for the health check. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/lb.crossplane.io_policyv3s.yaml b/package/crds/lb.crossplane.io_policyv3s.yaml new file mode 100644 index 0000000..29653ce --- /dev/null +++ b/package/crds/lb.crossplane.io_policyv3s.yaml @@ -0,0 +1,747 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: policyv3s.lb.crossplane.io +spec: + group: lb.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: PolicyV3 + listKind: PolicyV3List + plural: policyv3s + singular: policyv3 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: PolicyV3 is the Schema for the PolicyV3s API. Manages a LB 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: PolicyV3Spec defines the desired state of PolicyV3 + 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 Policy action - can either be REDIRECT_TO_POOL, + or REDIRECT_TO_LISTENER. Changing this creates a new Policy. + type: string + description: + description: Provides supplementary information about the forwarding + policy. + type: string + fixedResponseConfig: + description: Specifies the configuration of the page that will + be returned. This parameter will take effect when advanced_forwarding + is set to true. If this parameter is passed and advanced_forwarding + is set to false, an error will be returned. Not available in + eu-nl. + items: + properties: + contentType: + description: '- Specifies the format of the response body.' + type: string + messageBody: + description: '- Specifies the content of the response message + body.' + type: string + statusCode: + description: Specifies the fixed HTTP status code configured + in the forwarding rule. The value can be any integer in + the range of 200-299, 400-499, or 500-599. + type: string + type: object + type: array + listenerId: + description: The Listener on which the Policy will be associated + with. Changing this creates a new Policy. + type: string + name: + description: Specifies the forwarding policy name. + type: string + position: + description: The position of this policy on the listener. Positions + start at 1. Changing this creates a new Policy. + type: number + priority: + description: Specifies the forwarding policy priority. A smaller + value indicates a higher priority. The value must be unique + for forwarding policies of the same listener. This parameter + will take effect only when advanced_forwarding is set to true. + If this parameter is passed and advanced_forwarding is set to + false, an error will be returned. This parameter is unsupported + for shared load balancers and not available in eu-nl. + type: number + 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 + 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 + redirectPoolsConfig: + description: 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. + items: + properties: + poolId: + description: '- Specifies the ID of the backend server group.' + type: string + weight: + description: '- Specifies the weight of the backend server + group. The value ranges from 0 to 100.' + type: number + type: object + type: array + redirectUrl: + description: Specifies the URL to which requests are forwarded. + type: string + redirectUrlConfig: + description: Specifies the URL to which requests are forwarded. + For dedicated load balancers, This parameter will take effect + when advanced_forwarding is set to true. If it is passed when + advanced_forwarding is set to false, an error will be returned. + Not available in eu-nl. + items: + properties: + host: + description: '- Specifies the host name that requests are + redirected to. The value can contain only letters, digits, + hyphens (-), and periods (.) and must start with a letter + or digit. The default value is ${host}, indicating that + the host of the request will be used.' + type: string + path: + description: '- Specifies the path that requests are redirected + to. The default value is ${path}, indicating that the + path of the request will be used. The value can contain + only letters, digits, and special characters _~'';@^- + %#&$.*+?,=!:|/()[]{} and must start with a slash (/).' + type: string + port: + description: '- Specifies the port that requests are redirected + to. The default value is ${port}, indicating that the + port of the request will be used.' + type: string + protocol: + description: '- Specifies the protocol for redirection. + The value can be HTTP, HTTPS, or ${protocol}. The default + value is ${protocol}, indicating that the protocol of + the request will be used.' + type: string + query: + description: '- Specifies the query string set in the URL + for redirection. The default value is ${query}, indicating + that the query string of the request will be used.' + type: string + statusCode: + description: Specifies the fixed HTTP status code configured + in the forwarding rule. The value can be any integer in + the range of 200-299, 400-499, or 500-599. + type: string + type: object + type: array + rules: + description: Lists the forwarding rules in the forwarding policy. + items: + properties: + compareType: + description: '- Specifies how requests are matched with + the domain name or URL. The values can be: EQUAL_TO, REGEX, + STARTS_WITH.' + type: string + type: + description: 'Specifies the match content. The value can + be one of the following: HOST_NAME, PATH.' + type: string + value: + description: Specifies the value of the match item. For + example, if a domain name is used for matching, value + is the domain name. + type: string + type: object + type: array + 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 Policy action - can either be REDIRECT_TO_POOL, + or REDIRECT_TO_LISTENER. Changing this creates a new Policy. + type: string + description: + description: Provides supplementary information about the forwarding + policy. + type: string + fixedResponseConfig: + description: Specifies the configuration of the page that will + be returned. This parameter will take effect when advanced_forwarding + is set to true. If this parameter is passed and advanced_forwarding + is set to false, an error will be returned. Not available in + eu-nl. + items: + properties: + contentType: + description: '- Specifies the format of the response body.' + type: string + messageBody: + description: '- Specifies the content of the response message + body.' + type: string + statusCode: + description: Specifies the fixed HTTP status code configured + in the forwarding rule. The value can be any integer in + the range of 200-299, 400-499, or 500-599. + type: string + type: object + type: array + listenerId: + description: The Listener on which the Policy will be associated + with. Changing this creates a new Policy. + type: string + name: + description: Specifies the forwarding policy name. + type: string + position: + description: The position of this policy on the listener. Positions + start at 1. Changing this creates a new Policy. + type: number + priority: + description: Specifies the forwarding policy priority. A smaller + value indicates a higher priority. The value must be unique + for forwarding policies of the same listener. This parameter + will take effect only when advanced_forwarding is set to true. + If this parameter is passed and advanced_forwarding is set to + false, an error will be returned. This parameter is unsupported + for shared load balancers and not available in eu-nl. + type: number + 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 + 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 + redirectPoolsConfig: + description: 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. + items: + properties: + poolId: + description: '- Specifies the ID of the backend server group.' + type: string + weight: + description: '- Specifies the weight of the backend server + group. The value ranges from 0 to 100.' + type: number + type: object + type: array + redirectUrl: + description: Specifies the URL to which requests are forwarded. + type: string + redirectUrlConfig: + description: Specifies the URL to which requests are forwarded. + For dedicated load balancers, This parameter will take effect + when advanced_forwarding is set to true. If it is passed when + advanced_forwarding is set to false, an error will be returned. + Not available in eu-nl. + items: + properties: + host: + description: '- Specifies the host name that requests are + redirected to. The value can contain only letters, digits, + hyphens (-), and periods (.) and must start with a letter + or digit. The default value is ${host}, indicating that + the host of the request will be used.' + type: string + path: + description: '- Specifies the path that requests are redirected + to. The default value is ${path}, indicating that the + path of the request will be used. The value can contain + only letters, digits, and special characters _~'';@^- + %#&$.*+?,=!:|/()[]{} and must start with a slash (/).' + type: string + port: + description: '- Specifies the port that requests are redirected + to. The default value is ${port}, indicating that the + port of the request will be used.' + type: string + protocol: + description: '- Specifies the protocol for redirection. + The value can be HTTP, HTTPS, or ${protocol}. The default + value is ${protocol}, indicating that the protocol of + the request will be used.' + type: string + query: + description: '- Specifies the query string set in the URL + for redirection. The default value is ${query}, indicating + that the query string of the request will be used.' + type: string + statusCode: + description: Specifies the fixed HTTP status code configured + in the forwarding rule. The value can be any integer in + the range of 200-299, 400-499, or 500-599. + type: string + type: object + type: array + rules: + description: Lists the forwarding rules in the forwarding policy. + items: + properties: + compareType: + description: '- Specifies how requests are matched with + the domain name or URL. The values can be: EQUAL_TO, REGEX, + STARTS_WITH.' + type: string + type: + description: 'Specifies the match content. The value can + be one of the following: HOST_NAME, PATH.' + type: string + value: + description: Specifies the value of the match item. For + example, if a domain name is used for matching, value + is the domain name. + type: string + type: object + type: array + 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: PolicyV3Status defines the observed state of PolicyV3. + properties: + atProvider: + properties: + action: + description: The Policy action - can either be REDIRECT_TO_POOL, + or REDIRECT_TO_LISTENER. Changing this creates a new Policy. + type: string + description: + description: Provides supplementary information about the forwarding + policy. + type: string + fixedResponseConfig: + description: Specifies the configuration of the page that will + be returned. This parameter will take effect when advanced_forwarding + is set to true. If this parameter is passed and advanced_forwarding + is set to false, an error will be returned. Not available in + eu-nl. + items: + properties: + contentType: + description: '- Specifies the format of the response body.' + type: string + messageBody: + description: '- Specifies the content of the response message + body.' + type: string + statusCode: + description: Specifies the fixed HTTP status code configured + in the forwarding rule. The value can be any integer in + the range of 200-299, 400-499, or 500-599. + type: string + type: object + type: array + id: + description: The unique ID for the policy. + type: string + listenerId: + description: The Listener on which the Policy will be associated + with. Changing this creates a new Policy. + type: string + name: + description: Specifies the forwarding policy name. + type: string + position: + description: The position of this policy on the listener. Positions + start at 1. Changing this creates a new Policy. + type: number + priority: + description: Specifies the forwarding policy priority. A smaller + value indicates a higher priority. The value must be unique + for forwarding policies of the same listener. This parameter + will take effect only when advanced_forwarding is set to true. + If this parameter is passed and advanced_forwarding is set to + false, an error will be returned. This parameter is unsupported + for shared load balancers and not available in eu-nl. + type: number + 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 + 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 + redirectPoolsConfig: + description: 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. + items: + properties: + poolId: + description: '- Specifies the ID of the backend server group.' + type: string + weight: + description: '- Specifies the weight of the backend server + group. The value ranges from 0 to 100.' + type: number + type: object + type: array + redirectUrl: + description: Specifies the URL to which requests are forwarded. + type: string + redirectUrlConfig: + description: Specifies the URL to which requests are forwarded. + For dedicated load balancers, This parameter will take effect + when advanced_forwarding is set to true. If it is passed when + advanced_forwarding is set to false, an error will be returned. + Not available in eu-nl. + items: + properties: + host: + description: '- Specifies the host name that requests are + redirected to. The value can contain only letters, digits, + hyphens (-), and periods (.) and must start with a letter + or digit. The default value is ${host}, indicating that + the host of the request will be used.' + type: string + path: + description: '- Specifies the path that requests are redirected + to. The default value is ${path}, indicating that the + path of the request will be used. The value can contain + only letters, digits, and special characters _~'';@^- + %#&$.*+?,=!:|/()[]{} and must start with a slash (/).' + type: string + port: + description: '- Specifies the port that requests are redirected + to. The default value is ${port}, indicating that the + port of the request will be used.' + type: string + protocol: + description: '- Specifies the protocol for redirection. + The value can be HTTP, HTTPS, or ${protocol}. The default + value is ${protocol}, indicating that the protocol of + the request will be used.' + type: string + query: + description: '- Specifies the query string set in the URL + for redirection. The default value is ${query}, indicating + that the query string of the request will be used.' + type: string + statusCode: + description: Specifies the fixed HTTP status code configured + in the forwarding rule. The value can be any integer in + the range of 200-299, 400-499, or 500-599. + type: string + type: object + type: array + rules: + description: Lists the forwarding rules in the forwarding policy. + items: + properties: + compareType: + description: '- Specifies how requests are matched with + the domain name or URL. The values can be: EQUAL_TO, REGEX, + STARTS_WITH.' + type: string + type: + description: 'Specifies the match content. The value can + be one of the following: HOST_NAME, PATH.' + type: string + value: + description: Specifies the value of the match item. For + example, if a domain name is used for matching, value + is the domain name. + type: string + type: object + type: array + status: + description: Specifies the provisioning status of the forwarding + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/lb.crossplane.io_poolv2s.yaml b/package/crds/lb.crossplane.io_poolv2s.yaml new file mode 100644 index 0000000..3ea69d2 --- /dev/null +++ b/package/crds/lb.crossplane.io_poolv2s.yaml @@ -0,0 +1,455 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: poolv2s.lb.crossplane.io +spec: + group: lb.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: PoolV2 + listKind: PoolV2List + plural: poolv2s + singular: poolv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/lb.crossplane.io_poolv3s.yaml b/package/crds/lb.crossplane.io_poolv3s.yaml new file mode 100644 index 0000000..0cd378f --- /dev/null +++ b/package/crds/lb.crossplane.io_poolv3s.yaml @@ -0,0 +1,489 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: poolv3s.lb.crossplane.io +spec: + group: lb.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: PoolV3 + listKind: PoolV3List + plural: poolv3s + singular: poolv3 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: PoolV3 is the Schema for the PoolV3s API. Manages a LB 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: PoolV3Spec defines the desired state of PoolV3 + 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: + description: + description: Provides supplementary information about the backend + server group. + type: string + lbAlgorithm: + description: Specifies the load balancing algorithm used by the + load balancer to route requests to backend servers. + type: string + listenerId: + description: Specifies the ID of the listener associated with + the backend server group. + type: string + loadbalancerId: + description: Specifies the ID of the associated load balancer. + type: string + memberDeletionProtection: + description: 'Specifies whether to enable removal protection for + the pool members. true: Enable removal protection. false (default): + Disable removal protection.' + type: boolean + name: + description: Specifies the backend server group name. + type: string + projectId: + description: Specifies the project ID. + type: string + protocol: + description: Specifies the protocol used by the backend server + group to receive requests. TCP, UDP, HTTP, HTTPS, and QUIC are + supported. + type: string + sessionPersistence: + description: Specifies whether to enable sticky sessions. + items: + properties: + cookieName: + description: Specifies the cookie name. This parameter will + take effect only when type is set to APP_COOKIE. The value + can contain only letters, digits, hyphens (-), underscores + (_), and periods (.). + type: string + persistenceTimeout: + description: Specifies the stickiness duration, in minutes. + This parameter will not take effect when type is set to + APP_COOKIE. + type: number + type: + description: Specifies the sticky session type. The value + can be SOURCE_IP, HTTP_COOKIE, or APP_COOKIE. + type: string + type: object + type: array + type: + description: Specifies the sticky session type. The value can + be SOURCE_IP, HTTP_COOKIE, or APP_COOKIE. + type: string + vpcId: + description: Specifies the ID of the VPC where the backend server + group works. + 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: + description: + description: Provides supplementary information about the backend + server group. + type: string + lbAlgorithm: + description: Specifies the load balancing algorithm used by the + load balancer to route requests to backend servers. + type: string + listenerId: + description: Specifies the ID of the listener associated with + the backend server group. + type: string + loadbalancerId: + description: Specifies the ID of the associated load balancer. + type: string + memberDeletionProtection: + description: 'Specifies whether to enable removal protection for + the pool members. true: Enable removal protection. false (default): + Disable removal protection.' + type: boolean + name: + description: Specifies the backend server group name. + type: string + projectId: + description: Specifies the project ID. + type: string + protocol: + description: Specifies the protocol used by the backend server + group to receive requests. TCP, UDP, HTTP, HTTPS, and QUIC are + supported. + type: string + sessionPersistence: + description: Specifies whether to enable sticky sessions. + items: + properties: + cookieName: + description: Specifies the cookie name. This parameter will + take effect only when type is set to APP_COOKIE. The value + can contain only letters, digits, hyphens (-), underscores + (_), and periods (.). + type: string + persistenceTimeout: + description: Specifies the stickiness duration, in minutes. + This parameter will not take effect when type is set to + APP_COOKIE. + type: number + type: + description: Specifies the sticky session type. The value + can be SOURCE_IP, HTTP_COOKIE, or APP_COOKIE. + type: string + type: object + type: array + type: + description: Specifies the sticky session type. The value can + be SOURCE_IP, HTTP_COOKIE, or APP_COOKIE. + type: string + vpcId: + description: Specifies the ID of the VPC where the backend server + group works. + 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.lbAlgorithm is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.lbAlgorithm) + || (has(self.initProvider) && has(self.initProvider.lbAlgorithm))' + - 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: PoolV3Status defines the observed state of PoolV3. + properties: + atProvider: + properties: + description: + description: Provides supplementary information about the backend + server group. + type: string + id: + description: Specifies the backend server group ID. + type: string + ipVersion: + description: Specifies the IP version supported by the backend + server group. + type: string + lbAlgorithm: + description: Specifies the load balancing algorithm used by the + load balancer to route requests to backend servers. + type: string + listenerId: + description: Specifies the ID of the listener associated with + the backend server group. + type: string + loadbalancerId: + description: Specifies the ID of the associated load balancer. + type: string + memberDeletionProtection: + description: 'Specifies whether to enable removal protection for + the pool members. true: Enable removal protection. false (default): + Disable removal protection.' + type: boolean + name: + description: Specifies the backend server group name. + type: string + projectId: + description: Specifies the project ID. + type: string + protocol: + description: Specifies the protocol used by the backend server + group to receive requests. TCP, UDP, HTTP, HTTPS, and QUIC are + supported. + type: string + sessionPersistence: + description: Specifies whether to enable sticky sessions. + items: + properties: + cookieName: + description: Specifies the cookie name. This parameter will + take effect only when type is set to APP_COOKIE. The value + can contain only letters, digits, hyphens (-), underscores + (_), and periods (.). + type: string + persistenceTimeout: + description: Specifies the stickiness duration, in minutes. + This parameter will not take effect when type is set to + APP_COOKIE. + type: number + type: + description: Specifies the sticky session type. The value + can be SOURCE_IP, HTTP_COOKIE, or APP_COOKIE. + type: string + type: object + type: array + type: + description: Specifies the sticky session type. The value can + be SOURCE_IP, HTTP_COOKIE, or APP_COOKIE. + type: string + vpcId: + description: Specifies the ID of the VPC where the backend server + group works. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/lb.crossplane.io_rulev3s.yaml b/package/crds/lb.crossplane.io_rulev3s.yaml new file mode 100644 index 0000000..5f16873 --- /dev/null +++ b/package/crds/lb.crossplane.io_rulev3s.yaml @@ -0,0 +1,423 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: rulev3s.lb.crossplane.io +spec: + group: lb.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: RuleV3 + listKind: RuleV3List + plural: rulev3s + singular: rulev3 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: RuleV3 is the Schema for the RuleV3s API. Manages a LB 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: RuleV3Spec defines the desired state of RuleV3 + 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: + compareType: + description: '- Specifies how requests are matched with the domain + name or URL. The values can be: EQUAL_TO, REGEX, STARTS_WITH.' + type: string + conditions: + description: Specifies the matching conditions of the forwarding + rule. This parameter is available only when advanced_forwarding + is set to true. Not available in eu-nl. + items: + properties: + key: + description: Specifies the key of match item. + type: string + value: + description: Specifies the value of the match item. For + example, if a domain name is used for matching, value + is the domain name. + type: string + type: object + type: array + policyId: + description: ID of the policy. + type: string + 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 + type: + description: 'Specifies the match content. The value can be one + of the following: HOST_NAME, PATH.' + type: string + value: + description: Specifies the value of the match item. For example, + if a domain name is used for matching, value is the domain name. + 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: + compareType: + description: '- Specifies how requests are matched with the domain + name or URL. The values can be: EQUAL_TO, REGEX, STARTS_WITH.' + type: string + conditions: + description: Specifies the matching conditions of the forwarding + rule. This parameter is available only when advanced_forwarding + is set to true. Not available in eu-nl. + items: + properties: + key: + description: Specifies the key of match item. + type: string + value: + description: Specifies the value of the match item. For + example, if a domain name is used for matching, value + is the domain name. + type: string + type: object + type: array + policyId: + description: ID of the policy. + type: string + 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 + type: + description: 'Specifies the match content. The value can be one + of the following: HOST_NAME, PATH.' + type: string + value: + description: Specifies the value of the match item. For example, + if a domain name is used for matching, value is the domain name. + 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.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) + || (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: RuleV3Status defines the observed state of RuleV3. + properties: + atProvider: + properties: + compareType: + description: '- Specifies how requests are matched with the domain + name or URL. The values can be: EQUAL_TO, REGEX, STARTS_WITH.' + type: string + conditions: + description: Specifies the matching conditions of the forwarding + rule. This parameter is available only when advanced_forwarding + is set to true. Not available in eu-nl. + items: + properties: + key: + description: Specifies the key of match item. + type: string + value: + description: Specifies the value of the match item. For + example, if a domain name is used for matching, value + is the domain name. + type: string + type: object + type: array + id: + type: string + policyId: + description: ID of the policy. + type: string + 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 + ruleId: + description: ID of the policy rule. + type: string + type: + description: 'Specifies the match content. The value can be one + of the following: HOST_NAME, PATH.' + type: string + value: + description: Specifies the value of the match item. For example, + if a domain name is used for matching, value is the domain name. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/lb.crossplane.io_securitypolicyv3s.yaml b/package/crds/lb.crossplane.io_securitypolicyv3s.yaml new file mode 100644 index 0000000..f438878 --- /dev/null +++ b/package/crds/lb.crossplane.io_securitypolicyv3s.yaml @@ -0,0 +1,375 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: securitypolicyv3s.lb.crossplane.io +spec: + group: lb.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: SecurityPolicyV3 + listKind: SecurityPolicyV3List + plural: securitypolicyv3s + singular: securitypolicyv3 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: SecurityPolicyV3 is the Schema for the SecurityPolicyV3s API. + Manages a LB Security 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: SecurityPolicyV3Spec defines the desired state of SecurityPolicyV3 + 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: + ciphers: + description: Lists the cipher suites supported by the custom security + policy. + items: + type: string + type: array + description: + description: Provides supplementary information about the security + policy. + type: string + name: + description: Specifies the security policy name. + type: string + protocols: + description: Lists the TLS protocols supported by the custom security + policy. + items: + type: string + type: array + 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: + ciphers: + description: Lists the cipher suites supported by the custom security + policy. + items: + type: string + type: array + description: + description: Provides supplementary information about the security + policy. + type: string + name: + description: Specifies the security policy name. + type: string + protocols: + description: Lists the TLS protocols supported by the custom security + policy. + items: + type: string + type: array + 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.ciphers is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.ciphers) + || (has(self.initProvider) && has(self.initProvider.ciphers))' + - message: spec.forProvider.protocols is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.protocols) + || (has(self.initProvider) && has(self.initProvider.protocols))' + status: + description: SecurityPolicyV3Status defines the observed state of SecurityPolicyV3. + properties: + atProvider: + properties: + ciphers: + description: Lists the cipher suites supported by the custom security + policy. + items: + type: string + type: array + createdAt: + description: The time when the custom security policy was created. + type: string + description: + description: Provides supplementary information about the security + policy. + type: string + id: + description: The unique ID for the policy. + type: string + listenerIds: + items: + type: string + type: array + name: + description: Specifies the security policy name. + type: string + projectId: + description: The project ID of the custom security policy. + type: string + protocols: + description: Lists the TLS protocols supported by the custom security + policy. + items: + type: string + type: array + updatedAt: + description: The time when the custom security policy was updated. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/lb.crossplane.io_whitelistv2s.yaml b/package/crds/lb.crossplane.io_whitelistv2s.yaml new file mode 100644 index 0000000..ca38306 --- /dev/null +++ b/package/crds/lb.crossplane.io_whitelistv2s.yaml @@ -0,0 +1,349 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: whitelistv2s.lb.crossplane.io +spec: + group: lb.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: WhitelistV2 + listKind: WhitelistV2List + plural: whitelistv2s + singular: whitelistv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/nat.crossplane.io_dnatrulev2s.yaml b/package/crds/nat.crossplane.io_dnatrulev2s.yaml new file mode 100644 index 0000000..19d687b --- /dev/null +++ b/package/crds/nat.crossplane.io_dnatrulev2s.yaml @@ -0,0 +1,420 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: dnatrulev2s.nat.crossplane.io +spec: + group: nat.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: DnatRuleV2 + listKind: DnatRuleV2List + plural: dnatrulev2s + singular: dnatrulev2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: DnatRuleV2 is the Schema for the DnatRuleV2s API. Manages a NAT + DNAT 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: DnatRuleV2Spec defines the desired state of DnatRuleV2 + 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: + externalServicePort: + description: Specifies port used by ECSs or BMSs to provide services + for external systems. Changing this creates a new DNAT rule. + type: number + floatingIpId: + description: Specifies the ID of the floating IP address. Changing + this creates a new resource. + type: string + internalServicePort: + description: Specifies port used by ECSs or BMSs to provide services + for external systems. Changing this creates a new resource. + type: number + natGatewayId: + description: ID of the NAT gateway this DNAT rule belongs to. + Changing this creates a new DNAT rule. + type: string + portId: + description: Specifies the port ID of an ECS or a BMS. This parameter + and private_ip are alternative. Changing this creates a new + DNAT rule. + type: string + privateIp: + description: Specifies the private IP address of a user, for example, + the IP address of a VPC for dedicated connection. This parameter + and port_id are alternative. Changing this creates a new DNAT + rule. + type: string + protocol: + description: Specifies the protocol type. Currently, tcp, udp, + and any are supported. Changing this creates a new DNAT rule. + 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: + externalServicePort: + description: Specifies port used by ECSs or BMSs to provide services + for external systems. Changing this creates a new DNAT rule. + type: number + floatingIpId: + description: Specifies the ID of the floating IP address. Changing + this creates a new resource. + type: string + internalServicePort: + description: Specifies port used by ECSs or BMSs to provide services + for external systems. Changing this creates a new resource. + type: number + natGatewayId: + description: ID of the NAT gateway this DNAT rule belongs to. + Changing this creates a new DNAT rule. + type: string + portId: + description: Specifies the port ID of an ECS or a BMS. This parameter + and private_ip are alternative. Changing this creates a new + DNAT rule. + type: string + privateIp: + description: Specifies the private IP address of a user, for example, + the IP address of a VPC for dedicated connection. This parameter + and port_id are alternative. Changing this creates a new DNAT + rule. + type: string + protocol: + description: Specifies the protocol type. Currently, tcp, udp, + and any are supported. Changing this creates a new DNAT rule. + 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.externalServicePort is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.externalServicePort) + || (has(self.initProvider) && has(self.initProvider.externalServicePort))' + - message: spec.forProvider.floatingIpId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.floatingIpId) + || (has(self.initProvider) && has(self.initProvider.floatingIpId))' + - message: spec.forProvider.internalServicePort is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.internalServicePort) + || (has(self.initProvider) && has(self.initProvider.internalServicePort))' + - message: spec.forProvider.natGatewayId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.natGatewayId) + || (has(self.initProvider) && has(self.initProvider.natGatewayId))' + - 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: DnatRuleV2Status defines the observed state of DnatRuleV2. + properties: + atProvider: + properties: + createdAt: + description: DNAT rule creation time. + type: string + externalServicePort: + description: Specifies port used by ECSs or BMSs to provide services + for external systems. Changing this creates a new DNAT rule. + type: number + floatingIpAddress: + description: The actual floating IP address. + type: string + floatingIpId: + description: Specifies the ID of the floating IP address. Changing + this creates a new resource. + type: string + id: + type: string + internalServicePort: + description: Specifies port used by ECSs or BMSs to provide services + for external systems. Changing this creates a new resource. + type: number + natGatewayId: + description: ID of the NAT gateway this DNAT rule belongs to. + Changing this creates a new DNAT rule. + type: string + portId: + description: Specifies the port ID of an ECS or a BMS. This parameter + and private_ip are alternative. Changing this creates a new + DNAT rule. + type: string + privateIp: + description: Specifies the private IP address of a user, for example, + the IP address of a VPC for dedicated connection. This parameter + and port_id are alternative. Changing this creates a new DNAT + rule. + type: string + protocol: + description: Specifies the protocol type. Currently, tcp, udp, + and any are supported. Changing this creates a new DNAT rule. + type: string + status: + description: DNAT rule status. + type: string + tenantId: + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/nat.crossplane.io_gatewayv2s.yaml b/package/crds/nat.crossplane.io_gatewayv2s.yaml new file mode 100644 index 0000000..b6c901a --- /dev/null +++ b/package/crds/nat.crossplane.io_gatewayv2s.yaml @@ -0,0 +1,399 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: gatewayv2s.nat.crossplane.io +spec: + group: nat.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: GatewayV2 + listKind: GatewayV2List + plural: gatewayv2s + singular: gatewayv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: GatewayV2 is the Schema for the GatewayV2s API. Manages a NAT + Gateway 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: GatewayV2Spec defines the desired state of GatewayV2 + 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: + description: + description: The description of the NAT Gateway. + type: string + internalNetworkId: + description: ID of the network this NAT Gateway connects to. Changing + this creates a new NAT Gateway. + type: string + name: + description: The name of the NAT Gateway. + type: string + region: + type: string + routerId: + description: ID of the router (or VPC) this NAT Gateway belongs + to. Changing this creates a new NAT Gateway. + type: string + spec: + description: The specification of the NAT Gateway, valid values + are "0","1", "2", "3", "4". + type: string + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the NAT Gateway. + type: object + tenantId: + description: The target tenant ID in which to allocate the NAT + Gateway. Changing this creates a new NAT Gateway. + 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: + description: + description: The description of the NAT Gateway. + type: string + internalNetworkId: + description: ID of the network this NAT Gateway connects to. Changing + this creates a new NAT Gateway. + type: string + name: + description: The name of the NAT Gateway. + type: string + region: + type: string + routerId: + description: ID of the router (or VPC) this NAT Gateway belongs + to. Changing this creates a new NAT Gateway. + type: string + spec: + description: The specification of the NAT Gateway, valid values + are "0","1", "2", "3", "4". + type: string + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the NAT Gateway. + type: object + tenantId: + description: The target tenant ID in which to allocate the NAT + Gateway. Changing this creates a new NAT Gateway. + 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.internalNetworkId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.internalNetworkId) + || (has(self.initProvider) && has(self.initProvider.internalNetworkId))' + - message: spec.forProvider.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + - message: spec.forProvider.routerId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.routerId) + || (has(self.initProvider) && has(self.initProvider.routerId))' + - message: spec.forProvider.spec is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.spec) + || (has(self.initProvider) && has(self.initProvider.spec))' + status: + description: GatewayV2Status defines the observed state of GatewayV2. + properties: + atProvider: + properties: + description: + description: The description of the NAT Gateway. + type: string + id: + type: string + internalNetworkId: + description: ID of the network this NAT Gateway connects to. Changing + this creates a new NAT Gateway. + type: string + name: + description: The name of the NAT Gateway. + type: string + region: + type: string + routerId: + description: ID of the router (or VPC) this NAT Gateway belongs + to. Changing this creates a new NAT Gateway. + type: string + spec: + description: The specification of the NAT Gateway, valid values + are "0","1", "2", "3", "4". + type: string + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the NAT Gateway. + type: object + tenantId: + description: The target tenant ID in which to allocate the NAT + Gateway. Changing this creates a new NAT Gateway. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/nat.crossplane.io_snatrulev2s.yaml b/package/crds/nat.crossplane.io_snatrulev2s.yaml new file mode 100644 index 0000000..83b9eae --- /dev/null +++ b/package/crds/nat.crossplane.io_snatrulev2s.yaml @@ -0,0 +1,391 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: snatrulev2s.nat.crossplane.io +spec: + group: nat.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: SnatRuleV2 + listKind: SnatRuleV2List + plural: snatrulev2s + singular: snatrulev2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: SnatRuleV2 is the Schema for the SnatRuleV2s API. Manages a NAT + SNAT 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: SnatRuleV2Spec defines the desired state of SnatRuleV2 + 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: + cidr: + description: Specifies CIDR, which can be in the format of a network + segment or a host IP address. This parameter and network_id + are alternative. If the value of source_type is 0, the CIDR + block must be a subset of the VPC subnet CIDR block. If the + value of source_type is 1, the CIDR block must be a CIDR block + of Direct Connect and cannot conflict with the VPC CIDR blocks. + Changing this creates a new snat rule. + type: string + floatingIpId: + description: ID of the floating ip this snat rule connects to. + Changing this creates a new snat rule. + type: string + natGatewayId: + description: ID of the nat gateway this snat rule belongs to. + Changing this creates a new snat rule. + type: string + networkId: + description: ID of the network this snat rule connects to. This + parameter and cidr are alternative. Changing this creates a + new snat rule. + type: string + region: + type: string + sourceType: + description: '0: Either network_id or cidr can be specified in + a VPC. 1: Only cidr can be specified over a dedicated network. + Changing this creates a new snat rule.' + 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: + cidr: + description: Specifies CIDR, which can be in the format of a network + segment or a host IP address. This parameter and network_id + are alternative. If the value of source_type is 0, the CIDR + block must be a subset of the VPC subnet CIDR block. If the + value of source_type is 1, the CIDR block must be a CIDR block + of Direct Connect and cannot conflict with the VPC CIDR blocks. + Changing this creates a new snat rule. + type: string + floatingIpId: + description: ID of the floating ip this snat rule connects to. + Changing this creates a new snat rule. + type: string + natGatewayId: + description: ID of the nat gateway this snat rule belongs to. + Changing this creates a new snat rule. + type: string + networkId: + description: ID of the network this snat rule connects to. This + parameter and cidr are alternative. Changing this creates a + new snat rule. + type: string + region: + type: string + sourceType: + description: '0: Either network_id or cidr can be specified in + a VPC. 1: Only cidr can be specified over a dedicated network. + Changing this creates a new snat rule.' + 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.floatingIpId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.floatingIpId) + || (has(self.initProvider) && has(self.initProvider.floatingIpId))' + - message: spec.forProvider.natGatewayId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.natGatewayId) + || (has(self.initProvider) && has(self.initProvider.natGatewayId))' + status: + description: SnatRuleV2Status defines the observed state of SnatRuleV2. + properties: + atProvider: + properties: + cidr: + description: Specifies CIDR, which can be in the format of a network + segment or a host IP address. This parameter and network_id + are alternative. If the value of source_type is 0, the CIDR + block must be a subset of the VPC subnet CIDR block. If the + value of source_type is 1, the CIDR block must be a CIDR block + of Direct Connect and cannot conflict with the VPC CIDR blocks. + Changing this creates a new snat rule. + type: string + floatingIpId: + description: ID of the floating ip this snat rule connects to. + Changing this creates a new snat rule. + type: string + id: + type: string + natGatewayId: + description: ID of the nat gateway this snat rule belongs to. + Changing this creates a new snat rule. + type: string + networkId: + description: ID of the network this snat rule connects to. This + parameter and cidr are alternative. Changing this creates a + new snat rule. + type: string + region: + type: string + sourceType: + description: '0: Either network_id or cidr can be specified in + a VPC. 1: Only cidr can be specified over a dedicated network. + Changing this creates a new snat rule.' + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/networking.crossplane.io_floatingipassociatev2s.yaml b/package/crds/networking.crossplane.io_floatingipassociatev2s.yaml new file mode 100644 index 0000000..c7357eb --- /dev/null +++ b/package/crds/networking.crossplane.io_floatingipassociatev2s.yaml @@ -0,0 +1,332 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: floatingipassociatev2s.networking.crossplane.io +spec: + group: networking.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: FloatingipAssociateV2 + listKind: FloatingipAssociateV2List + plural: floatingipassociatev2s + singular: floatingipassociatev2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: FloatingipAssociateV2 is the Schema for the FloatingipAssociateV2s + API. Manages a VPC Floating IP Association 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: FloatingipAssociateV2Spec defines the desired state of FloatingipAssociateV2 + 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: + floatingIp: + description: IP Address of an existing floating IP. + type: string + portId: + description: ID of an existing port with at least one IP address + to associate with this floating IP. + type: string + region: + 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: + floatingIp: + description: IP Address of an existing floating IP. + type: string + portId: + description: ID of an existing port with at least one IP address + to associate with this floating IP. + type: string + region: + 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.floatingIp is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.floatingIp) + || (has(self.initProvider) && has(self.initProvider.floatingIp))' + - message: spec.forProvider.portId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.portId) + || (has(self.initProvider) && has(self.initProvider.portId))' + status: + description: FloatingipAssociateV2Status defines the observed state of + FloatingipAssociateV2. + properties: + atProvider: + properties: + floatingIp: + description: IP Address of an existing floating IP. + type: string + id: + type: string + portId: + description: ID of an existing port with at least one IP address + to associate with this floating IP. + type: string + region: + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/networking.crossplane.io_floatingipv2s.yaml b/package/crds/networking.crossplane.io_floatingipv2s.yaml new file mode 100644 index 0000000..df667bc --- /dev/null +++ b/package/crds/networking.crossplane.io_floatingipv2s.yaml @@ -0,0 +1,376 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: floatingipv2s.networking.crossplane.io +spec: + group: networking.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: FloatingipV2 + listKind: FloatingipV2List + plural: floatingipv2s + singular: floatingipv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: FloatingipV2 is the Schema for the FloatingipV2s API. Manages + a VPC Floating IP 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: FloatingipV2Spec defines the desired state of FloatingipV2 + 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: + fixedIp: + description: Fixed IP of the port to associate with this floating + IP. Required if the port has multiple fixed IPs. + type: string + pool: + description: The name of the pool from which to obtain the floating + IP. Default value is admin_external_net. Changing this creates + a new floating IP. + type: string + portId: + description: ID of an existing port with at least one IP address + to associate with this floating IP. + type: string + region: + type: string + tenantId: + description: The target tenant ID in which to allocate the floating + IP, if you specify this together with a port_id, make sure the + target port belongs to the same tenant. Changing this creates + a new floating IP (which may or may not have a different address). + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + 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: + fixedIp: + description: Fixed IP of the port to associate with this floating + IP. Required if the port has multiple fixed IPs. + type: string + pool: + description: The name of the pool from which to obtain the floating + IP. Default value is admin_external_net. Changing this creates + a new floating IP. + type: string + portId: + description: ID of an existing port with at least one IP address + to associate with this floating IP. + type: string + region: + type: string + tenantId: + description: The target tenant ID in which to allocate the floating + IP, if you specify this together with a port_id, make sure the + target port belongs to the same tenant. Changing this creates + a new floating IP (which may or may not have a different address). + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + 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 + status: + description: FloatingipV2Status defines the observed state of FloatingipV2. + properties: + atProvider: + properties: + address: + description: The actual floating IP address itself. + type: string + fixedIp: + description: Fixed IP of the port to associate with this floating + IP. Required if the port has multiple fixed IPs. + type: string + id: + type: string + pool: + description: The name of the pool from which to obtain the floating + IP. Default value is admin_external_net. Changing this creates + a new floating IP. + type: string + portId: + description: ID of an existing port with at least one IP address + to associate with this floating IP. + type: string + region: + type: string + tenantId: + description: The target tenant ID in which to allocate the floating + IP, if you specify this together with a port_id, make sure the + target port belongs to the same tenant. Changing this creates + a new floating IP (which may or may not have a different address). + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/networking.crossplane.io_networkv2s.yaml b/package/crds/networking.crossplane.io_networkv2s.yaml new file mode 100644 index 0000000..2811fa4 --- /dev/null +++ b/package/crds/networking.crossplane.io_networkv2s.yaml @@ -0,0 +1,424 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: networkv2s.networking.crossplane.io +spec: + group: networking.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: NetworkV2 + listKind: NetworkV2List + plural: networkv2s + singular: networkv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: NetworkV2 is the Schema for the NetworkV2s API. Manages a VPC + Network 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: NetworkV2Spec defines the desired state of NetworkV2 + 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 network. Acceptable + values are "true" and "false". Changing this value updates the + state of the existing network. + type: string + name: + description: The name of the network. Changing this updates the + name of the existing network. + type: string + region: + type: string + segments: + description: An array of one or more provider segment objects. + items: + properties: + networkType: + description: The type of physical network. + type: string + physicalNetwork: + description: The physical network where this network is + implemented. + type: string + segmentationId: + description: An isolated segment on the physical network. + type: number + type: object + type: array + shared: + description: Specifies whether the network resource can be accessed + by any tenant or not. Changing this updates the sharing capabilities + of the existing network. Shared SNAT only available in eu-de + region. + type: string + tenantId: + description: The owner of the network. Required if admin wants + to create a network for another tenant. Changing this creates + a new network. + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + 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 network. Acceptable + values are "true" and "false". Changing this value updates the + state of the existing network. + type: string + name: + description: The name of the network. Changing this updates the + name of the existing network. + type: string + region: + type: string + segments: + description: An array of one or more provider segment objects. + items: + properties: + networkType: + description: The type of physical network. + type: string + physicalNetwork: + description: The physical network where this network is + implemented. + type: string + segmentationId: + description: An isolated segment on the physical network. + type: number + type: object + type: array + shared: + description: Specifies whether the network resource can be accessed + by any tenant or not. Changing this updates the sharing capabilities + of the existing network. Shared SNAT only available in eu-de + region. + type: string + tenantId: + description: The owner of the network. Required if admin wants + to create a network for another tenant. Changing this creates + a new network. + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + 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 + status: + description: NetworkV2Status defines the observed state of NetworkV2. + properties: + atProvider: + properties: + adminStateUp: + description: The administrative state of the network. Acceptable + values are "true" and "false". Changing this value updates the + state of the existing network. + type: string + id: + type: string + name: + description: The name of the network. Changing this updates the + name of the existing network. + type: string + region: + type: string + segments: + description: An array of one or more provider segment objects. + items: + properties: + networkType: + description: The type of physical network. + type: string + physicalNetwork: + description: The physical network where this network is + implemented. + type: string + segmentationId: + description: An isolated segment on the physical network. + type: number + type: object + type: array + shared: + description: Specifies whether the network resource can be accessed + by any tenant or not. Changing this updates the sharing capabilities + of the existing network. Shared SNAT only available in eu-de + region. + type: string + tenantId: + description: The owner of the network. Required if admin wants + to create a network for another tenant. Changing this creates + a new network. + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/networking.crossplane.io_portsecgroupassociatev2s.yaml b/package/crds/networking.crossplane.io_portsecgroupassociatev2s.yaml new file mode 100644 index 0000000..495af09 --- /dev/null +++ b/package/crds/networking.crossplane.io_portsecgroupassociatev2s.yaml @@ -0,0 +1,372 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: portsecgroupassociatev2s.networking.crossplane.io +spec: + group: networking.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: PortSecgroupAssociateV2 + listKind: PortSecgroupAssociateV2List + plural: portsecgroupassociatev2s + singular: portsecgroupassociatev2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: PortSecgroupAssociateV2 is the Schema for the PortSecgroupAssociateV2s + API. Manages a VPC Port's Security Groups 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: PortSecgroupAssociateV2Spec defines the desired state of + PortSecgroupAssociateV2 + 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: + force: + description: Whether to replace or append the list of security + groups, specified in the security_group_ids. Defaults to false. + type: boolean + portId: + description: An UUID of the port to apply security groups to. + type: string + region: + description: The region in which to obtain the V2 networking client. + A networking client is needed to manage a port. If omitted, + the region argument of the provider is used. Changing this creates + a new resource. + type: string + securityGroupIds: + description: A list of security group IDs to apply to the port. + The security groups must be specified by ID and not name (as + opposed to how they are configured with the Compute Instance). + items: + type: string + type: array + 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: + force: + description: Whether to replace or append the list of security + groups, specified in the security_group_ids. Defaults to false. + type: boolean + portId: + description: An UUID of the port to apply security groups to. + type: string + region: + description: The region in which to obtain the V2 networking client. + A networking client is needed to manage a port. If omitted, + the region argument of the provider is used. Changing this creates + a new resource. + type: string + securityGroupIds: + description: A list of security group IDs to apply to the port. + The security groups must be specified by ID and not name (as + opposed to how they are configured with the Compute Instance). + items: + type: string + type: array + 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.portId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.portId) + || (has(self.initProvider) && has(self.initProvider.portId))' + - message: spec.forProvider.securityGroupIds is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.securityGroupIds) + || (has(self.initProvider) && has(self.initProvider.securityGroupIds))' + status: + description: PortSecgroupAssociateV2Status defines the observed state + of PortSecgroupAssociateV2. + properties: + atProvider: + properties: + allSecurityGroupIds: + description: The collection of Security Group IDs on the port + which have been explicitly and implicitly added. + items: + type: string + type: array + force: + description: Whether to replace or append the list of security + groups, specified in the security_group_ids. Defaults to false. + type: boolean + id: + type: string + portId: + description: An UUID of the port to apply security groups to. + type: string + region: + description: The region in which to obtain the V2 networking client. + A networking client is needed to manage a port. If omitted, + the region argument of the provider is used. Changing this creates + a new resource. + type: string + securityGroupIds: + description: A list of security group IDs to apply to the port. + The security groups must be specified by ID and not name (as + opposed to how they are configured with the Compute Instance). + items: + type: string + type: array + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/networking.crossplane.io_portv2s.yaml b/package/crds/networking.crossplane.io_portv2s.yaml new file mode 100644 index 0000000..81d53ed --- /dev/null +++ b/package/crds/networking.crossplane.io_portv2s.yaml @@ -0,0 +1,610 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: portv2s.networking.crossplane.io +spec: + group: networking.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: PortV2 + listKind: PortV2List + plural: portv2s + singular: portv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: PortV2 is the Schema for the PortV2s API. Manages a VPC Port + 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: PortV2Spec defines the desired state of PortV2 + 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: Administrative up/down status for the port (must + be "true" or "false" if provided). Changing this updates the + admin_state_up of an existing port. + type: boolean + allowedAddressPairs: + description: 'An IP/MAC Address pair of additional IP addresses + that can be active on this port. The structure is described + below. The allowed_address_pairs block supports:' + items: + properties: + ipAddress: + description: The additional IP address. + type: string + macAddress: + description: The additional MAC address. + type: string + type: object + type: array + deviceId: + description: The ID of the device attached to the port. Changing + this creates a new port. + type: string + deviceOwner: + description: The device owner of the Port. Changing this creates + a new port. + type: string + extraDhcpOption: + description: 'Specifies the extended DHCP option. This is an extended + attribute. The extra_dhcp_option block supports:' + items: + properties: + name: + description: Specifies the option name. + type: string + value: + description: Specifies the option value. + type: string + type: object + type: array + fixedIp: + description: 'An array of desired IPs for this port. The structure + is described below. A single fixed_ip entry is allowed for a + port. The fixed_ip block supports:' + items: + properties: + ipAddress: + description: IP address desired in the subnet for this port. + If you don't specify ip_address, an available IP address + from the specified subnet will be allocated to this port. + type: string + subnetId: + description: Subnet in which to allocate IP address for + this port. + type: string + type: object + type: array + macAddress: + description: Specify a specific MAC address for the port. Changing + this creates a new port. + type: string + name: + description: A unique name for the port. Changing this updates + the name of an existing port. + type: string + networkId: + description: The ID of the network to attach the port to. Changing + this creates a new port. + type: string + noSecurityGroups: + description: If set to true, then no security groups are applied + to the port. If set to false and no security_group_ids are specified, + then the port will yield to the default behavior of the Networking + service, which is to usually apply the "default" security group. + type: boolean + portSecurityEnabled: + description: Whether to explicitly enable or disable port security + on the port. Port Security is usually enabled by default, so + omitting argument will usually result in a value of true. Setting + this explicitly to false will disable port security. In order + to disable port security, the port must not have any security + groups. Valid values are true and false. + type: boolean + region: + type: string + securityGroupIds: + description: A list of security group IDs to apply to the port. + The security groups must be specified by ID and not name (as + opposed to how they are configured with the Compute Instance). + items: + type: string + type: array + tenantId: + description: The owner of the Port. Required if admin wants to + create a port for another tenant. Changing this creates a new + port. + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + 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: Administrative up/down status for the port (must + be "true" or "false" if provided). Changing this updates the + admin_state_up of an existing port. + type: boolean + allowedAddressPairs: + description: 'An IP/MAC Address pair of additional IP addresses + that can be active on this port. The structure is described + below. The allowed_address_pairs block supports:' + items: + properties: + ipAddress: + description: The additional IP address. + type: string + macAddress: + description: The additional MAC address. + type: string + type: object + type: array + deviceId: + description: The ID of the device attached to the port. Changing + this creates a new port. + type: string + deviceOwner: + description: The device owner of the Port. Changing this creates + a new port. + type: string + extraDhcpOption: + description: 'Specifies the extended DHCP option. This is an extended + attribute. The extra_dhcp_option block supports:' + items: + properties: + name: + description: Specifies the option name. + type: string + value: + description: Specifies the option value. + type: string + type: object + type: array + fixedIp: + description: 'An array of desired IPs for this port. The structure + is described below. A single fixed_ip entry is allowed for a + port. The fixed_ip block supports:' + items: + properties: + ipAddress: + description: IP address desired in the subnet for this port. + If you don't specify ip_address, an available IP address + from the specified subnet will be allocated to this port. + type: string + subnetId: + description: Subnet in which to allocate IP address for + this port. + type: string + type: object + type: array + macAddress: + description: Specify a specific MAC address for the port. Changing + this creates a new port. + type: string + name: + description: A unique name for the port. Changing this updates + the name of an existing port. + type: string + networkId: + description: The ID of the network to attach the port to. Changing + this creates a new port. + type: string + noSecurityGroups: + description: If set to true, then no security groups are applied + to the port. If set to false and no security_group_ids are specified, + then the port will yield to the default behavior of the Networking + service, which is to usually apply the "default" security group. + type: boolean + portSecurityEnabled: + description: Whether to explicitly enable or disable port security + on the port. Port Security is usually enabled by default, so + omitting argument will usually result in a value of true. Setting + this explicitly to false will disable port security. In order + to disable port security, the port must not have any security + groups. Valid values are true and false. + type: boolean + region: + type: string + securityGroupIds: + description: A list of security group IDs to apply to the port. + The security groups must be specified by ID and not name (as + opposed to how they are configured with the Compute Instance). + items: + type: string + type: array + tenantId: + description: The owner of the Port. Required if admin wants to + create a port for another tenant. Changing this creates a new + port. + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + 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.networkId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.networkId) + || (has(self.initProvider) && has(self.initProvider.networkId))' + status: + description: PortV2Status defines the observed state of PortV2. + properties: + atProvider: + properties: + adminStateUp: + description: Administrative up/down status for the port (must + be "true" or "false" if provided). Changing this updates the + admin_state_up of an existing port. + type: boolean + allFixedIps: + items: + type: string + type: array + allowedAddressPairs: + description: 'An IP/MAC Address pair of additional IP addresses + that can be active on this port. The structure is described + below. The allowed_address_pairs block supports:' + items: + properties: + ipAddress: + description: The additional IP address. + type: string + macAddress: + description: The additional MAC address. + type: string + type: object + type: array + deviceId: + description: The ID of the device attached to the port. Changing + this creates a new port. + type: string + deviceOwner: + description: The device owner of the Port. Changing this creates + a new port. + type: string + extraDhcpOption: + description: 'Specifies the extended DHCP option. This is an extended + attribute. The extra_dhcp_option block supports:' + items: + properties: + name: + description: Specifies the option name. + type: string + value: + description: Specifies the option value. + type: string + type: object + type: array + fixedIp: + description: 'An array of desired IPs for this port. The structure + is described below. A single fixed_ip entry is allowed for a + port. The fixed_ip block supports:' + items: + properties: + ipAddress: + description: IP address desired in the subnet for this port. + If you don't specify ip_address, an available IP address + from the specified subnet will be allocated to this port. + type: string + subnetId: + description: Subnet in which to allocate IP address for + this port. + type: string + type: object + type: array + id: + type: string + macAddress: + description: Specify a specific MAC address for the port. Changing + this creates a new port. + type: string + name: + description: A unique name for the port. Changing this updates + the name of an existing port. + type: string + networkId: + description: The ID of the network to attach the port to. Changing + this creates a new port. + type: string + noSecurityGroups: + description: If set to true, then no security groups are applied + to the port. If set to false and no security_group_ids are specified, + then the port will yield to the default behavior of the Networking + service, which is to usually apply the "default" security group. + type: boolean + portSecurityEnabled: + description: Whether to explicitly enable or disable port security + on the port. Port Security is usually enabled by default, so + omitting argument will usually result in a value of true. Setting + this explicitly to false will disable port security. In order + to disable port security, the port must not have any security + groups. Valid values are true and false. + type: boolean + region: + type: string + securityGroupIds: + description: A list of security group IDs to apply to the port. + The security groups must be specified by ID and not name (as + opposed to how they are configured with the Compute Instance). + items: + type: string + type: array + tenantId: + description: The owner of the Port. Required if admin wants to + create a port for another tenant. Changing this creates a new + port. + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/networking.crossplane.io_routerinterfacev2s.yaml b/package/crds/networking.crossplane.io_routerinterfacev2s.yaml new file mode 100644 index 0000000..620b01d --- /dev/null +++ b/package/crds/networking.crossplane.io_routerinterfacev2s.yaml @@ -0,0 +1,475 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: routerinterfacev2s.networking.crossplane.io +spec: + group: networking.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: RouterInterfaceV2 + listKind: RouterInterfaceV2List + plural: routerinterfacev2s + singular: routerinterfacev2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: RouterInterfaceV2 is the Schema for the RouterInterfaceV2s API. + Manages a VPC Router Interface 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: RouterInterfaceV2Spec defines the desired state of RouterInterfaceV2 + 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: + portId: + description: ID of the port this interface connects to. Changing + this creates a new router interface. + type: string + region: + type: string + routerId: + description: ID of the router this interface belongs to. Changing + this creates a new router interface. + type: string + routerIdRef: + description: Reference to a RouterV2 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 RouterV2 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: ID of the subnet this interface connects to. Changing + this creates a new router interface. + type: string + subnetIdRef: + description: Reference to a SubnetV2 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 SubnetV2 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 + 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: + portId: + description: ID of the port this interface connects to. Changing + this creates a new router interface. + type: string + region: + 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 + status: + description: RouterInterfaceV2Status defines the observed state of RouterInterfaceV2. + properties: + atProvider: + properties: + id: + type: string + portId: + description: ID of the port this interface connects to. Changing + this creates a new router interface. + type: string + region: + type: string + routerId: + description: ID of the router this interface belongs to. Changing + this creates a new router interface. + type: string + subnetId: + description: ID of the subnet this interface connects to. Changing + this creates a new router interface. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/networking.crossplane.io_routerroutev2s.yaml b/package/crds/networking.crossplane.io_routerroutev2s.yaml new file mode 100644 index 0000000..f3667ad --- /dev/null +++ b/package/crds/networking.crossplane.io_routerroutev2s.yaml @@ -0,0 +1,350 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: routerroutev2s.networking.crossplane.io +spec: + group: networking.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: RouterRouteV2 + listKind: RouterRouteV2List + plural: routerroutev2s + singular: routerroutev2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: RouterRouteV2 is the Schema for the RouterRouteV2s API. Manages + a VPC Router Route 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: RouterRouteV2Spec defines the desired state of RouterRouteV2 + 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: + destinationCidr: + description: CIDR block to match on the packet’s destination IP. + Changing this creates a new routing entry. + type: string + nextHop: + description: IP address of the next hop gateway. Changing this + creates a new routing entry. + type: string + region: + type: string + routerId: + description: ID of the router this routing entry belongs to. Changing + this creates a new routing entry. + 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: + destinationCidr: + description: CIDR block to match on the packet’s destination IP. + Changing this creates a new routing entry. + type: string + nextHop: + description: IP address of the next hop gateway. Changing this + creates a new routing entry. + type: string + region: + type: string + routerId: + description: ID of the router this routing entry belongs to. Changing + this creates a new routing entry. + 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.destinationCidr is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.destinationCidr) + || (has(self.initProvider) && has(self.initProvider.destinationCidr))' + - message: spec.forProvider.nextHop is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.nextHop) + || (has(self.initProvider) && has(self.initProvider.nextHop))' + - message: spec.forProvider.routerId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.routerId) + || (has(self.initProvider) && has(self.initProvider.routerId))' + status: + description: RouterRouteV2Status defines the observed state of RouterRouteV2. + properties: + atProvider: + properties: + destinationCidr: + description: CIDR block to match on the packet’s destination IP. + Changing this creates a new routing entry. + type: string + id: + type: string + nextHop: + description: IP address of the next hop gateway. Changing this + creates a new routing entry. + type: string + region: + type: string + routerId: + description: ID of the router this routing entry belongs to. Changing + this creates a new routing entry. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/networking.crossplane.io_routerv2s.yaml b/package/crds/networking.crossplane.io_routerv2s.yaml new file mode 100644 index 0000000..68310c4 --- /dev/null +++ b/package/crds/networking.crossplane.io_routerv2s.yaml @@ -0,0 +1,410 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: routerv2s.networking.crossplane.io +spec: + group: networking.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: RouterV2 + listKind: RouterV2List + plural: routerv2s + singular: routerv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: RouterV2 is the Schema for the RouterV2s API. Manages a VPC Router + 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: RouterV2Spec defines the desired state of RouterV2 + 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: Administrative up/down status for the router (must + be true or false if provided). Changing this updates the admin_state_up + of an existing router. + type: boolean + distributed: + description: Indicates whether or not to create a distributed + router. The default policy setting in Neutron restricts usage + of this property to administrative users only. + type: boolean + enableSnat: + description: Enable Source NAT for the router. Valid values are + true or false. An external_gateway has to be set in order to + set this property. Changing this updates the enable_snat of + the router. + type: boolean + externalGateway: + description: The network UUID of an external gateway for the router. + A router with an external gateway is required if any compute + instances or load balancers will be using floating IPs. Changing + this updates the external_gateway of an existing router. + type: string + name: + description: A unique name for the router. Changing this updates + the name of an existing router. + type: string + region: + type: string + tenantId: + description: The owner of the floating IP. Required if admin wants + to create a router for another tenant. Changing this creates + a new router. + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional driver-specific options. + type: object + 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: Administrative up/down status for the router (must + be true or false if provided). Changing this updates the admin_state_up + of an existing router. + type: boolean + distributed: + description: Indicates whether or not to create a distributed + router. The default policy setting in Neutron restricts usage + of this property to administrative users only. + type: boolean + enableSnat: + description: Enable Source NAT for the router. Valid values are + true or false. An external_gateway has to be set in order to + set this property. Changing this updates the enable_snat of + the router. + type: boolean + externalGateway: + description: The network UUID of an external gateway for the router. + A router with an external gateway is required if any compute + instances or load balancers will be using floating IPs. Changing + this updates the external_gateway of an existing router. + type: string + name: + description: A unique name for the router. Changing this updates + the name of an existing router. + type: string + region: + type: string + tenantId: + description: The owner of the floating IP. Required if admin wants + to create a router for another tenant. Changing this creates + a new router. + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional driver-specific options. + type: object + 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 + status: + description: RouterV2Status defines the observed state of RouterV2. + properties: + atProvider: + properties: + adminStateUp: + description: Administrative up/down status for the router (must + be true or false if provided). Changing this updates the admin_state_up + of an existing router. + type: boolean + distributed: + description: Indicates whether or not to create a distributed + router. The default policy setting in Neutron restricts usage + of this property to administrative users only. + type: boolean + enableSnat: + description: Enable Source NAT for the router. Valid values are + true or false. An external_gateway has to be set in order to + set this property. Changing this updates the enable_snat of + the router. + type: boolean + externalGateway: + description: The network UUID of an external gateway for the router. + A router with an external gateway is required if any compute + instances or load balancers will be using floating IPs. Changing + this updates the external_gateway of an existing router. + type: string + id: + description: ID of the router. + type: string + name: + description: A unique name for the router. Changing this updates + the name of an existing router. + type: string + region: + type: string + tenantId: + description: The owner of the floating IP. Required if admin wants + to create a router for another tenant. Changing this creates + a new router. + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional driver-specific options. + type: object + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/networking.crossplane.io_secgrouprulev2s.yaml b/package/crds/networking.crossplane.io_secgrouprulev2s.yaml new file mode 100644 index 0000000..a19337f --- /dev/null +++ b/package/crds/networking.crossplane.io_secgrouprulev2s.yaml @@ -0,0 +1,446 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: secgrouprulev2s.networking.crossplane.io +spec: + group: networking.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: SecgroupRuleV2 + listKind: SecgroupRuleV2List + plural: secgrouprulev2s + singular: secgrouprulev2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: SecgroupRuleV2 is the Schema for the SecgroupRuleV2s API. Manages + a VPC Security Group 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: SecgroupRuleV2Spec defines the desired state of SecgroupRuleV2 + 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: + description: + description: A description of the rule. Changing this creates + a new security group rule. + type: string + direction: + description: The direction of the rule, valid values are ingress + or egress. Changing this creates a new security group rule. + type: string + ethertype: + description: The layer 3 protocol type, valid values are IPv4 + or IPv6. Changing this creates a new security group rule. + type: string + portRangeMax: + description: = 255 + type: number + portRangeMin: + description: = 0 + type: number + protocol: + description: The layer 4 protocol type, valid values are following. + Changing this creates a new security group rule. This is required + if you want to specify a port range. + type: string + region: + type: string + remoteGroupId: + description: The remote group id, the value needs to be an OpenTelekomCloud + ID of a security group in the same tenant. Changing this creates + a new security group rule. + type: string + remoteIpPrefix: + description: The remote CIDR, the value needs to be a valid CIDR + (i.e. 192.168.0.0/16). Changing this creates a new security + group rule. + type: string + securityGroupId: + description: The security group id the rule should belong to, + the value needs to be an OpenTelekomCloud ID of a security group + in the same tenant. Changing this creates a new security group + rule. + type: string + tenantId: + description: The owner of the security group. Required if admin + wants to create a port for another tenant. Changing this creates + a new security group rule. + 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: + description: + description: A description of the rule. Changing this creates + a new security group rule. + type: string + direction: + description: The direction of the rule, valid values are ingress + or egress. Changing this creates a new security group rule. + type: string + ethertype: + description: The layer 3 protocol type, valid values are IPv4 + or IPv6. Changing this creates a new security group rule. + type: string + portRangeMax: + description: = 255 + type: number + portRangeMin: + description: = 0 + type: number + protocol: + description: The layer 4 protocol type, valid values are following. + Changing this creates a new security group rule. This is required + if you want to specify a port range. + type: string + region: + type: string + remoteGroupId: + description: The remote group id, the value needs to be an OpenTelekomCloud + ID of a security group in the same tenant. Changing this creates + a new security group rule. + type: string + remoteIpPrefix: + description: The remote CIDR, the value needs to be a valid CIDR + (i.e. 192.168.0.0/16). Changing this creates a new security + group rule. + type: string + securityGroupId: + description: The security group id the rule should belong to, + the value needs to be an OpenTelekomCloud ID of a security group + in the same tenant. Changing this creates a new security group + rule. + type: string + tenantId: + description: The owner of the security group. Required if admin + wants to create a port for another tenant. Changing this creates + a new security group rule. + 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.direction is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.direction) + || (has(self.initProvider) && has(self.initProvider.direction))' + - message: spec.forProvider.ethertype is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.ethertype) + || (has(self.initProvider) && has(self.initProvider.ethertype))' + - message: spec.forProvider.securityGroupId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.securityGroupId) + || (has(self.initProvider) && has(self.initProvider.securityGroupId))' + status: + description: SecgroupRuleV2Status defines the observed state of SecgroupRuleV2. + properties: + atProvider: + properties: + description: + description: A description of the rule. Changing this creates + a new security group rule. + type: string + direction: + description: The direction of the rule, valid values are ingress + or egress. Changing this creates a new security group rule. + type: string + ethertype: + description: The layer 3 protocol type, valid values are IPv4 + or IPv6. Changing this creates a new security group rule. + type: string + id: + type: string + portRangeMax: + description: = 255 + type: number + portRangeMin: + description: = 0 + type: number + protocol: + description: The layer 4 protocol type, valid values are following. + Changing this creates a new security group rule. This is required + if you want to specify a port range. + type: string + region: + type: string + remoteGroupId: + description: The remote group id, the value needs to be an OpenTelekomCloud + ID of a security group in the same tenant. Changing this creates + a new security group rule. + type: string + remoteIpPrefix: + description: The remote CIDR, the value needs to be a valid CIDR + (i.e. 192.168.0.0/16). Changing this creates a new security + group rule. + type: string + securityGroupId: + description: The security group id the rule should belong to, + the value needs to be an OpenTelekomCloud ID of a security group + in the same tenant. Changing this creates a new security group + rule. + type: string + tenantId: + description: The owner of the security group. Required if admin + wants to create a port for another tenant. Changing this creates + a new security group rule. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/networking.crossplane.io_secgroupv2s.yaml b/package/crds/networking.crossplane.io_secgroupv2s.yaml new file mode 100644 index 0000000..9493faf --- /dev/null +++ b/package/crds/networking.crossplane.io_secgroupv2s.yaml @@ -0,0 +1,351 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: secgroupv2s.networking.crossplane.io +spec: + group: networking.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: SecgroupV2 + listKind: SecgroupV2List + plural: secgroupv2s + singular: secgroupv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: SecgroupV2 is the Schema for the SecgroupV2s API. Manages a VPC + Security Group 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: SecgroupV2Spec defines the desired state of SecgroupV2 + 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: + deleteDefaultRules: + description: Whether or not to delete the default egress security + rules. This is false by default. + type: boolean + description: + description: A unique name for the security group. + type: string + name: + description: A unique name for the security group. + type: string + region: + type: string + tenantId: + description: The owner of the security group. Required if admin + wants to create a port for another tenant. Changing this creates + a new security group. + 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: + deleteDefaultRules: + description: Whether or not to delete the default egress security + rules. This is false by default. + type: boolean + description: + description: A unique name for the security group. + type: string + name: + description: A unique name for the security group. + type: string + region: + type: string + tenantId: + description: The owner of the security group. Required if admin + wants to create a port for another tenant. Changing this creates + a new security group. + 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.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + status: + description: SecgroupV2Status defines the observed state of SecgroupV2. + properties: + atProvider: + properties: + deleteDefaultRules: + description: Whether or not to delete the default egress security + rules. This is false by default. + type: boolean + description: + description: A unique name for the security group. + type: string + id: + type: string + name: + description: A unique name for the security group. + type: string + region: + type: string + tenantId: + description: The owner of the security group. Required if admin + wants to create a port for another tenant. Changing this creates + a new security group. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/networking.crossplane.io_subnetv2s.yaml b/package/crds/networking.crossplane.io_subnetv2s.yaml new file mode 100644 index 0000000..38c9e10 --- /dev/null +++ b/package/crds/networking.crossplane.io_subnetv2s.yaml @@ -0,0 +1,609 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: subnetv2s.networking.crossplane.io +spec: + group: networking.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: SubnetV2 + listKind: SubnetV2List + plural: subnetv2s + singular: subnetv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: SubnetV2 is the Schema for the SubnetV2s API. Manages a VPC Subnet + 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: SubnetV2Spec defines the desired state of SubnetV2 + 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: + allocationPools: + description: An array of sub-ranges of CIDR available for dynamic + allocation to ports. The allocation_pool object structure is + documented below. Changing this creates a new subnet. + items: + properties: + end: + description: The ending address. + type: string + start: + description: The starting address. + type: string + type: object + type: array + cidr: + description: CIDR representing IP range for this subnet, based + on IP version. Changing this creates a new subnet. + type: string + dnsNameservers: + description: An array of DNS name server names used by hosts in + this subnet. Changing this updates the DNS name servers for + the existing subnet. Default value is ["100.125.4.25", "100.125.129.199"] + items: + type: string + type: array + enableDhcp: + description: The administrative state of the network. Acceptable + values are "true" and "false". Changing this value enables or + disables the DHCP capabilities of the existing subnet. Defaults + to true. + type: boolean + gatewayIp: + description: Default gateway used by devices in this subnet. Leaving + this blank and not setting no_gateway will cause a default gateway + of .1 to be used. Changing this updates the gateway IP of the + existing subnet. + type: string + hostRoutes: + description: An array of routes that should be used by devices + with IPs from this subnet (not including local subnet route). + The host_route object structure is documented below. Changing + this updates the host routes for the existing subnet. + items: + properties: + destinationCidr: + description: The destination CIDR. + type: string + nextHop: + description: The next hop in the route. + type: string + type: object + type: array + ipVersion: + description: IP version, either 4 (default) or 6. Changing this + creates a new subnet. + type: number + name: + description: The name of the subnet. Changing this updates the + name of the existing subnet. + type: string + networkId: + description: The UUID of the parent network. Changing this creates + a new subnet. + type: string + networkIdRef: + description: Reference to a NetworkV2 to populate networkId. + 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 + networkIdSelector: + description: Selector for a NetworkV2 to populate networkId. + 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 + noGateway: + description: Do not set a gateway IP on this subnet. Changing + this removes or adds a default gateway IP of the existing subnet. + type: boolean + region: + type: string + tenantId: + description: The owner of the subnet. Required if admin wants + to create a subnet for another tenant. Changing this creates + a new subnet. + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + 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: + allocationPools: + description: An array of sub-ranges of CIDR available for dynamic + allocation to ports. The allocation_pool object structure is + documented below. Changing this creates a new subnet. + items: + properties: + end: + description: The ending address. + type: string + start: + description: The starting address. + type: string + type: object + type: array + cidr: + description: CIDR representing IP range for this subnet, based + on IP version. Changing this creates a new subnet. + type: string + dnsNameservers: + description: An array of DNS name server names used by hosts in + this subnet. Changing this updates the DNS name servers for + the existing subnet. Default value is ["100.125.4.25", "100.125.129.199"] + items: + type: string + type: array + enableDhcp: + description: The administrative state of the network. Acceptable + values are "true" and "false". Changing this value enables or + disables the DHCP capabilities of the existing subnet. Defaults + to true. + type: boolean + gatewayIp: + description: Default gateway used by devices in this subnet. Leaving + this blank and not setting no_gateway will cause a default gateway + of .1 to be used. Changing this updates the gateway IP of the + existing subnet. + type: string + hostRoutes: + description: An array of routes that should be used by devices + with IPs from this subnet (not including local subnet route). + The host_route object structure is documented below. Changing + this updates the host routes for the existing subnet. + items: + properties: + destinationCidr: + description: The destination CIDR. + type: string + nextHop: + description: The next hop in the route. + type: string + type: object + type: array + ipVersion: + description: IP version, either 4 (default) or 6. Changing this + creates a new subnet. + type: number + name: + description: The name of the subnet. Changing this updates the + name of the existing subnet. + type: string + noGateway: + description: Do not set a gateway IP on this subnet. Changing + this removes or adds a default gateway IP of the existing subnet. + type: boolean + region: + type: string + tenantId: + description: The owner of the subnet. Required if admin wants + to create a subnet for another tenant. Changing this creates + a new subnet. + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + 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.cidr is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.cidr) + || (has(self.initProvider) && has(self.initProvider.cidr))' + status: + description: SubnetV2Status defines the observed state of SubnetV2. + properties: + atProvider: + properties: + allocationPools: + description: An array of sub-ranges of CIDR available for dynamic + allocation to ports. The allocation_pool object structure is + documented below. Changing this creates a new subnet. + items: + properties: + end: + description: The ending address. + type: string + start: + description: The starting address. + type: string + type: object + type: array + cidr: + description: CIDR representing IP range for this subnet, based + on IP version. Changing this creates a new subnet. + type: string + dnsNameservers: + description: An array of DNS name server names used by hosts in + this subnet. Changing this updates the DNS name servers for + the existing subnet. Default value is ["100.125.4.25", "100.125.129.199"] + items: + type: string + type: array + enableDhcp: + description: The administrative state of the network. Acceptable + values are "true" and "false". Changing this value enables or + disables the DHCP capabilities of the existing subnet. Defaults + to true. + type: boolean + gatewayIp: + description: Default gateway used by devices in this subnet. Leaving + this blank and not setting no_gateway will cause a default gateway + of .1 to be used. Changing this updates the gateway IP of the + existing subnet. + type: string + hostRoutes: + description: An array of routes that should be used by devices + with IPs from this subnet (not including local subnet route). + The host_route object structure is documented below. Changing + this updates the host routes for the existing subnet. + items: + properties: + destinationCidr: + description: The destination CIDR. + type: string + nextHop: + description: The next hop in the route. + type: string + type: object + type: array + id: + type: string + ipVersion: + description: IP version, either 4 (default) or 6. Changing this + creates a new subnet. + type: number + name: + description: The name of the subnet. Changing this updates the + name of the existing subnet. + type: string + networkId: + description: The UUID of the parent network. Changing this creates + a new subnet. + type: string + noGateway: + description: Do not set a gateway IP on this subnet. Changing + this removes or adds a default gateway IP of the existing subnet. + type: boolean + region: + type: string + tenantId: + description: The owner of the subnet. Required if admin wants + to create a subnet for another tenant. Changing this creates + a new subnet. + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/networking.crossplane.io_vipassociatev2s.yaml b/package/crds/networking.crossplane.io_vipassociatev2s.yaml new file mode 100644 index 0000000..1856b84 --- /dev/null +++ b/package/crds/networking.crossplane.io_vipassociatev2s.yaml @@ -0,0 +1,340 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: vipassociatev2s.networking.crossplane.io +spec: + group: networking.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: VipAssociateV2 + listKind: VipAssociateV2List + plural: vipassociatev2s + singular: vipassociatev2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: VipAssociateV2 is the Schema for the VipAssociateV2s API. Manages + a VPC VIP Associate 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: VipAssociateV2Spec defines the desired state of VipAssociateV2 + 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: + portIds: + description: An array of one or more IDs of the ports to attach + the vip to. Changing this creates a new vip associate. + items: + type: string + type: array + vipId: + description: The ID of vip to attach the port to. Changing this + creates a new vip associate. + 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: + portIds: + description: An array of one or more IDs of the ports to attach + the vip to. Changing this creates a new vip associate. + items: + type: string + type: array + vipId: + description: The ID of vip to attach the port to. Changing this + creates a new vip associate. + 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.portIds is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.portIds) + || (has(self.initProvider) && has(self.initProvider.portIds))' + - message: spec.forProvider.vipId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.vipId) + || (has(self.initProvider) && has(self.initProvider.vipId))' + status: + description: VipAssociateV2Status defines the observed state of VipAssociateV2. + properties: + atProvider: + properties: + id: + type: string + portIds: + description: An array of one or more IDs of the ports to attach + the vip to. Changing this creates a new vip associate. + items: + type: string + type: array + vipId: + description: The ID of vip to attach the port to. Changing this + creates a new vip associate. + type: string + vipIpAddress: + description: The IP address in the subnet for this vip. + type: string + vipSubnetId: + description: The ID of the subnet this vip connects to. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/networking.crossplane.io_vipv2s.yaml b/package/crds/networking.crossplane.io_vipv2s.yaml new file mode 100644 index 0000000..56dbecf --- /dev/null +++ b/package/crds/networking.crossplane.io_vipv2s.yaml @@ -0,0 +1,362 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: vipv2s.networking.crossplane.io +spec: + group: networking.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: VipV2 + listKind: VipV2List + plural: vipv2s + singular: vipv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: VipV2 is the Schema for the VipV2s API. Manages a VPC VIP 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: VipV2Spec defines the desired state of VipV2 + 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: + ipAddress: + description: IP address desired in the subnet for this vip. If + you don't specify ip_address, an available IP address from the + specified subnet will be allocated to this vip. + type: string + name: + description: A unique name for the vip. + type: string + networkId: + description: The ID of the network to attach the vip to. Changing + this creates a new vip. + type: string + subnetId: + description: Subnet in which to allocate IP address for this vip. + Changing this creates a new vip. + 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: + ipAddress: + description: IP address desired in the subnet for this vip. If + you don't specify ip_address, an available IP address from the + specified subnet will be allocated to this vip. + type: string + name: + description: A unique name for the vip. + type: string + networkId: + description: The ID of the network to attach the vip to. Changing + this creates a new vip. + type: string + subnetId: + description: Subnet in which to allocate IP address for this vip. + Changing this creates a new vip. + 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.networkId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.networkId) + || (has(self.initProvider) && has(self.initProvider.networkId))' + - 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: VipV2Status defines the observed state of VipV2. + properties: + atProvider: + properties: + deviceOwner: + description: The device owner of the vip. + type: string + id: + description: The ID of the vip. + type: string + ipAddress: + description: IP address desired in the subnet for this vip. If + you don't specify ip_address, an available IP address from the + specified subnet will be allocated to this vip. + type: string + name: + description: A unique name for the vip. + type: string + networkId: + description: The ID of the network to attach the vip to. Changing + this creates a new vip. + type: string + status: + description: The status of vip. + type: string + subnetId: + description: Subnet in which to allocate IP address for this vip. + Changing this creates a new vip. + type: string + tenantId: + description: The tenant ID of the vip. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/obs.crossplane.io_bucketinventories.yaml b/package/crds/obs.crossplane.io_bucketinventories.yaml new file mode 100644 index 0000000..3694b1f --- /dev/null +++ b/package/crds/obs.crossplane.io_bucketinventories.yaml @@ -0,0 +1,452 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: bucketinventories.obs.crossplane.io +spec: + group: obs.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: BucketInventory + listKind: BucketInventoryList + plural: bucketinventories + singular: bucketinventory + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: BucketInventory is the Schema for the BucketInventorys API. Manages + a OBS Bucket Inventory 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: BucketInventorySpec defines the desired state of BucketInventory + 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: + bucket: + description: Name of the bucket for saving inventories. + type: string + configurationId: + description: 'ID of the inventory configuration. Valid characters: + letters, digits, hyphens (-), periods (.) and underscores (_).' + type: string + destination: + description: Destination bucket settings of an inventory. The + structure is documented below. + items: + properties: + bucket: + description: Name of the bucket for saving inventories. + type: string + format: + description: Inventory format. Only the CSV format is supported. + type: string + prefix: + description: The name prefix of inventory files. If no prefix + is configured, the names of inventory files will start + with the BucketInventory by default. + type: string + type: object + type: array + filterPrefix: + description: Filtering by name prefix. Only objects with the specified + name prefix are included in the inventory. + type: string + frequency: + description: 'Intervals when inventories are generated. An inventory + is generated within one hour after it is configured for the + first time. Then it is generated at the specified intervals. + Possible values:' + type: string + includedObjectVersions: + description: 'Indicates whether versions of objects are included + in an inventory. Possible values:' + type: string + isEnabled: + description: Indicates whether the rule is enabled. If this parameter + is set to true, the inventory is generated. + 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: + bucket: + description: Name of the bucket for saving inventories. + type: string + configurationId: + description: 'ID of the inventory configuration. Valid characters: + letters, digits, hyphens (-), periods (.) and underscores (_).' + type: string + destination: + description: Destination bucket settings of an inventory. The + structure is documented below. + items: + properties: + bucket: + description: Name of the bucket for saving inventories. + type: string + format: + description: Inventory format. Only the CSV format is supported. + type: string + prefix: + description: The name prefix of inventory files. If no prefix + is configured, the names of inventory files will start + with the BucketInventory by default. + type: string + type: object + type: array + filterPrefix: + description: Filtering by name prefix. Only objects with the specified + name prefix are included in the inventory. + type: string + frequency: + description: 'Intervals when inventories are generated. An inventory + is generated within one hour after it is configured for the + first time. Then it is generated at the specified intervals. + Possible values:' + type: string + includedObjectVersions: + description: 'Indicates whether versions of objects are included + in an inventory. Possible values:' + type: string + isEnabled: + description: Indicates whether the rule is enabled. If this parameter + is set to true, the inventory is generated. + 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.bucket is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.bucket) + || (has(self.initProvider) && has(self.initProvider.bucket))' + - message: spec.forProvider.configurationId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.configurationId) + || (has(self.initProvider) && has(self.initProvider.configurationId))' + - message: spec.forProvider.destination is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.destination) + || (has(self.initProvider) && has(self.initProvider.destination))' + - message: spec.forProvider.frequency is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.frequency) + || (has(self.initProvider) && has(self.initProvider.frequency))' + - message: spec.forProvider.includedObjectVersions is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.includedObjectVersions) + || (has(self.initProvider) && has(self.initProvider.includedObjectVersions))' + - message: spec.forProvider.isEnabled is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.isEnabled) + || (has(self.initProvider) && has(self.initProvider.isEnabled))' + status: + description: BucketInventoryStatus defines the observed state of BucketInventory. + properties: + atProvider: + properties: + bucket: + description: Name of the bucket for saving inventories. + type: string + configurationId: + description: 'ID of the inventory configuration. Valid characters: + letters, digits, hyphens (-), periods (.) and underscores (_).' + type: string + destination: + description: Destination bucket settings of an inventory. The + structure is documented below. + items: + properties: + bucket: + description: Name of the bucket for saving inventories. + type: string + format: + description: Inventory format. Only the CSV format is supported. + type: string + prefix: + description: The name prefix of inventory files. If no prefix + is configured, the names of inventory files will start + with the BucketInventory by default. + type: string + type: object + type: array + filterPrefix: + description: Filtering by name prefix. Only objects with the specified + name prefix are included in the inventory. + type: string + frequency: + description: 'Intervals when inventories are generated. An inventory + is generated within one hour after it is configured for the + first time. Then it is generated at the specified intervals. + Possible values:' + type: string + id: + type: string + includedObjectVersions: + description: 'Indicates whether versions of objects are included + in an inventory. Possible values:' + type: string + isEnabled: + description: Indicates whether the rule is enabled. If this parameter + is set to true, the inventory is generated. + type: boolean + region: + description: Specifies the bucket region. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/obs.crossplane.io_bucketobjects.yaml b/package/crds/obs.crossplane.io_bucketobjects.yaml new file mode 100644 index 0000000..acc90be --- /dev/null +++ b/package/crds/obs.crossplane.io_bucketobjects.yaml @@ -0,0 +1,423 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: bucketobjects.obs.crossplane.io +spec: + group: obs.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: BucketObject + listKind: BucketObjectList + plural: bucketobjects + singular: bucketobject + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: BucketObject is the Schema for the BucketObjects API. Manages + a OBS Bucket Object 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: BucketObjectSpec defines the desired state of BucketObject + 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: + acl: + description: The ACL policy to apply. Defaults to private. + type: string + bucket: + description: The name of the bucket to put the file in. + type: string + content: + description: The literal content being uploaded to the bucket. + type: string + contentType: + description: A standard MIME type describing the format of the + object data, e.g. application/octet-stream. All Valid MIME Types + are valid for this input. + type: string + encryption: + description: Whether enable server-side encryption of the object + in SSE-KMS mode. + type: boolean + etag: + description: Specifies the unique identifier of the object content. + It can be used to trigger updates. The only meaningful value + is md5(file("path_to_file")). + type: string + key: + description: The name of the object once it is in the bucket. + type: string + kmsKeyId: + description: the key of the resource supplied above. + type: string + source: + description: The path to the source file being uploaded to the + bucket. + type: string + storageClass: + description: (Optioanl) Specifies the storage class of the object. + Defaults to STANDARD. + 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: + acl: + description: The ACL policy to apply. Defaults to private. + type: string + bucket: + description: The name of the bucket to put the file in. + type: string + content: + description: The literal content being uploaded to the bucket. + type: string + contentType: + description: A standard MIME type describing the format of the + object data, e.g. application/octet-stream. All Valid MIME Types + are valid for this input. + type: string + encryption: + description: Whether enable server-side encryption of the object + in SSE-KMS mode. + type: boolean + etag: + description: Specifies the unique identifier of the object content. + It can be used to trigger updates. The only meaningful value + is md5(file("path_to_file")). + type: string + key: + description: The name of the object once it is in the bucket. + type: string + kmsKeyId: + description: the key of the resource supplied above. + type: string + source: + description: The path to the source file being uploaded to the + bucket. + type: string + storageClass: + description: (Optioanl) Specifies the storage class of the object. + Defaults to STANDARD. + 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.bucket is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.bucket) + || (has(self.initProvider) && has(self.initProvider.bucket))' + - message: spec.forProvider.key is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.key) + || (has(self.initProvider) && has(self.initProvider.key))' + status: + description: BucketObjectStatus defines the observed state of BucketObject. + properties: + atProvider: + properties: + acl: + description: The ACL policy to apply. Defaults to private. + type: string + bucket: + description: The name of the bucket to put the file in. + type: string + content: + description: The literal content being uploaded to the bucket. + type: string + contentType: + description: A standard MIME type describing the format of the + object data, e.g. application/octet-stream. All Valid MIME Types + are valid for this input. + type: string + encryption: + description: Whether enable server-side encryption of the object + in SSE-KMS mode. + type: boolean + etag: + description: Specifies the unique identifier of the object content. + It can be used to trigger updates. The only meaningful value + is md5(file("path_to_file")). + type: string + id: + description: the key of the resource supplied above. + type: string + key: + description: The name of the object once it is in the bucket. + type: string + kmsKeyId: + description: the key of the resource supplied above. + type: string + size: + description: the size of the object in bytes. + type: number + source: + description: The path to the source file being uploaded to the + bucket. + type: string + storageClass: + description: (Optioanl) Specifies the storage class of the object. + Defaults to STANDARD. + type: string + versionId: + description: A unique version ID value for the object, if bucket + versioning is enabled. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/obs.crossplane.io_bucketpolicies.yaml b/package/crds/obs.crossplane.io_bucketpolicies.yaml new file mode 100644 index 0000000..76fcfe5 --- /dev/null +++ b/package/crds/obs.crossplane.io_bucketpolicies.yaml @@ -0,0 +1,322 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: bucketpolicies.obs.crossplane.io +spec: + group: obs.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: BucketPolicy + listKind: BucketPolicyList + plural: bucketpolicies + singular: bucketpolicy + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: BucketPolicy is the Schema for the BucketPolicys API. Manages + a OBS Bucket 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: BucketPolicySpec defines the desired state of BucketPolicy + 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: + bucket: + description: The name of the bucket to which to apply the policy. + type: string + policy: + description: The text of the 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: + bucket: + description: The name of the bucket to which to apply the policy. + type: string + policy: + description: The text of the 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.bucket is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.bucket) + || (has(self.initProvider) && has(self.initProvider.bucket))' + - message: spec.forProvider.policy is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.policy) + || (has(self.initProvider) && has(self.initProvider.policy))' + status: + description: BucketPolicyStatus defines the observed state of BucketPolicy. + properties: + atProvider: + properties: + bucket: + description: The name of the bucket to which to apply the policy. + type: string + id: + type: string + policy: + description: The text of the 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/obs.crossplane.io_bucketreplications.yaml b/package/crds/obs.crossplane.io_bucketreplications.yaml new file mode 100644 index 0000000..cb424f6 --- /dev/null +++ b/package/crds/obs.crossplane.io_bucketreplications.yaml @@ -0,0 +1,462 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: bucketreplications.obs.crossplane.io +spec: + group: obs.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: BucketReplication + listKind: BucketReplicationList + plural: bucketreplications + singular: bucketreplication + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: BucketReplication is the Schema for the BucketReplications API. + Manages a OBS Bucket Replication 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: BucketReplicationSpec defines the desired state of BucketReplication + 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: + agency: + description: Specifies the IAM agency name applied to the cross-region + replication. + type: string + bucket: + description: Specifies the name of the source bucket. + type: string + destinationBucket: + description: Specifies the name of the destination bucket. + type: string + region: + description: Specifies the region in which to create the resource. + If omitted, the provider-level region will be used. + type: string + rule: + description: Specifies the configurations of object cross-region + replication management. The structure is documented below. + items: + properties: + deleteData: + description: Specifies cross-region replication object deletion + operations status. Defaults to false. If the value is + true, object deletion for the source bucket will be replicated + to the destination bucket. + type: boolean + enabled: + description: Specifies cross-region replication rule status. + Defaults to true. + type: boolean + historyEnabled: + description: Specifies cross-region replication history + rule status. Defaults to false. If the value is true, + historical objects meeting this rule are copied. + type: boolean + prefix: + description: Specifies the prefix of an object key name, + applicable to one or more objects. The maximum length + of a prefix is 1024 characters. Duplicated prefixes are + not supported. If omitted, all objects in the bucket will + be managed by the lifecycle rule. To copy a folder, end + the prefix with a slash (/), for example, imgs/. + type: string + storageClass: + description: Specifies the storage class for replicated + objects. Valid values are STANDARD, WARM (Infrequent Access) + and COLD (Archive). If omitted, the storage class of object + copies is the same as that of objects in the source bucket. + type: string + type: object + type: array + 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: + agency: + description: Specifies the IAM agency name applied to the cross-region + replication. + type: string + bucket: + description: Specifies the name of the source bucket. + type: string + destinationBucket: + description: Specifies the name of the destination bucket. + type: string + region: + description: Specifies the region in which to create the resource. + If omitted, the provider-level region will be used. + type: string + rule: + description: Specifies the configurations of object cross-region + replication management. The structure is documented below. + items: + properties: + deleteData: + description: Specifies cross-region replication object deletion + operations status. Defaults to false. If the value is + true, object deletion for the source bucket will be replicated + to the destination bucket. + type: boolean + enabled: + description: Specifies cross-region replication rule status. + Defaults to true. + type: boolean + historyEnabled: + description: Specifies cross-region replication history + rule status. Defaults to false. If the value is true, + historical objects meeting this rule are copied. + type: boolean + prefix: + description: Specifies the prefix of an object key name, + applicable to one or more objects. The maximum length + of a prefix is 1024 characters. Duplicated prefixes are + not supported. If omitted, all objects in the bucket will + be managed by the lifecycle rule. To copy a folder, end + the prefix with a slash (/), for example, imgs/. + type: string + storageClass: + description: Specifies the storage class for replicated + objects. Valid values are STANDARD, WARM (Infrequent Access) + and COLD (Archive). If omitted, the storage class of object + copies is the same as that of objects in the source bucket. + type: string + type: object + type: array + 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.agency is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.agency) + || (has(self.initProvider) && has(self.initProvider.agency))' + - message: spec.forProvider.bucket is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.bucket) + || (has(self.initProvider) && has(self.initProvider.bucket))' + - message: spec.forProvider.destinationBucket is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.destinationBucket) + || (has(self.initProvider) && has(self.initProvider.destinationBucket))' + status: + description: BucketReplicationStatus defines the observed state of BucketReplication. + properties: + atProvider: + properties: + agency: + description: Specifies the IAM agency name applied to the cross-region + replication. + type: string + bucket: + description: Specifies the name of the source bucket. + type: string + destinationBucket: + description: Specifies the name of the destination bucket. + type: string + id: + description: The name of the bucket. + type: string + region: + description: Specifies the region in which to create the resource. + If omitted, the provider-level region will be used. + type: string + rule: + description: Specifies the configurations of object cross-region + replication management. The structure is documented below. + items: + properties: + deleteData: + description: Specifies cross-region replication object deletion + operations status. Defaults to false. If the value is + true, object deletion for the source bucket will be replicated + to the destination bucket. + type: boolean + enabled: + description: Specifies cross-region replication rule status. + Defaults to true. + type: boolean + historyEnabled: + description: Specifies cross-region replication history + rule status. Defaults to false. If the value is true, + historical objects meeting this rule are copied. + type: boolean + id: + description: The name of the bucket. + type: string + prefix: + description: Specifies the prefix of an object key name, + applicable to one or more objects. The maximum length + of a prefix is 1024 characters. Duplicated prefixes are + not supported. If omitted, all objects in the bucket will + be managed by the lifecycle rule. To copy a folder, end + the prefix with a slash (/), for example, imgs/. + type: string + storageClass: + description: Specifies the storage class for replicated + objects. Valid values are STANDARD, WARM (Infrequent Access) + and COLD (Archive). If omitted, the storage class of object + copies is the same as that of objects in the source bucket. + type: string + type: object + type: array + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/obs.crossplane.io_buckets.yaml b/package/crds/obs.crossplane.io_buckets.yaml new file mode 100644 index 0000000..1727718 --- /dev/null +++ b/package/crds/obs.crossplane.io_buckets.yaml @@ -0,0 +1,1148 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: buckets.obs.crossplane.io +spec: + group: obs.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: Bucket + listKind: BucketList + plural: buckets + singular: bucket + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: Bucket is the Schema for the Buckets API. Manages a OBS Bucket + 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: BucketSpec defines the desired state of Bucket + 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: + acl: + description: 'Specifies the ACL policy for a bucket. The predefined + common policies are as follows: private, public-read, public-read-write + and log-delivery-write. Defaults to private.' + type: string + bucket: + description: 'Specifies the name of the bucket. Changing this + parameter will create a new resource. A bucket must be named + according to the globally applied DNS naming regulations as + follows:' + type: string + corsRule: + description: A rule of Cross-Origin Resource Sharing (documented + below). + items: + properties: + allowedHeaders: + description: Specifies the allowed header of cross-origin + requests. Only CORS requests matching the allowed header + are valid. + items: + type: string + type: array + allowedMethods: + description: Specifies the acceptable operation type of + buckets and objects. The methods include GET, PUT, POST, + DELETE or HEAD. + items: + type: string + type: array + allowedOrigins: + description: Requests from this origin can access the bucket. + Multiple matching rules are allowed. One rule occupies + one line, and allows one wildcard character (*) at most. + items: + type: string + type: array + exposeHeaders: + description: Specifies the exposed header in CORS responses, + providing additional information for clients. + items: + type: string + type: array + maxAgeSeconds: + description: Specifies the duration that your browser can + cache CORS responses, expressed in seconds. The default + value is 100. + type: number + type: object + type: array + eventNotifications: + description: A configuration of bucket event notifications (documented + below). + items: + properties: + events: + description: Type of events that need to be notified. + items: + type: string + type: array + filterRule: + description: Filtering rules. The rules filter objects based + on the prefixes and suffixes of object names. + items: + properties: + name: + description: Unique identifier for lifecycle rules. + The Rule Name contains a maximum of 255 characters. + type: string + value: + description: Specifies keywords of object names so + that objects can be filtered based on the prefixes + or suffixes. The value contains a maximum of 1024 + characters. + type: string + type: object + type: array + id: + description: Unique ID of the event notification. If the + user does not specify an ID, the system assigns an ID + automatically. + type: string + topic: + description: URN of the event notification topic. After + detecting a specific event, OBS sends a message to the + topic. + type: string + type: object + type: array + forceDestroy: + description: A boolean that indicates all objects should be deleted + from the bucket so that the bucket can be destroyed without + error. Default to false. + type: boolean + lifecycleRule: + description: A configuration of object lifecycle management (documented + below). + items: + properties: + enabled: + description: Specifies lifecycle rule status. + type: boolean + expiration: + description: Specifies a period when objects that have been + last updated are automatically deleted. (documented below). + items: + properties: + days: + description: Default protection period, in days. The + value is from 1 to 36500. + type: number + type: object + type: array + name: + description: Unique identifier for lifecycle rules. The + Rule Name contains a maximum of 255 characters. + type: string + noncurrentVersionExpiration: + description: Specifies a period when noncurrent object versions + are automatically deleted. (documented below). + items: + properties: + days: + description: Default protection period, in days. The + value is from 1 to 36500. + type: number + type: object + type: array + noncurrentVersionTransition: + description: Specifies a period when noncurrent object versions + are automatically transitioned to WARM or COLD storage + class (documented below). + items: + properties: + days: + description: Default protection period, in days. The + value is from 1 to 36500. + type: number + storageClass: + description: 'Specifies the storage class of the bucket. + OBS provides three storage classes: STANDARD, WARM + (Infrequent Access) and COLD (Archive). Defaults + to STANDARD.' + type: string + type: object + type: array + prefix: + description: 'Object key prefix identifying one or more + objects to which the rule applies. If omitted, all objects + in the bucket will be managed by the lifecycle rule. The + prefix cannot start or end with a slash (/), cannot have + consecutive slashes (/), and cannot contain the following + special characters: :*?"<>|.' + type: string + transition: + description: Specifies a period when objects that have been + last updated are automatically transitioned to WARM or + COLD storage class (documented below). + items: + properties: + days: + description: Default protection period, in days. The + value is from 1 to 36500. + type: number + storageClass: + description: 'Specifies the storage class of the bucket. + OBS provides three storage classes: STANDARD, WARM + (Infrequent Access) and COLD (Archive). Defaults + to STANDARD.' + type: string + type: object + type: array + type: object + type: array + logging: + description: A settings of bucket logging (documented below). + items: + properties: + targetBucket: + description: The name of the bucket that will receive the + log objects. The acl policy of the target bucket should + be log-delivery-write. + type: string + targetPrefix: + description: To specify a key prefix for log objects. + type: string + type: object + type: array + parallelFs: + description: Whether enable a bucket as a parallel file system. + type: boolean + region: + description: If specified, the region this bucket should reside + in. Otherwise, the region used by the provider. + type: string + serverSideEncryption: + description: A configuration of server side encryption (documented + below). + items: + properties: + algorithm: + description: The algorithm used for SSE. Only kms is supported. + type: string + kmsKeyId: + description: The ID of KMS key used for the encryption. + type: string + type: object + type: array + storageClass: + description: 'Specifies the storage class of the bucket. OBS provides + three storage classes: STANDARD, WARM (Infrequent Access) and + COLD (Archive). Defaults to STANDARD.' + type: string + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the bucket. Each tag + is represented by one key-value pair. + type: object + userDomainNames: + description: 'Specifies the user domain names. The restriction + requirements for this field are as follows:' + items: + type: string + type: array + versioning: + description: Set to true to enable versioning. Once you version-enable + a bucket, it can never return to an unversioned state. You can, + however, suspend versioning on that bucket. If omitted, during + bucket creation it will be in Disabled state. + type: boolean + website: + description: A website object (documented below). + items: + properties: + errorDocument: + description: Specifies the error page returned when an error + occurs during static website access. Only HTML, JPG, PNG, + BMP, and WEBP files under the root directory are supported. + type: string + indexDocument: + description: Specifies the default homepage of the static + website, only HTML web pages are supported. OBS only allows + files such as index.html in the root directory of a bucket + to function as the default homepage. That is to say, do + not set the default homepage with a multi-level directory + structure (for example, /page/index.html). + type: string + redirectAllRequestsTo: + description: A hostname to redirect all website requests + for this bucket to. Hostname can optionally be prefixed + with a protocol (http:// or https://) to use when redirecting + requests. The default is the protocol that is used in + the original request. + type: string + routingRules: + description: 'A JSON or XML format containing routing rules + describing redirect behavior and when redirects are applied. + Each rule contains a Condition and a Redirect as shown + in the following table:' + type: string + type: object + type: array + wormPolicy: + description: A settings of bucket default WORM policy and a retention + period (documented below). worm_policy requires versioning to + be enabled. + items: + properties: + days: + description: Default protection period, in days. The value + is from 1 to 36500. + type: number + years: + description: Default protection period, in years. In a leap + year, only 365 days are calculated. The value is from + 1 to 100. + type: number + type: object + type: array + 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: + acl: + description: 'Specifies the ACL policy for a bucket. The predefined + common policies are as follows: private, public-read, public-read-write + and log-delivery-write. Defaults to private.' + type: string + bucket: + description: 'Specifies the name of the bucket. Changing this + parameter will create a new resource. A bucket must be named + according to the globally applied DNS naming regulations as + follows:' + type: string + corsRule: + description: A rule of Cross-Origin Resource Sharing (documented + below). + items: + properties: + allowedHeaders: + description: Specifies the allowed header of cross-origin + requests. Only CORS requests matching the allowed header + are valid. + items: + type: string + type: array + allowedMethods: + description: Specifies the acceptable operation type of + buckets and objects. The methods include GET, PUT, POST, + DELETE or HEAD. + items: + type: string + type: array + allowedOrigins: + description: Requests from this origin can access the bucket. + Multiple matching rules are allowed. One rule occupies + one line, and allows one wildcard character (*) at most. + items: + type: string + type: array + exposeHeaders: + description: Specifies the exposed header in CORS responses, + providing additional information for clients. + items: + type: string + type: array + maxAgeSeconds: + description: Specifies the duration that your browser can + cache CORS responses, expressed in seconds. The default + value is 100. + type: number + type: object + type: array + eventNotifications: + description: A configuration of bucket event notifications (documented + below). + items: + properties: + events: + description: Type of events that need to be notified. + items: + type: string + type: array + filterRule: + description: Filtering rules. The rules filter objects based + on the prefixes and suffixes of object names. + items: + properties: + name: + description: Unique identifier for lifecycle rules. + The Rule Name contains a maximum of 255 characters. + type: string + value: + description: Specifies keywords of object names so + that objects can be filtered based on the prefixes + or suffixes. The value contains a maximum of 1024 + characters. + type: string + type: object + type: array + id: + description: Unique ID of the event notification. If the + user does not specify an ID, the system assigns an ID + automatically. + type: string + topic: + description: URN of the event notification topic. After + detecting a specific event, OBS sends a message to the + topic. + type: string + type: object + type: array + forceDestroy: + description: A boolean that indicates all objects should be deleted + from the bucket so that the bucket can be destroyed without + error. Default to false. + type: boolean + lifecycleRule: + description: A configuration of object lifecycle management (documented + below). + items: + properties: + enabled: + description: Specifies lifecycle rule status. + type: boolean + expiration: + description: Specifies a period when objects that have been + last updated are automatically deleted. (documented below). + items: + properties: + days: + description: Default protection period, in days. The + value is from 1 to 36500. + type: number + type: object + type: array + name: + description: Unique identifier for lifecycle rules. The + Rule Name contains a maximum of 255 characters. + type: string + noncurrentVersionExpiration: + description: Specifies a period when noncurrent object versions + are automatically deleted. (documented below). + items: + properties: + days: + description: Default protection period, in days. The + value is from 1 to 36500. + type: number + type: object + type: array + noncurrentVersionTransition: + description: Specifies a period when noncurrent object versions + are automatically transitioned to WARM or COLD storage + class (documented below). + items: + properties: + days: + description: Default protection period, in days. The + value is from 1 to 36500. + type: number + storageClass: + description: 'Specifies the storage class of the bucket. + OBS provides three storage classes: STANDARD, WARM + (Infrequent Access) and COLD (Archive). Defaults + to STANDARD.' + type: string + type: object + type: array + prefix: + description: 'Object key prefix identifying one or more + objects to which the rule applies. If omitted, all objects + in the bucket will be managed by the lifecycle rule. The + prefix cannot start or end with a slash (/), cannot have + consecutive slashes (/), and cannot contain the following + special characters: :*?"<>|.' + type: string + transition: + description: Specifies a period when objects that have been + last updated are automatically transitioned to WARM or + COLD storage class (documented below). + items: + properties: + days: + description: Default protection period, in days. The + value is from 1 to 36500. + type: number + storageClass: + description: 'Specifies the storage class of the bucket. + OBS provides three storage classes: STANDARD, WARM + (Infrequent Access) and COLD (Archive). Defaults + to STANDARD.' + type: string + type: object + type: array + type: object + type: array + logging: + description: A settings of bucket logging (documented below). + items: + properties: + targetBucket: + description: The name of the bucket that will receive the + log objects. The acl policy of the target bucket should + be log-delivery-write. + type: string + targetPrefix: + description: To specify a key prefix for log objects. + type: string + type: object + type: array + parallelFs: + description: Whether enable a bucket as a parallel file system. + type: boolean + region: + description: If specified, the region this bucket should reside + in. Otherwise, the region used by the provider. + type: string + serverSideEncryption: + description: A configuration of server side encryption (documented + below). + items: + properties: + algorithm: + description: The algorithm used for SSE. Only kms is supported. + type: string + kmsKeyId: + description: The ID of KMS key used for the encryption. + type: string + type: object + type: array + storageClass: + description: 'Specifies the storage class of the bucket. OBS provides + three storage classes: STANDARD, WARM (Infrequent Access) and + COLD (Archive). Defaults to STANDARD.' + type: string + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the bucket. Each tag + is represented by one key-value pair. + type: object + userDomainNames: + description: 'Specifies the user domain names. The restriction + requirements for this field are as follows:' + items: + type: string + type: array + versioning: + description: Set to true to enable versioning. Once you version-enable + a bucket, it can never return to an unversioned state. You can, + however, suspend versioning on that bucket. If omitted, during + bucket creation it will be in Disabled state. + type: boolean + website: + description: A website object (documented below). + items: + properties: + errorDocument: + description: Specifies the error page returned when an error + occurs during static website access. Only HTML, JPG, PNG, + BMP, and WEBP files under the root directory are supported. + type: string + indexDocument: + description: Specifies the default homepage of the static + website, only HTML web pages are supported. OBS only allows + files such as index.html in the root directory of a bucket + to function as the default homepage. That is to say, do + not set the default homepage with a multi-level directory + structure (for example, /page/index.html). + type: string + redirectAllRequestsTo: + description: A hostname to redirect all website requests + for this bucket to. Hostname can optionally be prefixed + with a protocol (http:// or https://) to use when redirecting + requests. The default is the protocol that is used in + the original request. + type: string + routingRules: + description: 'A JSON or XML format containing routing rules + describing redirect behavior and when redirects are applied. + Each rule contains a Condition and a Redirect as shown + in the following table:' + type: string + type: object + type: array + wormPolicy: + description: A settings of bucket default WORM policy and a retention + period (documented below). worm_policy requires versioning to + be enabled. + items: + properties: + days: + description: Default protection period, in days. The value + is from 1 to 36500. + type: number + years: + description: Default protection period, in years. In a leap + year, only 365 days are calculated. The value is from + 1 to 100. + type: number + type: object + type: array + 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.bucket is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.bucket) + || (has(self.initProvider) && has(self.initProvider.bucket))' + status: + description: BucketStatus defines the observed state of Bucket. + properties: + atProvider: + properties: + acl: + description: 'Specifies the ACL policy for a bucket. The predefined + common policies are as follows: private, public-read, public-read-write + and log-delivery-write. Defaults to private.' + type: string + bucket: + description: 'Specifies the name of the bucket. Changing this + parameter will create a new resource. A bucket must be named + according to the globally applied DNS naming regulations as + follows:' + type: string + bucketDomainName: + description: The bucket domain name. Will be of format bucketname.obs.region.otc.t-systems.com. + type: string + bucketVersion: + description: The OBS version of the bucket. + type: string + corsRule: + description: A rule of Cross-Origin Resource Sharing (documented + below). + items: + properties: + allowedHeaders: + description: Specifies the allowed header of cross-origin + requests. Only CORS requests matching the allowed header + are valid. + items: + type: string + type: array + allowedMethods: + description: Specifies the acceptable operation type of + buckets and objects. The methods include GET, PUT, POST, + DELETE or HEAD. + items: + type: string + type: array + allowedOrigins: + description: Requests from this origin can access the bucket. + Multiple matching rules are allowed. One rule occupies + one line, and allows one wildcard character (*) at most. + items: + type: string + type: array + exposeHeaders: + description: Specifies the exposed header in CORS responses, + providing additional information for clients. + items: + type: string + type: array + maxAgeSeconds: + description: Specifies the duration that your browser can + cache CORS responses, expressed in seconds. The default + value is 100. + type: number + type: object + type: array + eventNotifications: + description: A configuration of bucket event notifications (documented + below). + items: + properties: + events: + description: Type of events that need to be notified. + items: + type: string + type: array + filterRule: + description: Filtering rules. The rules filter objects based + on the prefixes and suffixes of object names. + items: + properties: + name: + description: Unique identifier for lifecycle rules. + The Rule Name contains a maximum of 255 characters. + type: string + value: + description: Specifies keywords of object names so + that objects can be filtered based on the prefixes + or suffixes. The value contains a maximum of 1024 + characters. + type: string + type: object + type: array + id: + description: Unique ID of the event notification. If the + user does not specify an ID, the system assigns an ID + automatically. + type: string + topic: + description: URN of the event notification topic. After + detecting a specific event, OBS sends a message to the + topic. + type: string + type: object + type: array + forceDestroy: + description: A boolean that indicates all objects should be deleted + from the bucket so that the bucket can be destroyed without + error. Default to false. + type: boolean + id: + description: Unique ID of the event notification. If the user + does not specify an ID, the system assigns an ID automatically. + type: string + lifecycleRule: + description: A configuration of object lifecycle management (documented + below). + items: + properties: + enabled: + description: Specifies lifecycle rule status. + type: boolean + expiration: + description: Specifies a period when objects that have been + last updated are automatically deleted. (documented below). + items: + properties: + days: + description: Default protection period, in days. The + value is from 1 to 36500. + type: number + type: object + type: array + name: + description: Unique identifier for lifecycle rules. The + Rule Name contains a maximum of 255 characters. + type: string + noncurrentVersionExpiration: + description: Specifies a period when noncurrent object versions + are automatically deleted. (documented below). + items: + properties: + days: + description: Default protection period, in days. The + value is from 1 to 36500. + type: number + type: object + type: array + noncurrentVersionTransition: + description: Specifies a period when noncurrent object versions + are automatically transitioned to WARM or COLD storage + class (documented below). + items: + properties: + days: + description: Default protection period, in days. The + value is from 1 to 36500. + type: number + storageClass: + description: 'Specifies the storage class of the bucket. + OBS provides three storage classes: STANDARD, WARM + (Infrequent Access) and COLD (Archive). Defaults + to STANDARD.' + type: string + type: object + type: array + prefix: + description: 'Object key prefix identifying one or more + objects to which the rule applies. If omitted, all objects + in the bucket will be managed by the lifecycle rule. The + prefix cannot start or end with a slash (/), cannot have + consecutive slashes (/), and cannot contain the following + special characters: :*?"<>|.' + type: string + transition: + description: Specifies a period when objects that have been + last updated are automatically transitioned to WARM or + COLD storage class (documented below). + items: + properties: + days: + description: Default protection period, in days. The + value is from 1 to 36500. + type: number + storageClass: + description: 'Specifies the storage class of the bucket. + OBS provides three storage classes: STANDARD, WARM + (Infrequent Access) and COLD (Archive). Defaults + to STANDARD.' + type: string + type: object + type: array + type: object + type: array + logging: + description: A settings of bucket logging (documented below). + items: + properties: + targetBucket: + description: The name of the bucket that will receive the + log objects. The acl policy of the target bucket should + be log-delivery-write. + type: string + targetPrefix: + description: To specify a key prefix for log objects. + type: string + type: object + type: array + parallelFs: + description: Whether enable a bucket as a parallel file system. + type: boolean + region: + description: If specified, the region this bucket should reside + in. Otherwise, the region used by the provider. + type: string + serverSideEncryption: + description: A configuration of server side encryption (documented + below). + items: + properties: + algorithm: + description: The algorithm used for SSE. Only kms is supported. + type: string + kmsKeyId: + description: The ID of KMS key used for the encryption. + type: string + type: object + type: array + storageClass: + description: 'Specifies the storage class of the bucket. OBS provides + three storage classes: STANDARD, WARM (Infrequent Access) and + COLD (Archive). Defaults to STANDARD.' + type: string + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the bucket. Each tag + is represented by one key-value pair. + type: object + userDomainNames: + description: 'Specifies the user domain names. The restriction + requirements for this field are as follows:' + items: + type: string + type: array + versioning: + description: Set to true to enable versioning. Once you version-enable + a bucket, it can never return to an unversioned state. You can, + however, suspend versioning on that bucket. If omitted, during + bucket creation it will be in Disabled state. + type: boolean + website: + description: A website object (documented below). + items: + properties: + errorDocument: + description: Specifies the error page returned when an error + occurs during static website access. Only HTML, JPG, PNG, + BMP, and WEBP files under the root directory are supported. + type: string + indexDocument: + description: Specifies the default homepage of the static + website, only HTML web pages are supported. OBS only allows + files such as index.html in the root directory of a bucket + to function as the default homepage. That is to say, do + not set the default homepage with a multi-level directory + structure (for example, /page/index.html). + type: string + redirectAllRequestsTo: + description: A hostname to redirect all website requests + for this bucket to. Hostname can optionally be prefixed + with a protocol (http:// or https://) to use when redirecting + requests. The default is the protocol that is used in + the original request. + type: string + routingRules: + description: 'A JSON or XML format containing routing rules + describing redirect behavior and when redirects are applied. + Each rule contains a Condition and a Redirect as shown + in the following table:' + type: string + type: object + type: array + wormPolicy: + description: A settings of bucket default WORM policy and a retention + period (documented below). worm_policy requires versioning to + be enabled. + items: + properties: + days: + description: Default protection period, in days. The value + is from 1 to 36500. + type: number + years: + description: Default protection period, in years. In a leap + year, only 365 days are calculated. The value is from + 1 to 100. + type: number + type: object + type: array + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/template.upbound.io_storeconfigs.yaml b/package/crds/opentelekomcloud.crossplane.io_storeconfigs.yaml similarity index 97% rename from package/crds/template.upbound.io_storeconfigs.yaml rename to package/crds/opentelekomcloud.crossplane.io_storeconfigs.yaml index 4300dad..e34e281 100644 --- a/package/crds/template.upbound.io_storeconfigs.yaml +++ b/package/crds/opentelekomcloud.crossplane.io_storeconfigs.yaml @@ -4,14 +4,14 @@ kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.13.0 - name: storeconfigs.template.upbound.io + name: storeconfigs.opentelekomcloud.crossplane.io spec: - group: template.upbound.io + group: opentelekomcloud.crossplane.io names: categories: - crossplane - store - - template + - opentelekomcloud kind: StoreConfig listKind: StoreConfigList plural: storeconfigs @@ -31,8 +31,8 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: A StoreConfig configures how template controller should store - connection details. + description: A StoreConfig configures how opentelekomcloud controller should + store connection details. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation diff --git a/package/crds/rds.crossplane.io_backupv3s.yaml b/package/crds/rds.crossplane.io_backupv3s.yaml new file mode 100644 index 0000000..bfdb0a2 --- /dev/null +++ b/package/crds/rds.crossplane.io_backupv3s.yaml @@ -0,0 +1,401 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: backupv3s.rds.crossplane.io +spec: + group: rds.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: BackupV3 + listKind: BackupV3List + plural: backupv3s + singular: backupv3 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: BackupV3 is the Schema for the BackupV3s API. Manages an RDS + Backup 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: BackupV3Spec defines the desired state of BackupV3 + 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: + databases: + description: Specifies a list of self-built Microsoft SQL Server + databases that are partially backed up. (Only Microsoft SQL + Server support partial backups.) + items: + properties: + name: + description: The name of the backup. + type: string + type: object + type: array + description: + description: 'Specifies the backup description. It contains a + maximum of 256 characters and cannot contain the following special + characters: >!<"&''=' + type: string + instanceId: + description: The ID of the RDS instance to which the backup belongs. + type: string + name: + description: The name of the backup. + type: string + type: + description: 'Indicates the backup type. Value: - auto: automated + full backup - manual: manual full backup - fragment: differential + full backup - incremental: automated incremental backup' + 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: + databases: + description: Specifies a list of self-built Microsoft SQL Server + databases that are partially backed up. (Only Microsoft SQL + Server support partial backups.) + items: + properties: + name: + description: The name of the backup. + type: string + type: object + type: array + description: + description: 'Specifies the backup description. It contains a + maximum of 256 characters and cannot contain the following special + characters: >!<"&''=' + type: string + instanceId: + description: The ID of the RDS instance to which the backup belongs. + type: string + name: + description: The name of the backup. + type: string + type: + description: 'Indicates the backup type. Value: - auto: automated + full backup - manual: manual full backup - fragment: differential + full backup - incremental: automated incremental backup' + 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.instanceId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.instanceId) + || (has(self.initProvider) && has(self.initProvider.instanceId))' + - message: spec.forProvider.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + status: + description: BackupV3Status defines the observed state of BackupV3. + properties: + atProvider: + properties: + backupId: + description: The ID of the backup. + type: string + beginTime: + description: Indicates the backup start time in the "yyyy-mm-ddThh:mm:ssZ" + format, where "T" indicates the start time of the time field, + and "Z" indicates the time zone offset. + type: string + databases: + description: Specifies a list of self-built Microsoft SQL Server + databases that are partially backed up. (Only Microsoft SQL + Server support partial backups.) + items: + properties: + name: + description: The name of the backup. + type: string + type: object + type: array + description: + description: 'Specifies the backup description. It contains a + maximum of 256 characters and cannot contain the following special + characters: >!<"&''=' + type: string + id: + description: The ID of the backup. + type: string + instanceId: + description: The ID of the RDS instance to which the backup belongs. + type: string + name: + description: The name of the backup. + type: string + size: + type: number + status: + description: 'Indicates the backup status. Value: - BUILDING: + Backup in progress - COMPLETED: Backup completed - FAILED: Backup + failed - DELETING: Backup being deleted' + type: string + type: + description: 'Indicates the backup type. Value: - auto: automated + full backup - manual: manual full backup - fragment: differential + full backup - incremental: automated incremental backup' + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/rds.crossplane.io_instancev1s.yaml b/package/crds/rds.crossplane.io_instancev1s.yaml new file mode 100644 index 0000000..ad64887 --- /dev/null +++ b/package/crds/rds.crossplane.io_instancev1s.yaml @@ -0,0 +1,723 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: instancev1s.rds.crossplane.io +spec: + group: rds.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: InstanceV1 + listKind: InstanceV1List + plural: instancev1s + singular: instancev1 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: InstanceV1 is the Schema for the InstanceV1s API. Manages an + RDS Instance v1 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: InstanceV1Spec defines the desired state of InstanceV1 + 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: + availabilityzone: + description: Specifies the ID of the AZ. + type: string + backupstrategy: + description: Specifies the advanced backup policy. The structure + is described below. + items: + properties: + keepdays: + description: Specifies the number of days to retain the + generated backup files. Its value range is 0 to 35. If + this parameter is not specified or set to 0, the automated + backup policy is disabled. + type: number + starttime: + description: 'Indicates the backup start time that has been + set. The backup task will be triggered within one hour + after the backup start time. Valid value: The value cannot + be empty. It must use the hh:mm:ss format and must be + valid. The current time is the UTC time.' + type: string + type: object + type: array + datastore: + description: Specifies database information. The structure is + described below. + items: + properties: + type: + description: Specifies the DB engine. Currently, MySQL, + PostgreSQL, and Microsoft SQL Server are supported. The + value is MySQL, PostgreSQL, or SQLServer. + type: string + version: + description: Specifies the DB instance version. + type: string + type: object + type: array + dbport: + description: Specifies the database port number. + type: string + dbrtpd: + description: Specifies the password for user root of the database. + type: string + flavorref: + description: Specifies the specification ID (flavors.id in the + response message in Obtaining All DB Instance Specifications). + If you want to enable ha for the rds instance, a flavor with + ha speccode is required. + type: string + ha: + description: 'Specifies the parameters configured on HA and is + used when creating HA DB instances. The structure is described + below. NOTICE: RDS for Microsoft SQL Server does not support + creating HA DB instances and this parameter is not involved.' + items: + properties: + enable: + description: 'Specifies the configured parameters on the + HA. Valid value: The value is true or false. The value + true indicates creating HA DB instances. The value false + indicates creating a single DB instance.' + type: boolean + replicationmode: + description: Specifies the replication mode for the standby + DB instance. The value cannot be empty. For MySQL, the + value is async or semisync. For PostgreSQL, the value + is async or sync. + type: string + type: object + type: array + name: + description: Specifies the DB instance name. The DB instance name + of the same type is unique in the same tenant. The changes of + the instance name will be suppressed in HA scenario. + type: string + nics: + description: Specifies the nics information. For details about + how to obtain this parameter value, see section "Subnet" in + the Virtual Private Cloud API Reference. The structure is described + below. + items: + properties: + subnetid: + type: string + type: object + type: array + region: + type: string + securitygroup: + description: Specifies the security group which the RDS DB instance + belongs to. The structure is described below. + items: + properties: + id: + description: Specifies the ID obtained from the securitygroup. + type: string + type: object + type: array + tag: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the instance. + type: object + volume: + description: Specifies the volume information. The structure is + described below. + items: + properties: + size: + description: Specifies the volume size. Its value must be + a multiple of 10 and the value range is 100 GB to 2000 + GB. + type: number + type: + description: 'Specifies the volume type. Valid value: It + must be COMMON (SATA) or ULTRAHIGH (SSD) and is case-sensitive.' + type: string + type: object + type: array + vpc: + description: Specifies the VPC ID. For details about how to obtain + this parameter value, see section "Virtual Private Cloud" in + the Virtual Private Cloud API Reference. + 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: + availabilityzone: + description: Specifies the ID of the AZ. + type: string + backupstrategy: + description: Specifies the advanced backup policy. The structure + is described below. + items: + properties: + keepdays: + description: Specifies the number of days to retain the + generated backup files. Its value range is 0 to 35. If + this parameter is not specified or set to 0, the automated + backup policy is disabled. + type: number + starttime: + description: 'Indicates the backup start time that has been + set. The backup task will be triggered within one hour + after the backup start time. Valid value: The value cannot + be empty. It must use the hh:mm:ss format and must be + valid. The current time is the UTC time.' + type: string + type: object + type: array + datastore: + description: Specifies database information. The structure is + described below. + items: + properties: + type: + description: Specifies the DB engine. Currently, MySQL, + PostgreSQL, and Microsoft SQL Server are supported. The + value is MySQL, PostgreSQL, or SQLServer. + type: string + version: + description: Specifies the DB instance version. + type: string + type: object + type: array + dbport: + description: Specifies the database port number. + type: string + dbrtpd: + description: Specifies the password for user root of the database. + type: string + flavorref: + description: Specifies the specification ID (flavors.id in the + response message in Obtaining All DB Instance Specifications). + If you want to enable ha for the rds instance, a flavor with + ha speccode is required. + type: string + ha: + description: 'Specifies the parameters configured on HA and is + used when creating HA DB instances. The structure is described + below. NOTICE: RDS for Microsoft SQL Server does not support + creating HA DB instances and this parameter is not involved.' + items: + properties: + enable: + description: 'Specifies the configured parameters on the + HA. Valid value: The value is true or false. The value + true indicates creating HA DB instances. The value false + indicates creating a single DB instance.' + type: boolean + replicationmode: + description: Specifies the replication mode for the standby + DB instance. The value cannot be empty. For MySQL, the + value is async or semisync. For PostgreSQL, the value + is async or sync. + type: string + type: object + type: array + name: + description: Specifies the DB instance name. The DB instance name + of the same type is unique in the same tenant. The changes of + the instance name will be suppressed in HA scenario. + type: string + nics: + description: Specifies the nics information. For details about + how to obtain this parameter value, see section "Subnet" in + the Virtual Private Cloud API Reference. The structure is described + below. + items: + properties: + subnetid: + type: string + type: object + type: array + region: + type: string + securitygroup: + description: Specifies the security group which the RDS DB instance + belongs to. The structure is described below. + items: + properties: + id: + description: Specifies the ID obtained from the securitygroup. + type: string + type: object + type: array + tag: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the instance. + type: object + volume: + description: Specifies the volume information. The structure is + described below. + items: + properties: + size: + description: Specifies the volume size. Its value must be + a multiple of 10 and the value range is 100 GB to 2000 + GB. + type: number + type: + description: 'Specifies the volume type. Valid value: It + must be COMMON (SATA) or ULTRAHIGH (SSD) and is case-sensitive.' + type: string + type: object + type: array + vpc: + description: Specifies the VPC ID. For details about how to obtain + this parameter value, see section "Virtual Private Cloud" in + the Virtual Private Cloud API Reference. + 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.availabilityzone is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.availabilityzone) + || (has(self.initProvider) && has(self.initProvider.availabilityzone))' + - message: spec.forProvider.datastore is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.datastore) + || (has(self.initProvider) && has(self.initProvider.datastore))' + - message: spec.forProvider.dbrtpd is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.dbrtpd) + || (has(self.initProvider) && has(self.initProvider.dbrtpd))' + - message: spec.forProvider.flavorref is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.flavorref) + || (has(self.initProvider) && has(self.initProvider.flavorref))' + - message: spec.forProvider.nics is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.nics) + || (has(self.initProvider) && has(self.initProvider.nics))' + - message: spec.forProvider.securitygroup is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.securitygroup) + || (has(self.initProvider) && has(self.initProvider.securitygroup))' + - message: spec.forProvider.volume is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.volume) + || (has(self.initProvider) && has(self.initProvider.volume))' + - message: spec.forProvider.vpc is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.vpc) + || (has(self.initProvider) && has(self.initProvider.vpc))' + status: + description: InstanceV1Status defines the observed state of InstanceV1. + properties: + atProvider: + properties: + availabilityzone: + description: Specifies the ID of the AZ. + type: string + backupstrategy: + description: Specifies the advanced backup policy. The structure + is described below. + items: + properties: + keepdays: + description: Specifies the number of days to retain the + generated backup files. Its value range is 0 to 35. If + this parameter is not specified or set to 0, the automated + backup policy is disabled. + type: number + starttime: + description: 'Indicates the backup start time that has been + set. The backup task will be triggered within one hour + after the backup start time. Valid value: The value cannot + be empty. It must use the hh:mm:ss format and must be + valid. The current time is the UTC time.' + type: string + type: object + type: array + created: + description: 'Indicates the creation time in the following format: + yyyy-mm-dd Thh:mm:ssZ.' + type: string + datastore: + description: Specifies database information. The structure is + described below. + items: + properties: + type: + description: Specifies the DB engine. Currently, MySQL, + PostgreSQL, and Microsoft SQL Server are supported. The + value is MySQL, PostgreSQL, or SQLServer. + type: string + version: + description: Specifies the DB instance version. + type: string + type: object + type: array + dbport: + description: Specifies the database port number. + type: string + dbrtpd: + description: Specifies the password for user root of the database. + type: string + flavorref: + description: Specifies the specification ID (flavors.id in the + response message in Obtaining All DB Instance Specifications). + If you want to enable ha for the rds instance, a flavor with + ha speccode is required. + type: string + ha: + description: 'Specifies the parameters configured on HA and is + used when creating HA DB instances. The structure is described + below. NOTICE: RDS for Microsoft SQL Server does not support + creating HA DB instances and this parameter is not involved.' + items: + properties: + enable: + description: 'Specifies the configured parameters on the + HA. Valid value: The value is true or false. The value + true indicates creating HA DB instances. The value false + indicates creating a single DB instance.' + type: boolean + replicationmode: + description: Specifies the replication mode for the standby + DB instance. The value cannot be empty. For MySQL, the + value is async or semisync. For PostgreSQL, the value + is async or sync. + type: string + type: object + type: array + hostname: + description: Indicates the instance connection address. It is + a blank string. + type: string + id: + description: Specifies the ID obtained from the securitygroup. + type: string + name: + description: Specifies the DB instance name. The DB instance name + of the same type is unique in the same tenant. The changes of + the instance name will be suppressed in HA scenario. + type: string + nics: + description: Specifies the nics information. For details about + how to obtain this parameter value, see section "Subnet" in + the Virtual Private Cloud API Reference. The structure is described + below. + items: + properties: + subnetid: + type: string + type: object + type: array + region: + type: string + securitygroup: + description: Specifies the security group which the RDS DB instance + belongs to. The structure is described below. + items: + properties: + id: + description: Specifies the ID obtained from the securitygroup. + type: string + type: object + type: array + status: + description: Indicates the DB instance status. + type: string + tag: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the instance. + type: object + type: + description: Indicates the DB instance type, which can be master + or readreplica. + type: string + updated: + description: 'Indicates the update time in the following format: + yyyy-mm-dd Thh:mm:ssZ.' + type: string + volume: + description: Specifies the volume information. The structure is + described below. + items: + properties: + size: + description: Specifies the volume size. Its value must be + a multiple of 10 and the value range is 100 GB to 2000 + GB. + type: number + type: + description: 'Specifies the volume type. Valid value: It + must be COMMON (SATA) or ULTRAHIGH (SSD) and is case-sensitive.' + type: string + type: object + type: array + vpc: + description: Specifies the VPC ID. For details about how to obtain + this parameter value, see section "Virtual Private Cloud" in + the Virtual Private Cloud API Reference. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/rds.crossplane.io_instancev3s.yaml b/package/crds/rds.crossplane.io_instancev3s.yaml new file mode 100644 index 0000000..5129a29 --- /dev/null +++ b/package/crds/rds.crossplane.io_instancev3s.yaml @@ -0,0 +1,1017 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: instancev3s.rds.crossplane.io +spec: + group: rds.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: InstanceV3 + listKind: InstanceV3List + plural: instancev3s + singular: instancev3 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: InstanceV3 is the Schema for the InstanceV3s API. Manages an + RDS Instance v3 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: InstanceV3Spec defines the desired state of InstanceV3 + 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: + availabilityZone: + description: Specifies the AZ name. Changing this parameter will + create a new resource. + items: + type: string + type: array + backupStrategy: + description: Specifies the advanced backup policy. Structure is + documented below. + items: + properties: + keepDays: + description: 'Specifies the retention days for specific + backup files. The value range is from 0 to 732. If this + parameter is not specified or set to 0, the automated + backup policy is disabled. NOTICE: Primary/standby DB + instances of Microsoft SQL Server do not support disabling + the automated backup policy.' + type: number + startTime: + description: 'Specifies the backup time window. Automated + backups will be triggered during the backup time window. + It must be a valid value in the "hh:mm-HH:MM" format. + The current time is in the UTC format. The HH value must + be 1 greater than the hh value. The values of mm and MM + must be the same and must be set to any of the following: + 00, 15, 30, or 45. Example value: 08:15-09:15 23:00-00:00.' + type: string + type: object + type: array + db: + description: Specifies the database information. Structure is + documented below. Changing this parameter will create a new + resource. + items: + properties: + passwordSecretRef: + description: 'Specifies the database password. The value + cannot be empty and should contain 8 to 32 characters, + including uppercase and lowercase letters, digits, and + the following special characters: ~!@#%^*-_=+? You are + advised to enter a strong password to improve security, + preventing security risks such as brute force cracking. Changing + this parameter will create a new resource.' + properties: + key: + description: The key to select. + type: string + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - key + - name + - namespace + type: object + port: + description: 'Specifies the database port information. The + MySQL database port ranges from 1024 to 65535 (excluding + 12017 and 33071, which are occupied by the RDS system + and cannot be used). The PostgreSQL database port ranges + from 2100 to 9500. The Microsoft SQL Server database port + can be 1433 or ranges from 2100 to 9500, excluding 5355 + and 5985. If this parameter is not set, the default value + is as follows: For MySQL, the default value is 3306. For + PostgreSQL, the default value is 5432. For Microsoft SQL + Server, the default value is 1433. Changing this parameter + will create a new resource.' + type: number + type: + description: 'Specifies the DB engine. Value: MySQL, PostgreSQL, + SQLServer. Changing this parameter will create a new resource.' + type: string + version: + description: Specifies the database version. MySQL databases + support MySQL 5.6 and above. PostgreSQL databases support + PostgreSQL 9.5 and above. Microsoft SQL Server databases + support 2014 SE, 2016 SE, and above. Changing this parameter + will create a new resource. + type: string + required: + - passwordSecretRef + type: object + type: array + flavor: + description: Specifies the specification code. Use data source + opentelekomcloud_rds_flavors_v3 to get a list of available flavor + names. Examples could be rds.pg.c2.medium or rds.pg.c2.medium.ha + for HA clusters. + type: string + haReplicationMode: + description: Specifies the replication mode for the standby DB + instance. For MySQL, the value is async or semisync. For PostgreSQL, + the value is async or sync. For Microsoft SQL Server, the value + is sync. Parameter is required for HA clusters. + type: string + lowerCaseTableNames: + description: Specifies the case-sensitive state of the database + table name, the default value is "1". Changing this parameter + will create a new resource. + type: string + name: + description: Specifies the DB instance name. The DB instance name + of the same type must be unique for the same tenant. The value + must be 4 to 64 characters in length and start with a letter. + It is case-sensitive and can contain only letters, digits, hyphens + (-), and underscores (_). Changing this parameter will create + a new resource. + type: string + paramGroupId: + description: Specifies the parameter group ID. + type: string + parameters: + additionalProperties: + type: string + description: Map of additional configuration parameters. Values + should be strings. Parameters set here overrides values from + configuration template (parameter group). + type: object + publicIps: + description: Specifies floating IP to be assigned to the instance. + This should be a list with single element only. + items: + type: string + type: array + restoreFromBackup: + description: Specifies whether to restore database to an instance + described in current resource. Structure is documented below. + items: + properties: + backupId: + description: Specifies the ID of the backup used to restore + data. This parameter must be specified when the backup + file is used for restoration. + type: string + restoreTime: + description: Specifies the time point of data restoration + in the UNIX timestamp. The unit is millisecond and the + time zone is UTC. + type: number + sourceInstanceId: + description: Specifies the source instance ID. + type: string + type: + description: 'Specifies the restoration mode. The values + can be:' + type: string + type: object + type: array + restorePoint: + description: Specifies the restoration information. By selecting + this option a new RDS instance will be created from separate + instance backup. Structure is documented below. + items: + properties: + backupId: + description: Specifies the ID of the backup used to restore + data. + type: string + instanceId: + description: Specifies the original DB instance ID. + type: string + restoreTime: + description: Specifies the time point of data restoration + in the UNIX timestamp. The unit is millisecond and the + time zone is UTC. + type: number + type: object + type: array + securityGroupId: + description: Specifies the security group which the RDS DB instance + belongs to. Changing this parameter will create a new resource. + type: string + sslEnable: + description: Specifies whether SSL should be enabled for MySql + instances. + type: boolean + subnetId: + description: Specifies the subnet id. Changing this parameter + will create a new resource. + type: string + tag: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the instance. + Deprecated, please use the tags instead. + type: object + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the instance. + type: object + volume: + description: Specifies the volume information. Structure is documented + below. + items: + properties: + diskEncryptionId: + description: Specifies the key ID for disk encryption. Changing + this parameter will create a new resource. + type: string + limitSize: + description: Specifies the upper limit of automatic expansion + of storage, in GB. + type: number + size: + description: Specifies the volume size. Its value range + is from 40 GB to 4000 GB. The value must be a multiple + of 10. Changing this resize the volume. + type: number + triggerThreshold: + description: 'Specifies the threshold to trigger automatic + expansion. If the available storage drops to this threshold + or 10 GB, the automatic expansion is triggered. The valid + values are as follows:' + type: number + type: + description: 'Specifies the volume type. Its value can be + any of the following and is case-sensitive: COMMON: indicates + the SATA type. ULTRAHIGH: indicates the SSD type. Changing + this parameter will create a new resource.' + type: string + type: object + type: array + vpcId: + description: Specifies the VPC ID. Changing this parameter will + create a new resource. + 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: + availabilityZone: + description: Specifies the AZ name. Changing this parameter will + create a new resource. + items: + type: string + type: array + backupStrategy: + description: Specifies the advanced backup policy. Structure is + documented below. + items: + properties: + keepDays: + description: 'Specifies the retention days for specific + backup files. The value range is from 0 to 732. If this + parameter is not specified or set to 0, the automated + backup policy is disabled. NOTICE: Primary/standby DB + instances of Microsoft SQL Server do not support disabling + the automated backup policy.' + type: number + startTime: + description: 'Specifies the backup time window. Automated + backups will be triggered during the backup time window. + It must be a valid value in the "hh:mm-HH:MM" format. + The current time is in the UTC format. The HH value must + be 1 greater than the hh value. The values of mm and MM + must be the same and must be set to any of the following: + 00, 15, 30, or 45. Example value: 08:15-09:15 23:00-00:00.' + type: string + type: object + type: array + db: + description: Specifies the database information. Structure is + documented below. Changing this parameter will create a new + resource. + items: + properties: + port: + description: 'Specifies the database port information. The + MySQL database port ranges from 1024 to 65535 (excluding + 12017 and 33071, which are occupied by the RDS system + and cannot be used). The PostgreSQL database port ranges + from 2100 to 9500. The Microsoft SQL Server database port + can be 1433 or ranges from 2100 to 9500, excluding 5355 + and 5985. If this parameter is not set, the default value + is as follows: For MySQL, the default value is 3306. For + PostgreSQL, the default value is 5432. For Microsoft SQL + Server, the default value is 1433. Changing this parameter + will create a new resource.' + type: number + type: + description: 'Specifies the DB engine. Value: MySQL, PostgreSQL, + SQLServer. Changing this parameter will create a new resource.' + type: string + version: + description: Specifies the database version. MySQL databases + support MySQL 5.6 and above. PostgreSQL databases support + PostgreSQL 9.5 and above. Microsoft SQL Server databases + support 2014 SE, 2016 SE, and above. Changing this parameter + will create a new resource. + type: string + type: object + type: array + flavor: + description: Specifies the specification code. Use data source + opentelekomcloud_rds_flavors_v3 to get a list of available flavor + names. Examples could be rds.pg.c2.medium or rds.pg.c2.medium.ha + for HA clusters. + type: string + haReplicationMode: + description: Specifies the replication mode for the standby DB + instance. For MySQL, the value is async or semisync. For PostgreSQL, + the value is async or sync. For Microsoft SQL Server, the value + is sync. Parameter is required for HA clusters. + type: string + lowerCaseTableNames: + description: Specifies the case-sensitive state of the database + table name, the default value is "1". Changing this parameter + will create a new resource. + type: string + name: + description: Specifies the DB instance name. The DB instance name + of the same type must be unique for the same tenant. The value + must be 4 to 64 characters in length and start with a letter. + It is case-sensitive and can contain only letters, digits, hyphens + (-), and underscores (_). Changing this parameter will create + a new resource. + type: string + paramGroupId: + description: Specifies the parameter group ID. + type: string + parameters: + additionalProperties: + type: string + description: Map of additional configuration parameters. Values + should be strings. Parameters set here overrides values from + configuration template (parameter group). + type: object + publicIps: + description: Specifies floating IP to be assigned to the instance. + This should be a list with single element only. + items: + type: string + type: array + restoreFromBackup: + description: Specifies whether to restore database to an instance + described in current resource. Structure is documented below. + items: + properties: + backupId: + description: Specifies the ID of the backup used to restore + data. This parameter must be specified when the backup + file is used for restoration. + type: string + restoreTime: + description: Specifies the time point of data restoration + in the UNIX timestamp. The unit is millisecond and the + time zone is UTC. + type: number + sourceInstanceId: + description: Specifies the source instance ID. + type: string + type: + description: 'Specifies the restoration mode. The values + can be:' + type: string + type: object + type: array + restorePoint: + description: Specifies the restoration information. By selecting + this option a new RDS instance will be created from separate + instance backup. Structure is documented below. + items: + properties: + backupId: + description: Specifies the ID of the backup used to restore + data. + type: string + instanceId: + description: Specifies the original DB instance ID. + type: string + restoreTime: + description: Specifies the time point of data restoration + in the UNIX timestamp. The unit is millisecond and the + time zone is UTC. + type: number + type: object + type: array + securityGroupId: + description: Specifies the security group which the RDS DB instance + belongs to. Changing this parameter will create a new resource. + type: string + sslEnable: + description: Specifies whether SSL should be enabled for MySql + instances. + type: boolean + subnetId: + description: Specifies the subnet id. Changing this parameter + will create a new resource. + type: string + tag: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the instance. + Deprecated, please use the tags instead. + type: object + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the instance. + type: object + volume: + description: Specifies the volume information. Structure is documented + below. + items: + properties: + diskEncryptionId: + description: Specifies the key ID for disk encryption. Changing + this parameter will create a new resource. + type: string + limitSize: + description: Specifies the upper limit of automatic expansion + of storage, in GB. + type: number + size: + description: Specifies the volume size. Its value range + is from 40 GB to 4000 GB. The value must be a multiple + of 10. Changing this resize the volume. + type: number + triggerThreshold: + description: 'Specifies the threshold to trigger automatic + expansion. If the available storage drops to this threshold + or 10 GB, the automatic expansion is triggered. The valid + values are as follows:' + type: number + type: + description: 'Specifies the volume type. Its value can be + any of the following and is case-sensitive: COMMON: indicates + the SATA type. ULTRAHIGH: indicates the SSD type. Changing + this parameter will create a new resource.' + type: string + type: object + type: array + vpcId: + description: Specifies the VPC ID. Changing this parameter will + create a new resource. + 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.availabilityZone is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.availabilityZone) + || (has(self.initProvider) && has(self.initProvider.availabilityZone))' + - message: spec.forProvider.db is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.db) + || (has(self.initProvider) && has(self.initProvider.db))' + - message: spec.forProvider.flavor is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.flavor) + || (has(self.initProvider) && has(self.initProvider.flavor))' + - message: spec.forProvider.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + - message: spec.forProvider.securityGroupId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.securityGroupId) + || (has(self.initProvider) && has(self.initProvider.securityGroupId))' + - 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))' + - message: spec.forProvider.volume is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.volume) + || (has(self.initProvider) && has(self.initProvider.volume))' + - message: spec.forProvider.vpcId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.vpcId) + || (has(self.initProvider) && has(self.initProvider.vpcId))' + status: + description: InstanceV3Status defines the observed state of InstanceV3. + properties: + atProvider: + properties: + availabilityZone: + description: Specifies the AZ name. Changing this parameter will + create a new resource. + items: + type: string + type: array + availabilityZones: + description: Indicates the instance AZs. + items: + type: string + type: array + backupStrategy: + description: Specifies the advanced backup policy. Structure is + documented below. + items: + properties: + keepDays: + description: 'Specifies the retention days for specific + backup files. The value range is from 0 to 732. If this + parameter is not specified or set to 0, the automated + backup policy is disabled. NOTICE: Primary/standby DB + instances of Microsoft SQL Server do not support disabling + the automated backup policy.' + type: number + startTime: + description: 'Specifies the backup time window. Automated + backups will be triggered during the backup time window. + It must be a valid value in the "hh:mm-HH:MM" format. + The current time is in the UTC format. The HH value must + be 1 greater than the hh value. The values of mm and MM + must be the same and must be set to any of the following: + 00, 15, 30, or 45. Example value: 08:15-09:15 23:00-00:00.' + type: string + type: object + type: array + created: + description: Indicates the creation time. + type: string + db: + description: Specifies the database information. Structure is + documented below. Changing this parameter will create a new + resource. + items: + properties: + port: + description: 'Specifies the database port information. The + MySQL database port ranges from 1024 to 65535 (excluding + 12017 and 33071, which are occupied by the RDS system + and cannot be used). The PostgreSQL database port ranges + from 2100 to 9500. The Microsoft SQL Server database port + can be 1433 or ranges from 2100 to 9500, excluding 5355 + and 5985. If this parameter is not set, the default value + is as follows: For MySQL, the default value is 3306. For + PostgreSQL, the default value is 5432. For Microsoft SQL + Server, the default value is 1433. Changing this parameter + will create a new resource.' + type: number + type: + description: 'Specifies the DB engine. Value: MySQL, PostgreSQL, + SQLServer. Changing this parameter will create a new resource.' + type: string + userName: + description: Indicates the default user name of database. + type: string + version: + description: Specifies the database version. MySQL databases + support MySQL 5.6 and above. PostgreSQL databases support + PostgreSQL 9.5 and above. Microsoft SQL Server databases + support 2014 SE, 2016 SE, and above. Changing this parameter + will create a new resource. + type: string + type: object + type: array + flavor: + description: Specifies the specification code. Use data source + opentelekomcloud_rds_flavors_v3 to get a list of available flavor + names. Examples could be rds.pg.c2.medium or rds.pg.c2.medium.ha + for HA clusters. + type: string + haReplicationMode: + description: Specifies the replication mode for the standby DB + instance. For MySQL, the value is async or semisync. For PostgreSQL, + the value is async or sync. For Microsoft SQL Server, the value + is sync. Parameter is required for HA clusters. + type: string + id: + description: Indicates the node ID. + type: string + lowerCaseTableNames: + description: Specifies the case-sensitive state of the database + table name, the default value is "1". Changing this parameter + will create a new resource. + type: string + name: + description: Specifies the DB instance name. The DB instance name + of the same type must be unique for the same tenant. The value + must be 4 to 64 characters in length and start with a letter. + It is case-sensitive and can contain only letters, digits, hyphens + (-), and underscores (_). Changing this parameter will create + a new resource. + type: string + nodes: + description: Indicates the instance nodes information. Structure + is documented below. + items: + properties: + availabilityZone: + description: Indicates the AZ. + type: string + id: + description: Indicates the node ID. + type: string + name: + description: Indicates the node name. + type: string + role: + description: Indicates the node type. The value can be master + or slave, indicating the primary node or standby node + respectively. + type: string + status: + description: Indicates the node status. + type: string + type: object + type: array + paramGroupId: + description: Specifies the parameter group ID. + type: string + parameters: + additionalProperties: + type: string + description: Map of additional configuration parameters. Values + should be strings. Parameters set here overrides values from + configuration template (parameter group). + type: object + privateIps: + description: Indicates the private IP address list. It is a blank + string until an ECS is created. + items: + type: string + type: array + publicIps: + description: Specifies floating IP to be assigned to the instance. + This should be a list with single element only. + items: + type: string + type: array + restoreFromBackup: + description: Specifies whether to restore database to an instance + described in current resource. Structure is documented below. + items: + properties: + backupId: + description: Specifies the ID of the backup used to restore + data. This parameter must be specified when the backup + file is used for restoration. + type: string + restoreTime: + description: Specifies the time point of data restoration + in the UNIX timestamp. The unit is millisecond and the + time zone is UTC. + type: number + sourceInstanceId: + description: Specifies the source instance ID. + type: string + type: + description: 'Specifies the restoration mode. The values + can be:' + type: string + type: object + type: array + restorePoint: + description: Specifies the restoration information. By selecting + this option a new RDS instance will be created from separate + instance backup. Structure is documented below. + items: + properties: + backupId: + description: Specifies the ID of the backup used to restore + data. + type: string + instanceId: + description: Specifies the original DB instance ID. + type: string + restoreTime: + description: Specifies the time point of data restoration + in the UNIX timestamp. The unit is millisecond and the + time zone is UTC. + type: number + type: object + type: array + restoredBackupId: + description: Indicates the backup ID in cases when instance was + restored by using restore_from_backup block. + type: string + securityGroupId: + description: Specifies the security group which the RDS DB instance + belongs to. Changing this parameter will create a new resource. + type: string + sslEnable: + description: Specifies whether SSL should be enabled for MySql + instances. + type: boolean + subnetId: + description: Specifies the subnet id. Changing this parameter + will create a new resource. + type: string + tag: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the instance. + Deprecated, please use the tags instead. + type: object + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the instance. + type: object + volume: + description: Specifies the volume information. Structure is documented + below. + items: + properties: + diskEncryptionId: + description: Specifies the key ID for disk encryption. Changing + this parameter will create a new resource. + type: string + limitSize: + description: Specifies the upper limit of automatic expansion + of storage, in GB. + type: number + size: + description: Specifies the volume size. Its value range + is from 40 GB to 4000 GB. The value must be a multiple + of 10. Changing this resize the volume. + type: number + triggerThreshold: + description: 'Specifies the threshold to trigger automatic + expansion. If the available storage drops to this threshold + or 10 GB, the automatic expansion is triggered. The valid + values are as follows:' + type: number + type: + description: 'Specifies the volume type. Its value can be + any of the following and is case-sensitive: COMMON: indicates + the SATA type. ULTRAHIGH: indicates the SSD type. Changing + this parameter will create a new resource.' + type: string + type: object + type: array + vpcId: + description: Specifies the VPC ID. Changing this parameter will + create a new resource. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/rds.crossplane.io_parametergroupv3s.yaml b/package/crds/rds.crossplane.io_parametergroupv3s.yaml new file mode 100644 index 0000000..e159b14 --- /dev/null +++ b/package/crds/rds.crossplane.io_parametergroupv3s.yaml @@ -0,0 +1,435 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: parametergroupv3s.rds.crossplane.io +spec: + group: rds.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: ParametergroupV3 + listKind: ParametergroupV3List + plural: parametergroupv3s + singular: parametergroupv3 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: ParametergroupV3 is the Schema for the ParametergroupV3s API. + Manages an RDS Parameter Group 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: ParametergroupV3Spec defines the desired state of ParametergroupV3 + 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: + datastore: + description: Database object. The database object structure is + documented below. Changing this creates a new parameter group. + items: + properties: + type: + description: Specifies the DB engine. Currently, MySQL, + PostgreSQL and MS SQLServer are supported. The value is + case-insensitive and can be mysql, postgresql or sqlserver. + type: string + version: + description: Specifies the database version. + type: string + type: object + type: array + description: + description: 'The parameter group description. It contains a maximum + of 256 characters and cannot contain the following special characters: + >!<"&''= the value is left blank by default.' + type: string + name: + description: The parameter group name. It contains a maximum of + 64 characters. + type: string + values: + additionalProperties: + type: string + description: Parameter group values key/value pairs defined by + users based on the default parameter groups. + type: object + 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: + datastore: + description: Database object. The database object structure is + documented below. Changing this creates a new parameter group. + items: + properties: + type: + description: Specifies the DB engine. Currently, MySQL, + PostgreSQL and MS SQLServer are supported. The value is + case-insensitive and can be mysql, postgresql or sqlserver. + type: string + version: + description: Specifies the database version. + type: string + type: object + type: array + description: + description: 'The parameter group description. It contains a maximum + of 256 characters and cannot contain the following special characters: + >!<"&''= the value is left blank by default.' + type: string + name: + description: The parameter group name. It contains a maximum of + 64 characters. + type: string + values: + additionalProperties: + type: string + description: Parameter group values key/value pairs defined by + users based on the default parameter groups. + type: object + 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.datastore is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.datastore) + || (has(self.initProvider) && has(self.initProvider.datastore))' + - message: spec.forProvider.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + status: + description: ParametergroupV3Status defines the observed state of ParametergroupV3. + properties: + atProvider: + properties: + configurationParameters: + description: Indicates the parameter configuration defined by + users based on the default parameters groups. + items: + properties: + description: + description: 'The parameter group description. It contains + a maximum of 256 characters and cannot contain the following + special characters: >!<"&''= the value is left blank by + default.' + type: string + name: + description: The parameter group name. It contains a maximum + of 64 characters. + type: string + readonly: + description: Indicates whether the parameter is read-only. + type: boolean + restartRequired: + description: Indicates whether a restart is required. + type: boolean + type: + description: Indicates the parameter type. + type: string + value: + description: Indicates the parameter value. + type: string + valueRange: + description: Indicates the parameter value range. + type: string + type: object + type: array + created: + description: 'Indicates the creation time in the following format: + yyyy-MM-ddTHH:mm:ssZ.' + type: string + datastore: + description: Database object. The database object structure is + documented below. Changing this creates a new parameter group. + items: + properties: + type: + description: Specifies the DB engine. Currently, MySQL, + PostgreSQL and MS SQLServer are supported. The value is + case-insensitive and can be mysql, postgresql or sqlserver. + type: string + version: + description: Specifies the database version. + type: string + type: object + type: array + description: + description: 'The parameter group description. It contains a maximum + of 256 characters and cannot contain the following special characters: + >!<"&''= the value is left blank by default.' + type: string + id: + description: ID of the parameter group. + type: string + name: + description: The parameter group name. It contains a maximum of + 64 characters. + type: string + updated: + description: 'Indicates the update time in the following format: + yyyy-MM-ddTHH:mm:ssZ.' + type: string + values: + additionalProperties: + type: string + description: Parameter group values key/value pairs defined by + users based on the default parameter groups. + type: object + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/rds.crossplane.io_readreplicav3s.yaml b/package/crds/rds.crossplane.io_readreplicav3s.yaml new file mode 100644 index 0000000..caad345 --- /dev/null +++ b/package/crds/rds.crossplane.io_readreplicav3s.yaml @@ -0,0 +1,478 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: readreplicav3s.rds.crossplane.io +spec: + group: rds.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: ReadReplicaV3 + listKind: ReadReplicaV3List + plural: readreplicav3s + singular: readreplicav3 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: ReadReplicaV3 is the Schema for the ReadReplicaV3s API. Manages + an RDS Read Replica 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: ReadReplicaV3Spec defines the desired state of ReadReplicaV3 + 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: + availabilityZone: + type: string + flavorRef: + type: string + name: + description: Specifies the DB replica instance name. The DB instance + name of the same type must be unique for the same tenant. The + value must be 4 to 64 characters in length and start with a + letter. It is case-sensitive and can contain only letters, digits, + hyphens (-), and underscores (_). Changing this parameter will + create a new resource. + type: string + publicIps: + description: Specifies floating IP to be assigned to the instance. + This should be a list with single element only. + items: + type: string + type: array + region: + description: Specifies the region of the replica instance. Changing + this parameter will create a new resource. + type: string + replicaOfId: + description: Specifies ID of the replicated instance. Changing + this parameter will create a new resource. + type: string + volume: + description: Specifies the volume information. Structure is documented + below. + items: + properties: + diskEncryptionId: + description: Specifies the key ID for disk encryption. Changing + this parameter will create a new resource. + type: string + type: + description: Specifies the volume type. Changing this parameter + will create a new resource. Its value can be any of the + following and is case-sensitive. + type: string + type: object + type: array + 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: + availabilityZone: + type: string + flavorRef: + type: string + name: + description: Specifies the DB replica instance name. The DB instance + name of the same type must be unique for the same tenant. The + value must be 4 to 64 characters in length and start with a + letter. It is case-sensitive and can contain only letters, digits, + hyphens (-), and underscores (_). Changing this parameter will + create a new resource. + type: string + publicIps: + description: Specifies floating IP to be assigned to the instance. + This should be a list with single element only. + items: + type: string + type: array + region: + description: Specifies the region of the replica instance. Changing + this parameter will create a new resource. + type: string + replicaOfId: + description: Specifies ID of the replicated instance. Changing + this parameter will create a new resource. + type: string + volume: + description: Specifies the volume information. Structure is documented + below. + items: + properties: + diskEncryptionId: + description: Specifies the key ID for disk encryption. Changing + this parameter will create a new resource. + type: string + type: + description: Specifies the volume type. Changing this parameter + will create a new resource. Its value can be any of the + following and is case-sensitive. + type: string + type: object + type: array + 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.flavorRef is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.flavorRef) + || (has(self.initProvider) && has(self.initProvider.flavorRef))' + - message: spec.forProvider.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + - message: spec.forProvider.replicaOfId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.replicaOfId) + || (has(self.initProvider) && has(self.initProvider.replicaOfId))' + - message: spec.forProvider.volume is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.volume) + || (has(self.initProvider) && has(self.initProvider.volume))' + status: + description: ReadReplicaV3Status defines the observed state of ReadReplicaV3. + properties: + atProvider: + properties: + availabilityZone: + type: string + db: + description: Indicates the database information. Structure is + documented below. + items: + properties: + port: + description: Indicates the database port information. + type: number + type: + description: 'Indicates the DB engine. Value: MySQL, PostgreSQL, + SQLServer' + type: string + userName: + description: Indicates the default user name of database. + type: string + version: + description: Indicates the database version. + type: string + type: object + type: array + flavorRef: + type: string + id: + description: ID of the read replica instance. + type: string + name: + description: Specifies the DB replica instance name. The DB instance + name of the same type must be unique for the same tenant. The + value must be 4 to 64 characters in length and start with a + letter. It is case-sensitive and can contain only letters, digits, + hyphens (-), and underscores (_). Changing this parameter will + create a new resource. + type: string + privateIps: + description: Indicates the private IP address list. + items: + type: string + type: array + publicIps: + description: Specifies floating IP to be assigned to the instance. + This should be a list with single element only. + items: + type: string + type: array + region: + description: Specifies the region of the replica instance. Changing + this parameter will create a new resource. + type: string + replicaOfId: + description: Specifies ID of the replicated instance. Changing + this parameter will create a new resource. + type: string + securityGroupId: + description: Indicates the security group which the replica instance + belongs to. + type: string + subnetId: + description: Indicates the subnet id (OpenStack network ID). + type: string + volume: + description: Specifies the volume information. Structure is documented + below. + items: + properties: + diskEncryptionId: + description: Specifies the key ID for disk encryption. Changing + this parameter will create a new resource. + type: string + size: + description: Indicates the volume size. Same as replicated + instance disk size. + type: number + type: + description: Specifies the volume type. Changing this parameter + will create a new resource. Its value can be any of the + following and is case-sensitive. + type: string + type: object + type: array + vpcId: + description: Indicates the VPC ID (OpenStack router ID). + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/s3.crossplane.io_bucketobjects.yaml b/package/crds/s3.crossplane.io_bucketobjects.yaml new file mode 100644 index 0000000..40dff78 --- /dev/null +++ b/package/crds/s3.crossplane.io_bucketobjects.yaml @@ -0,0 +1,468 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: bucketobjects.s3.crossplane.io +spec: + group: s3.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: BucketObject + listKind: BucketObjectList + plural: bucketobjects + singular: bucketobject + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: BucketObject is the Schema for the BucketObjects API. Manages + an S3 Bucket Object 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: BucketObjectSpec defines the desired state of BucketObject + 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: + acl: + description: The canned ACL to apply. Defaults to "private". + type: string + bucket: + description: The name of the bucket to put the file in. + type: string + cacheControl: + description: Specifies caching behavior along the request/reply + chain. Read w3c cache_control for further details. + type: string + content: + description: The literal content being uploaded to the bucket. + type: string + contentDisposition: + description: Specifies presentational information for the object. + Read wc3 content_disposition for further information. + type: string + contentEncoding: + description: Specifies what content encodings have been applied + to the object and thus what decoding mechanisms must be applied + to obtain the media-type referenced by the Content-Type header + field. Read w3c content encoding for further information. + type: string + contentLanguage: + description: The language the content is in e.g. en-US or en-GB. + type: string + contentType: + description: A standard MIME type describing the format of the + object data, e.g. application/octet-stream. All Valid MIME Types + are valid for this input. + type: string + etag: + description: Used to trigger updates. The only meaningful value + is ${md5(file("path/to/file"))}. This attribute is not compatible + with kms_key_id. + type: string + key: + description: The name of the object once it is in the bucket. + type: string + serverSideEncryption: + description: Specifies server-side encryption of the object in + S3. Valid values are "AES256" and "aws:kms". + type: string + source: + description: The path to the source file being uploaded to the + bucket. + type: string + sseKmsKeyId: + description: the key of the resource supplied above + type: string + websiteRedirect: + description: Specifies a target URL for website redirect. + 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: + acl: + description: The canned ACL to apply. Defaults to "private". + type: string + bucket: + description: The name of the bucket to put the file in. + type: string + cacheControl: + description: Specifies caching behavior along the request/reply + chain. Read w3c cache_control for further details. + type: string + content: + description: The literal content being uploaded to the bucket. + type: string + contentDisposition: + description: Specifies presentational information for the object. + Read wc3 content_disposition for further information. + type: string + contentEncoding: + description: Specifies what content encodings have been applied + to the object and thus what decoding mechanisms must be applied + to obtain the media-type referenced by the Content-Type header + field. Read w3c content encoding for further information. + type: string + contentLanguage: + description: The language the content is in e.g. en-US or en-GB. + type: string + contentType: + description: A standard MIME type describing the format of the + object data, e.g. application/octet-stream. All Valid MIME Types + are valid for this input. + type: string + etag: + description: Used to trigger updates. The only meaningful value + is ${md5(file("path/to/file"))}. This attribute is not compatible + with kms_key_id. + type: string + key: + description: The name of the object once it is in the bucket. + type: string + serverSideEncryption: + description: Specifies server-side encryption of the object in + S3. Valid values are "AES256" and "aws:kms". + type: string + source: + description: The path to the source file being uploaded to the + bucket. + type: string + sseKmsKeyId: + description: the key of the resource supplied above + type: string + websiteRedirect: + description: Specifies a target URL for website redirect. + 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.bucket is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.bucket) + || (has(self.initProvider) && has(self.initProvider.bucket))' + - message: spec.forProvider.key is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.key) + || (has(self.initProvider) && has(self.initProvider.key))' + status: + description: BucketObjectStatus defines the observed state of BucketObject. + properties: + atProvider: + properties: + acl: + description: The canned ACL to apply. Defaults to "private". + type: string + bucket: + description: The name of the bucket to put the file in. + type: string + cacheControl: + description: Specifies caching behavior along the request/reply + chain. Read w3c cache_control for further details. + type: string + content: + description: The literal content being uploaded to the bucket. + type: string + contentDisposition: + description: Specifies presentational information for the object. + Read wc3 content_disposition for further information. + type: string + contentEncoding: + description: Specifies what content encodings have been applied + to the object and thus what decoding mechanisms must be applied + to obtain the media-type referenced by the Content-Type header + field. Read w3c content encoding for further information. + type: string + contentLanguage: + description: The language the content is in e.g. en-US or en-GB. + type: string + contentType: + description: A standard MIME type describing the format of the + object data, e.g. application/octet-stream. All Valid MIME Types + are valid for this input. + type: string + etag: + description: Used to trigger updates. The only meaningful value + is ${md5(file("path/to/file"))}. This attribute is not compatible + with kms_key_id. + type: string + id: + description: the key of the resource supplied above + type: string + key: + description: The name of the object once it is in the bucket. + type: string + serverSideEncryption: + description: Specifies server-side encryption of the object in + S3. Valid values are "AES256" and "aws:kms". + type: string + source: + description: The path to the source file being uploaded to the + bucket. + type: string + sseKmsKeyId: + description: the key of the resource supplied above + type: string + versionId: + description: A unique version ID value for the object, if bucket + versioning is enabled. + type: string + websiteRedirect: + description: Specifies a target URL for website redirect. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/s3.crossplane.io_bucketpolicies.yaml b/package/crds/s3.crossplane.io_bucketpolicies.yaml new file mode 100644 index 0000000..e70ceda --- /dev/null +++ b/package/crds/s3.crossplane.io_bucketpolicies.yaml @@ -0,0 +1,322 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: bucketpolicies.s3.crossplane.io +spec: + group: s3.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: BucketPolicy + listKind: BucketPolicyList + plural: bucketpolicies + singular: bucketpolicy + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: BucketPolicy is the Schema for the BucketPolicys API. Manages + an S3 Bucket 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: BucketPolicySpec defines the desired state of BucketPolicy + 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: + bucket: + description: The name of the bucket to which to apply the policy. + type: string + policy: + description: The text of the 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: + bucket: + description: The name of the bucket to which to apply the policy. + type: string + policy: + description: The text of the 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.bucket is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.bucket) + || (has(self.initProvider) && has(self.initProvider.bucket))' + - message: spec.forProvider.policy is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.policy) + || (has(self.initProvider) && has(self.initProvider.policy))' + status: + description: BucketPolicyStatus defines the observed state of BucketPolicy. + properties: + atProvider: + properties: + bucket: + description: The name of the bucket to which to apply the policy. + type: string + id: + type: string + policy: + description: The text of the 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/s3.crossplane.io_buckets.yaml b/package/crds/s3.crossplane.io_buckets.yaml new file mode 100644 index 0000000..a67728e --- /dev/null +++ b/package/crds/s3.crossplane.io_buckets.yaml @@ -0,0 +1,854 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: buckets.s3.crossplane.io +spec: + group: s3.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: Bucket + listKind: BucketList + plural: buckets + singular: bucket + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: Bucket is the Schema for the Buckets API. Manages an S3 Bucket + 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: BucketSpec defines the desired state of Bucket + 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: + acl: + description: The canned ACL to apply. Defaults to private. + type: string + arn: + description: The ARN of the bucket. Will be of format arn:aws:s3:::bucketname. + type: string + bucket: + description: The name of the bucket. + type: string + bucketPrefix: + description: Creates a unique bucket name beginning with the specified + prefix. Conflicts with bucket. + type: string + corsRule: + description: A rule of Cross-Origin Resource Sharing (documented + below). + items: + properties: + allowedHeaders: + description: Specifies which headers are allowed. + items: + type: string + type: array + allowedMethods: + description: Specifies which methods are allowed. Can be + GET, PUT, POST, DELETE or HEAD. + items: + type: string + type: array + allowedOrigins: + description: Specifies which origins are allowed. + items: + type: string + type: array + exposeHeaders: + description: Specifies expose header in the response. + items: + type: string + type: array + maxAgeSeconds: + description: Specifies time in seconds that browser can + cache the response for a preflight request. + type: number + type: object + type: array + forceDestroy: + description: A boolean that indicates all objects should be deleted + from the bucket so that the bucket can be destroyed without + error. These objects are not recoverable. + type: boolean + hostedZoneId: + description: The Route 53 Hosted Zone ID for this bucket's region. + type: string + lifecycleRule: + description: 'A configuration of object lifecycle management (documented + below). The website object supports the following:' + items: + properties: + abortIncompleteMultipartUploadDays: + description: Specifies the number of days after initiating + a multipart upload when the multipart upload must be completed. + type: number + enabled: + description: Enable versioning. Once you version-enable + a bucket, it can never return to an unversioned state. + You can, however, suspend versioning on that bucket. If + omitted, during bucket creation it will be in Disabled + state. + type: boolean + expiration: + description: Specifies a period in the object's expire (documented + below). + items: + properties: + date: + description: Specifies the date after which you want + the corresponding action to take effect. + type: string + days: + description: Specifies the number of days after object + creation when the specific rule action takes effect. + type: number + expiredObjectDeleteMarker: + description: On a versioned bucket (versioning-enabled + or versioning-suspended bucket), you can add this + element in the lifecycle configuration to direct + Amazon S3 to delete expired object delete markers. + type: boolean + type: object + type: array + id: + description: Unique identifier for the rule. + type: string + noncurrentVersionExpiration: + description: Specifies when noncurrent object versions expire + (documented below). + items: + properties: + days: + description: Specifies the number of days after object + creation when the specific rule action takes effect. + type: number + type: object + type: array + prefix: + description: Object key prefix identifying one or more objects + to which the rule applies. + type: string + type: object + type: array + logging: + description: A settings of bucket logging (documented below). + items: + properties: + targetBucket: + description: The name of the bucket that will receive the + log objects. + type: string + targetPrefix: + description: To specify a key prefix for log objects. + type: string + type: object + type: array + policy: + description: A valid bucket policy JSON document. + type: string + region: + type: string + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the bucket. + type: object + versioning: + description: A state of versioning (documented below) + items: + properties: + enabled: + description: Enable versioning. Once you version-enable + a bucket, it can never return to an unversioned state. + You can, however, suspend versioning on that bucket. If + omitted, during bucket creation it will be in Disabled + state. + type: boolean + mfaDelete: + description: Enable MFA delete for either Change the versioning + state of your bucket or Permanently delete an object version. + Default is false. + type: boolean + type: object + type: array + website: + description: A website object (documented below). + items: + properties: + errorDocument: + description: An absolute path to the document to return + in case of a 4XX error. + type: string + indexDocument: + description: Amazon S3 returns this index document when + requests are made to the root domain or any of the subfolders. + type: string + redirectAllRequestsTo: + description: A hostname to redirect all website requests + for this bucket to. Hostname can optionally be prefixed + with a protocol (http:// or https://) to use when redirecting + requests. The default is the protocol that is used in + the original request. + type: string + routingRules: + description: A json array containing routing rules describing + redirect behavior and when redirects are applied. + type: string + type: object + type: array + websiteDomain: + description: The domain of the website endpoint, if the bucket + is configured with a website. If not, this will be an empty + string. This is used to create Route 53 alias records. + type: string + websiteEndpoint: + description: The website endpoint, if the bucket is configured + with a website. If not, this will be an empty string. + 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: + acl: + description: The canned ACL to apply. Defaults to private. + type: string + arn: + description: The ARN of the bucket. Will be of format arn:aws:s3:::bucketname. + type: string + bucket: + description: The name of the bucket. + type: string + bucketPrefix: + description: Creates a unique bucket name beginning with the specified + prefix. Conflicts with bucket. + type: string + corsRule: + description: A rule of Cross-Origin Resource Sharing (documented + below). + items: + properties: + allowedHeaders: + description: Specifies which headers are allowed. + items: + type: string + type: array + allowedMethods: + description: Specifies which methods are allowed. Can be + GET, PUT, POST, DELETE or HEAD. + items: + type: string + type: array + allowedOrigins: + description: Specifies which origins are allowed. + items: + type: string + type: array + exposeHeaders: + description: Specifies expose header in the response. + items: + type: string + type: array + maxAgeSeconds: + description: Specifies time in seconds that browser can + cache the response for a preflight request. + type: number + type: object + type: array + forceDestroy: + description: A boolean that indicates all objects should be deleted + from the bucket so that the bucket can be destroyed without + error. These objects are not recoverable. + type: boolean + hostedZoneId: + description: The Route 53 Hosted Zone ID for this bucket's region. + type: string + lifecycleRule: + description: 'A configuration of object lifecycle management (documented + below). The website object supports the following:' + items: + properties: + abortIncompleteMultipartUploadDays: + description: Specifies the number of days after initiating + a multipart upload when the multipart upload must be completed. + type: number + enabled: + description: Enable versioning. Once you version-enable + a bucket, it can never return to an unversioned state. + You can, however, suspend versioning on that bucket. If + omitted, during bucket creation it will be in Disabled + state. + type: boolean + expiration: + description: Specifies a period in the object's expire (documented + below). + items: + properties: + date: + description: Specifies the date after which you want + the corresponding action to take effect. + type: string + days: + description: Specifies the number of days after object + creation when the specific rule action takes effect. + type: number + expiredObjectDeleteMarker: + description: On a versioned bucket (versioning-enabled + or versioning-suspended bucket), you can add this + element in the lifecycle configuration to direct + Amazon S3 to delete expired object delete markers. + type: boolean + type: object + type: array + id: + description: Unique identifier for the rule. + type: string + noncurrentVersionExpiration: + description: Specifies when noncurrent object versions expire + (documented below). + items: + properties: + days: + description: Specifies the number of days after object + creation when the specific rule action takes effect. + type: number + type: object + type: array + prefix: + description: Object key prefix identifying one or more objects + to which the rule applies. + type: string + type: object + type: array + logging: + description: A settings of bucket logging (documented below). + items: + properties: + targetBucket: + description: The name of the bucket that will receive the + log objects. + type: string + targetPrefix: + description: To specify a key prefix for log objects. + type: string + type: object + type: array + policy: + description: A valid bucket policy JSON document. + type: string + region: + type: string + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the bucket. + type: object + versioning: + description: A state of versioning (documented below) + items: + properties: + enabled: + description: Enable versioning. Once you version-enable + a bucket, it can never return to an unversioned state. + You can, however, suspend versioning on that bucket. If + omitted, during bucket creation it will be in Disabled + state. + type: boolean + mfaDelete: + description: Enable MFA delete for either Change the versioning + state of your bucket or Permanently delete an object version. + Default is false. + type: boolean + type: object + type: array + website: + description: A website object (documented below). + items: + properties: + errorDocument: + description: An absolute path to the document to return + in case of a 4XX error. + type: string + indexDocument: + description: Amazon S3 returns this index document when + requests are made to the root domain or any of the subfolders. + type: string + redirectAllRequestsTo: + description: A hostname to redirect all website requests + for this bucket to. Hostname can optionally be prefixed + with a protocol (http:// or https://) to use when redirecting + requests. The default is the protocol that is used in + the original request. + type: string + routingRules: + description: A json array containing routing rules describing + redirect behavior and when redirects are applied. + type: string + type: object + type: array + websiteDomain: + description: The domain of the website endpoint, if the bucket + is configured with a website. If not, this will be an empty + string. This is used to create Route 53 alias records. + type: string + websiteEndpoint: + description: The website endpoint, if the bucket is configured + with a website. If not, this will be an empty string. + 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 + status: + description: BucketStatus defines the observed state of Bucket. + properties: + atProvider: + properties: + acl: + description: The canned ACL to apply. Defaults to private. + type: string + arn: + description: The ARN of the bucket. Will be of format arn:aws:s3:::bucketname. + type: string + bucket: + description: The name of the bucket. + type: string + bucketDomainName: + description: The bucket domain name. Will be of format bucketname.s3.amazonaws.com. + type: string + bucketPrefix: + description: Creates a unique bucket name beginning with the specified + prefix. Conflicts with bucket. + type: string + corsRule: + description: A rule of Cross-Origin Resource Sharing (documented + below). + items: + properties: + allowedHeaders: + description: Specifies which headers are allowed. + items: + type: string + type: array + allowedMethods: + description: Specifies which methods are allowed. Can be + GET, PUT, POST, DELETE or HEAD. + items: + type: string + type: array + allowedOrigins: + description: Specifies which origins are allowed. + items: + type: string + type: array + exposeHeaders: + description: Specifies expose header in the response. + items: + type: string + type: array + maxAgeSeconds: + description: Specifies time in seconds that browser can + cache the response for a preflight request. + type: number + type: object + type: array + forceDestroy: + description: A boolean that indicates all objects should be deleted + from the bucket so that the bucket can be destroyed without + error. These objects are not recoverable. + type: boolean + hostedZoneId: + description: The Route 53 Hosted Zone ID for this bucket's region. + type: string + id: + description: Unique identifier for the rule. + type: string + lifecycleRule: + description: 'A configuration of object lifecycle management (documented + below). The website object supports the following:' + items: + properties: + abortIncompleteMultipartUploadDays: + description: Specifies the number of days after initiating + a multipart upload when the multipart upload must be completed. + type: number + enabled: + description: Enable versioning. Once you version-enable + a bucket, it can never return to an unversioned state. + You can, however, suspend versioning on that bucket. If + omitted, during bucket creation it will be in Disabled + state. + type: boolean + expiration: + description: Specifies a period in the object's expire (documented + below). + items: + properties: + date: + description: Specifies the date after which you want + the corresponding action to take effect. + type: string + days: + description: Specifies the number of days after object + creation when the specific rule action takes effect. + type: number + expiredObjectDeleteMarker: + description: On a versioned bucket (versioning-enabled + or versioning-suspended bucket), you can add this + element in the lifecycle configuration to direct + Amazon S3 to delete expired object delete markers. + type: boolean + type: object + type: array + id: + description: Unique identifier for the rule. + type: string + noncurrentVersionExpiration: + description: Specifies when noncurrent object versions expire + (documented below). + items: + properties: + days: + description: Specifies the number of days after object + creation when the specific rule action takes effect. + type: number + type: object + type: array + prefix: + description: Object key prefix identifying one or more objects + to which the rule applies. + type: string + type: object + type: array + logging: + description: A settings of bucket logging (documented below). + items: + properties: + targetBucket: + description: The name of the bucket that will receive the + log objects. + type: string + targetPrefix: + description: To specify a key prefix for log objects. + type: string + type: object + type: array + policy: + description: A valid bucket policy JSON document. + type: string + region: + type: string + tags: + additionalProperties: + type: string + description: A mapping of tags to assign to the bucket. + type: object + versioning: + description: A state of versioning (documented below) + items: + properties: + enabled: + description: Enable versioning. Once you version-enable + a bucket, it can never return to an unversioned state. + You can, however, suspend versioning on that bucket. If + omitted, during bucket creation it will be in Disabled + state. + type: boolean + mfaDelete: + description: Enable MFA delete for either Change the versioning + state of your bucket or Permanently delete an object version. + Default is false. + type: boolean + type: object + type: array + website: + description: A website object (documented below). + items: + properties: + errorDocument: + description: An absolute path to the document to return + in case of a 4XX error. + type: string + indexDocument: + description: Amazon S3 returns this index document when + requests are made to the root domain or any of the subfolders. + type: string + redirectAllRequestsTo: + description: A hostname to redirect all website requests + for this bucket to. Hostname can optionally be prefixed + with a protocol (http:// or https://) to use when redirecting + requests. The default is the protocol that is used in + the original request. + type: string + routingRules: + description: A json array containing routing rules describing + redirect behavior and when redirects are applied. + type: string + type: object + type: array + websiteDomain: + description: The domain of the website endpoint, if the bucket + is configured with a website. If not, this will be an empty + string. This is used to create Route 53 alias records. + type: string + websiteEndpoint: + description: The website endpoint, if the bucket is configured + with a website. If not, this will be an empty string. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/sfs.crossplane.io_filesystemv2s.yaml b/package/crds/sfs.crossplane.io_filesystemv2s.yaml new file mode 100644 index 0000000..e3c93d5 --- /dev/null +++ b/package/crds/sfs.crossplane.io_filesystemv2s.yaml @@ -0,0 +1,480 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: filesystemv2s.sfs.crossplane.io +spec: + group: sfs.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: FileSystemV2 + listKind: FileSystemV2List + plural: filesystemv2s + singular: filesystemv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: FileSystemV2 is the Schema for the FileSystemV2s API. Manages + an SFS File System 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: FileSystemV2Spec defines the desired state of FileSystemV2 + 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: + accessLevel: + description: The access level of the shared file system. Changing + this will create a new access rule. Deprecated, please use the + opentelekomcloud_sfs_share_access_rule_v2 resource instead. + type: string + accessTo: + description: The access that the back end grants or denies. Changing + this will create new access rule. Deprecated, please use the + opentelekomcloud_sfs_share_access_rule_v2 resource instead. + type: string + accessType: + description: The type of the share access rule. Changing this + will create a new access rule. Deprecated, please use the opentelekomcloud_sfs_share_access_rule_v2 + resource instead. + type: string + availabilityZone: + description: The availability zone name. Changing this parameter + will create a new resource. + type: string + description: + description: Describes the shared file system. + type: string + isPublic: + description: The level of visibility for the shared file system. + type: boolean + metadata: + additionalProperties: + type: string + description: Metadata key/value pairs as a dictionary of strings. + Changing this will create a new resource. + type: object + name: + description: The name of the shared file system. + type: string + region: + description: The region in which to obtain the V2 SFS client. + If omitted, the region argument of the provider is used. Changing + this creates a new share. + type: string + shareProto: + description: The protocol for sharing file systems. The default + value is NFS. + type: string + size: + description: The size (GB) of the shared file system. + type: number + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the SFS File + System. + type: object + 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: + accessLevel: + description: The access level of the shared file system. Changing + this will create a new access rule. Deprecated, please use the + opentelekomcloud_sfs_share_access_rule_v2 resource instead. + type: string + accessTo: + description: The access that the back end grants or denies. Changing + this will create new access rule. Deprecated, please use the + opentelekomcloud_sfs_share_access_rule_v2 resource instead. + type: string + accessType: + description: The type of the share access rule. Changing this + will create a new access rule. Deprecated, please use the opentelekomcloud_sfs_share_access_rule_v2 + resource instead. + type: string + availabilityZone: + description: The availability zone name. Changing this parameter + will create a new resource. + type: string + description: + description: Describes the shared file system. + type: string + isPublic: + description: The level of visibility for the shared file system. + type: boolean + metadata: + additionalProperties: + type: string + description: Metadata key/value pairs as a dictionary of strings. + Changing this will create a new resource. + type: object + name: + description: The name of the shared file system. + type: string + region: + description: The region in which to obtain the V2 SFS client. + If omitted, the region argument of the provider is used. Changing + this creates a new share. + type: string + shareProto: + description: The protocol for sharing file systems. The default + value is NFS. + type: string + size: + description: The size (GB) of the shared file system. + type: number + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the SFS File + System. + type: object + 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.size is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.size) + || (has(self.initProvider) && has(self.initProvider.size))' + status: + description: FileSystemV2Status defines the observed state of FileSystemV2. + properties: + atProvider: + properties: + accessLevel: + description: The access level of the shared file system. Changing + this will create a new access rule. Deprecated, please use the + opentelekomcloud_sfs_share_access_rule_v2 resource instead. + type: string + accessRuleStatus: + description: The status of the share access rule. + type: string + accessTo: + description: The access that the back end grants or denies. Changing + this will create new access rule. Deprecated, please use the + opentelekomcloud_sfs_share_access_rule_v2 resource instead. + type: string + accessType: + description: The type of the share access rule. Changing this + will create a new access rule. Deprecated, please use the opentelekomcloud_sfs_share_access_rule_v2 + resource instead. + type: string + availabilityZone: + description: The availability zone name. Changing this parameter + will create a new resource. + type: string + description: + description: Describes the shared file system. + type: string + exportLocation: + description: The address for accessing the shared file system. + type: string + host: + description: The host name of the shared file system. + type: string + id: + description: The UUID of the shared file system. + type: string + isPublic: + description: The level of visibility for the shared file system. + type: boolean + metadata: + additionalProperties: + type: string + description: Metadata key/value pairs as a dictionary of strings. + Changing this will create a new resource. + type: object + name: + description: The name of the shared file system. + type: string + region: + description: The region in which to obtain the V2 SFS client. + If omitted, the region argument of the provider is used. Changing + this creates a new share. + type: string + shareAccessId: + description: The UUID of the share access rule. + type: string + shareProto: + description: The protocol for sharing file systems. The default + value is NFS. + type: string + shareType: + description: The storage service type assigned for the shared + file system, such as high-performance storage (composed of SSDs) + and large-capacity storage (composed of SATA disks). + type: string + size: + description: The size (GB) of the shared file system. + type: number + status: + description: The status of the shared file system. + type: string + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the SFS File + System. + type: object + volumeType: + description: The volume type. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/sfs.crossplane.io_shareaccessrulesv2s.yaml b/package/crds/sfs.crossplane.io_shareaccessrulesv2s.yaml new file mode 100644 index 0000000..5a056f3 --- /dev/null +++ b/package/crds/sfs.crossplane.io_shareaccessrulesv2s.yaml @@ -0,0 +1,379 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: shareaccessrulesv2s.sfs.crossplane.io +spec: + group: sfs.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: ShareAccessRulesV2 + listKind: ShareAccessRulesV2List + plural: shareaccessrulesv2s + singular: shareaccessrulesv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: ShareAccessRulesV2 is the Schema for the ShareAccessRulesV2s + API. Manages an SFS Access Rules 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: ShareAccessRulesV2Spec defines the desired state of ShareAccessRulesV2 + 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: + accessRule: + description: Specifies the access rules of SFS file share. Structure + is documented below. + items: + properties: + accessLevel: + description: The access level of the shared file system. + Possible values are ro (read-only) and rw (read-write). + The default value is rw (read/write). + type: string + accessTo: + description: The access that the back end grants or denies. + type: string + accessType: + description: The type of the share access rule. The value + cert indicates that the certificate is used to access + the storage. + type: string + type: object + type: array + shareId: + description: The UUID of the shared file system. + 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: + accessRule: + description: Specifies the access rules of SFS file share. Structure + is documented below. + items: + properties: + accessLevel: + description: The access level of the shared file system. + Possible values are ro (read-only) and rw (read-write). + The default value is rw (read/write). + type: string + accessTo: + description: The access that the back end grants or denies. + type: string + accessType: + description: The type of the share access rule. The value + cert indicates that the certificate is used to access + the storage. + type: string + type: object + type: array + shareId: + description: The UUID of the shared file system. + 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.accessRule is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.accessRule) + || (has(self.initProvider) && has(self.initProvider.accessRule))' + - message: spec.forProvider.shareId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.shareId) + || (has(self.initProvider) && has(self.initProvider.shareId))' + status: + description: ShareAccessRulesV2Status defines the observed state of ShareAccessRulesV2. + properties: + atProvider: + properties: + accessRule: + description: Specifies the access rules of SFS file share. Structure + is documented below. + items: + properties: + accessLevel: + description: The access level of the shared file system. + Possible values are ro (read-only) and rw (read-write). + The default value is rw (read/write). + type: string + accessRuleStatus: + description: The status of the share access rule. + type: string + accessTo: + description: The access that the back end grants or denies. + type: string + accessType: + description: The type of the share access rule. The value + cert indicates that the certificate is used to access + the storage. + type: string + shareAccessId: + description: The UUID of the share access rule. + type: string + type: object + type: array + id: + type: string + shareId: + description: The UUID of the shared file system. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/sfs.crossplane.io_turbosharev1s.yaml b/package/crds/sfs.crossplane.io_turbosharev1s.yaml new file mode 100644 index 0000000..a4311f1 --- /dev/null +++ b/package/crds/sfs.crossplane.io_turbosharev1s.yaml @@ -0,0 +1,472 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: turbosharev1s.sfs.crossplane.io +spec: + group: sfs.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: TurboShareV1 + listKind: TurboShareV1List + plural: turbosharev1s + singular: turbosharev1 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: TurboShareV1 is the Schema for the TurboShareV1s API. Manages + an SFS Turbo Share 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: TurboShareV1Spec defines the desired state of TurboShareV1 + 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: + availabilityZone: + description: Specifies the availability zone where the file system + is located. Changing this will create a new resource. + type: string + cryptKeyId: + description: Specifies the ID of a KMS key to encrypt the file + system. Changing this will create a new resource. + type: string + enhanced: + description: Specifies whether the file system is enhanced or + not. Changing this will create a new resource with type StandardEnhanced/PerformanceEnhanced. + type: boolean + name: + description: Specifies the name of an SFS Turbo file system. The + value contains 4 to 64 characters and must start with a letter. + Changing this will create a new resource. + type: string + region: + description: The region in which to create the SFS Turbo resource. + If omitted, the provider-level region will be used. Changing + this creates a new SFS Turbo resource. + type: string + securityGroupId: + description: Specifies the security group ID. + type: string + shareProto: + description: Specifies the protocol for sharing file systems. + The valid value is NFS. Changing this will create a new resource. + type: string + shareType: + description: Specifies the file system type. The valid values + are STANDARD and PERFORMANCE. Changing this will create a new + resource. + type: string + size: + description: Specifies the capacity of a common file system, in + GB. The value ranges from 500 to 32768. + type: number + subnetId: + description: Specifies the network ID of the subnet. Changing + this will create a new resource. + type: string + vpcId: + description: Specifies the VPC ID. Changing this will create a + new resource. + 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: + availabilityZone: + description: Specifies the availability zone where the file system + is located. Changing this will create a new resource. + type: string + cryptKeyId: + description: Specifies the ID of a KMS key to encrypt the file + system. Changing this will create a new resource. + type: string + enhanced: + description: Specifies whether the file system is enhanced or + not. Changing this will create a new resource with type StandardEnhanced/PerformanceEnhanced. + type: boolean + name: + description: Specifies the name of an SFS Turbo file system. The + value contains 4 to 64 characters and must start with a letter. + Changing this will create a new resource. + type: string + region: + description: The region in which to create the SFS Turbo resource. + If omitted, the provider-level region will be used. Changing + this creates a new SFS Turbo resource. + type: string + securityGroupId: + description: Specifies the security group ID. + type: string + shareProto: + description: Specifies the protocol for sharing file systems. + The valid value is NFS. Changing this will create a new resource. + type: string + shareType: + description: Specifies the file system type. The valid values + are STANDARD and PERFORMANCE. Changing this will create a new + resource. + type: string + size: + description: Specifies the capacity of a common file system, in + GB. The value ranges from 500 to 32768. + type: number + subnetId: + description: Specifies the network ID of the subnet. Changing + this will create a new resource. + type: string + vpcId: + description: Specifies the VPC ID. Changing this will create a + new resource. + 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.availabilityZone is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.availabilityZone) + || (has(self.initProvider) && has(self.initProvider.availabilityZone))' + - message: spec.forProvider.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + - message: spec.forProvider.securityGroupId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.securityGroupId) + || (has(self.initProvider) && has(self.initProvider.securityGroupId))' + - message: spec.forProvider.size is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.size) + || (has(self.initProvider) && has(self.initProvider.size))' + - 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))' + - message: spec.forProvider.vpcId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.vpcId) + || (has(self.initProvider) && has(self.initProvider.vpcId))' + status: + description: TurboShareV1Status defines the observed state of TurboShareV1. + properties: + atProvider: + properties: + availabilityZone: + description: Specifies the availability zone where the file system + is located. Changing this will create a new resource. + type: string + availableCapacity: + description: The available capacity of the SFS Turbo file system + in the unit of GB. + type: string + cryptKeyId: + description: Specifies the ID of a KMS key to encrypt the file + system. Changing this will create a new resource. + type: string + enhanced: + description: Specifies whether the file system is enhanced or + not. Changing this will create a new resource with type StandardEnhanced/PerformanceEnhanced. + type: boolean + expandType: + description: Specifies the extension type + type: string + exportLocation: + description: The mount point of the SFS Turbo file system. + type: string + id: + description: The UUID of the SFS Turbo file system. + type: string + name: + description: Specifies the name of an SFS Turbo file system. The + value contains 4 to 64 characters and must start with a letter. + Changing this will create a new resource. + type: string + region: + description: The region in which to create the SFS Turbo resource. + If omitted, the provider-level region will be used. Changing + this creates a new SFS Turbo resource. + type: string + securityGroupId: + description: Specifies the security group ID. + type: string + shareProto: + description: Specifies the protocol for sharing file systems. + The valid value is NFS. Changing this will create a new resource. + type: string + shareType: + description: Specifies the file system type. The valid values + are STANDARD and PERFORMANCE. Changing this will create a new + resource. + type: string + size: + description: Specifies the capacity of a common file system, in + GB. The value ranges from 500 to 32768. + type: number + subnetId: + description: Specifies the network ID of the subnet. Changing + this will create a new resource. + type: string + version: + description: The version ID of the SFS Turbo file system. + type: string + vpcId: + description: Specifies the VPC ID. Changing this will create a + new resource. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/smn.crossplane.io_subscriptionv2s.yaml b/package/crds/smn.crossplane.io_subscriptionv2s.yaml new file mode 100644 index 0000000..3c380c2 --- /dev/null +++ b/package/crds/smn.crossplane.io_subscriptionv2s.yaml @@ -0,0 +1,371 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: subscriptionv2s.smn.crossplane.io +spec: + group: smn.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: SubscriptionV2 + listKind: SubscriptionV2List + plural: subscriptionv2s + singular: subscriptionv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: SubscriptionV2 is the Schema for the SubscriptionV2s API. Manages + an SMN Subscription 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: SubscriptionV2Spec defines the desired state of SubscriptionV2 + 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: + endpoint: + description: Specifies the message endpoint. + type: string + projectName: + description: The project name for the subscription. + type: string + protocol: + description: Specifies protocol of the message endpoint. Currently, + email, sms, http, and https are supported. + type: string + remark: + description: Specifies the remark information. The remarks must + be a UTF-8-coded character string containing 128 bytes. + type: string + topicUrn: + description: Specifies the resource identifier of a topic, which + is unique. + 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: + endpoint: + description: Specifies the message endpoint. + type: string + projectName: + description: The project name for the subscription. + type: string + protocol: + description: Specifies protocol of the message endpoint. Currently, + email, sms, http, and https are supported. + type: string + remark: + description: Specifies the remark information. The remarks must + be a UTF-8-coded character string containing 128 bytes. + type: string + topicUrn: + description: Specifies the resource identifier of a topic, which + is unique. + 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.endpoint is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.endpoint) + || (has(self.initProvider) && has(self.initProvider.endpoint))' + - 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.topicUrn is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.topicUrn) + || (has(self.initProvider) && has(self.initProvider.topicUrn))' + status: + description: SubscriptionV2Status defines the observed state of SubscriptionV2. + properties: + atProvider: + properties: + endpoint: + description: Specifies the message endpoint. + type: string + id: + type: string + owner: + description: The project ID of the topic creator. + type: string + projectName: + description: The project name for the subscription. + type: string + protocol: + description: Specifies protocol of the message endpoint. Currently, + email, sms, http, and https are supported. + type: string + remark: + description: Specifies the remark information. The remarks must + be a UTF-8-coded character string containing 128 bytes. + type: string + status: + description: The subscription status. + type: number + subscriptionUrn: + description: The resource identifier of a subscription. + type: string + topicUrn: + description: Specifies the resource identifier of a topic, which + is unique. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/smn.crossplane.io_topicattributev2s.yaml b/package/crds/smn.crossplane.io_topicattributev2s.yaml new file mode 100644 index 0000000..22ce79c --- /dev/null +++ b/package/crds/smn.crossplane.io_topicattributev2s.yaml @@ -0,0 +1,338 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: topicattributev2s.smn.crossplane.io +spec: + group: smn.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: TopicAttributeV2 + listKind: TopicAttributeV2List + plural: topicattributev2s + singular: topicattributev2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: TopicAttributeV2 is the Schema for the TopicAttributeV2s API. + Manages an SMN Topic Attribute 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: TopicAttributeV2Spec defines the desired state of TopicAttributeV2 + 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: + attributeName: + description: Attribute name. Valid value is access_policy. + type: string + topicAttribute: + description: Topic attribute value. The value cannot exceed 30 + KB. + type: string + topicUrn: + description: Resource identifier of a topic, which is unique. + 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: + attributeName: + description: Attribute name. Valid value is access_policy. + type: string + topicAttribute: + description: Topic attribute value. The value cannot exceed 30 + KB. + type: string + topicUrn: + description: Resource identifier of a topic, which is unique. + 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.attributeName is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.attributeName) + || (has(self.initProvider) && has(self.initProvider.attributeName))' + - message: spec.forProvider.topicAttribute is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.topicAttribute) + || (has(self.initProvider) && has(self.initProvider.topicAttribute))' + - message: spec.forProvider.topicUrn is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.topicUrn) + || (has(self.initProvider) && has(self.initProvider.topicUrn))' + status: + description: TopicAttributeV2Status defines the observed state of TopicAttributeV2. + properties: + atProvider: + properties: + attributeName: + description: Attribute name. Valid value is access_policy. + type: string + id: + type: string + topicAttribute: + description: Topic attribute value. The value cannot exceed 30 + KB. + type: string + topicUrn: + description: Resource identifier of a topic, which is unique. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/smn.crossplane.io_topicv2s.yaml b/package/crds/smn.crossplane.io_topicv2s.yaml new file mode 100644 index 0000000..e3b7437 --- /dev/null +++ b/package/crds/smn.crossplane.io_topicv2s.yaml @@ -0,0 +1,359 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: topicv2s.smn.crossplane.io +spec: + group: smn.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: TopicV2 + listKind: TopicV2List + plural: topicv2s + singular: topicv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: TopicV2 is the Schema for the TopicV2s API. Manages an SMN Topic + 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: TopicV2Spec defines the desired state of TopicV2 + 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: + displayName: + description: Topic display name, which is presented as the name + of the email sender in an email message. + type: string + name: + description: The name of the topic to be created. + type: string + projectName: + description: The project name for the topic. + type: string + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the instance. + type: object + 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: + displayName: + description: Topic display name, which is presented as the name + of the email sender in an email message. + type: string + name: + description: The name of the topic to be created. + type: string + projectName: + description: The project name for the topic. + type: string + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the instance. + type: object + 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.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + status: + description: TopicV2Status defines the observed state of TopicV2. + properties: + atProvider: + properties: + createTime: + description: Time when the topic was created. + type: string + displayName: + description: Topic display name, which is presented as the name + of the email sender in an email message. + type: string + id: + type: string + name: + description: The name of the topic to be created. + type: string + projectName: + description: The project name for the topic. + type: string + pushPolicy: + description: Message pushing policy. 0 indicates that the message + sending fails and the message is cached in the queue. 1 indicates + that the failed message is discarded. + type: number + tags: + additionalProperties: + type: string + description: Tags key/value pairs to associate with the instance. + type: object + topicUrn: + description: Resource identifier of a topic, which is unique. + type: string + updateTime: + description: Time when the topic was updated. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/template.upbound.io_providerconfigs.yaml b/package/crds/template.upbound.io_providerconfigs.yaml deleted file mode 100644 index 595fa90..0000000 --- a/package/crds/template.upbound.io_providerconfigs.yaml +++ /dev/null @@ -1,155 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: providerconfigs.template.upbound.io -spec: - group: template.upbound.io - names: - categories: - - crossplane - - provider - - template - kind: ProviderConfig - listKind: ProviderConfigList - plural: providerconfigs - singular: providerconfig - scope: Cluster - versions: - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: AGE - type: date - - jsonPath: .spec.credentials.secretRef.name - name: SECRET-NAME - priority: 1 - type: string - name: v1beta1 - schema: - openAPIV3Schema: - description: A ProviderConfig configures a Template provider. - 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: A ProviderConfigSpec defines the desired state of a ProviderConfig. - properties: - credentials: - description: Credentials required to authenticate to this provider. - properties: - env: - description: Env is a reference to an environment variable that - contains credentials that must be used to connect to the provider. - properties: - name: - description: Name is the name of an environment variable. - type: string - required: - - name - type: object - fs: - description: Fs is a reference to a filesystem location that contains - credentials that must be used to connect to the provider. - properties: - path: - description: Path is a filesystem path. - type: string - required: - - path - type: object - secretRef: - description: A SecretRef is a reference to a secret key that contains - the credentials that must be used to connect to the provider. - properties: - key: - description: The key to select. - type: string - name: - description: Name of the secret. - type: string - namespace: - description: Namespace of the secret. - type: string - required: - - key - - name - - namespace - type: object - source: - description: Source of the provider credentials. - enum: - - None - - Secret - - InjectedIdentity - - Environment - - Filesystem - type: string - required: - - source - type: object - required: - - credentials - type: object - status: - description: A ProviderConfigStatus reflects the observed state of a ProviderConfig. - properties: - 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 - 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 - users: - description: Users of this provider configuration. - format: int64 - type: integer - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} diff --git a/package/crds/template.upbound.io_providerconfigusages.yaml b/package/crds/template.upbound.io_providerconfigusages.yaml deleted file mode 100644 index 5a2bc1d..0000000 --- a/package/crds/template.upbound.io_providerconfigusages.yaml +++ /dev/null @@ -1,110 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.13.0 - name: providerconfigusages.template.upbound.io -spec: - group: template.upbound.io - names: - categories: - - crossplane - - provider - - template - kind: ProviderConfigUsage - listKind: ProviderConfigUsageList - plural: providerconfigusages - singular: providerconfigusage - scope: Cluster - versions: - - additionalPrinterColumns: - - jsonPath: .metadata.creationTimestamp - name: AGE - type: date - - jsonPath: .providerConfigRef.name - name: CONFIG-NAME - type: string - - jsonPath: .resourceRef.kind - name: RESOURCE-KIND - type: string - - jsonPath: .resourceRef.name - name: RESOURCE-NAME - type: string - name: v1beta1 - schema: - openAPIV3Schema: - description: A ProviderConfigUsage indicates that a resource is using a ProviderConfig. - 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 - providerConfigRef: - description: ProviderConfigReference to the provider config being used. - 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 - resourceRef: - description: ResourceReference to the managed resource using the provider - config. - properties: - apiVersion: - description: APIVersion of the referenced object. - type: string - kind: - description: Kind of the referenced object. - type: string - name: - description: Name of the referenced object. - type: string - uid: - description: UID of the referenced object. - type: string - required: - - apiVersion - - kind - - name - type: object - required: - - providerConfigRef - - resourceRef - type: object - served: true - storage: true - subresources: {} diff --git a/package/crds/vpc.crossplane.io_bandwidthassociatev2s.yaml b/package/crds/vpc.crossplane.io_bandwidthassociatev2s.yaml new file mode 100644 index 0000000..379b2f5 --- /dev/null +++ b/package/crds/vpc.crossplane.io_bandwidthassociatev2s.yaml @@ -0,0 +1,359 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: bandwidthassociatev2s.vpc.crossplane.io +spec: + group: vpc.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: BandwidthAssociateV2 + listKind: BandwidthAssociateV2List + plural: bandwidthassociatev2s + singular: bandwidthassociatev2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: BandwidthAssociateV2 is the Schema for the BandwidthAssociateV2s + API. Manages a VPC Bandwidth Association 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: BandwidthAssociateV2Spec defines the desired state of BandwidthAssociateV2 + 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: + backupChargeMode: + description: Specifies whether the dedicated bandwidth used by + the EIP that has been removed from a shared bandwidth is billed + by traffic or by bandwidth. + type: string + backupSize: + description: Specifies the size (Mbit/s) of the dedicated bandwidth + used by the EIP that has been removed from a shared bandwidth. + type: number + bandwidth: + description: Specifies ID of the bandwidth to be assigned. + type: string + floatingIps: + description: Specifies IDs of floating IPs to be added to the + bandwidth. + items: + type: string + type: array + 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: + backupChargeMode: + description: Specifies whether the dedicated bandwidth used by + the EIP that has been removed from a shared bandwidth is billed + by traffic or by bandwidth. + type: string + backupSize: + description: Specifies the size (Mbit/s) of the dedicated bandwidth + used by the EIP that has been removed from a shared bandwidth. + type: number + bandwidth: + description: Specifies ID of the bandwidth to be assigned. + type: string + floatingIps: + description: Specifies IDs of floating IPs to be added to the + bandwidth. + items: + type: string + type: array + 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.bandwidth is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.bandwidth) + || (has(self.initProvider) && has(self.initProvider.bandwidth))' + - message: spec.forProvider.floatingIps is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.floatingIps) + || (has(self.initProvider) && has(self.initProvider.floatingIps))' + status: + description: BandwidthAssociateV2Status defines the observed state of + BandwidthAssociateV2. + properties: + atProvider: + properties: + backupChargeMode: + description: Specifies whether the dedicated bandwidth used by + the EIP that has been removed from a shared bandwidth is billed + by traffic or by bandwidth. + type: string + backupSize: + description: Specifies the size (Mbit/s) of the dedicated bandwidth + used by the EIP that has been removed from a shared bandwidth. + type: number + bandwidth: + description: Specifies ID of the bandwidth to be assigned. + type: string + floatingIps: + description: Specifies IDs of floating IPs to be added to the + bandwidth. + items: + type: string + type: array + id: + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/vpc.crossplane.io_bandwidthv2s.yaml b/package/crds/vpc.crossplane.io_bandwidthv2s.yaml new file mode 100644 index 0000000..cfa7ffb --- /dev/null +++ b/package/crds/vpc.crossplane.io_bandwidthv2s.yaml @@ -0,0 +1,330 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: bandwidthv2s.vpc.crossplane.io +spec: + group: vpc.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: BandwidthV2 + listKind: BandwidthV2List + plural: bandwidthv2s + singular: bandwidthv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: BandwidthV2 is the Schema for the BandwidthV2s API. Manages a + VPC Bandwidth 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: BandwidthV2Spec defines the desired state of BandwidthV2 + 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: + name: + description: Specifies the bandwidth name. + type: string + size: + description: Specifies the bandwidth size. The value ranges from + 5 Mbit/s to 1000 Mbit/s by default. + 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: + name: + description: Specifies the bandwidth name. + type: string + size: + description: Specifies the bandwidth size. The value ranges from + 5 Mbit/s to 1000 Mbit/s by default. + 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.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + - message: spec.forProvider.size is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.size) + || (has(self.initProvider) && has(self.initProvider.size))' + status: + description: BandwidthV2Status defines the observed state of BandwidthV2. + properties: + atProvider: + properties: + id: + description: Specifies the bandwidth ID, which uniquely identifies + the bandwidth. + type: string + name: + description: Specifies the bandwidth name. + type: string + size: + description: Specifies the bandwidth size. The value ranges from + 5 Mbit/s to 1000 Mbit/s by default. + type: number + status: + description: Specifies the bandwidth status. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/vpc.crossplane.io_eipv1s.yaml b/package/crds/vpc.crossplane.io_eipv1s.yaml new file mode 100644 index 0000000..11053f6 --- /dev/null +++ b/package/crds/vpc.crossplane.io_eipv1s.yaml @@ -0,0 +1,505 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: eipv1s.vpc.crossplane.io +spec: + group: vpc.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: EIPV1 + listKind: EIPV1List + plural: eipv1s + singular: eipv1 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: EIPV1 is the Schema for the EIPV1s API. Manages a VPC EIP 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: EIPV1Spec defines the desired state of EIPV1 + 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: + bandwidth: + description: The bandwidth object. + items: + properties: + chargeMode: + description: This is a reserved field. If the system supports + charging by traffic and this field is specified, then + you are charged by traffic for elastic IP addresses. Changing + this creates a new eip. + type: string + name: + description: The bandwidth name, which is a string of 1 + to 64 characters that contain letters, digits, underscores + (_), and hyphens (-). + type: string + shareType: + description: Whether the bandwidth is shared or exclusive. + Changing this creates a new eip. + type: string + size: + description: The bandwidth size. The value ranges from 1 + to 300 Mbit/s. + type: number + type: object + type: array + publicip: + description: The elastic IP address object. + items: + properties: + ipAddress: + description: The value must be a valid IP address in the + available IP address segment. Changing this creates a + new eip. + type: string + name: + description: The ip name, which is a string of 1 to 64 characters. + type: string + portId: + description: The port id which this eip will associate with. + If the value is "" or this not specified, the eip will + be in unbind state. + type: string + type: + description: The value must be a type supported by the system. + The value can be 5_bgp, 5_mailbgp and 5_gray. Changing + this creates a new eip. + type: string + type: object + type: array + region: + description: The region in which to obtain the V1 Networking client. + If omitted, the region argument of the provider is used. Changing + this creates a new service. + type: string + tags: + additionalProperties: + type: string + description: See Argument Reference above. + type: object + unbindPort: + description: The value true indicates that port will be unassigned + from EIP. This parameter work only with already allocated resource. + type: boolean + valueSpecs: + additionalProperties: + type: string + type: object + 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: + bandwidth: + description: The bandwidth object. + items: + properties: + chargeMode: + description: This is a reserved field. If the system supports + charging by traffic and this field is specified, then + you are charged by traffic for elastic IP addresses. Changing + this creates a new eip. + type: string + name: + description: The bandwidth name, which is a string of 1 + to 64 characters that contain letters, digits, underscores + (_), and hyphens (-). + type: string + shareType: + description: Whether the bandwidth is shared or exclusive. + Changing this creates a new eip. + type: string + size: + description: The bandwidth size. The value ranges from 1 + to 300 Mbit/s. + type: number + type: object + type: array + publicip: + description: The elastic IP address object. + items: + properties: + ipAddress: + description: The value must be a valid IP address in the + available IP address segment. Changing this creates a + new eip. + type: string + name: + description: The ip name, which is a string of 1 to 64 characters. + type: string + portId: + description: The port id which this eip will associate with. + If the value is "" or this not specified, the eip will + be in unbind state. + type: string + type: + description: The value must be a type supported by the system. + The value can be 5_bgp, 5_mailbgp and 5_gray. Changing + this creates a new eip. + type: string + type: object + type: array + region: + description: The region in which to obtain the V1 Networking client. + If omitted, the region argument of the provider is used. Changing + this creates a new service. + type: string + tags: + additionalProperties: + type: string + description: See Argument Reference above. + type: object + unbindPort: + description: The value true indicates that port will be unassigned + from EIP. This parameter work only with already allocated resource. + type: boolean + valueSpecs: + additionalProperties: + type: string + type: object + 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.bandwidth is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.bandwidth) + || (has(self.initProvider) && has(self.initProvider.bandwidth))' + - message: spec.forProvider.publicip is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.publicip) + || (has(self.initProvider) && has(self.initProvider.publicip))' + status: + description: EIPV1Status defines the observed state of EIPV1. + properties: + atProvider: + properties: + bandwidth: + description: The bandwidth object. + items: + properties: + chargeMode: + description: This is a reserved field. If the system supports + charging by traffic and this field is specified, then + you are charged by traffic for elastic IP addresses. Changing + this creates a new eip. + type: string + name: + description: The bandwidth name, which is a string of 1 + to 64 characters that contain letters, digits, underscores + (_), and hyphens (-). + type: string + shareType: + description: Whether the bandwidth is shared or exclusive. + Changing this creates a new eip. + type: string + size: + description: The bandwidth size. The value ranges from 1 + to 300 Mbit/s. + type: number + type: object + type: array + id: + type: string + publicip: + description: The elastic IP address object. + items: + properties: + ipAddress: + description: The value must be a valid IP address in the + available IP address segment. Changing this creates a + new eip. + type: string + name: + description: The ip name, which is a string of 1 to 64 characters. + type: string + portId: + description: The port id which this eip will associate with. + If the value is "" or this not specified, the eip will + be in unbind state. + type: string + type: + description: The value must be a type supported by the system. + The value can be 5_bgp, 5_mailbgp and 5_gray. Changing + this creates a new eip. + type: string + type: object + type: array + region: + description: The region in which to obtain the V1 Networking client. + If omitted, the region argument of the provider is used. Changing + this creates a new service. + type: string + tags: + additionalProperties: + type: string + description: See Argument Reference above. + type: object + unbindPort: + description: The value true indicates that port will be unassigned + from EIP. This parameter work only with already allocated resource. + type: boolean + valueSpecs: + additionalProperties: + type: string + type: object + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/vpc.crossplane.io_flowlogv1s.yaml b/package/crds/vpc.crossplane.io_flowlogv1s.yaml new file mode 100644 index 0000000..4fde59f --- /dev/null +++ b/package/crds/vpc.crossplane.io_flowlogv1s.yaml @@ -0,0 +1,434 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: flowlogv1s.vpc.crossplane.io +spec: + group: vpc.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: FlowLogV1 + listKind: FlowLogV1List + plural: flowlogv1s + singular: flowlogv1 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: FlowLogV1 is the Schema for the FlowLogV1s API. Manages a VPC + Flow Log 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: FlowLogV1Spec defines the desired state of FlowLogV1 + 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: + adminState: + description: Whether to enable the VPC flow log function. + type: boolean + description: + description: (Optinal) Provides supplementary information about + the VPC flow log. The value is a string of no more than 255 + characters and cannot contain angle brackets (< or >). + type: string + logGroupId: + description: Specifies the log group ID. Changing this creates + a new VPC flow log. + type: string + logTopicId: + description: Specifies the log topic ID. Changing this creates + a new VPC flow log. + type: string + name: + description: Specifies the flow log name. The value is a string + of 1 to 64 characters that can contain letters, digits, underscores + (_), hyphens (-) and periods (.). + type: string + resourceId: + description: Specifies the ID of resource type. Changing this + creates a new VPC flow log. + type: string + resourceType: + description: Specifies the type of resource on which to create + the VPC flow log. The value can be port, vpc and network. Changing + this creates a new VPC flow log. + type: string + status: + description: The status of the flow log. The value can be ACTIVE, + DOWN or ERROR. + type: string + trafficType: + description: Specifies the type of traffic to log. The value can + be all, accept and reject. Changing this creates a new VPC flow + log. + 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: + adminState: + description: Whether to enable the VPC flow log function. + type: boolean + description: + description: (Optinal) Provides supplementary information about + the VPC flow log. The value is a string of no more than 255 + characters and cannot contain angle brackets (< or >). + type: string + logGroupId: + description: Specifies the log group ID. Changing this creates + a new VPC flow log. + type: string + logTopicId: + description: Specifies the log topic ID. Changing this creates + a new VPC flow log. + type: string + name: + description: Specifies the flow log name. The value is a string + of 1 to 64 characters that can contain letters, digits, underscores + (_), hyphens (-) and periods (.). + type: string + resourceId: + description: Specifies the ID of resource type. Changing this + creates a new VPC flow log. + type: string + resourceType: + description: Specifies the type of resource on which to create + the VPC flow log. The value can be port, vpc and network. Changing + this creates a new VPC flow log. + type: string + status: + description: The status of the flow log. The value can be ACTIVE, + DOWN or ERROR. + type: string + trafficType: + description: Specifies the type of traffic to log. The value can + be all, accept and reject. Changing this creates a new VPC flow + log. + 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.logGroupId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.logGroupId) + || (has(self.initProvider) && has(self.initProvider.logGroupId))' + - message: spec.forProvider.logTopicId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.logTopicId) + || (has(self.initProvider) && has(self.initProvider.logTopicId))' + - message: spec.forProvider.resourceId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.resourceId) + || (has(self.initProvider) && has(self.initProvider.resourceId))' + - message: spec.forProvider.resourceType is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.resourceType) + || (has(self.initProvider) && has(self.initProvider.resourceType))' + - message: spec.forProvider.trafficType is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.trafficType) + || (has(self.initProvider) && has(self.initProvider.trafficType))' + status: + description: FlowLogV1Status defines the observed state of FlowLogV1. + properties: + atProvider: + properties: + adminState: + description: Whether to enable the VPC flow log function. + type: boolean + description: + description: (Optinal) Provides supplementary information about + the VPC flow log. The value is a string of no more than 255 + characters and cannot contain angle brackets (< or >). + type: string + id: + description: The VPC flow log ID in UUID format. + type: string + logGroupId: + description: Specifies the log group ID. Changing this creates + a new VPC flow log. + type: string + logTopicId: + description: Specifies the log topic ID. Changing this creates + a new VPC flow log. + type: string + name: + description: Specifies the flow log name. The value is a string + of 1 to 64 characters that can contain letters, digits, underscores + (_), hyphens (-) and periods (.). + type: string + resourceId: + description: Specifies the ID of resource type. Changing this + creates a new VPC flow log. + type: string + resourceType: + description: Specifies the type of resource on which to create + the VPC flow log. The value can be port, vpc and network. Changing + this creates a new VPC flow log. + type: string + status: + description: The status of the flow log. The value can be ACTIVE, + DOWN or ERROR. + type: string + trafficType: + description: Specifies the type of traffic to log. The value can + be all, accept and reject. Changing this creates a new VPC flow + log. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/vpc.crossplane.io_peeringconnectionaccepterv2s.yaml b/package/crds/vpc.crossplane.io_peeringconnectionaccepterv2s.yaml new file mode 100644 index 0000000..145418b --- /dev/null +++ b/package/crds/vpc.crossplane.io_peeringconnectionaccepterv2s.yaml @@ -0,0 +1,349 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: peeringconnectionaccepterv2s.vpc.crossplane.io +spec: + group: vpc.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: PeeringConnectionAccepterV2 + listKind: PeeringConnectionAccepterV2List + plural: peeringconnectionaccepterv2s + singular: peeringconnectionaccepterv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: PeeringConnectionAccepterV2 is the Schema for the PeeringConnectionAccepterV2s + API. Manages a VPC Peering Accepter 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: PeeringConnectionAccepterV2Spec defines the desired state + of PeeringConnectionAccepterV2 + 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: + accept: + description: '- Whether or not to accept the peering request. + Defaults to false.' + type: boolean + region: + type: string + vpcPeeringConnectionId: + description: The VPC Peering Connection ID to manage. Changing + this creates a new VPC peering connection accepter. + 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: + accept: + description: '- Whether or not to accept the peering request. + Defaults to false.' + type: boolean + region: + type: string + vpcPeeringConnectionId: + description: The VPC Peering Connection ID to manage. Changing + this creates a new VPC peering connection accepter. + 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.vpcPeeringConnectionId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.vpcPeeringConnectionId) + || (has(self.initProvider) && has(self.initProvider.vpcPeeringConnectionId))' + status: + description: PeeringConnectionAccepterV2Status defines the observed state + of PeeringConnectionAccepterV2. + properties: + atProvider: + properties: + accept: + description: '- Whether or not to accept the peering request. + Defaults to false.' + type: boolean + id: + description: The VPC peering connection ID. + type: string + name: + description: The VPC peering connection name. + type: string + peerTenantId: + description: The Tenant Id of the accepter tenant. + type: string + peerVpcId: + description: The VPC ID of the accepter tenant. + type: string + region: + type: string + status: + description: The VPC peering connection status. + type: string + vpcId: + description: The ID of requester VPC involved in a VPC peering + connection. + type: string + vpcPeeringConnectionId: + description: The VPC Peering Connection ID to manage. Changing + this creates a new VPC peering connection accepter. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/vpc.crossplane.io_peeringconnectionv2s.yaml b/package/crds/vpc.crossplane.io_peeringconnectionv2s.yaml new file mode 100644 index 0000000..c56d067 --- /dev/null +++ b/package/crds/vpc.crossplane.io_peeringconnectionv2s.yaml @@ -0,0 +1,367 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: peeringconnectionv2s.vpc.crossplane.io +spec: + group: vpc.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: PeeringConnectionV2 + listKind: PeeringConnectionV2List + plural: peeringconnectionv2s + singular: peeringconnectionv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: PeeringConnectionV2 is the Schema for the PeeringConnectionV2s + API. Manages a VPC Peering 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: PeeringConnectionV2Spec defines the desired state of PeeringConnectionV2 + 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: + name: + description: Specifies the name of the VPC peering connection. + The value can contain 1 to 64 characters. + type: string + peerTenantId: + description: Specified the Tenant Id of the accepter tenant. Changing + this creates a new VPC peering connection. + type: string + peerVpcId: + description: Specifies the VPC ID of the accepter tenant. Changing + this creates a new VPC peering connection. + type: string + region: + type: string + vpcId: + description: Specifies the ID of a VPC involved in a VPC peering + connection. Changing this creates a new VPC peering connection. + 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: + name: + description: Specifies the name of the VPC peering connection. + The value can contain 1 to 64 characters. + type: string + peerTenantId: + description: Specified the Tenant Id of the accepter tenant. Changing + this creates a new VPC peering connection. + type: string + peerVpcId: + description: Specifies the VPC ID of the accepter tenant. Changing + this creates a new VPC peering connection. + type: string + region: + type: string + vpcId: + description: Specifies the ID of a VPC involved in a VPC peering + connection. Changing this creates a new VPC peering connection. + 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.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + - message: spec.forProvider.peerVpcId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.peerVpcId) + || (has(self.initProvider) && has(self.initProvider.peerVpcId))' + - message: spec.forProvider.vpcId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.vpcId) + || (has(self.initProvider) && has(self.initProvider.vpcId))' + status: + description: PeeringConnectionV2Status defines the observed state of PeeringConnectionV2. + properties: + atProvider: + properties: + id: + description: The VPC peering connection ID. + type: string + name: + description: Specifies the name of the VPC peering connection. + The value can contain 1 to 64 characters. + type: string + peerTenantId: + description: Specified the Tenant Id of the accepter tenant. Changing + this creates a new VPC peering connection. + type: string + peerVpcId: + description: Specifies the VPC ID of the accepter tenant. Changing + this creates a new VPC peering connection. + type: string + region: + type: string + status: + description: The VPC peering connection status. The value can + be PENDING_ACCEPTANCE, REJECTED, EXPIRED, DELETED, or ACTIVE. + type: string + vpcId: + description: Specifies the ID of a VPC involved in a VPC peering + connection. Changing this creates a new VPC peering connection. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/vpc.crossplane.io_routetablev1s.yaml b/package/crds/vpc.crossplane.io_routetablev1s.yaml new file mode 100644 index 0000000..1be721b --- /dev/null +++ b/package/crds/vpc.crossplane.io_routetablev1s.yaml @@ -0,0 +1,463 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: routetablev1s.vpc.crossplane.io +spec: + group: vpc.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: RouteTableV1 + listKind: RouteTableV1List + plural: routetablev1s + singular: routetablev1 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: RouteTableV1 is the Schema for the RouteTableV1s API. Manages + a VPC Route Table 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: RouteTableV1Spec defines the desired state of RouteTableV1 + 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: + description: + description: Specifies the supplementary information about the + route table. The value is a string of no more than 255 characters + and cannot contain angle brackets (< or >). + type: string + name: + description: Specifies the route table name. The value is a string + of no more than 64 characters that can contain letters, digits, + underscores (_), hyphens (-), and periods (.). + type: string + region: + description: The region in which to create the vpc route table. + If omitted, the provider-level region will be used. Changing + this creates a new resource. + type: string + route: + description: Specifies the route object list. The route object + is documented below. + items: + properties: + description: + description: Specifies the supplementary information about + the route. The value is a string of no more than 255 characters + and cannot contain angle brackets (< or >). + type: string + destination: + description: Specifies the destination address in the CIDR + notation format, for example, 192.168.200.0/24. The destination + of each route must be unique and cannot overlap with any + subnet in the VPC. + type: string + nexthop: + description: Specifies the next hop. + type: string + type: + description: 'Specifies the route type. Currently, the value + can be: ecs, eni, vip, nat, peering, vpn, dc and cc.' + type: string + type: object + type: array + subnets: + description: Specifies an array of one or more subnets associating + with the route table. + items: + type: string + type: array + vpcId: + description: Specifies the VPC ID for which a route table is to + be added. Changing this creates a new resource. + 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: + description: + description: Specifies the supplementary information about the + route table. The value is a string of no more than 255 characters + and cannot contain angle brackets (< or >). + type: string + name: + description: Specifies the route table name. The value is a string + of no more than 64 characters that can contain letters, digits, + underscores (_), hyphens (-), and periods (.). + type: string + region: + description: The region in which to create the vpc route table. + If omitted, the provider-level region will be used. Changing + this creates a new resource. + type: string + route: + description: Specifies the route object list. The route object + is documented below. + items: + properties: + description: + description: Specifies the supplementary information about + the route. The value is a string of no more than 255 characters + and cannot contain angle brackets (< or >). + type: string + destination: + description: Specifies the destination address in the CIDR + notation format, for example, 192.168.200.0/24. The destination + of each route must be unique and cannot overlap with any + subnet in the VPC. + type: string + nexthop: + description: Specifies the next hop. + type: string + type: + description: 'Specifies the route type. Currently, the value + can be: ecs, eni, vip, nat, peering, vpn, dc and cc.' + type: string + type: object + type: array + subnets: + description: Specifies an array of one or more subnets associating + with the route table. + items: + type: string + type: array + vpcId: + description: Specifies the VPC ID for which a route table is to + be added. Changing this creates a new resource. + 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.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + - message: spec.forProvider.vpcId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.vpcId) + || (has(self.initProvider) && has(self.initProvider.vpcId))' + status: + description: RouteTableV1Status defines the observed state of RouteTableV1. + properties: + atProvider: + properties: + createdAt: + description: Specifies the time (UTC) when the route table is + created. + type: string + description: + description: Specifies the supplementary information about the + route table. The value is a string of no more than 255 characters + and cannot contain angle brackets (< or >). + type: string + id: + description: The resource ID in UUID format. + type: string + name: + description: Specifies the route table name. The value is a string + of no more than 64 characters that can contain letters, digits, + underscores (_), hyphens (-), and periods (.). + type: string + region: + description: The region in which to create the vpc route table. + If omitted, the provider-level region will be used. Changing + this creates a new resource. + type: string + route: + description: Specifies the route object list. The route object + is documented below. + items: + properties: + description: + description: Specifies the supplementary information about + the route. The value is a string of no more than 255 characters + and cannot contain angle brackets (< or >). + type: string + destination: + description: Specifies the destination address in the CIDR + notation format, for example, 192.168.200.0/24. The destination + of each route must be unique and cannot overlap with any + subnet in the VPC. + type: string + nexthop: + description: Specifies the next hop. + type: string + type: + description: 'Specifies the route type. Currently, the value + can be: ecs, eni, vip, nat, peering, vpn, dc and cc.' + type: string + type: object + type: array + subnets: + description: Specifies an array of one or more subnets associating + with the route table. + items: + type: string + type: array + updatedAt: + description: Specifies the time (UTC) when the route table is + updated. + type: string + vpcId: + description: Specifies the VPC ID for which a route table is to + be added. Changing this creates a new resource. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/vpc.crossplane.io_routev2s.yaml b/package/crds/vpc.crossplane.io_routev2s.yaml new file mode 100644 index 0000000..3187d2d --- /dev/null +++ b/package/crds/vpc.crossplane.io_routev2s.yaml @@ -0,0 +1,385 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: routev2s.vpc.crossplane.io +spec: + group: vpc.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: RouteV2 + listKind: RouteV2List + plural: routev2s + singular: routev2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: RouteV2 is the Schema for the RouteV2s API. Manages a VPC Route + Table 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: RouteV2Spec defines the desired state of RouteV2 + 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: + destination: + description: Specifies the destination IP address or CIDR block. + Changing this creates a new Route. + type: string + nexthop: + description: Specifies the next hop. If the route type is peering, + enter the VPC peering connection ID. Changing this creates a + new Route. + type: string + region: + type: string + tenantId: + description: Specifies the tenant ID. Only the administrator can + specify the tenant ID of other tenant. Changing this creates + a new Route. + type: string + type: + description: Specifies the route type. Currently, the value can + only be peering. Changing this creates a new Route. + type: string + vpcId: + description: Specifies the VPC for which a route is to be added. + Changing this creates a new Route. + 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: + destination: + description: Specifies the destination IP address or CIDR block. + Changing this creates a new Route. + type: string + nexthop: + description: Specifies the next hop. If the route type is peering, + enter the VPC peering connection ID. Changing this creates a + new Route. + type: string + region: + type: string + tenantId: + description: Specifies the tenant ID. Only the administrator can + specify the tenant ID of other tenant. Changing this creates + a new Route. + type: string + type: + description: Specifies the route type. Currently, the value can + only be peering. Changing this creates a new Route. + type: string + vpcId: + description: Specifies the VPC for which a route is to be added. + Changing this creates a new Route. + 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.destination is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.destination) + || (has(self.initProvider) && has(self.initProvider.destination))' + - message: spec.forProvider.nexthop is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.nexthop) + || (has(self.initProvider) && has(self.initProvider.nexthop))' + - 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.vpcId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.vpcId) + || (has(self.initProvider) && has(self.initProvider.vpcId))' + status: + description: RouteV2Status defines the observed state of RouteV2. + properties: + atProvider: + properties: + destination: + description: Specifies the destination IP address or CIDR block. + Changing this creates a new Route. + type: string + id: + description: The route ID. + type: string + nexthop: + description: Specifies the next hop. If the route type is peering, + enter the VPC peering connection ID. Changing this creates a + new Route. + type: string + region: + type: string + tenantId: + description: Specifies the tenant ID. Only the administrator can + specify the tenant ID of other tenant. Changing this creates + a new Route. + type: string + type: + description: Specifies the route type. Currently, the value can + only be peering. Changing this creates a new Route. + type: string + vpcId: + description: Specifies the VPC for which a route is to be added. + Changing this creates a new Route. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/vpc.crossplane.io_subnetv1s.yaml b/package/crds/vpc.crossplane.io_subnetv1s.yaml new file mode 100644 index 0000000..6e62e65 --- /dev/null +++ b/package/crds/vpc.crossplane.io_subnetv1s.yaml @@ -0,0 +1,529 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: subnetv1s.vpc.crossplane.io +spec: + group: vpc.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: SubnetV1 + listKind: SubnetV1List + plural: subnetv1s + singular: subnetv1 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: SubnetV1 is the Schema for the SubnetV1s API. Manages a VPC Subnet + 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: SubnetV1Spec defines the desired state of SubnetV1 + 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: + availabilityZone: + description: Identifies the availability zone (AZ) to which the + subnet belongs. The value must be an existing AZ in the system. + Changing this creates a new Subnet. + type: string + cidr: + description: Specifies the network segment on which the subnet + resides. The value must be in CIDR format. The value must be + within the CIDR block of the VPC. The subnet mask cannot be + greater than 28. Changing this creates a new Subnet. + type: string + description: + description: A description of the VPC subnet. + type: string + dhcpEnable: + description: Specifies whether the DHCP function is enabled for + the subnet. The value can be true or false. If this parameter + is left blank, it is set to true by default. + type: boolean + dnsList: + description: Specifies the DNS server address list of a subnet. + This field is required if you need to use more than two DNS + servers. This parameter value is the superset of both DNS server + address 1 and DNS server address 2. + items: + type: string + type: array + gatewayIp: + description: Specifies the gateway of the subnet. The value must + be a valid IP address. The value must be an IP address in the + subnet segment. Changing this creates a new Subnet. + type: string + ipv6Enable: + description: Specifies whether IPv6 is enabled. If IPv6 is enabled, + you can use IPv6 CIDR blocks. The value can be true or false. + If this parameter is left blank, it is set to false by default. + type: boolean + name: + description: The subnet name. The value is a string of 1 to 64 + characters that can contain letters, digits, underscores (_), + and hyphens (-). + type: string + ntpAddresses: + description: Specifies the NTP server address configured for the + subnet. + type: string + primaryDns: + description: Specifies the IP address of DNS server 1 on the subnet. + The value must be a valid IP address. Default is 100.125.4.25, + OpenTelekomCloud internal DNS server. + type: string + region: + type: string + secondaryDns: + description: Specifies the IP address of DNS server 2 on the subnet. + The value must be a valid IP address. Default is 100.125.129.199, + OpenTelekomCloud secondary internal DNS server. + type: string + tags: + additionalProperties: + type: string + description: The key/value pairs to associate with the subnet. + type: object + vpcId: + description: Specifies the ID of the VPC to which the subnet belongs. + Changing this creates a new Subnet. + 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: + availabilityZone: + description: Identifies the availability zone (AZ) to which the + subnet belongs. The value must be an existing AZ in the system. + Changing this creates a new Subnet. + type: string + cidr: + description: Specifies the network segment on which the subnet + resides. The value must be in CIDR format. The value must be + within the CIDR block of the VPC. The subnet mask cannot be + greater than 28. Changing this creates a new Subnet. + type: string + description: + description: A description of the VPC subnet. + type: string + dhcpEnable: + description: Specifies whether the DHCP function is enabled for + the subnet. The value can be true or false. If this parameter + is left blank, it is set to true by default. + type: boolean + dnsList: + description: Specifies the DNS server address list of a subnet. + This field is required if you need to use more than two DNS + servers. This parameter value is the superset of both DNS server + address 1 and DNS server address 2. + items: + type: string + type: array + gatewayIp: + description: Specifies the gateway of the subnet. The value must + be a valid IP address. The value must be an IP address in the + subnet segment. Changing this creates a new Subnet. + type: string + ipv6Enable: + description: Specifies whether IPv6 is enabled. If IPv6 is enabled, + you can use IPv6 CIDR blocks. The value can be true or false. + If this parameter is left blank, it is set to false by default. + type: boolean + name: + description: The subnet name. The value is a string of 1 to 64 + characters that can contain letters, digits, underscores (_), + and hyphens (-). + type: string + ntpAddresses: + description: Specifies the NTP server address configured for the + subnet. + type: string + primaryDns: + description: Specifies the IP address of DNS server 1 on the subnet. + The value must be a valid IP address. Default is 100.125.4.25, + OpenTelekomCloud internal DNS server. + type: string + region: + type: string + secondaryDns: + description: Specifies the IP address of DNS server 2 on the subnet. + The value must be a valid IP address. Default is 100.125.129.199, + OpenTelekomCloud secondary internal DNS server. + type: string + tags: + additionalProperties: + type: string + description: The key/value pairs to associate with the subnet. + type: object + vpcId: + description: Specifies the ID of the VPC to which the subnet belongs. + Changing this creates a new Subnet. + 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.cidr is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.cidr) + || (has(self.initProvider) && has(self.initProvider.cidr))' + - message: spec.forProvider.gatewayIp is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.gatewayIp) + || (has(self.initProvider) && has(self.initProvider.gatewayIp))' + - message: spec.forProvider.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + - message: spec.forProvider.vpcId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.vpcId) + || (has(self.initProvider) && has(self.initProvider.vpcId))' + status: + description: SubnetV1Status defines the observed state of SubnetV1. + properties: + atProvider: + properties: + availabilityZone: + description: Identifies the availability zone (AZ) to which the + subnet belongs. The value must be an existing AZ in the system. + Changing this creates a new Subnet. + type: string + cidr: + description: Specifies the network segment on which the subnet + resides. The value must be in CIDR format. The value must be + within the CIDR block of the VPC. The subnet mask cannot be + greater than 28. Changing this creates a new Subnet. + type: string + cidrIpv6: + type: string + description: + description: A description of the VPC subnet. + type: string + dhcpEnable: + description: Specifies whether the DHCP function is enabled for + the subnet. The value can be true or false. If this parameter + is left blank, it is set to true by default. + type: boolean + dnsList: + description: Specifies the DNS server address list of a subnet. + This field is required if you need to use more than two DNS + servers. This parameter value is the superset of both DNS server + address 1 and DNS server address 2. + items: + type: string + type: array + gatewayIp: + description: Specifies the gateway of the subnet. The value must + be a valid IP address. The value must be an IP address in the + subnet segment. Changing this creates a new Subnet. + type: string + gatewayIpv6: + type: string + id: + description: Specifies a resource ID in UUID format. Same as OpenStack + network ID (OS_NETWORK_ID). + type: string + ipv6Enable: + description: Specifies whether IPv6 is enabled. If IPv6 is enabled, + you can use IPv6 CIDR blocks. The value can be true or false. + If this parameter is left blank, it is set to false by default. + type: boolean + name: + description: The subnet name. The value is a string of 1 to 64 + characters that can contain letters, digits, underscores (_), + and hyphens (-). + type: string + networkId: + description: Specifies the OpenStack network ID. + type: string + ntpAddresses: + description: Specifies the NTP server address configured for the + subnet. + type: string + primaryDns: + description: Specifies the IP address of DNS server 1 on the subnet. + The value must be a valid IP address. Default is 100.125.4.25, + OpenTelekomCloud internal DNS server. + type: string + region: + type: string + secondaryDns: + description: Specifies the IP address of DNS server 2 on the subnet. + The value must be a valid IP address. Default is 100.125.129.199, + OpenTelekomCloud secondary internal DNS server. + type: string + status: + description: Specifies the status of the subnet. The value can + be ACTIVE, DOWN, UNKNOWN, or ERROR. + type: string + subnetId: + description: Specifies the OpenStack subnet ID. + type: string + tags: + additionalProperties: + type: string + description: The key/value pairs to associate with the subnet. + type: object + vpcId: + description: Specifies the ID of the VPC to which the subnet belongs. + Changing this creates a new Subnet. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/vpc.crossplane.io_v1s.yaml b/package/crds/vpc.crossplane.io_v1s.yaml new file mode 100644 index 0000000..b721efe --- /dev/null +++ b/package/crds/vpc.crossplane.io_v1s.yaml @@ -0,0 +1,410 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: v1s.vpc.crossplane.io +spec: + group: vpc.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: V1 + listKind: V1List + plural: v1s + singular: v1 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: V1 is the Schema for the V1s API. Manages a VPC 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: V1Spec defines the desired state of V1 + 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: + cidr: + description: The range of available subnets in the VPC. The value + ranges from 10.0.0.0/8 to 10.255.255.0/24, 172.16.0.0/12 to + 172.31.255.0/24, or 192.168.0.0/16 to 192.168.255.0/24. + type: string + description: + description: A description of the VPC. + type: string + name: + description: The name of the VPC. The name must be unique for + a tenant. The value is a string of no more than 64 characters + and can contain digits, letters, underscores (_), and hyphens + (-). + type: string + region: + type: string + secondaryCidr: + description: 'Secondary CIDR block that can be added to VPCs. + The value cannot contain the following: 100.64.0.0/1, 214.0.0.0/7, + 198.18.0.0/15, 169.254.0.0/16, 0.0.0.0/8, 127.0.0.0/8, 240.0.0.0/4, + 172.31.0.0/16, 192.168.0.0/16. Currently, only one secondary + CIDR block can be added to each VPC.' + type: string + shared: + description: Specifies whether the shared SNAT should be used + or not. Is also required for cross-tenant sharing. Shared SNAT + only avadilable in eu-de region. Deprecated, VPC Shared SNAT + End of Life from 01.03.2024, please do not use. + type: boolean + tags: + additionalProperties: + type: string + description: The key/value pairs to associate with the VPC. + type: object + 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: + cidr: + description: The range of available subnets in the VPC. The value + ranges from 10.0.0.0/8 to 10.255.255.0/24, 172.16.0.0/12 to + 172.31.255.0/24, or 192.168.0.0/16 to 192.168.255.0/24. + type: string + description: + description: A description of the VPC. + type: string + name: + description: The name of the VPC. The name must be unique for + a tenant. The value is a string of no more than 64 characters + and can contain digits, letters, underscores (_), and hyphens + (-). + type: string + region: + type: string + secondaryCidr: + description: 'Secondary CIDR block that can be added to VPCs. + The value cannot contain the following: 100.64.0.0/1, 214.0.0.0/7, + 198.18.0.0/15, 169.254.0.0/16, 0.0.0.0/8, 127.0.0.0/8, 240.0.0.0/4, + 172.31.0.0/16, 192.168.0.0/16. Currently, only one secondary + CIDR block can be added to each VPC.' + type: string + shared: + description: Specifies whether the shared SNAT should be used + or not. Is also required for cross-tenant sharing. Shared SNAT + only avadilable in eu-de region. Deprecated, VPC Shared SNAT + End of Life from 01.03.2024, please do not use. + type: boolean + tags: + additionalProperties: + type: string + description: The key/value pairs to associate with the VPC. + type: object + 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.cidr is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.cidr) + || (has(self.initProvider) && has(self.initProvider.cidr))' + - message: spec.forProvider.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + status: + description: V1Status defines the observed state of V1. + properties: + atProvider: + properties: + cidr: + description: The range of available subnets in the VPC. The value + ranges from 10.0.0.0/8 to 10.255.255.0/24, 172.16.0.0/12 to + 172.31.255.0/24, or 192.168.0.0/16 to 192.168.255.0/24. + type: string + description: + description: A description of the VPC. + type: string + id: + type: string + name: + description: The name of the VPC. The name must be unique for + a tenant. The value is a string of no more than 64 characters + and can contain digits, letters, underscores (_), and hyphens + (-). + type: string + region: + type: string + secondaryCidr: + description: 'Secondary CIDR block that can be added to VPCs. + The value cannot contain the following: 100.64.0.0/1, 214.0.0.0/7, + 198.18.0.0/15, 169.254.0.0/16, 0.0.0.0/8, 127.0.0.0/8, 240.0.0.0/4, + 172.31.0.0/16, 192.168.0.0/16. Currently, only one secondary + CIDR block can be added to each VPC.' + type: string + shared: + description: Specifies whether the shared SNAT should be used + or not. Is also required for cross-tenant sharing. Shared SNAT + only avadilable in eu-de region. Deprecated, VPC Shared SNAT + End of Life from 01.03.2024, please do not use. + type: boolean + status: + description: The current status of the desired VPC. Can be either + CREATING, OK, DOWN, PENDING_UPDATE, PENDING_DELETE or ERROR. + type: string + tags: + additionalProperties: + type: string + description: The key/value pairs to associate with the VPC. + type: object + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/vpcep.crossplane.io_endpointv1s.yaml b/package/crds/vpcep.crossplane.io_endpointv1s.yaml new file mode 100644 index 0000000..b8de5cc --- /dev/null +++ b/package/crds/vpcep.crossplane.io_endpointv1s.yaml @@ -0,0 +1,460 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: endpointv1s.vpcep.crossplane.io +spec: + group: vpcep.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: EndpointV1 + listKind: EndpointV1List + plural: endpointv1s + singular: endpointv1 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: EndpointV1 is the Schema for the EndpointV1s API. Manages a VPCEP + Endpoint 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: EndpointV1Spec defines the desired state of EndpointV1 + 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: + enableDns: + description: Specifies whether to create a private domain name. + The default value is false. + type: boolean + enableWhitelist: + description: Specifies whether to enable access control. This + parameter is available only if you create a VPC endpoint for + connecting to an interface VPC endpoint service. + type: boolean + portIp: + description: Specifies the IP address for accessing the associated + VPC endpoint service. + type: string + routeTables: + description: Lists the IDs of route tables. + items: + type: string + type: array + serviceId: + description: Specifies the ID of the VPC endpoint service. + type: string + subnetId: + description: The value must be the ID of the subnet (OpenStack + network) created in the VPC specified by vpc_id and in the format + of the UUID. This parameter is mandatory only if you create + a VPC endpoint for connecting to an interface VPC endpoint service. + type: string + tags: + additionalProperties: + type: string + description: Lists the resource tags. + type: object + vpcId: + description: Specifies the ID of the VPC (OpenStack router) where + the VPC endpoint is to be created. + type: string + whitelist: + description: Specifies an array of whitelisted IPs for controlling + access to the VPC endpoint. IPv4 addresses or CIDR blocks can + be specified to control access when you create a VPC endpoint. + This parameter is mandatory only when you create a VPC endpoint + for connecting to an interface VPC endpoint service. + items: + type: string + type: array + 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: + enableDns: + description: Specifies whether to create a private domain name. + The default value is false. + type: boolean + enableWhitelist: + description: Specifies whether to enable access control. This + parameter is available only if you create a VPC endpoint for + connecting to an interface VPC endpoint service. + type: boolean + portIp: + description: Specifies the IP address for accessing the associated + VPC endpoint service. + type: string + routeTables: + description: Lists the IDs of route tables. + items: + type: string + type: array + serviceId: + description: Specifies the ID of the VPC endpoint service. + type: string + subnetId: + description: The value must be the ID of the subnet (OpenStack + network) created in the VPC specified by vpc_id and in the format + of the UUID. This parameter is mandatory only if you create + a VPC endpoint for connecting to an interface VPC endpoint service. + type: string + tags: + additionalProperties: + type: string + description: Lists the resource tags. + type: object + vpcId: + description: Specifies the ID of the VPC (OpenStack router) where + the VPC endpoint is to be created. + type: string + whitelist: + description: Specifies an array of whitelisted IPs for controlling + access to the VPC endpoint. IPv4 addresses or CIDR blocks can + be specified to control access when you create a VPC endpoint. + This parameter is mandatory only when you create a VPC endpoint + for connecting to an interface VPC endpoint service. + items: + type: string + type: array + 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.serviceId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.serviceId) + || (has(self.initProvider) && has(self.initProvider.serviceId))' + - message: spec.forProvider.vpcId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.vpcId) + || (has(self.initProvider) && has(self.initProvider.vpcId))' + status: + description: EndpointV1Status defines the observed state of EndpointV1. + properties: + atProvider: + properties: + dnsNames: + description: Specifies the domain name for accessing the associated + VPC endpoint service. This parameter is only available when + enable_dns is set to true. + items: + type: string + type: array + enableDns: + description: Specifies whether to create a private domain name. + The default value is false. + type: boolean + enableWhitelist: + description: Specifies whether to enable access control. This + parameter is available only if you create a VPC endpoint for + connecting to an interface VPC endpoint service. + type: boolean + id: + description: ID of VPC endpoint. + type: string + markerId: + description: Specifies the packet ID of the VPC endpoint. + type: number + portIp: + description: Specifies the IP address for accessing the associated + VPC endpoint service. + type: string + projectId: + description: Specifies the project ID. + type: string + routeTables: + description: Lists the IDs of route tables. + items: + type: string + type: array + serviceId: + description: Specifies the ID of the VPC endpoint service. + type: string + serviceName: + description: Specifies the name of the VPC endpoint service. + type: string + serviceType: + description: Specifies the type of the VPC endpoint service that + is associated with the VPC endpoint. + type: string + subnetId: + description: The value must be the ID of the subnet (OpenStack + network) created in the VPC specified by vpc_id and in the format + of the UUID. This parameter is mandatory only if you create + a VPC endpoint for connecting to an interface VPC endpoint service. + type: string + tags: + additionalProperties: + type: string + description: Lists the resource tags. + type: object + vpcId: + description: Specifies the ID of the VPC (OpenStack router) where + the VPC endpoint is to be created. + type: string + whitelist: + description: Specifies an array of whitelisted IPs for controlling + access to the VPC endpoint. IPv4 addresses or CIDR blocks can + be specified to control access when you create a VPC endpoint. + This parameter is mandatory only when you create a VPC endpoint + for connecting to an interface VPC endpoint service. + items: + type: string + type: array + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/vpcep.crossplane.io_servicev1s.yaml b/package/crds/vpcep.crossplane.io_servicev1s.yaml new file mode 100644 index 0000000..d3b87c8 --- /dev/null +++ b/package/crds/vpcep.crossplane.io_servicev1s.yaml @@ -0,0 +1,511 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: servicev1s.vpcep.crossplane.io +spec: + group: vpcep.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: ServiceV1 + listKind: ServiceV1List + plural: servicev1s + singular: servicev1 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: ServiceV1 is the Schema for the ServiceV1s API. Manages a VPCEP + Service 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: ServiceV1Spec defines the desired state of ServiceV1 + 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: + approvalEnabled: + description: Specifies whether connection approval is required. + type: boolean + name: + description: Specifies the name of the VPC endpoint service. The + value contains a maximum of 16 characters, including letters, + digits, underscores (_), and hyphens (-). + type: string + poolId: + description: Specifies the ID of the cluster associated with the + target VPCEP resource. + type: string + port: + description: Lists the port mappings opened to the VPC endpoint + service. See below for the details. + items: + properties: + clientPort: + description: Specifies the port for accessing the VPC endpoint. + type: number + protocol: + description: Specifies the protocol used in port mappings. + The value can be TCP or UDP. The default value is TCP. + type: string + serverPort: + description: Specifies the port for accessing the VPC endpoint + service. + type: number + type: object + type: array + portId: + description: 'Specifies the ID for identifying the backend resource + of the VPC endpoint service. The value is as follows:' + type: string + serverType: + description: Specifies the resource type. + type: string + serviceType: + description: Specifies the type of the VPC endpoint service. Only + your private services can be configured into interface VPC endpoint + services. + type: string + tags: + additionalProperties: + type: string + description: Map of the resource tags. + type: object + tcpProxy: + description: Specifies whether the client IP address and port + number or marker_id information is transmitted to the server. + This parameter is available only when the server can parse fields + tcp option and tcp payload. + type: string + vipPortId: + description: Specifies the ID of the virtual NIC to which the + virtual IP address is bound. + type: string + vpcId: + description: Specifies the ID of the VPC (router) to which the + backend resource of the VPC endpoint service belongs. + type: string + whitelist: + description: Lists of domain IDs of target users. + items: + type: string + type: array + 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: + approvalEnabled: + description: Specifies whether connection approval is required. + type: boolean + name: + description: Specifies the name of the VPC endpoint service. The + value contains a maximum of 16 characters, including letters, + digits, underscores (_), and hyphens (-). + type: string + poolId: + description: Specifies the ID of the cluster associated with the + target VPCEP resource. + type: string + port: + description: Lists the port mappings opened to the VPC endpoint + service. See below for the details. + items: + properties: + clientPort: + description: Specifies the port for accessing the VPC endpoint. + type: number + protocol: + description: Specifies the protocol used in port mappings. + The value can be TCP or UDP. The default value is TCP. + type: string + serverPort: + description: Specifies the port for accessing the VPC endpoint + service. + type: number + type: object + type: array + portId: + description: 'Specifies the ID for identifying the backend resource + of the VPC endpoint service. The value is as follows:' + type: string + serverType: + description: Specifies the resource type. + type: string + serviceType: + description: Specifies the type of the VPC endpoint service. Only + your private services can be configured into interface VPC endpoint + services. + type: string + tags: + additionalProperties: + type: string + description: Map of the resource tags. + type: object + tcpProxy: + description: Specifies whether the client IP address and port + number or marker_id information is transmitted to the server. + This parameter is available only when the server can parse fields + tcp option and tcp payload. + type: string + vipPortId: + description: Specifies the ID of the virtual NIC to which the + virtual IP address is bound. + type: string + vpcId: + description: Specifies the ID of the VPC (router) to which the + backend resource of the VPC endpoint service belongs. + type: string + whitelist: + description: Lists of domain IDs of target users. + items: + type: string + type: array + 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.port is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.port) + || (has(self.initProvider) && has(self.initProvider.port))' + - message: spec.forProvider.portId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.portId) + || (has(self.initProvider) && has(self.initProvider.portId))' + - message: spec.forProvider.serverType is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.serverType) + || (has(self.initProvider) && has(self.initProvider.serverType))' + - message: spec.forProvider.vpcId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.vpcId) + || (has(self.initProvider) && has(self.initProvider.vpcId))' + status: + description: ServiceV1Status defines the observed state of ServiceV1. + properties: + atProvider: + properties: + approvalEnabled: + description: Specifies whether connection approval is required. + type: boolean + id: + description: ID of VPC endpoint service + type: string + name: + description: Specifies the name of the VPC endpoint service. The + value contains a maximum of 16 characters, including letters, + digits, underscores (_), and hyphens (-). + type: string + poolId: + description: Specifies the ID of the cluster associated with the + target VPCEP resource. + type: string + port: + description: Lists the port mappings opened to the VPC endpoint + service. See below for the details. + items: + properties: + clientPort: + description: Specifies the port for accessing the VPC endpoint. + type: number + protocol: + description: Specifies the protocol used in port mappings. + The value can be TCP or UDP. The default value is TCP. + type: string + serverPort: + description: Specifies the port for accessing the VPC endpoint + service. + type: number + type: object + type: array + portId: + description: 'Specifies the ID for identifying the backend resource + of the VPC endpoint service. The value is as follows:' + type: string + serverType: + description: Specifies the resource type. + type: string + serviceType: + description: Specifies the type of the VPC endpoint service. Only + your private services can be configured into interface VPC endpoint + services. + type: string + tags: + additionalProperties: + type: string + description: Map of the resource tags. + type: object + tcpProxy: + description: Specifies whether the client IP address and port + number or marker_id information is transmitted to the server. + This parameter is available only when the server can parse fields + tcp option and tcp payload. + type: string + vipPortId: + description: Specifies the ID of the virtual NIC to which the + virtual IP address is bound. + type: string + vpcId: + description: Specifies the ID of the VPC (router) to which the + backend resource of the VPC endpoint service belongs. + type: string + whitelist: + description: Lists of domain IDs of target users. + items: + type: string + type: array + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/vpnaas.crossplane.io_endpointgroupv2s.yaml b/package/crds/vpnaas.crossplane.io_endpointgroupv2s.yaml new file mode 100644 index 0000000..1661d4e --- /dev/null +++ b/package/crds/vpnaas.crossplane.io_endpointgroupv2s.yaml @@ -0,0 +1,403 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: endpointgroupv2s.vpnaas.crossplane.io +spec: + group: vpnaas.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: EndpointGroupV2 + listKind: EndpointGroupV2List + plural: endpointgroupv2s + singular: endpointgroupv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: EndpointGroupV2 is the Schema for the EndpointGroupV2s API. Manages + a VPNAAS Endpoint Group 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: EndpointGroupV2Spec defines the desired state of EndpointGroupV2 + 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: + description: + description: The human-readable description for the group. Changing + this updates the description of the existing group. + type: string + endpoints: + description: List of endpoints of the same type, for the endpoint + group. The values will depend on the type. Changing this creates + a new group. + items: + type: string + type: array + name: + description: The name of the group. Changing this updates the + name of the existing group. + type: string + region: + description: The region in which to obtain the V2 Networking client. + A Networking client is needed to create an endpoint group. If + omitted, the region argument of the provider is used. Changing + this creates a new group. + type: string + tenantId: + description: The owner of the group. Required if admin wants to + create an endpoint group for another project. Changing this + creates a new group. + type: string + type: + description: The type of the endpoints in the group. A valid value + is subnet, cidr, network, router, or vlan. Changing this creates + a new group. + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + 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: + description: + description: The human-readable description for the group. Changing + this updates the description of the existing group. + type: string + endpoints: + description: List of endpoints of the same type, for the endpoint + group. The values will depend on the type. Changing this creates + a new group. + items: + type: string + type: array + name: + description: The name of the group. Changing this updates the + name of the existing group. + type: string + region: + description: The region in which to obtain the V2 Networking client. + A Networking client is needed to create an endpoint group. If + omitted, the region argument of the provider is used. Changing + this creates a new group. + type: string + tenantId: + description: The owner of the group. Required if admin wants to + create an endpoint group for another project. Changing this + creates a new group. + type: string + type: + description: The type of the endpoints in the group. A valid value + is subnet, cidr, network, router, or vlan. Changing this creates + a new group. + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + 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 + status: + description: EndpointGroupV2Status defines the observed state of EndpointGroupV2. + properties: + atProvider: + properties: + description: + description: The human-readable description for the group. Changing + this updates the description of the existing group. + type: string + endpoints: + description: List of endpoints of the same type, for the endpoint + group. The values will depend on the type. Changing this creates + a new group. + items: + type: string + type: array + id: + type: string + name: + description: The name of the group. Changing this updates the + name of the existing group. + type: string + region: + description: The region in which to obtain the V2 Networking client. + A Networking client is needed to create an endpoint group. If + omitted, the region argument of the provider is used. Changing + this creates a new group. + type: string + tenantId: + description: The owner of the group. Required if admin wants to + create an endpoint group for another project. Changing this + creates a new group. + type: string + type: + description: The type of the endpoints in the group. A valid value + is subnet, cidr, network, router, or vlan. Changing this creates + a new group. + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/vpnaas.crossplane.io_ikepolicyv2s.yaml b/package/crds/vpnaas.crossplane.io_ikepolicyv2s.yaml new file mode 100644 index 0000000..22f611d --- /dev/null +++ b/package/crds/vpnaas.crossplane.io_ikepolicyv2s.yaml @@ -0,0 +1,460 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: ikepolicyv2s.vpnaas.crossplane.io +spec: + group: vpnaas.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: IkePolicyV2 + listKind: IkePolicyV2List + plural: ikepolicyv2s + singular: ikepolicyv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: IkePolicyV2 is the Schema for the IkePolicyV2s API. Manages a + VPNAAS IKE 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: IkePolicyV2Spec defines the desired state of IkePolicyV2 + 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: + authAlgorithm: + description: The authentication hash algorithm. Valid values are + md5, sha1, sha2-256, sha2-384, sha2-512. Default is sha1. + type: string + description: + description: The human-readable description for the policy. + type: string + encryptionAlgorithm: + description: The encryption algorithm. Valid values are 3des, + aes-128, aes-192 and so on. The default value is aes-128. + type: string + ikeVersion: + description: The IKE mode. Valid values are v1 and v2. Default + is v1. + type: string + lifetime: + description: The lifetime of the security association. Consists + of Unit and Value. + items: + properties: + units: + type: string + value: + description: The value for the lifetime of the security + association. Default is 3600. + type: number + type: object + type: array + name: + description: The name of the policy. + type: string + pfs: + description: The perfect forward secrecy mode. Valid values are + group1, group2, group5 and so on. Default is group5. + type: string + phase1NegotiationMode: + description: The IKE mode. Valid values are main and aggressive. + Default is main. + type: string + region: + description: The region in which to obtain the V2 Networking client. + A Networking client is needed to create a VPN service. If omitted, + the region argument of the provider is used. Changing this creates + a new service. + type: string + tenantId: + description: The owner of the policy. Required if admin wants + to create a service for another policy. Changing this creates + a new policy. + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + 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: + authAlgorithm: + description: The authentication hash algorithm. Valid values are + md5, sha1, sha2-256, sha2-384, sha2-512. Default is sha1. + type: string + description: + description: The human-readable description for the policy. + type: string + encryptionAlgorithm: + description: The encryption algorithm. Valid values are 3des, + aes-128, aes-192 and so on. The default value is aes-128. + type: string + ikeVersion: + description: The IKE mode. Valid values are v1 and v2. Default + is v1. + type: string + lifetime: + description: The lifetime of the security association. Consists + of Unit and Value. + items: + properties: + units: + type: string + value: + description: The value for the lifetime of the security + association. Default is 3600. + type: number + type: object + type: array + name: + description: The name of the policy. + type: string + pfs: + description: The perfect forward secrecy mode. Valid values are + group1, group2, group5 and so on. Default is group5. + type: string + phase1NegotiationMode: + description: The IKE mode. Valid values are main and aggressive. + Default is main. + type: string + region: + description: The region in which to obtain the V2 Networking client. + A Networking client is needed to create a VPN service. If omitted, + the region argument of the provider is used. Changing this creates + a new service. + type: string + tenantId: + description: The owner of the policy. Required if admin wants + to create a service for another policy. Changing this creates + a new policy. + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + 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 + status: + description: IkePolicyV2Status defines the observed state of IkePolicyV2. + properties: + atProvider: + properties: + authAlgorithm: + description: The authentication hash algorithm. Valid values are + md5, sha1, sha2-256, sha2-384, sha2-512. Default is sha1. + type: string + description: + description: The human-readable description for the policy. + type: string + encryptionAlgorithm: + description: The encryption algorithm. Valid values are 3des, + aes-128, aes-192 and so on. The default value is aes-128. + type: string + id: + type: string + ikeVersion: + description: The IKE mode. Valid values are v1 and v2. Default + is v1. + type: string + lifetime: + description: The lifetime of the security association. Consists + of Unit and Value. + items: + properties: + units: + type: string + value: + description: The value for the lifetime of the security + association. Default is 3600. + type: number + type: object + type: array + name: + description: The name of the policy. + type: string + pfs: + description: The perfect forward secrecy mode. Valid values are + group1, group2, group5 and so on. Default is group5. + type: string + phase1NegotiationMode: + description: The IKE mode. Valid values are main and aggressive. + Default is main. + type: string + region: + description: The region in which to obtain the V2 Networking client. + A Networking client is needed to create a VPN service. If omitted, + the region argument of the provider is used. Changing this creates + a new service. + type: string + tenantId: + description: The owner of the policy. Required if admin wants + to create a service for another policy. Changing this creates + a new policy. + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/vpnaas.crossplane.io_ipsecpolicyv2s.yaml b/package/crds/vpnaas.crossplane.io_ipsecpolicyv2s.yaml new file mode 100644 index 0000000..c67a583 --- /dev/null +++ b/package/crds/vpnaas.crossplane.io_ipsecpolicyv2s.yaml @@ -0,0 +1,460 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: ipsecpolicyv2s.vpnaas.crossplane.io +spec: + group: vpnaas.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: IpsecPolicyV2 + listKind: IpsecPolicyV2List + plural: ipsecpolicyv2s + singular: ipsecpolicyv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: IpsecPolicyV2 is the Schema for the IpsecPolicyV2s API. Manages + a VPNAAS IPSEC 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: IpsecPolicyV2Spec defines the desired state of IpsecPolicyV2 + 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: + authAlgorithm: + description: The authentication hash algorithm. Valid values are + md5, sha1, sha2-256, sha2-384, sha2-512. Default is sha1. + type: string + description: + description: The human-readable description for the policy. + type: string + encapsulationMode: + description: The encapsulation mode. Default is tunnel. + type: string + encryptionAlgorithm: + description: The encryption algorithm. Valid values are 3des, + aes-128, aes-192 and so on. The default value is aes-128. + type: string + lifetime: + description: The lifetime of the security association. Consists + of Unit and Value. + items: + properties: + units: + type: string + value: + description: The value for the lifetime of the security + association. Must be a positive integer. Default is 3600. + type: number + type: object + type: array + name: + description: The name of the policy. + type: string + pfs: + description: The perfect forward secrecy mode. Valid values are + group1, group2, group5, group14, group15, group16, group19, + group20, group21 or disable Default is group5. + type: string + region: + description: The region in which to obtain the V2 Networking client. + A Networking client is needed to create an IPSec policy. If + omitted, the region argument of the provider is used. Changing + this creates a new policy. + type: string + tenantId: + description: The owner of the policy. Required if admin wants + to create a policy for another project. Changing this creates + a new policy. + type: string + transformProtocol: + description: The transform protocol. Valid values are esp, ah + and ah-esp. Default is esp. + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + 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: + authAlgorithm: + description: The authentication hash algorithm. Valid values are + md5, sha1, sha2-256, sha2-384, sha2-512. Default is sha1. + type: string + description: + description: The human-readable description for the policy. + type: string + encapsulationMode: + description: The encapsulation mode. Default is tunnel. + type: string + encryptionAlgorithm: + description: The encryption algorithm. Valid values are 3des, + aes-128, aes-192 and so on. The default value is aes-128. + type: string + lifetime: + description: The lifetime of the security association. Consists + of Unit and Value. + items: + properties: + units: + type: string + value: + description: The value for the lifetime of the security + association. Must be a positive integer. Default is 3600. + type: number + type: object + type: array + name: + description: The name of the policy. + type: string + pfs: + description: The perfect forward secrecy mode. Valid values are + group1, group2, group5, group14, group15, group16, group19, + group20, group21 or disable Default is group5. + type: string + region: + description: The region in which to obtain the V2 Networking client. + A Networking client is needed to create an IPSec policy. If + omitted, the region argument of the provider is used. Changing + this creates a new policy. + type: string + tenantId: + description: The owner of the policy. Required if admin wants + to create a policy for another project. Changing this creates + a new policy. + type: string + transformProtocol: + description: The transform protocol. Valid values are esp, ah + and ah-esp. Default is esp. + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + 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 + status: + description: IpsecPolicyV2Status defines the observed state of IpsecPolicyV2. + properties: + atProvider: + properties: + authAlgorithm: + description: The authentication hash algorithm. Valid values are + md5, sha1, sha2-256, sha2-384, sha2-512. Default is sha1. + type: string + description: + description: The human-readable description for the policy. + type: string + encapsulationMode: + description: The encapsulation mode. Default is tunnel. + type: string + encryptionAlgorithm: + description: The encryption algorithm. Valid values are 3des, + aes-128, aes-192 and so on. The default value is aes-128. + type: string + id: + type: string + lifetime: + description: The lifetime of the security association. Consists + of Unit and Value. + items: + properties: + units: + type: string + value: + description: The value for the lifetime of the security + association. Must be a positive integer. Default is 3600. + type: number + type: object + type: array + name: + description: The name of the policy. + type: string + pfs: + description: The perfect forward secrecy mode. Valid values are + group1, group2, group5, group14, group15, group16, group19, + group20, group21 or disable Default is group5. + type: string + region: + description: The region in which to obtain the V2 Networking client. + A Networking client is needed to create an IPSec policy. If + omitted, the region argument of the provider is used. Changing + this creates a new policy. + type: string + tenantId: + description: The owner of the policy. Required if admin wants + to create a policy for another project. Changing this creates + a new policy. + type: string + transformProtocol: + description: The transform protocol. Valid values are esp, ah + and ah-esp. Default is esp. + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/vpnaas.crossplane.io_servicev2s.yaml b/package/crds/vpnaas.crossplane.io_servicev2s.yaml new file mode 100644 index 0000000..6b53153 --- /dev/null +++ b/package/crds/vpnaas.crossplane.io_servicev2s.yaml @@ -0,0 +1,421 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: servicev2s.vpnaas.crossplane.io +spec: + group: vpnaas.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: ServiceV2 + listKind: ServiceV2List + plural: servicev2s + singular: servicev2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: ServiceV2 is the Schema for the ServiceV2s API. Manages a VPNAAS + Service 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: ServiceV2Spec defines the desired state of ServiceV2 + 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 resource. Can either + be true (Up) or false (Down). Changing this updates the administrative + state of the existing service. + type: boolean + description: + description: The human-readable description for the service. Changing + this updates the description of the existing service. + type: string + name: + description: The name of the service. Changing this updates the + name of the existing service. + type: string + region: + description: The region in which to obtain the V2 Networking client. + A Networking client is needed to create a VPN service. If omitted, + the region argument of the provider is used. Changing this creates + a new service. + type: string + routerId: + description: The ID of the router. Changing this creates a new + service. + type: string + subnetId: + description: SubnetID is the ID of the subnet. Default is null. + type: string + tenantId: + description: The owner of the service. Required if admin wants + to create a service for another project. Changing this creates + a new service. + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + 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 resource. Can either + be true (Up) or false (Down). Changing this updates the administrative + state of the existing service. + type: boolean + description: + description: The human-readable description for the service. Changing + this updates the description of the existing service. + type: string + name: + description: The name of the service. Changing this updates the + name of the existing service. + type: string + region: + description: The region in which to obtain the V2 Networking client. + A Networking client is needed to create a VPN service. If omitted, + the region argument of the provider is used. Changing this creates + a new service. + type: string + routerId: + description: The ID of the router. Changing this creates a new + service. + type: string + subnetId: + description: SubnetID is the ID of the subnet. Default is null. + type: string + tenantId: + description: The owner of the service. Required if admin wants + to create a service for another project. Changing this creates + a new service. + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + 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.routerId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.routerId) + || (has(self.initProvider) && has(self.initProvider.routerId))' + status: + description: ServiceV2Status defines the observed state of ServiceV2. + properties: + atProvider: + properties: + adminStateUp: + description: The administrative state of the resource. Can either + be true (Up) or false (Down). Changing this updates the administrative + state of the existing service. + type: boolean + description: + description: The human-readable description for the service. Changing + this updates the description of the existing service. + type: string + externalV4Ip: + description: The read-only external (public) IPv4 address that + is used for the VPN service. + type: string + externalV6Ip: + description: The read-only external (public) IPv6 address that + is used for the VPN service. + type: string + id: + type: string + name: + description: The name of the service. Changing this updates the + name of the existing service. + type: string + region: + description: The region in which to obtain the V2 Networking client. + A Networking client is needed to create a VPN service. If omitted, + the region argument of the provider is used. Changing this creates + a new service. + type: string + routerId: + description: The ID of the router. Changing this creates a new + service. + type: string + status: + description: Indicates whether IPsec VPN service is currently + operational. Values are ACTIVE, DOWN, BUILD, ERROR, PENDING_CREATE, + PENDING_UPDATE or PENDING_DELETE. + type: string + subnetId: + description: SubnetID is the ID of the subnet. Default is null. + type: string + tenantId: + description: The owner of the service. Required if admin wants + to create a service for another project. Changing this creates + a new service. + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/vpnaas.crossplane.io_siteconnectionv2s.yaml b/package/crds/vpnaas.crossplane.io_siteconnectionv2s.yaml new file mode 100644 index 0000000..c3c0afc --- /dev/null +++ b/package/crds/vpnaas.crossplane.io_siteconnectionv2s.yaml @@ -0,0 +1,671 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: siteconnectionv2s.vpnaas.crossplane.io +spec: + group: vpnaas.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: SiteConnectionV2 + listKind: SiteConnectionV2List + plural: siteconnectionv2s + singular: siteconnectionv2 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: SiteConnectionV2 is the Schema for the SiteConnectionV2s API. + Manages a VPNAAS Site Connection 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: SiteConnectionV2Spec defines the desired state of SiteConnectionV2 + 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 resource. Can either + be up(true) or down(false). Changing this updates the administrative + state of the existing connection. + type: boolean + description: + description: The human-readable description for the connection. + Changing this updates the description of the existing connection. + type: string + dpd: + description: A dictionary with dead peer detection (DPD) protocol + controls. + items: + properties: + action: + description: The dead peer detection (DPD) action. A valid + value is clear, hold, restart, disabled or restart-by-peer. + Default value is hold. + type: string + interval: + description: The dead peer detection (DPD) interval, in + seconds. A valid value is a positive integer. Default + is 30. + type: number + timeout: + description: The dead peer detection (DPD) timeout in seconds. + A valid value is a positive integer that is greater than + the DPD interval value. Default is 120. + type: number + type: object + type: array + ikepolicyId: + description: The ID of the IKE policy. Changing this creates a + new connection. + type: string + initiator: + description: A valid value is response-only or bi-directional. + type: string + ipsecpolicyId: + description: The ID of the IPsec policy. Changing this creates + a new connection. + type: string + localEpGroupId: + description: The ID for the endpoint group that contains private + subnets for the local side of the connection. You must specify + this parameter with the peer_ep_group_id parameter unless in + backward-compatible mode where peer_cidrs is provided with a + subnet_id for the VPN service. Changing this updates the existing + connection. + type: string + localId: + description: An ID to be used instead of the external IP address + for a virtual router used in traffic between instances on different + networks in east-west traffic. Most often, local ID would be + domain name, email address, etc. If this is not configured then + the external IP address will be used as the ID. + type: string + mtu: + description: The maximum transmission unit (MTU) value to address + fragmentation. Minimum value is 68 for IPv4, and 1280 for IPv6. + type: number + name: + description: The name of the connection. Changing this updates + the name of the existing connection. + type: string + peerAddress: + description: The peer gateway public IPv4 or IPv6 address or FQDN. + type: string + peerCidrs: + description: Unique list of valid peer private CIDRs in the form + /. + items: + type: string + type: array + peerEpGroupId: + description: The ID for the endpoint group that contains private + CIDRs in the form / for the peer side of the connection. + You must specify this parameter with the local_ep_group_id parameter + unless in backward-compatible mode where peer_cidrs is provided + with a subnet_id for the VPN service. + type: string + peerId: + description: The peer router identity for authentication. A valid + value is an IPv4 address, IPv6 address, e-mail address, key + ID, or FQDN. Typically, this value matches the peer_address + value. Changing this updates the existing policy. + type: string + psk: + description: 'The pre-shared key. A PSK can contain 6 to 128 characters. + Spaces and the following special characters are not allowed: + <>&?*''".' + type: string + region: + description: The region in which to obtain the V2 Networking client. + A Networking client is needed to create an IPSec site connection. + If omitted, the region argument of the provider is used. Changing + this creates a new site connection. + type: string + tags: + additionalProperties: + type: string + description: The key/value pairs to associate with the connection. + type: object + tenantId: + description: The owner of the connection. Required if admin wants + to create a connection for another project. Changing this creates + a new connection. + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + vpnserviceId: + description: The ID of the VPN service. Changing this creates + a new connection. + 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 resource. Can either + be up(true) or down(false). Changing this updates the administrative + state of the existing connection. + type: boolean + description: + description: The human-readable description for the connection. + Changing this updates the description of the existing connection. + type: string + dpd: + description: A dictionary with dead peer detection (DPD) protocol + controls. + items: + properties: + action: + description: The dead peer detection (DPD) action. A valid + value is clear, hold, restart, disabled or restart-by-peer. + Default value is hold. + type: string + interval: + description: The dead peer detection (DPD) interval, in + seconds. A valid value is a positive integer. Default + is 30. + type: number + timeout: + description: The dead peer detection (DPD) timeout in seconds. + A valid value is a positive integer that is greater than + the DPD interval value. Default is 120. + type: number + type: object + type: array + ikepolicyId: + description: The ID of the IKE policy. Changing this creates a + new connection. + type: string + initiator: + description: A valid value is response-only or bi-directional. + type: string + ipsecpolicyId: + description: The ID of the IPsec policy. Changing this creates + a new connection. + type: string + localEpGroupId: + description: The ID for the endpoint group that contains private + subnets for the local side of the connection. You must specify + this parameter with the peer_ep_group_id parameter unless in + backward-compatible mode where peer_cidrs is provided with a + subnet_id for the VPN service. Changing this updates the existing + connection. + type: string + localId: + description: An ID to be used instead of the external IP address + for a virtual router used in traffic between instances on different + networks in east-west traffic. Most often, local ID would be + domain name, email address, etc. If this is not configured then + the external IP address will be used as the ID. + type: string + mtu: + description: The maximum transmission unit (MTU) value to address + fragmentation. Minimum value is 68 for IPv4, and 1280 for IPv6. + type: number + name: + description: The name of the connection. Changing this updates + the name of the existing connection. + type: string + peerAddress: + description: The peer gateway public IPv4 or IPv6 address or FQDN. + type: string + peerCidrs: + description: Unique list of valid peer private CIDRs in the form + /. + items: + type: string + type: array + peerEpGroupId: + description: The ID for the endpoint group that contains private + CIDRs in the form / for the peer side of the connection. + You must specify this parameter with the local_ep_group_id parameter + unless in backward-compatible mode where peer_cidrs is provided + with a subnet_id for the VPN service. + type: string + peerId: + description: The peer router identity for authentication. A valid + value is an IPv4 address, IPv6 address, e-mail address, key + ID, or FQDN. Typically, this value matches the peer_address + value. Changing this updates the existing policy. + type: string + psk: + description: 'The pre-shared key. A PSK can contain 6 to 128 characters. + Spaces and the following special characters are not allowed: + <>&?*''".' + type: string + region: + description: The region in which to obtain the V2 Networking client. + A Networking client is needed to create an IPSec site connection. + If omitted, the region argument of the provider is used. Changing + this creates a new site connection. + type: string + tags: + additionalProperties: + type: string + description: The key/value pairs to associate with the connection. + type: object + tenantId: + description: The owner of the connection. Required if admin wants + to create a connection for another project. Changing this creates + a new connection. + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + vpnserviceId: + description: The ID of the VPN service. Changing this creates + a new connection. + 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.ikepolicyId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.ikepolicyId) + || (has(self.initProvider) && has(self.initProvider.ikepolicyId))' + - message: spec.forProvider.ipsecpolicyId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.ipsecpolicyId) + || (has(self.initProvider) && has(self.initProvider.ipsecpolicyId))' + - message: spec.forProvider.peerAddress is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.peerAddress) + || (has(self.initProvider) && has(self.initProvider.peerAddress))' + - message: spec.forProvider.peerId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.peerId) + || (has(self.initProvider) && has(self.initProvider.peerId))' + - message: spec.forProvider.psk is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.psk) + || (has(self.initProvider) && has(self.initProvider.psk))' + - message: spec.forProvider.vpnserviceId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.vpnserviceId) + || (has(self.initProvider) && has(self.initProvider.vpnserviceId))' + status: + description: SiteConnectionV2Status defines the observed state of SiteConnectionV2. + properties: + atProvider: + properties: + adminStateUp: + description: The administrative state of the resource. Can either + be up(true) or down(false). Changing this updates the administrative + state of the existing connection. + type: boolean + description: + description: The human-readable description for the connection. + Changing this updates the description of the existing connection. + type: string + dpd: + description: A dictionary with dead peer detection (DPD) protocol + controls. + items: + properties: + action: + description: The dead peer detection (DPD) action. A valid + value is clear, hold, restart, disabled or restart-by-peer. + Default value is hold. + type: string + interval: + description: The dead peer detection (DPD) interval, in + seconds. A valid value is a positive integer. Default + is 30. + type: number + timeout: + description: The dead peer detection (DPD) timeout in seconds. + A valid value is a positive integer that is greater than + the DPD interval value. Default is 120. + type: number + type: object + type: array + id: + type: string + ikepolicyId: + description: The ID of the IKE policy. Changing this creates a + new connection. + type: string + initiator: + description: A valid value is response-only or bi-directional. + type: string + ipsecpolicyId: + description: The ID of the IPsec policy. Changing this creates + a new connection. + type: string + localEpGroupId: + description: The ID for the endpoint group that contains private + subnets for the local side of the connection. You must specify + this parameter with the peer_ep_group_id parameter unless in + backward-compatible mode where peer_cidrs is provided with a + subnet_id for the VPN service. Changing this updates the existing + connection. + type: string + localId: + description: An ID to be used instead of the external IP address + for a virtual router used in traffic between instances on different + networks in east-west traffic. Most often, local ID would be + domain name, email address, etc. If this is not configured then + the external IP address will be used as the ID. + type: string + mtu: + description: The maximum transmission unit (MTU) value to address + fragmentation. Minimum value is 68 for IPv4, and 1280 for IPv6. + type: number + name: + description: The name of the connection. Changing this updates + the name of the existing connection. + type: string + peerAddress: + description: The peer gateway public IPv4 or IPv6 address or FQDN. + type: string + peerCidrs: + description: Unique list of valid peer private CIDRs in the form + /. + items: + type: string + type: array + peerEpGroupId: + description: The ID for the endpoint group that contains private + CIDRs in the form / for the peer side of the connection. + You must specify this parameter with the local_ep_group_id parameter + unless in backward-compatible mode where peer_cidrs is provided + with a subnet_id for the VPN service. + type: string + peerId: + description: The peer router identity for authentication. A valid + value is an IPv4 address, IPv6 address, e-mail address, key + ID, or FQDN. Typically, this value matches the peer_address + value. Changing this updates the existing policy. + type: string + psk: + description: 'The pre-shared key. A PSK can contain 6 to 128 characters. + Spaces and the following special characters are not allowed: + <>&?*''".' + type: string + region: + description: The region in which to obtain the V2 Networking client. + A Networking client is needed to create an IPSec site connection. + If omitted, the region argument of the provider is used. Changing + this creates a new site connection. + type: string + tags: + additionalProperties: + type: string + description: The key/value pairs to associate with the connection. + type: object + tenantId: + description: The owner of the connection. Required if admin wants + to create a connection for another project. Changing this creates + a new connection. + type: string + valueSpecs: + additionalProperties: + type: string + description: Map of additional options. + type: object + vpnserviceId: + description: The ID of the VPN service. Changing this creates + a new connection. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/waf.crossplane.io_dedicatedalarmmaskingrulev1s.yaml b/package/crds/waf.crossplane.io_dedicatedalarmmaskingrulev1s.yaml new file mode 100644 index 0000000..3d3cdb1 --- /dev/null +++ b/package/crds/waf.crossplane.io_dedicatedalarmmaskingrulev1s.yaml @@ -0,0 +1,516 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: dedicatedalarmmaskingrulev1s.waf.crossplane.io +spec: + group: waf.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: DedicatedAlarmMaskingRuleV1 + listKind: DedicatedAlarmMaskingRuleV1List + plural: dedicatedalarmmaskingrulev1s + singular: dedicatedalarmmaskingrulev1 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: DedicatedAlarmMaskingRuleV1 is the Schema for the DedicatedAlarmMaskingRuleV1s + API. Manages a WAF Dedicated False Alarm Masking 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: DedicatedAlarmMaskingRuleV1Spec defines the desired state + of DedicatedAlarmMaskingRuleV1 + 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: + advancedSettings: + description: 'To ignore attacks of a specific field, specify the + field in the Advanced settings area. After you add the rule, + WAF will stop blocking attacks of the specified field. This + parameter is not included if all modules are bypassed. Changing + this creates a new rule. The advanced_settings block supports:' + items: + properties: + contents: + description: Subfield of the specified field type. The default + value is all. + items: + type: string + type: array + index: + description: 'Field type. The following field types are + supported: Params, Cookie, Header, Body, and Multipart. + When you select Params, Cookie, or Header, you can set + this parameter to all or configure subfields as required.' + type: string + type: object + type: array + conditions: + description: 'Condition list. Changing this creates a new rule. + The conditions block supports:' + items: + properties: + category: + description: Field type. The value can be url, ip, params, + cookie, or header. + type: string + contents: + description: Content. The array length is limited to 1. + The content format varies depending on the field type. + items: + type: string + type: array + index: + description: Subfield. When category is set to params, cookie, + or header, set this parameter based on site requirements. + This parameter is mandatory. + type: string + logicOperation: + description: The matching logic varies depending on the + field type. + type: string + type: object + type: array + description: + description: Rule description. Changing this creates a new rule. + type: string + domains: + description: Domain names to be protected. Changing this creates + a new rule. + items: + type: string + type: array + policyId: + description: The WAF policy ID. Changing this creates a new rule. + type: string + rule: + description: Items to be masked. Changing this creates a new rule. + You can provide multiple items and separate them with semicolons + (;). + 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: + advancedSettings: + description: 'To ignore attacks of a specific field, specify the + field in the Advanced settings area. After you add the rule, + WAF will stop blocking attacks of the specified field. This + parameter is not included if all modules are bypassed. Changing + this creates a new rule. The advanced_settings block supports:' + items: + properties: + contents: + description: Subfield of the specified field type. The default + value is all. + items: + type: string + type: array + index: + description: 'Field type. The following field types are + supported: Params, Cookie, Header, Body, and Multipart. + When you select Params, Cookie, or Header, you can set + this parameter to all or configure subfields as required.' + type: string + type: object + type: array + conditions: + description: 'Condition list. Changing this creates a new rule. + The conditions block supports:' + items: + properties: + category: + description: Field type. The value can be url, ip, params, + cookie, or header. + type: string + contents: + description: Content. The array length is limited to 1. + The content format varies depending on the field type. + items: + type: string + type: array + index: + description: Subfield. When category is set to params, cookie, + or header, set this parameter based on site requirements. + This parameter is mandatory. + type: string + logicOperation: + description: The matching logic varies depending on the + field type. + type: string + type: object + type: array + description: + description: Rule description. Changing this creates a new rule. + type: string + domains: + description: Domain names to be protected. Changing this creates + a new rule. + items: + type: string + type: array + policyId: + description: The WAF policy ID. Changing this creates a new rule. + type: string + rule: + description: Items to be masked. Changing this creates a new rule. + You can provide multiple items and separate them with semicolons + (;). + 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.conditions is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.conditions) + || (has(self.initProvider) && has(self.initProvider.conditions))' + - message: spec.forProvider.domains is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.domains) + || (has(self.initProvider) && has(self.initProvider.domains))' + - 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.rule is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.rule) + || (has(self.initProvider) && has(self.initProvider.rule))' + status: + description: DedicatedAlarmMaskingRuleV1Status defines the observed state + of DedicatedAlarmMaskingRuleV1. + properties: + atProvider: + properties: + advancedSettings: + description: 'To ignore attacks of a specific field, specify the + field in the Advanced settings area. After you add the rule, + WAF will stop blocking attacks of the specified field. This + parameter is not included if all modules are bypassed. Changing + this creates a new rule. The advanced_settings block supports:' + items: + properties: + contents: + description: Subfield of the specified field type. The default + value is all. + items: + type: string + type: array + index: + description: 'Field type. The following field types are + supported: Params, Cookie, Header, Body, and Multipart. + When you select Params, Cookie, or Header, you can set + this parameter to all or configure subfields as required.' + type: string + type: object + type: array + conditions: + description: 'Condition list. Changing this creates a new rule. + The conditions block supports:' + items: + properties: + category: + description: Field type. The value can be url, ip, params, + cookie, or header. + type: string + contents: + description: Content. The array length is limited to 1. + The content format varies depending on the field type. + items: + type: string + type: array + index: + description: Subfield. When category is set to params, cookie, + or header, set this parameter based on site requirements. + This parameter is mandatory. + type: string + logicOperation: + description: The matching logic varies depending on the + field type. + type: string + type: object + type: array + createdAt: + description: Timestamp the rule is created. + type: number + description: + description: Rule description. Changing this creates a new rule. + type: string + domains: + description: Domain names to be protected. Changing this creates + a new rule. + items: + type: string + type: array + id: + description: ID of the rule. + type: string + policyId: + description: The WAF policy ID. Changing this creates a new rule. + type: string + rule: + description: Items to be masked. Changing this creates a new rule. + You can provide multiple items and separate them with semicolons + (;). + type: string + status: + description: 'Rule status. The value can be:' + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/waf.crossplane.io_dedicatedanticrawlerrulev1s.yaml b/package/crds/waf.crossplane.io_dedicatedanticrawlerrulev1s.yaml new file mode 100644 index 0000000..6159757 --- /dev/null +++ b/package/crds/waf.crossplane.io_dedicatedanticrawlerrulev1s.yaml @@ -0,0 +1,370 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: dedicatedanticrawlerrulev1s.waf.crossplane.io +spec: + group: waf.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: DedicatedAntiCrawlerRuleV1 + listKind: DedicatedAntiCrawlerRuleV1List + plural: dedicatedanticrawlerrulev1s + singular: dedicatedanticrawlerrulev1 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: DedicatedAntiCrawlerRuleV1 is the Schema for the DedicatedAntiCrawlerRuleV1s + API. Manages a WAF Dedicated Anti Crawler 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: DedicatedAntiCrawlerRuleV1Spec defines the desired state + of DedicatedAntiCrawlerRuleV1 + 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: + logic: + description: 'Rule matching logic. Values are:' + type: number + name: + description: Rule name. + type: string + policyId: + description: The WAF policy ID. Changing this creates a new rule. + type: string + protectionMode: + description: 'JavaScript anti-crawler rule type. Values are:' + type: string + url: + description: URL to which the rule applies. + 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: + logic: + description: 'Rule matching logic. Values are:' + type: number + name: + description: Rule name. + type: string + policyId: + description: The WAF policy ID. Changing this creates a new rule. + type: string + protectionMode: + description: 'JavaScript anti-crawler rule type. Values are:' + type: string + url: + description: URL to which the rule applies. + 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.logic is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.logic) + || (has(self.initProvider) && has(self.initProvider.logic))' + - message: spec.forProvider.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + - 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.protectionMode is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.protectionMode) + || (has(self.initProvider) && has(self.initProvider.protectionMode))' + - message: spec.forProvider.url is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.url) + || (has(self.initProvider) && has(self.initProvider.url))' + status: + description: DedicatedAntiCrawlerRuleV1Status defines the observed state + of DedicatedAntiCrawlerRuleV1. + properties: + atProvider: + properties: + createdAt: + description: Timestamp the rule is created. + type: number + id: + description: ID of the rule. + type: string + logic: + description: 'Rule matching logic. Values are:' + type: number + name: + description: Rule name. + type: string + policyId: + description: The WAF policy ID. Changing this creates a new rule. + type: string + protectionMode: + description: 'JavaScript anti-crawler rule type. Values are:' + type: string + status: + description: Rule status. The value can be 0 or 1. + type: number + url: + description: URL to which the rule applies. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/waf.crossplane.io_dedicatedantileakagerulev1s.yaml b/package/crds/waf.crossplane.io_dedicatedantileakagerulev1s.yaml new file mode 100644 index 0000000..fa48a53 --- /dev/null +++ b/package/crds/waf.crossplane.io_dedicatedantileakagerulev1s.yaml @@ -0,0 +1,378 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: dedicatedantileakagerulev1s.waf.crossplane.io +spec: + group: waf.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: DedicatedAntiLeakageRuleV1 + listKind: DedicatedAntiLeakageRuleV1List + plural: dedicatedantileakagerulev1s + singular: dedicatedantileakagerulev1 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: DedicatedAntiLeakageRuleV1 is the Schema for the DedicatedAntiLeakageRuleV1s + API. Manages a WAF Dedicated Anti Leakage 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: DedicatedAntiLeakageRuleV1Spec defines the desired state + of DedicatedAntiLeakageRuleV1 + 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: + category: + description: 'Sensitive information type in the information leakage + prevention rule. Values:' + type: string + contents: + description: Content corresponding to the sensitive information + type. Multiple options can be set. + items: + type: string + type: array + description: + description: Rule description. + type: string + policyId: + description: The WAF policy ID. Changing this creates a new rule. + type: string + url: + description: URL to which the rule applies, for example, /admin + 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: + category: + description: 'Sensitive information type in the information leakage + prevention rule. Values:' + type: string + contents: + description: Content corresponding to the sensitive information + type. Multiple options can be set. + items: + type: string + type: array + description: + description: Rule description. + type: string + policyId: + description: The WAF policy ID. Changing this creates a new rule. + type: string + url: + description: URL to which the rule applies, for example, /admin + 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.category is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.category) + || (has(self.initProvider) && has(self.initProvider.category))' + - message: spec.forProvider.contents is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.contents) + || (has(self.initProvider) && has(self.initProvider.contents))' + - 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.url is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.url) + || (has(self.initProvider) && has(self.initProvider.url))' + status: + description: DedicatedAntiLeakageRuleV1Status defines the observed state + of DedicatedAntiLeakageRuleV1. + properties: + atProvider: + properties: + category: + description: 'Sensitive information type in the information leakage + prevention rule. Values:' + type: string + contents: + description: Content corresponding to the sensitive information + type. Multiple options can be set. + items: + type: string + type: array + createdAt: + description: Timestamp the rule is created. + type: number + description: + description: Rule description. + type: string + id: + description: ID of the rule. + type: string + policyId: + description: The WAF policy ID. Changing this creates a new rule. + type: string + status: + description: 'Rule status. The value can be:' + type: number + url: + description: URL to which the rule applies, for example, /admin + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/waf.crossplane.io_dedicatedblacklistrulev1s.yaml b/package/crds/waf.crossplane.io_dedicatedblacklistrulev1s.yaml new file mode 100644 index 0000000..4e14d70 --- /dev/null +++ b/package/crds/waf.crossplane.io_dedicatedblacklistrulev1s.yaml @@ -0,0 +1,389 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: dedicatedblacklistrulev1s.waf.crossplane.io +spec: + group: waf.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: DedicatedBlacklistRuleV1 + listKind: DedicatedBlacklistRuleV1List + plural: dedicatedblacklistrulev1s + singular: dedicatedblacklistrulev1 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: DedicatedBlacklistRuleV1 is the Schema for the DedicatedBlacklistRuleV1s + API. Manages a WAF Dedicated Blacklist 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: DedicatedBlacklistRuleV1Spec defines the desired state of + DedicatedBlacklistRuleV1 + 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: 'Protective action. Changing this creates a new rule. + The value can be:' + type: number + description: + description: Rule description. Changing this creates a new rule. + type: string + followedActionId: + description: ID of a known attack source rule. Changing this creates + a new rule. This parameter can be configured only when action + is set to 0. + type: string + ipAddress: + description: IP addresses or an IP address range to be added to + the blacklist or whitelist. Changing this creates a new rule. + For example, 192.x.x.3 or 10.x.x.0/24 + type: string + name: + description: Rule name. Changing this creates a new rule. + type: string + policyId: + description: The WAF policy ID. Changing this creates a new rule. + Changing this creates a new rule. + 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: 'Protective action. Changing this creates a new rule. + The value can be:' + type: number + description: + description: Rule description. Changing this creates a new rule. + type: string + followedActionId: + description: ID of a known attack source rule. Changing this creates + a new rule. This parameter can be configured only when action + is set to 0. + type: string + ipAddress: + description: IP addresses or an IP address range to be added to + the blacklist or whitelist. Changing this creates a new rule. + For example, 192.x.x.3 or 10.x.x.0/24 + type: string + name: + description: Rule name. Changing this creates a new rule. + type: string + policyId: + description: The WAF policy ID. Changing this creates a new rule. + Changing this creates a new rule. + 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.ipAddress is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.ipAddress) + || (has(self.initProvider) && has(self.initProvider.ipAddress))' + - 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))' + status: + description: DedicatedBlacklistRuleV1Status defines the observed state + of DedicatedBlacklistRuleV1. + properties: + atProvider: + properties: + action: + description: 'Protective action. Changing this creates a new rule. + The value can be:' + type: number + createdAt: + description: Timestamp the rule is created. + type: number + description: + description: Rule description. Changing this creates a new rule. + type: string + followedActionId: + description: ID of a known attack source rule. Changing this creates + a new rule. This parameter can be configured only when action + is set to 0. + type: string + id: + description: ID of the rule. + type: string + ipAddress: + description: IP addresses or an IP address range to be added to + the blacklist or whitelist. Changing this creates a new rule. + For example, 192.x.x.3 or 10.x.x.0/24 + type: string + name: + description: Rule name. Changing this creates a new rule. + type: string + policyId: + description: The WAF policy ID. Changing this creates a new rule. + Changing this creates a new rule. + type: string + status: + description: 'Rule status. The value can be:' + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/waf.crossplane.io_dedicatedccrulev1s.yaml b/package/crds/waf.crossplane.io_dedicatedccrulev1s.yaml new file mode 100644 index 0000000..774a37b --- /dev/null +++ b/package/crds/waf.crossplane.io_dedicatedccrulev1s.yaml @@ -0,0 +1,652 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: dedicatedccrulev1s.waf.crossplane.io +spec: + group: waf.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: DedicatedCcRuleV1 + listKind: DedicatedCcRuleV1List + plural: dedicatedccrulev1s + singular: dedicatedccrulev1 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: DedicatedCcRuleV1 is the Schema for the DedicatedCcRuleV1s API. + Manages a WAF Dedicated CC 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: DedicatedCcRuleV1Spec defines the desired state of DedicatedCcRuleV1 + 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: 'Protection action to take if the number of requests + reaches the upper limit. Changing this creates a new rule. The + conditions block supports:' + items: + properties: + category: + description: Action type. Changing this creates a new rule. + type: string + content: + description: Protection page content. Changing this creates + a new rule. + type: string + contentType: + description: User identifier. The value is fixed at referer. + Changing this creates a new rule. + type: string + type: object + type: array + conditions: + description: 'Rate limit conditions of the CC protection rule. + Changing this creates a new rule. The conditions block supports:' + items: + properties: + category: + description: Field type. The value can be url, ip, params, + cookie, or header. + type: string + contents: + description: Content of the conditions. This parameter is + mandatory when the suffix of logic_operation is not any + or all. Changing this creates a new rule. + items: + type: string + type: array + index: + description: Subfield. When category is set to params, cookie, + or header, set this parameter based on site requirements. + This parameter is mandatory. Changing this creates a new + rule. + type: string + logicOperation: + description: Logic for matching the condition. + type: string + valueListId: + description: Reference table ID. This parameter is mandatory + when the suffix of logic_operation is any or all. The + reference table type must be the same as the category + type. Changing this creates a new rule. + type: string + type: object + type: array + description: + description: Rule description. Changing this creates a new rule. + type: string + limitNum: + description: Rate limit frequency based on the number of requests. + The value ranges from 1 to 2,147,483,647. Changing this creates + a new rule. + type: number + limitPeriod: + description: Rate limit period, in seconds. The value ranges from + 1 to 3,600. Changing this creates a new rule. + type: number + lockTime: + description: Block duration, in seconds. The value ranges from + 0 to 65,535. Specifies the period within which access is blocked. + An error page is displayed in this period. Changing this creates + a new rule. + type: number + mode: + description: 'Protection mode of the CC attack protection rule. + Changing this creates a new rule. Valid Options are:' + type: number + policyId: + description: The WAF policy ID. Changing this creates a new rule. + type: string + tagCategory: + description: Specifies the category. The value is referer. Changing + this creates a new rule. + type: string + tagContents: + description: Specifies the category content. Changing this creates + a new rule. + items: + type: string + type: array + tagIndex: + description: User identifier. Changing this creates a new rule. + If tag_type is set to cookie, this parameter indicates cookie + name. If tag_type is set to header, this parameter indicates + header name. + type: string + tagType: + description: 'Rate limit mode. Changing this creates a new rule. + Valid Options are:' + type: string + unlockNum: + description: Allowable frequency based on the number of requests. + The value ranges from 0 to 2,147,483,647. This parameter is + required only when the protection action type is dynamic_block. + Changing this creates a new rule. + type: number + url: + description: Path to be protected in the CC attack protection + rule. Changing this creates a new rule. + 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: 'Protection action to take if the number of requests + reaches the upper limit. Changing this creates a new rule. The + conditions block supports:' + items: + properties: + category: + description: Action type. Changing this creates a new rule. + type: string + content: + description: Protection page content. Changing this creates + a new rule. + type: string + contentType: + description: User identifier. The value is fixed at referer. + Changing this creates a new rule. + type: string + type: object + type: array + conditions: + description: 'Rate limit conditions of the CC protection rule. + Changing this creates a new rule. The conditions block supports:' + items: + properties: + category: + description: Field type. The value can be url, ip, params, + cookie, or header. + type: string + contents: + description: Content of the conditions. This parameter is + mandatory when the suffix of logic_operation is not any + or all. Changing this creates a new rule. + items: + type: string + type: array + index: + description: Subfield. When category is set to params, cookie, + or header, set this parameter based on site requirements. + This parameter is mandatory. Changing this creates a new + rule. + type: string + logicOperation: + description: Logic for matching the condition. + type: string + valueListId: + description: Reference table ID. This parameter is mandatory + when the suffix of logic_operation is any or all. The + reference table type must be the same as the category + type. Changing this creates a new rule. + type: string + type: object + type: array + description: + description: Rule description. Changing this creates a new rule. + type: string + limitNum: + description: Rate limit frequency based on the number of requests. + The value ranges from 1 to 2,147,483,647. Changing this creates + a new rule. + type: number + limitPeriod: + description: Rate limit period, in seconds. The value ranges from + 1 to 3,600. Changing this creates a new rule. + type: number + lockTime: + description: Block duration, in seconds. The value ranges from + 0 to 65,535. Specifies the period within which access is blocked. + An error page is displayed in this period. Changing this creates + a new rule. + type: number + mode: + description: 'Protection mode of the CC attack protection rule. + Changing this creates a new rule. Valid Options are:' + type: number + policyId: + description: The WAF policy ID. Changing this creates a new rule. + type: string + tagCategory: + description: Specifies the category. The value is referer. Changing + this creates a new rule. + type: string + tagContents: + description: Specifies the category content. Changing this creates + a new rule. + items: + type: string + type: array + tagIndex: + description: User identifier. Changing this creates a new rule. + If tag_type is set to cookie, this parameter indicates cookie + name. If tag_type is set to header, this parameter indicates + header name. + type: string + tagType: + description: 'Rate limit mode. Changing this creates a new rule. + Valid Options are:' + type: string + unlockNum: + description: Allowable frequency based on the number of requests. + The value ranges from 0 to 2,147,483,647. This parameter is + required only when the protection action type is dynamic_block. + Changing this creates a new rule. + type: number + url: + description: Path to be protected in the CC attack protection + rule. Changing this creates a new rule. + 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.limitNum is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.limitNum) + || (has(self.initProvider) && has(self.initProvider.limitNum))' + - message: spec.forProvider.limitPeriod is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.limitPeriod) + || (has(self.initProvider) && has(self.initProvider.limitPeriod))' + - message: spec.forProvider.mode is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.mode) + || (has(self.initProvider) && has(self.initProvider.mode))' + - 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.tagType is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.tagType) + || (has(self.initProvider) && has(self.initProvider.tagType))' + - message: spec.forProvider.url is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.url) + || (has(self.initProvider) && has(self.initProvider.url))' + status: + description: DedicatedCcRuleV1Status defines the observed state of DedicatedCcRuleV1. + properties: + atProvider: + properties: + action: + description: 'Protection action to take if the number of requests + reaches the upper limit. Changing this creates a new rule. The + conditions block supports:' + items: + properties: + category: + description: Action type. Changing this creates a new rule. + type: string + content: + description: Protection page content. Changing this creates + a new rule. + type: string + contentType: + description: User identifier. The value is fixed at referer. + Changing this creates a new rule. + type: string + type: object + type: array + conditions: + description: 'Rate limit conditions of the CC protection rule. + Changing this creates a new rule. The conditions block supports:' + items: + properties: + category: + description: Field type. The value can be url, ip, params, + cookie, or header. + type: string + contents: + description: Content of the conditions. This parameter is + mandatory when the suffix of logic_operation is not any + or all. Changing this creates a new rule. + items: + type: string + type: array + index: + description: Subfield. When category is set to params, cookie, + or header, set this parameter based on site requirements. + This parameter is mandatory. Changing this creates a new + rule. + type: string + logicOperation: + description: Logic for matching the condition. + type: string + valueListId: + description: Reference table ID. This parameter is mandatory + when the suffix of logic_operation is any or all. The + reference table type must be the same as the category + type. Changing this creates a new rule. + type: string + type: object + type: array + createdAt: + description: Timestamp the rule is created. + type: number + description: + description: Rule description. Changing this creates a new rule. + type: string + id: + description: ID of the rule. + type: string + limitNum: + description: Rate limit frequency based on the number of requests. + The value ranges from 1 to 2,147,483,647. Changing this creates + a new rule. + type: number + limitPeriod: + description: Rate limit period, in seconds. The value ranges from + 1 to 3,600. Changing this creates a new rule. + type: number + lockTime: + description: Block duration, in seconds. The value ranges from + 0 to 65,535. Specifies the period within which access is blocked. + An error page is displayed in this period. Changing this creates + a new rule. + type: number + mode: + description: 'Protection mode of the CC attack protection rule. + Changing this creates a new rule. Valid Options are:' + type: number + policyId: + description: The WAF policy ID. Changing this creates a new rule. + type: string + status: + description: Rule status. + type: number + tagCategory: + description: Specifies the category. The value is referer. Changing + this creates a new rule. + type: string + tagContents: + description: Specifies the category content. Changing this creates + a new rule. + items: + type: string + type: array + tagIndex: + description: User identifier. Changing this creates a new rule. + If tag_type is set to cookie, this parameter indicates cookie + name. If tag_type is set to header, this parameter indicates + header name. + type: string + tagType: + description: 'Rate limit mode. Changing this creates a new rule. + Valid Options are:' + type: string + unlockNum: + description: Allowable frequency based on the number of requests. + The value ranges from 0 to 2,147,483,647. This parameter is + required only when the protection action type is dynamic_block. + Changing this creates a new rule. + type: number + url: + description: Path to be protected in the CC attack protection + rule. Changing this creates a new rule. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/waf.crossplane.io_dedicatedcertificatev1s.yaml b/package/crds/waf.crossplane.io_dedicatedcertificatev1s.yaml new file mode 100644 index 0000000..c96e205 --- /dev/null +++ b/package/crds/waf.crossplane.io_dedicatedcertificatev1s.yaml @@ -0,0 +1,358 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: dedicatedcertificatev1s.waf.crossplane.io +spec: + group: waf.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: DedicatedCertificateV1 + listKind: DedicatedCertificateV1List + plural: dedicatedcertificatev1s + singular: dedicatedcertificatev1 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: DedicatedCertificateV1 is the Schema for the DedicatedCertificateV1s + API. Manages a WAF Dedicated 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: DedicatedCertificateV1Spec defines the desired state of DedicatedCertificateV1 + 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: + content: + description: The certificate content. Changing this creates a + new certificate. + type: string + key: + description: The private key. Changing this creates a new certificate. + type: string + name: + description: The certificate name. The value can contain a maximum + of 64 characters. Only digits, letters, underscores(_), and + hyphens(-) are allowed. Changing this creates a new certificate. + type: string + region: + 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: + content: + description: The certificate content. Changing this creates a + new certificate. + type: string + key: + description: The private key. Changing this creates a new certificate. + type: string + name: + description: The certificate name. The value can contain a maximum + of 64 characters. Only digits, letters, underscores(_), and + hyphens(-) are allowed. Changing this creates a new certificate. + type: string + region: + 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.content is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.content) + || (has(self.initProvider) && has(self.initProvider.content))' + - message: spec.forProvider.key is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.key) + || (has(self.initProvider) && has(self.initProvider.key))' + - message: spec.forProvider.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + status: + description: DedicatedCertificateV1Status defines the observed state of + DedicatedCertificateV1. + properties: + atProvider: + properties: + content: + description: The certificate content. Changing this creates a + new certificate. + type: string + createdAt: + description: Date when the certificate is uploaded. + type: string + expires: + description: Date when the certificate expires. + type: string + id: + description: ID of the certificate. + type: string + key: + description: The private key. Changing this creates a new certificate. + type: string + name: + description: The certificate name. The value can contain a maximum + of 64 characters. Only digits, letters, underscores(_), and + hyphens(-) are allowed. Changing this creates a new certificate. + type: string + region: + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/waf.crossplane.io_dedicateddatamaskingrulev1s.yaml b/package/crds/waf.crossplane.io_dedicateddatamaskingrulev1s.yaml new file mode 100644 index 0000000..f7f4d96 --- /dev/null +++ b/package/crds/waf.crossplane.io_dedicateddatamaskingrulev1s.yaml @@ -0,0 +1,369 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: dedicateddatamaskingrulev1s.waf.crossplane.io +spec: + group: waf.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: DedicatedDataMaskingRuleV1 + listKind: DedicatedDataMaskingRuleV1List + plural: dedicateddatamaskingrulev1s + singular: dedicateddatamaskingrulev1 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: DedicatedDataMaskingRuleV1 is the Schema for the DedicatedDataMaskingRuleV1s + API. Manages a WAF Dedicated Data Masking 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: DedicatedDataMaskingRuleV1Spec defines the desired state + of DedicatedDataMaskingRuleV1 + 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: + category: + description: 'Masked field. Values:' + type: string + description: + description: Rule description. + type: string + name: + description: Name of the masked field. + type: string + policyId: + description: The WAF policy ID. Changing this creates a new rule. + type: string + url: + description: URL protected by the data masking rule. The value + must be in the standard URL format, for example, /admin. + 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: + category: + description: 'Masked field. Values:' + type: string + description: + description: Rule description. + type: string + name: + description: Name of the masked field. + type: string + policyId: + description: The WAF policy ID. Changing this creates a new rule. + type: string + url: + description: URL protected by the data masking rule. The value + must be in the standard URL format, for example, /admin. + 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.category is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.category) + || (has(self.initProvider) && has(self.initProvider.category))' + - message: spec.forProvider.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + - 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.url is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.url) + || (has(self.initProvider) && has(self.initProvider.url))' + status: + description: DedicatedDataMaskingRuleV1Status defines the observed state + of DedicatedDataMaskingRuleV1. + properties: + atProvider: + properties: + category: + description: 'Masked field. Values:' + type: string + createdAt: + description: Timestamp the rule is created. + type: number + description: + description: Rule description. + type: string + id: + description: ID of the rule. + type: string + name: + description: Name of the masked field. + type: string + policyId: + description: The WAF policy ID. Changing this creates a new rule. + type: string + status: + description: Rule status. The value can be 0 or 1. + type: number + url: + description: URL protected by the data masking rule. The value + must be in the standard URL format, for example, /admin. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/waf.crossplane.io_dedicateddomainv1s.yaml b/package/crds/waf.crossplane.io_dedicateddomainv1s.yaml new file mode 100644 index 0000000..2a6a7af --- /dev/null +++ b/package/crds/waf.crossplane.io_dedicateddomainv1s.yaml @@ -0,0 +1,626 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: dedicateddomainv1s.waf.crossplane.io +spec: + group: waf.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: DedicatedDomainV1 + listKind: DedicatedDomainV1List + plural: dedicateddomainv1s + singular: dedicateddomainv1 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: DedicatedDomainV1 is the Schema for the DedicatedDomainV1s API. + Manages a WAF Dedicated Domain 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: DedicatedDomainV1Spec defines the desired state of DedicatedDomainV1 + 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: + certificateId: + description: Specifies the certificate ID. This parameter is mandatory + when client_protocol is set to HTTPS. + type: string + cipher: + description: 'Specifies the cipher suite of domain. Values are:' + type: string + domain: + description: Specifies the protected domain name or IP address + (port allowed). For example, www.example.com or *.example.com + or www.example.com:89. Changing this creates a new domain. + type: string + keepPolicy: + description: Specifies whether to retain the policy when deleting + a domain name. Defaults to true. + type: boolean + pci3Ds: + description: 'Specifies the status of the PCI 3DS compliance certification + check. Values are: true and false. This parameter must be used + together with tls and cipher.' + type: boolean + pciDss: + description: 'Specifies the status of the PCI DSS compliance certification + check. Values are: true and false. This parameter must be used + together with tls and cipher.' + type: boolean + policyId: + description: Specifies the policy ID associated with the domain. + If not specified, a new policy will be created automatically. + type: string + protectStatus: + description: 'The protection status of domain, 0: suspended, 1: + enabled. Default value is 1.' + type: number + proxy: + description: Specifies whether a proxy is configured. Default + value is false. + type: boolean + region: + description: The region in which to create the dedicated mode + domain resource. If omitted, the provider-level region will + be used. Changing this setting will push a new domain. + type: string + server: + description: 'The server configuration list of the domain. A maximum + of 80 can be configured. The server block supports:' + items: + properties: + address: + description: IP address or domain name of the web server + that the client accesses. For example, 192.168.1.1 or + www.example.com. Changing this creates a new server. + type: string + clientProtocol: + description: Protocol type of the client. Values are HTTP + and HTTPS. Changing this creates a new server. + type: string + port: + description: Port number used by the web server. The value + ranges from 0 to 65535. Changing this creates a new server. + type: number + serverProtocol: + description: Protocol used by WAF to forward client requests + to the server. Values areHTTP and HTTPS. Changing this + creates a new server. + type: string + type: + description: 'Server network type, IPv4 or IPv6. Valid values + are: ipv4 and ipv6. Changing this creates a new server.' + type: string + vpcId: + description: The id of the vpc used by the server. Changing + this creates a server. + type: string + type: object + type: array + timeoutConfig: + description: Specifies the timeout configuration. The timeout_config + structure is documented below. + items: + properties: + connectTimeout: + description: Specifies the timeout in seconds for WAF to + connect to the origin server. + type: number + readTimeout: + description: Specifies the timeout in seconds for WAF to + receive responses from the origin server. + type: number + sendTimeout: + type: number + type: object + type: array + tls: + description: 'Specifies the minimum required TLS version. Values + are:' + 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: + certificateId: + description: Specifies the certificate ID. This parameter is mandatory + when client_protocol is set to HTTPS. + type: string + cipher: + description: 'Specifies the cipher suite of domain. Values are:' + type: string + domain: + description: Specifies the protected domain name or IP address + (port allowed). For example, www.example.com or *.example.com + or www.example.com:89. Changing this creates a new domain. + type: string + keepPolicy: + description: Specifies whether to retain the policy when deleting + a domain name. Defaults to true. + type: boolean + pci3Ds: + description: 'Specifies the status of the PCI 3DS compliance certification + check. Values are: true and false. This parameter must be used + together with tls and cipher.' + type: boolean + pciDss: + description: 'Specifies the status of the PCI DSS compliance certification + check. Values are: true and false. This parameter must be used + together with tls and cipher.' + type: boolean + policyId: + description: Specifies the policy ID associated with the domain. + If not specified, a new policy will be created automatically. + type: string + protectStatus: + description: 'The protection status of domain, 0: suspended, 1: + enabled. Default value is 1.' + type: number + proxy: + description: Specifies whether a proxy is configured. Default + value is false. + type: boolean + region: + description: The region in which to create the dedicated mode + domain resource. If omitted, the provider-level region will + be used. Changing this setting will push a new domain. + type: string + server: + description: 'The server configuration list of the domain. A maximum + of 80 can be configured. The server block supports:' + items: + properties: + address: + description: IP address or domain name of the web server + that the client accesses. For example, 192.168.1.1 or + www.example.com. Changing this creates a new server. + type: string + clientProtocol: + description: Protocol type of the client. Values are HTTP + and HTTPS. Changing this creates a new server. + type: string + port: + description: Port number used by the web server. The value + ranges from 0 to 65535. Changing this creates a new server. + type: number + serverProtocol: + description: Protocol used by WAF to forward client requests + to the server. Values areHTTP and HTTPS. Changing this + creates a new server. + type: string + type: + description: 'Server network type, IPv4 or IPv6. Valid values + are: ipv4 and ipv6. Changing this creates a new server.' + type: string + vpcId: + description: The id of the vpc used by the server. Changing + this creates a server. + type: string + type: object + type: array + timeoutConfig: + description: Specifies the timeout configuration. The timeout_config + structure is documented below. + items: + properties: + connectTimeout: + description: Specifies the timeout in seconds for WAF to + connect to the origin server. + type: number + readTimeout: + description: Specifies the timeout in seconds for WAF to + receive responses from the origin server. + type: number + sendTimeout: + type: number + type: object + type: array + tls: + description: 'Specifies the minimum required TLS version. Values + are:' + 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.domain is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.domain) + || (has(self.initProvider) && has(self.initProvider.domain))' + - message: spec.forProvider.server is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.server) + || (has(self.initProvider) && has(self.initProvider.server))' + status: + description: DedicatedDomainV1Status defines the observed state of DedicatedDomainV1. + properties: + atProvider: + properties: + accessStatus: + description: 'Whether a domain name is connected to WAF. Valid + values are:' + type: number + alarmPage: + additionalProperties: + type: string + description: 'The alarm page of domain. Valid values are:' + type: object + certificateId: + description: Specifies the certificate ID. This parameter is mandatory + when client_protocol is set to HTTPS. + type: string + certificateName: + description: The name of the certificate used by the domain name. + type: string + cipher: + description: 'Specifies the cipher suite of domain. Values are:' + type: string + complianceCertification: + additionalProperties: + type: boolean + description: 'The compliance certifications of the domain, values + are:' + type: object + createdAt: + description: Timestamp when the dedicated WAF domain was created. + type: number + domain: + description: Specifies the protected domain name or IP address + (port allowed). For example, www.example.com or *.example.com + or www.example.com:89. Changing this creates a new domain. + type: string + id: + description: ID of the domain. + type: string + keepPolicy: + description: Specifies whether to retain the policy when deleting + a domain name. Defaults to true. + type: boolean + pci3Ds: + description: 'Specifies the status of the PCI 3DS compliance certification + check. Values are: true and false. This parameter must be used + together with tls and cipher.' + type: boolean + pciDss: + description: 'Specifies the status of the PCI DSS compliance certification + check. Values are: true and false. This parameter must be used + together with tls and cipher.' + type: boolean + policyId: + description: Specifies the policy ID associated with the domain. + If not specified, a new policy will be created automatically. + type: string + protectStatus: + description: 'The protection status of domain, 0: suspended, 1: + enabled. Default value is 1.' + type: number + protocol: + description: The protocol type of the client. The options are + HTTP and HTTPS. + type: string + proxy: + description: Specifies whether a proxy is configured. Default + value is false. + type: boolean + region: + description: The region in which to create the dedicated mode + domain resource. If omitted, the provider-level region will + be used. Changing this setting will push a new domain. + type: string + server: + description: 'The server configuration list of the domain. A maximum + of 80 can be configured. The server block supports:' + items: + properties: + address: + description: IP address or domain name of the web server + that the client accesses. For example, 192.168.1.1 or + www.example.com. Changing this creates a new server. + type: string + clientProtocol: + description: Protocol type of the client. Values are HTTP + and HTTPS. Changing this creates a new server. + type: string + port: + description: Port number used by the web server. The value + ranges from 0 to 65535. Changing this creates a new server. + type: number + serverProtocol: + description: Protocol used by WAF to forward client requests + to the server. Values areHTTP and HTTPS. Changing this + creates a new server. + type: string + type: + description: 'Server network type, IPv4 or IPv6. Valid values + are: ipv4 and ipv6. Changing this creates a new server.' + type: string + vpcId: + description: The id of the vpc used by the server. Changing + this creates a server. + type: string + type: object + type: array + timeoutConfig: + description: Specifies the timeout configuration. The timeout_config + structure is documented below. + items: + properties: + connectTimeout: + description: Specifies the timeout in seconds for WAF to + connect to the origin server. + type: number + readTimeout: + description: Specifies the timeout in seconds for WAF to + receive responses from the origin server. + type: number + sendTimeout: + type: number + type: object + type: array + tls: + description: 'Specifies the minimum required TLS version. Values + are:' + type: string + trafficIdentifier: + additionalProperties: + type: string + description: 'The traffic identifier of domain. Valid values are:' + type: object + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/waf.crossplane.io_dedicatedgeoiprulev1s.yaml b/package/crds/waf.crossplane.io_dedicatedgeoiprulev1s.yaml new file mode 100644 index 0000000..c1cb279 --- /dev/null +++ b/package/crds/waf.crossplane.io_dedicatedgeoiprulev1s.yaml @@ -0,0 +1,368 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: dedicatedgeoiprulev1s.waf.crossplane.io +spec: + group: waf.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: DedicatedGeoIPRuleV1 + listKind: DedicatedGeoIPRuleV1List + plural: dedicatedgeoiprulev1s + singular: dedicatedgeoiprulev1 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: DedicatedGeoIPRuleV1 is the Schema for the DedicatedGeoIPRuleV1s + API. Manages a WAF Dedicated Geolocation Access Control 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: DedicatedGeoIPRuleV1Spec defines the desired state of DedicatedGeoIPRuleV1 + 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: 'Protective action. The value can be:' + type: number + description: + description: Rule description + type: string + name: + description: Rule name. + type: string + policyId: + description: The WAF policy ID. Changing this creates a new rule. + type: string + regionCode: + description: 'Applicable regions. The value can be the region + code. For more geographical location codes, see docs "Appendix + - Geographic Location Codes." Values:' + 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: 'Protective action. The value can be:' + type: number + description: + description: Rule description + type: string + name: + description: Rule name. + type: string + policyId: + description: The WAF policy ID. Changing this creates a new rule. + type: string + regionCode: + description: 'Applicable regions. The value can be the region + code. For more geographical location codes, see docs "Appendix + - Geographic Location Codes." Values:' + 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.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.regionCode is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.regionCode) + || (has(self.initProvider) && has(self.initProvider.regionCode))' + status: + description: DedicatedGeoIPRuleV1Status defines the observed state of + DedicatedGeoIPRuleV1. + properties: + atProvider: + properties: + action: + description: 'Protective action. The value can be:' + type: number + createdAt: + description: Timestamp the rule is created. + type: number + description: + description: Rule description + type: string + id: + description: ID of the rule. + type: string + name: + description: Rule name. + type: string + policyId: + description: The WAF policy ID. Changing this creates a new rule. + type: string + regionCode: + description: 'Applicable regions. The value can be the region + code. For more geographical location codes, see docs "Appendix + - Geographic Location Codes." Values:' + type: string + status: + description: 'Rule status. The value can be:' + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/waf.crossplane.io_dedicatedinstancev1s.yaml b/package/crds/waf.crossplane.io_dedicatedinstancev1s.yaml new file mode 100644 index 0000000..298efd6 --- /dev/null +++ b/package/crds/waf.crossplane.io_dedicatedinstancev1s.yaml @@ -0,0 +1,493 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: dedicatedinstancev1s.waf.crossplane.io +spec: + group: waf.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: DedicatedInstanceV1 + listKind: DedicatedInstanceV1List + plural: dedicatedinstancev1s + singular: dedicatedinstancev1 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: DedicatedInstanceV1 is the Schema for the DedicatedInstanceV1s + API. Manages a WAF Dedicated Instance 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: DedicatedInstanceV1Spec defines the desired state of DedicatedInstanceV1 + 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: + architecture: + description: Dedicated engine CPU architecture. Default value + is x86. Changing this will create a new instance. + type: string + availabilityZone: + description: AZ where the dedicated engine is to be created. Changing + this will create a new instance. + type: string + flavor: + description: ID of the specifications of the ECS hosting the dedicated + engine. You can go to the management console and confirm supported + specifications. Changing this will create a new instance. + type: string + name: + description: The name of WAF dedicated instance. Duplicate names + are allowed, we suggest to keeping the name unique. + type: string + region: + description: Region where a dedicated engine is to be created. + If omitted, the provider-level region will be used. Changing + this setting will create a new instance. + type: string + resTenant: + description: 'Whether the dedicated WAF instance is network interface + type. Default value is true. Changing this will create a new + instance. -> Note: This type of instance is not available in + eu-ch2 region, must set res_tenant value to false there.' + type: boolean + securityGroup: + description: ID of the security group where the dedicated engine + is located. Changing this will create a new instance. + items: + type: string + type: array + specification: + description: 'Specifications of the dedicated engine version. + Values are:' + type: string + subnetId: + description: ID of the VPC subnet where the dedicated engine is + located. Subnet_id has the same value as network_id obtained + by calling the OpenStack APIs. Changing this will create a new + instance. + type: string + vpcId: + description: ID of the VPC where the dedicated engine is located. + Changing this will create a new instance. + 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: + architecture: + description: Dedicated engine CPU architecture. Default value + is x86. Changing this will create a new instance. + type: string + availabilityZone: + description: AZ where the dedicated engine is to be created. Changing + this will create a new instance. + type: string + flavor: + description: ID of the specifications of the ECS hosting the dedicated + engine. You can go to the management console and confirm supported + specifications. Changing this will create a new instance. + type: string + name: + description: The name of WAF dedicated instance. Duplicate names + are allowed, we suggest to keeping the name unique. + type: string + region: + description: Region where a dedicated engine is to be created. + If omitted, the provider-level region will be used. Changing + this setting will create a new instance. + type: string + resTenant: + description: 'Whether the dedicated WAF instance is network interface + type. Default value is true. Changing this will create a new + instance. -> Note: This type of instance is not available in + eu-ch2 region, must set res_tenant value to false there.' + type: boolean + securityGroup: + description: ID of the security group where the dedicated engine + is located. Changing this will create a new instance. + items: + type: string + type: array + specification: + description: 'Specifications of the dedicated engine version. + Values are:' + type: string + subnetId: + description: ID of the VPC subnet where the dedicated engine is + located. Subnet_id has the same value as network_id obtained + by calling the OpenStack APIs. Changing this will create a new + instance. + type: string + vpcId: + description: ID of the VPC where the dedicated engine is located. + Changing this will create a new instance. + 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.availabilityZone is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.availabilityZone) + || (has(self.initProvider) && has(self.initProvider.availabilityZone))' + - message: spec.forProvider.flavor is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.flavor) + || (has(self.initProvider) && has(self.initProvider.flavor))' + - message: spec.forProvider.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + - message: spec.forProvider.securityGroup is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.securityGroup) + || (has(self.initProvider) && has(self.initProvider.securityGroup))' + - message: spec.forProvider.specification is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.specification) + || (has(self.initProvider) && has(self.initProvider.specification))' + - 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))' + - message: spec.forProvider.vpcId is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.vpcId) + || (has(self.initProvider) && has(self.initProvider.vpcId))' + status: + description: DedicatedInstanceV1Status defines the observed state of DedicatedInstanceV1. + properties: + atProvider: + properties: + accessStatus: + description: The access status of the instance. + type: number + architecture: + description: Dedicated engine CPU architecture. Default value + is x86. Changing this will create a new instance. + type: string + availabilityZone: + description: AZ where the dedicated engine is to be created. Changing + this will create a new instance. + type: string + billingStatus: + description: Billing status of dedicated WAF engine. The value + can be 0, 1, or 2. + type: number + createdAt: + description: Timestamp when the dedicated WAF engine was created. + type: number + flavor: + description: ID of the specifications of the ECS hosting the dedicated + engine. You can go to the management console and confirm supported + specifications. Changing this will create a new instance. + type: string + id: + description: The id of the instance. + type: string + name: + description: The name of WAF dedicated instance. Duplicate names + are allowed, we suggest to keeping the name unique. + type: string + region: + description: Region where a dedicated engine is to be created. + If omitted, the provider-level region will be used. Changing + this setting will create a new instance. + type: string + resTenant: + description: 'Whether the dedicated WAF instance is network interface + type. Default value is true. Changing this will create a new + instance. -> Note: This type of instance is not available in + eu-ch2 region, must set res_tenant value to false there.' + type: boolean + securityGroup: + description: ID of the security group where the dedicated engine + is located. Changing this will create a new instance. + items: + type: string + type: array + serverId: + description: The id of the instance server. + type: string + serviceIp: + description: The ip of the instance service. + type: string + specification: + description: 'Specifications of the dedicated engine version. + Values are:' + type: string + status: + description: 'Running status of the dedicated engine. The value + can be:' + type: number + subnetId: + description: ID of the VPC subnet where the dedicated engine is + located. Subnet_id has the same value as network_id obtained + by calling the OpenStack APIs. Changing this will create a new + instance. + type: string + upgradable: + description: 'The instance is to support upgrades. false: Cannot + be upgraded, true: Can be upgraded.' + type: boolean + vpcId: + description: ID of the VPC where the dedicated engine is located. + Changing this will create a new instance. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/waf.crossplane.io_dedicatedknownattacksourcerulev1s.yaml b/package/crds/waf.crossplane.io_dedicatedknownattacksourcerulev1s.yaml new file mode 100644 index 0000000..7b5575f --- /dev/null +++ b/package/crds/waf.crossplane.io_dedicatedknownattacksourcerulev1s.yaml @@ -0,0 +1,362 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: dedicatedknownattacksourcerulev1s.waf.crossplane.io +spec: + group: waf.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: DedicatedKnownAttackSourceRuleV1 + listKind: DedicatedKnownAttackSourceRuleV1List + plural: dedicatedknownattacksourcerulev1s + singular: dedicatedknownattacksourcerulev1 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: DedicatedKnownAttackSourceRuleV1 is the Schema for the DedicatedKnownAttackSourceRuleV1s + API. Manages a WAF Dedicated Known Attack Source 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: DedicatedKnownAttackSourceRuleV1Spec defines the desired + state of DedicatedKnownAttackSourceRuleV1 + 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: + blockTime: + description: Block duration, in seconds. If prefix long is selected + for the rule type, the value for block_time ranges from 301 + to 1800. If prefix short is selected for the rule type, the + value for block_time ranges from 0 to 300. + type: number + category: + description: 'Type of the know attack source rule. Enumeration + values:' + type: string + description: + description: Rule description. + type: string + policyId: + description: The WAF policy ID. Changing this creates a new rule. + 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: + blockTime: + description: Block duration, in seconds. If prefix long is selected + for the rule type, the value for block_time ranges from 301 + to 1800. If prefix short is selected for the rule type, the + value for block_time ranges from 0 to 300. + type: number + category: + description: 'Type of the know attack source rule. Enumeration + values:' + type: string + description: + description: Rule description. + type: string + policyId: + description: The WAF policy ID. Changing this creates a new rule. + 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.blockTime is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.blockTime) + || (has(self.initProvider) && has(self.initProvider.blockTime))' + - message: spec.forProvider.category is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.category) + || (has(self.initProvider) && has(self.initProvider.category))' + - 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))' + status: + description: DedicatedKnownAttackSourceRuleV1Status defines the observed + state of DedicatedKnownAttackSourceRuleV1. + properties: + atProvider: + properties: + blockTime: + description: Block duration, in seconds. If prefix long is selected + for the rule type, the value for block_time ranges from 301 + to 1800. If prefix short is selected for the rule type, the + value for block_time ranges from 0 to 300. + type: number + category: + description: 'Type of the know attack source rule. Enumeration + values:' + type: string + createdAt: + description: Timestamp the rule is created. + type: number + description: + description: Rule description. + type: string + id: + description: ID of the rule. + type: string + policyId: + description: The WAF policy ID. Changing this creates a new rule. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/waf.crossplane.io_dedicatedpolicyv1s.yaml b/package/crds/waf.crossplane.io_dedicatedpolicyv1s.yaml new file mode 100644 index 0000000..19fe4e6 --- /dev/null +++ b/package/crds/waf.crossplane.io_dedicatedpolicyv1s.yaml @@ -0,0 +1,575 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: dedicatedpolicyv1s.waf.crossplane.io +spec: + group: waf.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: DedicatedPolicyV1 + listKind: DedicatedPolicyV1List + plural: dedicatedpolicyv1s + singular: dedicatedpolicyv1 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: DedicatedPolicyV1 is the Schema for the DedicatedPolicyV1s API. + Manages a WAF Dedicated 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: DedicatedPolicyV1Spec defines the desired state of DedicatedPolicyV1 + 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: + fullDetection: + description: Specifies the detection mode in Precise Protection. + type: boolean + level: + description: 'Specifies the protection level. Values are:' + type: number + name: + description: The policy name. + type: string + options: + description: 'Specifies the protection switches. The options block + supports:' + items: + properties: + antiCrawler: + description: JavaScript anti-crawler function. + type: boolean + antiLeakage: + description: Whether the information leakage prevention + is enabled. + type: boolean + antiTamper: + description: Specifies whether Web Tamper Protection is + enabled. + type: boolean + blacklist: + description: Specifies whether Blacklist and Whitelist is + enabled. + type: boolean + cc: + description: Specifies whether CC Attack Protection is enabled. + type: boolean + common: + description: Specifies whether General Check in Basic Web + Protection is enabled. + type: boolean + crawler: + description: Specifies whether the master crawler detection + switch in Basic Web Protection is enabled. + type: boolean + crawlerEngine: + description: Specifies whether the Search Engine switch + in Basic Web Protection is enabled. + type: boolean + crawlerOther: + description: Specifies whether detection of other crawlers + in Basic Web Protection is enabled. + type: boolean + crawlerScanner: + description: Specifies whether the Scanner switch in Basic + Web Protection is enabled. + type: boolean + crawlerScript: + description: Specifies whether the Script Tool switch in + Basic Web Protection is enabled. + type: boolean + custom: + description: Specifies whether Precise Protection is enabled. + type: boolean + followedAction: + description: Whether the Known Attack Source protection + is enabled. + type: boolean + geolocationAccessControl: + description: Whether geolocation access control is enabled. + type: boolean + ignore: + description: Whether false alarm masking is enabled. + type: boolean + privacy: + description: Specifies whether Data Masking is enabled. + type: boolean + webAttack: + description: Specifies whether Basic Web Protection is enabled. + type: boolean + webShell: + description: Specifies whether webshell detection in Basic + Web Protection is enabled. + type: boolean + type: object + type: array + protectionMode: + description: 'Specifies the protective action after a rule is + matched. Values are:' + type: string + region: + 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: + fullDetection: + description: Specifies the detection mode in Precise Protection. + type: boolean + level: + description: 'Specifies the protection level. Values are:' + type: number + name: + description: The policy name. + type: string + options: + description: 'Specifies the protection switches. The options block + supports:' + items: + properties: + antiCrawler: + description: JavaScript anti-crawler function. + type: boolean + antiLeakage: + description: Whether the information leakage prevention + is enabled. + type: boolean + antiTamper: + description: Specifies whether Web Tamper Protection is + enabled. + type: boolean + blacklist: + description: Specifies whether Blacklist and Whitelist is + enabled. + type: boolean + cc: + description: Specifies whether CC Attack Protection is enabled. + type: boolean + common: + description: Specifies whether General Check in Basic Web + Protection is enabled. + type: boolean + crawler: + description: Specifies whether the master crawler detection + switch in Basic Web Protection is enabled. + type: boolean + crawlerEngine: + description: Specifies whether the Search Engine switch + in Basic Web Protection is enabled. + type: boolean + crawlerOther: + description: Specifies whether detection of other crawlers + in Basic Web Protection is enabled. + type: boolean + crawlerScanner: + description: Specifies whether the Scanner switch in Basic + Web Protection is enabled. + type: boolean + crawlerScript: + description: Specifies whether the Script Tool switch in + Basic Web Protection is enabled. + type: boolean + custom: + description: Specifies whether Precise Protection is enabled. + type: boolean + followedAction: + description: Whether the Known Attack Source protection + is enabled. + type: boolean + geolocationAccessControl: + description: Whether geolocation access control is enabled. + type: boolean + ignore: + description: Whether false alarm masking is enabled. + type: boolean + privacy: + description: Specifies whether Data Masking is enabled. + type: boolean + webAttack: + description: Specifies whether Basic Web Protection is enabled. + type: boolean + webShell: + description: Specifies whether webshell detection in Basic + Web Protection is enabled. + type: boolean + type: object + type: array + protectionMode: + description: 'Specifies the protective action after a rule is + matched. Values are:' + type: string + region: + 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.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + status: + description: DedicatedPolicyV1Status defines the observed state of DedicatedPolicyV1. + properties: + atProvider: + properties: + createdAt: + description: Time the policy is created. The value is a 13-digit + timestamp, in ms. + type: number + domains: + description: Specifies the domain IDs. + items: + type: string + type: array + fullDetection: + description: Specifies the detection mode in Precise Protection. + type: boolean + id: + description: ID of the policy. + type: string + level: + description: 'Specifies the protection level. Values are:' + type: number + name: + description: The policy name. + type: string + options: + description: 'Specifies the protection switches. The options block + supports:' + items: + properties: + antiCrawler: + description: JavaScript anti-crawler function. + type: boolean + antiLeakage: + description: Whether the information leakage prevention + is enabled. + type: boolean + antiTamper: + description: Specifies whether Web Tamper Protection is + enabled. + type: boolean + blacklist: + description: Specifies whether Blacklist and Whitelist is + enabled. + type: boolean + botEnable: + type: boolean + cc: + description: Specifies whether CC Attack Protection is enabled. + type: boolean + common: + description: Specifies whether General Check in Basic Web + Protection is enabled. + type: boolean + crawler: + description: Specifies whether the master crawler detection + switch in Basic Web Protection is enabled. + type: boolean + crawlerEngine: + description: Specifies whether the Search Engine switch + in Basic Web Protection is enabled. + type: boolean + crawlerOther: + description: Specifies whether detection of other crawlers + in Basic Web Protection is enabled. + type: boolean + crawlerScanner: + description: Specifies whether the Scanner switch in Basic + Web Protection is enabled. + type: boolean + crawlerScript: + description: Specifies whether the Script Tool switch in + Basic Web Protection is enabled. + type: boolean + custom: + description: Specifies whether Precise Protection is enabled. + type: boolean + followedAction: + description: Whether the Known Attack Source protection + is enabled. + type: boolean + geolocationAccessControl: + description: Whether geolocation access control is enabled. + type: boolean + ignore: + description: Whether false alarm masking is enabled. + type: boolean + precise: + type: boolean + privacy: + description: Specifies whether Data Masking is enabled. + type: boolean + webAttack: + description: Specifies whether Basic Web Protection is enabled. + type: boolean + webShell: + description: Specifies whether webshell detection in Basic + Web Protection is enabled. + type: boolean + type: object + type: array + protectionMode: + description: 'Specifies the protective action after a rule is + matched. Values are:' + type: string + region: + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/waf.crossplane.io_dedicatedpreciseprotectionrulev1s.yaml b/package/crds/waf.crossplane.io_dedicatedpreciseprotectionrulev1s.yaml new file mode 100644 index 0000000..5741723 --- /dev/null +++ b/package/crds/waf.crossplane.io_dedicatedpreciseprotectionrulev1s.yaml @@ -0,0 +1,549 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: dedicatedpreciseprotectionrulev1s.waf.crossplane.io +spec: + group: waf.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: DedicatedPreciseProtectionRuleV1 + listKind: DedicatedPreciseProtectionRuleV1List + plural: dedicatedpreciseprotectionrulev1s + singular: dedicatedpreciseprotectionrulev1 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: DedicatedPreciseProtectionRuleV1 is the Schema for the DedicatedPreciseProtectionRuleV1s + API. Manages a WAF Dedicated Precise Protection 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: DedicatedPreciseProtectionRuleV1Spec defines the desired + state of DedicatedPreciseProtectionRuleV1 + 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: 'Protection action to take if the number of requests + reaches the upper limit. Changing this creates a new rule. The + conditions block supports:' + items: + properties: + category: + description: Action type. Changing this creates a new rule. + type: string + followedActionId: + description: ID of a known attack source rule. This parameter + can be configured only when category is set to block. + Changing this creates a new rule. + type: string + type: object + type: array + conditions: + description: 'Match condition List. Changing this creates a new + rule. The conditions block supports:' + items: + properties: + category: + description: Field type. The options are url, user-agent, + ip, params, cookie, referer, header, request_line, method, + and request. + type: string + contents: + description: Content of the conditions. This parameter is + mandatory when the suffix of logic_operation is not any + or all. This parameter is mandatory when the suffix of + logic_operation is not any or all. Changing this creates + a new rule. + items: + type: string + type: array + index: + description: Subfield. Changing this creates a new rule. + type: string + logicOperation: + description: Logic for matching the condition. Changing + this creates a new rule. + type: string + valueListId: + description: Reference table ID. This parameter is mandatory + when the suffix of logic_operation is any or all. The + reference table type must be the same as the category + type. Changing this creates a new rule. + type: string + type: object + type: array + description: + description: Rule description. Changing this creates a new rule. + type: string + policyId: + description: The WAF policy ID. Changing this creates a new rule. + type: string + priority: + description: 'Priority of a rule. A small value indicates a high + priority. If two rules are assigned with the same priority, + the rule added earlier has higher priority. Value range: 0 to + 1000. Changing this creates a new rule.' + type: number + start: + description: Timestamp (ms) when the precise protection rule takes + effect. This parameter is returned only when time is true. Changing + this creates a new rule. + type: number + terminal: + description: Timestamp (ms) when the precise protection rule expires. + This parameter is returned only when time is true. Changing + this creates a new rule. + type: number + time: + description: 'Time the precise protection rule takes effect. Changing + this creates a new rule. Values:' + 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: + action: + description: 'Protection action to take if the number of requests + reaches the upper limit. Changing this creates a new rule. The + conditions block supports:' + items: + properties: + category: + description: Action type. Changing this creates a new rule. + type: string + followedActionId: + description: ID of a known attack source rule. This parameter + can be configured only when category is set to block. + Changing this creates a new rule. + type: string + type: object + type: array + conditions: + description: 'Match condition List. Changing this creates a new + rule. The conditions block supports:' + items: + properties: + category: + description: Field type. The options are url, user-agent, + ip, params, cookie, referer, header, request_line, method, + and request. + type: string + contents: + description: Content of the conditions. This parameter is + mandatory when the suffix of logic_operation is not any + or all. This parameter is mandatory when the suffix of + logic_operation is not any or all. Changing this creates + a new rule. + items: + type: string + type: array + index: + description: Subfield. Changing this creates a new rule. + type: string + logicOperation: + description: Logic for matching the condition. Changing + this creates a new rule. + type: string + valueListId: + description: Reference table ID. This parameter is mandatory + when the suffix of logic_operation is any or all. The + reference table type must be the same as the category + type. Changing this creates a new rule. + type: string + type: object + type: array + description: + description: Rule description. Changing this creates a new rule. + type: string + policyId: + description: The WAF policy ID. Changing this creates a new rule. + type: string + priority: + description: 'Priority of a rule. A small value indicates a high + priority. If two rules are assigned with the same priority, + the rule added earlier has higher priority. Value range: 0 to + 1000. Changing this creates a new rule.' + type: number + start: + description: Timestamp (ms) when the precise protection rule takes + effect. This parameter is returned only when time is true. Changing + this creates a new rule. + type: number + terminal: + description: Timestamp (ms) when the precise protection rule expires. + This parameter is returned only when time is true. Changing + this creates a new rule. + type: number + time: + description: 'Time the precise protection rule takes effect. Changing + this creates a new rule. Values:' + 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.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.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.priority is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.priority) + || (has(self.initProvider) && has(self.initProvider.priority))' + - message: spec.forProvider.time is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.time) + || (has(self.initProvider) && has(self.initProvider.time))' + status: + description: DedicatedPreciseProtectionRuleV1Status defines the observed + state of DedicatedPreciseProtectionRuleV1. + properties: + atProvider: + properties: + action: + description: 'Protection action to take if the number of requests + reaches the upper limit. Changing this creates a new rule. The + conditions block supports:' + items: + properties: + category: + description: Action type. Changing this creates a new rule. + type: string + followedActionId: + description: ID of a known attack source rule. This parameter + can be configured only when category is set to block. + Changing this creates a new rule. + type: string + type: object + type: array + conditions: + description: 'Match condition List. Changing this creates a new + rule. The conditions block supports:' + items: + properties: + category: + description: Field type. The options are url, user-agent, + ip, params, cookie, referer, header, request_line, method, + and request. + type: string + contents: + description: Content of the conditions. This parameter is + mandatory when the suffix of logic_operation is not any + or all. This parameter is mandatory when the suffix of + logic_operation is not any or all. Changing this creates + a new rule. + items: + type: string + type: array + index: + description: Subfield. Changing this creates a new rule. + type: string + logicOperation: + description: Logic for matching the condition. Changing + this creates a new rule. + type: string + valueListId: + description: Reference table ID. This parameter is mandatory + when the suffix of logic_operation is any or all. The + reference table type must be the same as the category + type. Changing this creates a new rule. + type: string + type: object + type: array + createdAt: + description: Timestamp the rule is created. + type: number + description: + description: Rule description. Changing this creates a new rule. + type: string + id: + description: ID of the rule. + type: string + policyId: + description: The WAF policy ID. Changing this creates a new rule. + type: string + priority: + description: 'Priority of a rule. A small value indicates a high + priority. If two rules are assigned with the same priority, + the rule added earlier has higher priority. Value range: 0 to + 1000. Changing this creates a new rule.' + type: number + start: + description: Timestamp (ms) when the precise protection rule takes + effect. This parameter is returned only when time is true. Changing + this creates a new rule. + type: number + status: + description: 'Rule status. The value can be:' + type: number + terminal: + description: Timestamp (ms) when the precise protection rule expires. + This parameter is returned only when time is true. Changing + this creates a new rule. + type: number + time: + description: 'Time the precise protection rule takes effect. Changing + this creates a new rule. Values:' + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/waf.crossplane.io_dedicatedreferencetablev1s.yaml b/package/crds/waf.crossplane.io_dedicatedreferencetablev1s.yaml new file mode 100644 index 0000000..72d6252 --- /dev/null +++ b/package/crds/waf.crossplane.io_dedicatedreferencetablev1s.yaml @@ -0,0 +1,385 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: dedicatedreferencetablev1s.waf.crossplane.io +spec: + group: waf.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: DedicatedReferenceTableV1 + listKind: DedicatedReferenceTableV1List + plural: dedicatedreferencetablev1s + singular: dedicatedreferencetablev1 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: DedicatedReferenceTableV1 is the Schema for the DedicatedReferenceTableV1s + API. Manages a WAF Dedicated Reference Table 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: DedicatedReferenceTableV1Spec defines the desired state of + DedicatedReferenceTableV1 + 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: + conditions: + description: 'The conditions of the reference table. The maximum + length is 30. The maximum length of condition is 2048 characters. + schema: Required' + items: + type: string + type: array + description: + description: The description of the reference table. The maximum + length is 128 characters. Currently, could be set only on update. + type: string + name: + description: The name of the reference table. Only letters, digits, + and underscores(_) are allowed. The maximum length is 64 characters. + type: string + region: + description: The region in which to create the WAF reference table + resource. If omitted, the provider-level region will be used. + Changing this setting will push a new reference table. + type: string + type: + description: The type of the reference table, The options are + url, user-agent, ip, params, cookie, referer and header. Changing + this setting will push a new reference table. + 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: + conditions: + description: 'The conditions of the reference table. The maximum + length is 30. The maximum length of condition is 2048 characters. + schema: Required' + items: + type: string + type: array + description: + description: The description of the reference table. The maximum + length is 128 characters. Currently, could be set only on update. + type: string + name: + description: The name of the reference table. Only letters, digits, + and underscores(_) are allowed. The maximum length is 64 characters. + type: string + region: + description: The region in which to create the WAF reference table + resource. If omitted, the provider-level region will be used. + Changing this setting will push a new reference table. + type: string + type: + description: The type of the reference table, The options are + url, user-agent, ip, params, cookie, referer and header. Changing + this setting will push a new reference table. + 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.name is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.name) + || (has(self.initProvider) && has(self.initProvider.name))' + - 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: DedicatedReferenceTableV1Status defines the observed state + of DedicatedReferenceTableV1. + properties: + atProvider: + properties: + conditions: + description: 'The conditions of the reference table. The maximum + length is 30. The maximum length of condition is 2048 characters. + schema: Required' + items: + type: string + type: array + createdAt: + description: The time when reference table was created. + type: string + description: + description: The description of the reference table. The maximum + length is 128 characters. Currently, could be set only on update. + type: string + id: + description: The id of the reference table. + type: string + name: + description: The name of the reference table. Only letters, digits, + and underscores(_) are allowed. The maximum length is 64 characters. + type: string + region: + description: The region in which to create the WAF reference table + resource. If omitted, the provider-level region will be used. + Changing this setting will push a new reference table. + type: string + type: + description: The type of the reference table, The options are + url, user-agent, ip, params, cookie, referer and header. Changing + this setting will push a new reference table. + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crds/waf.crossplane.io_dedicatedwebtamperrulev1s.yaml b/package/crds/waf.crossplane.io_dedicatedwebtamperrulev1s.yaml new file mode 100644 index 0000000..1181c3a --- /dev/null +++ b/package/crds/waf.crossplane.io_dedicatedwebtamperrulev1s.yaml @@ -0,0 +1,365 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: dedicatedwebtamperrulev1s.waf.crossplane.io +spec: + group: waf.crossplane.io + names: + categories: + - crossplane + - managed + - opentelekomcloud + kind: DedicatedWebTamperRuleV1 + listKind: DedicatedWebTamperRuleV1List + plural: dedicatedwebtamperrulev1s + singular: dedicatedwebtamperrulev1 + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + 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: DedicatedWebTamperRuleV1 is the Schema for the DedicatedWebTamperRuleV1s + API. Manages a WAF Dedicated Web Tamper 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: DedicatedWebTamperRuleV1Spec defines the desired state of + DedicatedWebTamperRuleV1 + 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: + description: + description: Rule description. + type: string + hostname: + description: Protected website. + type: string + policyId: + description: The WAF policy ID. Changing this creates a new rule. + type: string + updateCache: + description: To update the cache for a web tamper protection Rule. + type: boolean + url: + description: URL protected by the web tamper protection rule. + The value must be in the standard URL format, for example, /admin + 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: + description: + description: Rule description. + type: string + hostname: + description: Protected website. + type: string + policyId: + description: The WAF policy ID. Changing this creates a new rule. + type: string + updateCache: + description: To update the cache for a web tamper protection Rule. + type: boolean + url: + description: URL protected by the web tamper protection rule. + The value must be in the standard URL format, for example, /admin + 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.hostname is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.hostname) + || (has(self.initProvider) && has(self.initProvider.hostname))' + - 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.url is a required parameter + rule: '!(''*'' in self.managementPolicies || ''Create'' in self.managementPolicies + || ''Update'' in self.managementPolicies) || has(self.forProvider.url) + || (has(self.initProvider) && has(self.initProvider.url))' + status: + description: DedicatedWebTamperRuleV1Status defines the observed state + of DedicatedWebTamperRuleV1. + properties: + atProvider: + properties: + createdAt: + description: Timestamp the rule is created. + type: number + description: + description: Rule description. + type: string + hostname: + description: Protected website. + type: string + id: + description: ID of the rule. + type: string + policyId: + description: The WAF policy ID. Changing this creates a new rule. + type: string + status: + description: 'Rule status. The value can be:' + type: number + updateCache: + description: To update the cache for a web tamper protection Rule. + type: boolean + url: + description: URL protected by the web tamper protection rule. + The value must be in the standard URL format, for example, /admin + 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 + 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 + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {} diff --git a/package/crossplane.yaml b/package/crossplane.yaml index 8e70739..e020f25 100644 --- a/package/crossplane.yaml +++ b/package/crossplane.yaml @@ -1,4 +1,4 @@ apiVersion: meta.pkg.crossplane.io/v1 kind: Provider metadata: - name: upjet-provider-template + name: provider-opentelekomcloud