diff --git a/.github/ISSUE_TEMPLATE/new_resource_request.md b/.github/ISSUE_TEMPLATE/new_resource_request.md index 3fa43c3..9219a47 100644 --- a/.github/ISSUE_TEMPLATE/new_resource_request.md +++ b/.github/ISSUE_TEMPLATE/new_resource_request.md @@ -23,10 +23,10 @@ Help us for prioritization of the resource support by giving more details about why you need it. --> -### Would you be willing to contribute it using [Terrajet](https://github.com/crossplane/terrajet)? +### Would you be willing to contribute it using [Upjet](https://github.com/upbound/upjet)? \ No newline at end of file diff --git a/Makefile b/Makefile index cf61aeb..a94a623 100644 --- a/Makefile +++ b/Makefile @@ -3,7 +3,8 @@ PROJECT_NAME := provider-jet-equinix PROJECT_REPO := github.com/crossplane-contrib/$(PROJECT_NAME) -GOLANGCILINT_VERSION ?= 1.48.0 +GO_REQUIRED_VERSION ?= 1.19 +GOLANGCILINT_VERSION ?= 1.50.0 export TERRAFORM_VERSION := 1.3.1 @@ -12,6 +13,10 @@ export TERRAFORM_PROVIDER_VERSION := 1.11.1 export TERRAFORM_PROVIDER_DOWNLOAD_NAME := terraform-provider-equinix export TERRAFORM_PROVIDER_DOWNLOAD_URL_PREFIX := https://releases.hashicorp.com/${TERRAFORM_PROVIDER_DOWNLOAD_NAME}/${TERRAFORM_PROVIDER_VERSION} export TERRAFORM_NATIVE_PROVIDER_BINARY := ${TERRAFORM_PROVIDER_DOWNLOAD_NAME}_v${TERRAFORM_PROVIDER_VERSION} +export TERRAFORM_PROVIDER_REPO ?= https://github.com/equinix/terraform-provider-equinix +export TERRAFORM_DOCS_PATH ?= docs/resources + + PLATFORMS ?= linux_amd64 linux_arm64 @@ -108,9 +113,17 @@ $(TERRAFORM_PROVIDER_SCHEMA): $(TERRAFORM) @$(TERRAFORM) -chdir=$(TERRAFORM_WORKDIR) providers schema -json=true > $(TERRAFORM_PROVIDER_SCHEMA) 2>> $(TERRAFORM_WORKDIR)/terraform-logs.txt @$(OK) generating provider schema for $(TERRAFORM_PROVIDER_SOURCE) $(TERRAFORM_PROVIDER_VERSION) -generate.init: $(TERRAFORM_PROVIDER_SCHEMA) -.PHONY: $(TERRAFORM_PROVIDER_SCHEMA) +pull-docs: + @if [ ! -d "$(WORK_DIR)/$(TERRAFORM_PROVIDER_SOURCE)" ]; then \ + mkdir -p "$(WORK_DIR)/$(TERRAFORM_PROVIDER_SOURCE)" && \ + git clone -c advice.detachedHead=false --depth 1 --filter=blob:none --branch "v$(TERRAFORM_PROVIDER_VERSION)" --sparse "$(TERRAFORM_PROVIDER_REPO)" "$(WORK_DIR)/$(TERRAFORM_PROVIDER_SOURCE)"; \ + fi + @git -C "$(WORK_DIR)/$(TERRAFORM_PROVIDER_SOURCE)" sparse-checkout set "$(TERRAFORM_DOCS_PATH)" + +generate.init: $(TERRAFORM_PROVIDER_SCHEMA) pull-docs + +.PHONY: $(TERRAFORM_PROVIDER_SCHEMA) pull-docs # ==================================================================================== # Targets diff --git a/README.md b/README.md index 551dbf9..fd10295 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -# Terrajet Equinix Provider +# Upjet Equinix Provider `provider-jet-equinix` is a [Crossplane](https://crossplane.io/) provider that -is built using [Terrajet](https://github.com/crossplane/terrajet) code +is built using [Upjet](https://github.com/upbound/upjet) code generation tools and exposes XRM-conformant managed resources for the Equinix API. diff --git a/apis/ecx/v1alpha1/zz_generated.deepcopy.go b/apis/ecx/v1alpha1/zz_generated.deepcopy.go index 71122d1..9938f4f 100644 --- a/apis/ecx/v1alpha1/zz_generated.deepcopy.go +++ b/apis/ecx/v1alpha1/zz_generated.deepcopy.go @@ -553,7 +553,7 @@ func (in *L2ConnectionParameters) DeepCopyInto(out *L2ConnectionParameters) { if in.ProfileUUIDRef != nil { in, out := &in.ProfileUUIDRef, &out.ProfileUUIDRef *out = new(v1.Reference) - **out = **in + (*in).DeepCopyInto(*out) } if in.ProfileUUIDSelector != nil { in, out := &in.ProfileUUIDSelector, &out.ProfileUUIDSelector diff --git a/apis/ecx/v1alpha1/zz_generated_terraformed.go b/apis/ecx/v1alpha1/zz_generated_terraformed.go index 8268226..af31dc1 100755 --- a/apis/ecx/v1alpha1/zz_generated_terraformed.go +++ b/apis/ecx/v1alpha1/zz_generated_terraformed.go @@ -14,15 +14,15 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package v1alpha1 import ( "github.com/pkg/errors" - "github.com/crossplane/terrajet/pkg/resource" - "github.com/crossplane/terrajet/pkg/resource/json" + "github.com/upbound/upjet/pkg/resource" + "github.com/upbound/upjet/pkg/resource/json" ) // GetTerraformResourceType returns Terraform resource type for this L2Connection @@ -36,17 +36,17 @@ func (tr *L2Connection) GetConnectionDetailsMapping() map[string]string { } // GetObservation of this L2Connection -func (tr *L2Connection) GetObservation() (map[string]interface{}, error) { +func (tr *L2Connection) GetObservation() (map[string]any, error) { o, err := json.TFParser.Marshal(tr.Status.AtProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(o, &base) } // SetObservation for this L2Connection -func (tr *L2Connection) SetObservation(obs map[string]interface{}) error { +func (tr *L2Connection) SetObservation(obs map[string]any) error { p, err := json.TFParser.Marshal(obs) if err != nil { return err @@ -63,17 +63,17 @@ func (tr *L2Connection) GetID() string { } // GetParameters of this L2Connection -func (tr *L2Connection) GetParameters() (map[string]interface{}, error) { +func (tr *L2Connection) GetParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.ForProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(p, &base) } // SetParameters for this L2Connection -func (tr *L2Connection) SetParameters(params map[string]interface{}) error { +func (tr *L2Connection) SetParameters(params map[string]any) error { p, err := json.TFParser.Marshal(params) if err != nil { return err @@ -110,17 +110,17 @@ func (tr *L2ConnectionAccepter) GetConnectionDetailsMapping() map[string]string } // GetObservation of this L2ConnectionAccepter -func (tr *L2ConnectionAccepter) GetObservation() (map[string]interface{}, error) { +func (tr *L2ConnectionAccepter) GetObservation() (map[string]any, error) { o, err := json.TFParser.Marshal(tr.Status.AtProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(o, &base) } // SetObservation for this L2ConnectionAccepter -func (tr *L2ConnectionAccepter) SetObservation(obs map[string]interface{}) error { +func (tr *L2ConnectionAccepter) SetObservation(obs map[string]any) error { p, err := json.TFParser.Marshal(obs) if err != nil { return err @@ -137,17 +137,17 @@ func (tr *L2ConnectionAccepter) GetID() string { } // GetParameters of this L2ConnectionAccepter -func (tr *L2ConnectionAccepter) GetParameters() (map[string]interface{}, error) { +func (tr *L2ConnectionAccepter) GetParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.ForProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(p, &base) } // SetParameters for this L2ConnectionAccepter -func (tr *L2ConnectionAccepter) SetParameters(params map[string]interface{}) error { +func (tr *L2ConnectionAccepter) SetParameters(params map[string]any) error { p, err := json.TFParser.Marshal(params) if err != nil { return err @@ -184,17 +184,17 @@ func (tr *L2Serviceprofile) GetConnectionDetailsMapping() map[string]string { } // GetObservation of this L2Serviceprofile -func (tr *L2Serviceprofile) GetObservation() (map[string]interface{}, error) { +func (tr *L2Serviceprofile) GetObservation() (map[string]any, error) { o, err := json.TFParser.Marshal(tr.Status.AtProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(o, &base) } // SetObservation for this L2Serviceprofile -func (tr *L2Serviceprofile) SetObservation(obs map[string]interface{}) error { +func (tr *L2Serviceprofile) SetObservation(obs map[string]any) error { p, err := json.TFParser.Marshal(obs) if err != nil { return err @@ -211,17 +211,17 @@ func (tr *L2Serviceprofile) GetID() string { } // GetParameters of this L2Serviceprofile -func (tr *L2Serviceprofile) GetParameters() (map[string]interface{}, error) { +func (tr *L2Serviceprofile) GetParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.ForProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(p, &base) } // SetParameters for this L2Serviceprofile -func (tr *L2Serviceprofile) SetParameters(params map[string]interface{}) error { +func (tr *L2Serviceprofile) SetParameters(params map[string]any) error { p, err := json.TFParser.Marshal(params) if err != nil { return err diff --git a/apis/ecx/v1alpha1/zz_groupversion_info.go b/apis/ecx/v1alpha1/zz_groupversion_info.go index c6148fc..8615353 100755 --- a/apis/ecx/v1alpha1/zz_groupversion_info.go +++ b/apis/ecx/v1alpha1/zz_groupversion_info.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. // +kubebuilder:object:generate=true // +groupName=ecx.equinix.jet.crossplane.io diff --git a/apis/ecx/v1alpha1/zz_l2connection_types.go b/apis/ecx/v1alpha1/zz_l2connection_types.go index 27dc725..fdfed01 100755 --- a/apis/ecx/v1alpha1/zz_l2connection_types.go +++ b/apis/ecx/v1alpha1/zz_l2connection_types.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package v1alpha1 @@ -47,6 +47,7 @@ type ActionsRequiredDataObservation struct { ValidationPattern *string `json:"validationPattern,omitempty" tf:"validation_pattern,omitempty"` + // additional information value Value *string `json:"value,omitempty" tf:"value,omitempty"` } @@ -58,130 +59,206 @@ type AdditionalInfoObservation struct { type AdditionalInfoParameters struct { + // secondary connection name // Additional information key // +kubebuilder:validation:Required Name *string `json:"name" tf:"name,omitempty"` + // additional information value // Additional information value // +kubebuilder:validation:Required Value *string `json:"value" tf:"value,omitempty"` } type L2ConnectionObservation struct { + + // One or more pending actions to complete connection provisioning. + // One or more pending actions to complete connection provisioning Actions []ActionsObservation `json:"actions,omitempty" tf:"actions,omitempty"` ID *string `json:"id,omitempty" tf:"id,omitempty"` + // Connection provisioning status on service provider's side. + // Connection provisioning status on service provider's side ProviderStatus *string `json:"providerStatus,omitempty" tf:"provider_status,omitempty"` + // Unique identifier of group containing a primary and secondary connection. + // Unique identifier of group containing a primary and secondary connection RedundancyGroup *string `json:"redundancyGroup,omitempty" tf:"redundancy_group,omitempty"` + // Connection redundancy type, applicable for HA connections. Valid values are + // PRIMARY, SECONDARY. + // Connection redundancy type, applicable for HA connections. Either primary or secondary RedundancyType *string `json:"redundancyType,omitempty" tf:"redundancy_type,omitempty"` + // Unique identifier of the redundant connection, applicable for HA connections. + // Unique identifier of the redundant connection, applicable for HA connections RedundantUUID *string `json:"redundantUuid,omitempty" tf:"redundant_uuid,omitempty"` + // Definition of secondary connection for redundant, HA + // connectivity. See Secondary Connection below for more details. + // Definition of secondary connection for redundant, HA connectivity + // +kubebuilder:validation:Optional SecondaryConnection []SecondaryConnectionObservation `json:"secondaryConnection,omitempty" tf:"secondary_connection,omitempty"` + // Connection provisioning status on Equinix Fabric side. + // Connection provisioning status on Equinix Fabric side Status *string `json:"status,omitempty" tf:"status,omitempty"` + // Unique identifier of the connection. + // Unique identifier of the connection UUID *string `json:"uuid,omitempty" tf:"uuid,omitempty"` + // The Equinix Fabric Token the connection was created with. Applicable if the + // connection was created with a service_token (a-side) or zside_service_token (z-side). + // The Equinix Fabric Token the connection was created with. Applicable if the connection was created with a ServiceToken (a-side) or ZSideServiceToken (z-side) VendorToken *string `json:"vendorToken,omitempty" tf:"vendor_token,omitempty"` } type L2ConnectionParameters struct { + // one or more additional information key-value objects // One or more additional information key-value objects // +kubebuilder:validation:Optional AdditionalInfo []AdditionalInfoParameters `json:"additionalInfo,omitempty" tf:"additional_info,omitempty"` + // Unique identifier authorizing Equinix to provision a connection + // towards a cloud service provider. At Equinix, an Authorization Key is a generic term and is NOT + // encrypted on Equinix Fabric. Cloud Service Providers might use a different name to refer to this + // key such as Service Key or Authentication Key. Value depends on a provider service profile, + // more information on Equinix Fabric how to guide. // Text field used to authorize connection on the provider side. Value depends on a provider service profile used for connection // +kubebuilder:validation:Optional AuthorizationKey *string `json:"authorizationKey,omitempty" tf:"authorization_key,omitempty"` + // Applicable with device_uuid, identifier of network interface + // on a given device, used for a connection. If not specified then first available interface will be + // selected. // Identifier of network interface on a given device, used for a connection. If not specified then first available interface will be selected // +kubebuilder:validation:Optional DeviceInterfaceID *float64 `json:"deviceInterfaceId,omitempty" tf:"device_interface_id,omitempty"` + // Unique identifier of + // the Network Edge virtual device from which the connection would originate. // Unique identifier of the Network Edge virtual device from which the connection would originate // +kubebuilder:validation:Optional DeviceUUID *string `json:"deviceUuid,omitempty" tf:"device_uuid,omitempty"` + // Connection name. An alpha-numeric 24 characters string which can include only + // hyphens and underscores // Connection name. An alpha-numeric 24 characters string which can include only hyphens and underscores // +kubebuilder:validation:Required Name *string `json:"name" tf:"name,omitempty"` + // The type of peering to set up when connecting to Azure Express Route. + // Valid values: PRIVATE, MICROSOFT, MANUAL*, PUBLIC*. // The type of peering to set up in case when connecting to Azure Express Route. One of PRIVATE, MICROSOFT, MANUAL, PUBLIC (MANUAL and PUBLIC are deprecated and not available for new connections) // +kubebuilder:validation:Optional NamedTag *string `json:"namedTag,omitempty" tf:"named_tag,omitempty"` + // A list of email addresses used for sending connection update + // notifications. // A list of email addresses used for sending connection update notifications // +kubebuilder:validation:Required Notifications []*string `json:"notifications" tf:"notifications,omitempty"` + // Unique identifier of + // the Equinix Fabric Port from which the connection would originate. // Unique identifier of the buyer's port from which the connection would originate // +kubebuilder:validation:Optional PortUUID *string `json:"portUuid,omitempty" tf:"port_uuid,omitempty"` + // Unique identifier of the service provider's profile. // Unique identifier of the service provider's service profile // +crossplane:generate:reference:type=L2Serviceprofile // +kubebuilder:validation:Optional ProfileUUID *string `json:"profileUuid,omitempty" tf:"profile_uuid,omitempty"` + // Reference to a L2Serviceprofile to populate profileUuid. // +kubebuilder:validation:Optional ProfileUUIDRef *v1.Reference `json:"profileUuidRef,omitempty" tf:"-"` + // Selector for a L2Serviceprofile to populate profileUuid. // +kubebuilder:validation:Optional ProfileUUIDSelector *v1.Selector `json:"profileUuidSelector,omitempty" tf:"-"` + // Connection's purchase order number to reflect on the invoice // Connection's purchase order number to reflect on the invoice // +kubebuilder:validation:Optional PurchaseOrderNumber *string `json:"purchaseOrderNumber,omitempty" tf:"purchase_order_number,omitempty"` + // Definition of secondary connection for redundant, HA + // connectivity. See Secondary Connection below for more details. // Definition of secondary connection for redundant, HA connectivity // +kubebuilder:validation:Optional SecondaryConnection []SecondaryConnectionParameters `json:"secondaryConnection,omitempty" tf:"secondary_connection,omitempty"` + // The metro code that denotes the connection’s remote/destination + // side (z-side). // The metro code that denotes the connection's remote side (z-side) // +kubebuilder:validation:Optional SellerMetroCode *string `json:"sellerMetroCode,omitempty" tf:"seller_metro_code,omitempty"` + // The region in which the seller port resides. // The region in which the seller port resides // +kubebuilder:validation:Optional SellerRegion *string `json:"sellerRegion,omitempty" tf:"seller_region,omitempty"` + // - A-side + // service tokens authorize you to create a connection from a customer port, which created the token + // for you, to a service profile or your own port. + // More details in A-Side Fabric Service Tokens. // Unique Equinix Fabric key given by a provider that grants you authorization to enable connectivity from a shared multi-tenant port (a-side) // +kubebuilder:validation:Optional ServiceToken *string `json:"serviceToken,omitempty" tf:"service_token,omitempty"` + // Speed/Bandwidth to be allocated to the connection. // Speed/Bandwidth to be allocated to the connection // +kubebuilder:validation:Required Speed *float64 `json:"speed" tf:"speed,omitempty"` + // Unit of the speed/bandwidth to be allocated to the connection. // Unit of the speed/bandwidth to be allocated to the connection // +kubebuilder:validation:Required SpeedUnit *string `json:"speedUnit" tf:"speed_unit,omitempty"` + // C-Tag/Inner-Tag of the connection - a numeric character ranging from 2 + // - 4094. // C-Tag/Inner-Tag of the connection, a numeric character ranging from 2 - 4094 // +kubebuilder:validation:Optional VlanCtag *float64 `json:"vlanCtag,omitempty" tf:"vlan_ctag,omitempty"` + // S-Tag/Outer-Tag of the connection - a numeric + // character ranging from 2 - 4094. // S-Tag/Outer-Tag of the connection, a numeric character ranging from 2 - 4094 // +kubebuilder:validation:Optional VlanStag *float64 `json:"vlanStag,omitempty" tf:"vlan_stag,omitempty"` + // Unique identifier of the port on the remote/destination side + // (z-side). Allows you to connect between your own ports or virtual devices across your company's + // Equinix Fabric deployment, with no need for a private service profile. // Unique identifier of the port on the remote side (z-side) // +kubebuilder:validation:Optional ZsidePortUUID *string `json:"zsidePortUuid,omitempty" tf:"zside_port_uuid,omitempty"` + // - Z-side + // service tokens authorize you to create a connection from your port or virtual device to a customer + // port which created the token for you. zside_service_token cannot be used with secondary_connection. + // More details in Z-Side Fabric Service Tokens. // Unique Equinix Fabric key given by a provider that grants you authorization to enable connectivity to a shared multi-tenant port (z-side) // +kubebuilder:validation:Optional ZsideServiceToken *string `json:"zsideServiceToken,omitempty" tf:"zside_service_token,omitempty"` + // C-Tag/Inner-Tag of the connection on the remote/destination + // side (z-side) - a numeric character ranging from 2 - 4094. + // secondary_connection is defined it will internally use same zside_vlan_ctag for the secondary + // connection. // C-Tag/Inner-Tag of the connection on the remote side (z-side) // +kubebuilder:validation:Optional ZsideVlanCtag *float64 `json:"zsideVlanCtag,omitempty" tf:"zside_vlan_ctag,omitempty"` + // S-Tag/Outer-Tag of the connection on the remote/destination + // side (z-side) - a numeric character ranging from 2 - 4094. // S-Tag/Outer-Tag of the connection on the remote side (z-side) // +kubebuilder:validation:Optional ZsideVlanStag *float64 `json:"zsideVlanStag,omitempty" tf:"zside_vlan_stag,omitempty"` @@ -196,6 +273,7 @@ type RequiredDataObservation struct { ValidationPattern *string `json:"validationPattern,omitempty" tf:"validation_pattern,omitempty"` + // additional information value Value *string `json:"value,omitempty" tf:"value,omitempty"` } @@ -216,79 +294,139 @@ type SecondaryConnectionActionsParameters struct { } type SecondaryConnectionObservation struct { + + // One or more pending actions to complete connection provisioning. + // One or more pending actions to complete connection provisioning Actions []SecondaryConnectionActionsObservation `json:"actions,omitempty" tf:"actions,omitempty"` + // Connection provisioning status on service provider's side. + // Connection provisioning status on service provider's side ProviderStatus *string `json:"providerStatus,omitempty" tf:"provider_status,omitempty"` + // Unique identifier of group containing a primary and secondary connection. + // Unique identifier of group containing a primary and secondary connection RedundancyGroup *string `json:"redundancyGroup,omitempty" tf:"redundancy_group,omitempty"` + // Connection redundancy type, applicable for HA connections. Valid values are + // PRIMARY, SECONDARY. + // Connection redundancy type, applicable for HA connections. Either primary or secondary RedundancyType *string `json:"redundancyType,omitempty" tf:"redundancy_type,omitempty"` + // Unique identifier of the redundant connection, applicable for HA connections. + // Unique identifier of the redundant connection, applicable for HA connections RedundantUUID *string `json:"redundantUuid,omitempty" tf:"redundant_uuid,omitempty"` + // Connection provisioning status on Equinix Fabric side. + // Connection provisioning status on Equinix Fabric side Status *string `json:"status,omitempty" tf:"status,omitempty"` + // Unique identifier of the connection. + // Unique identifier of the connection UUID *string `json:"uuid,omitempty" tf:"uuid,omitempty"` + // The Equinix Fabric Token the connection was created with. Applicable if the + // connection was created with a service_token (a-side) or zside_service_token (z-side). + // The Equinix Fabric Token the connection was created with. Applicable if the connection was created with a ServiceToken (a-side) or ZSideServiceToken (z-side) VendorToken *string `json:"vendorToken,omitempty" tf:"vendor_token,omitempty"` + // Unique identifier of the port on the remote/destination side + // (z-side). Allows you to connect between your own ports or virtual devices across your company's + // Equinix Fabric deployment, with no need for a private service profile. + // Unique identifier of the port on the remote side (z-side) ZsidePortUUID *string `json:"zsidePortUuid,omitempty" tf:"zside_port_uuid,omitempty"` + // C-Tag/Inner-Tag of the connection on the remote/destination + // side (z-side) - a numeric character ranging from 2 - 4094. + // secondary_connection is defined it will internally use same zside_vlan_ctag for the secondary + // connection. + // C-Tag/Inner-Tag of the connection on the remote side (z-side) ZsideVlanCtag *float64 `json:"zsideVlanCtag,omitempty" tf:"zside_vlan_ctag,omitempty"` + // S-Tag/Outer-Tag of the connection on the remote/destination + // side (z-side) - a numeric character ranging from 2 - 4094. + // S-Tag/Outer-Tag of the connection on the remote side (z-side) ZsideVlanStag *float64 `json:"zsideVlanStag,omitempty" tf:"zside_vlan_stag,omitempty"` } type SecondaryConnectionParameters struct { + // Unique identifier authorizing Equinix to provision a connection + // towards a cloud service provider. If not specified primary authorization_key will be used. However, + // some service providers may require different keys for each connection. More information on + // Equinix Fabric how to guide. // Text field used to authorize connection on the provider side. Value depends on a provider service profile used for connection // +kubebuilder:validation:Optional AuthorizationKey *string `json:"authorizationKey,omitempty" tf:"authorization_key,omitempty"` + // Applicable with device_uuid, identifier of network interface + // on a given device. If not specified then first available interface will be selected. // Identifier of network interface on a given device, used for a connection. If not specified then first available interface will be selected // +kubebuilder:validation:Optional DeviceInterfaceID *float64 `json:"deviceInterfaceId,omitempty" tf:"device_interface_id,omitempty"` + // Applicable with primary device_uuid. Identifier of the Network Edge + // virtual device from which the secondary connection would originate. If not specified primary + // device_uuid will be used. // Unique identifier of the Network Edge virtual device from which the connection would originate // +kubebuilder:validation:Optional DeviceUUID *string `json:"deviceUuid,omitempty" tf:"device_uuid,omitempty"` + // secondary connection name // Connection name. An alpha-numeric 24 characters string which can include only hyphens and underscores // +kubebuilder:validation:Required Name *string `json:"name" tf:"name,omitempty"` + // Applicable with primary port_uuid. Identifier of the Equinix Fabric Port from + // which the secondary connection would originate. If not specified primary port_uuid will be used. // Unique identifier of the buyer's port from which the connection would originate // +kubebuilder:validation:Optional PortUUID *string `json:"portUuid,omitempty" tf:"port_uuid,omitempty"` + // Unique identifier of the service provider's profile. // Unique identifier of the service provider's service profile // +kubebuilder:validation:Optional ProfileUUID *string `json:"profileUuid,omitempty" tf:"profile_uuid,omitempty"` + // The metro code that denotes the secondary connection’s + // destination (Z side). . // The metro code that denotes the connection's remote side (z-side) // +kubebuilder:validation:Optional SellerMetroCode *string `json:"sellerMetroCode,omitempty" tf:"seller_metro_code,omitempty"` + // The region in which the seller port resides. If not specified + // primary seller_region will be used. // The region in which the seller port resides // +kubebuilder:validation:Optional SellerRegion *string `json:"sellerRegion,omitempty" tf:"seller_region,omitempty"` + // Required with primary service_token. Unique Equinix Fabric key + // given by a provider that grants you authorization to enable connectivity from an Equinix Fabric Port or + // virtual device. Each connection (primary and secondary) requires a separate token. + // More details in Fabric Service Tokens. // Unique Equinix Fabric key given by a provider that grants you authorization to enable connectivity from a shared multi-tenant port (a-side) // +kubebuilder:validation:Optional ServiceToken *string `json:"serviceToken,omitempty" tf:"service_token,omitempty"` + // Speed/Bandwidth to be allocated to the secondary connection. If not + // specified primary speed will be used. // Speed/Bandwidth to be allocated to the connection // +kubebuilder:validation:Optional Speed *float64 `json:"speed,omitempty" tf:"speed,omitempty"` + // Unit of the speed/bandwidth to be allocated to the secondary + // connection. If not specified primary speed_unit will be used. // Unit of the speed/bandwidth to be allocated to the connection // +kubebuilder:validation:Optional SpeedUnit *string `json:"speedUnit,omitempty" tf:"speed_unit,omitempty"` + // Applicable with port_uuid. C-Tag/Inner-Tag of the secondary + // connection, a numeric character ranging from 2 - 4094. // C-Tag/Inner-Tag of the connection, a numeric character ranging from 2 - 4094 // +kubebuilder:validation:Optional VlanCtag *float64 `json:"vlanCtag,omitempty" tf:"vlan_ctag,omitempty"` + // S-Tag/Outer-Tag of the secondary connection, a + // numeric character ranging from 2 - 4094. // S-Tag/Outer-Tag of the connection, a numeric character ranging from 2 - 4094 // +kubebuilder:validation:Optional VlanStag *float64 `json:"vlanStag,omitempty" tf:"vlan_stag,omitempty"` @@ -308,13 +446,13 @@ type L2ConnectionStatus struct { // +kubebuilder:object:root=true -// L2Connection is the Schema for the L2Connections API +// L2Connection is the Schema for the L2Connections API. // +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,equinixjet} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,equinix} type L2Connection struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/ecx/v1alpha1/zz_l2connectionaccepter_types.go b/apis/ecx/v1alpha1/zz_l2connectionaccepter_types.go index ea83191..c41df9c 100755 --- a/apis/ecx/v1alpha1/zz_l2connectionaccepter_types.go +++ b/apis/ecx/v1alpha1/zz_l2connectionaccepter_types.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package v1alpha1 @@ -26,6 +26,10 @@ import ( ) type L2ConnectionAccepterObservation struct { + + // Identifier of a hosted Direct Connect connection on AWS side, + // applicable for accepter resource with connections to AWS only. + // Identifier of a hosted Direct Connect connection on AWS side, applicable for accepter resource with connections to AWS only AwsConnectionID *string `json:"awsConnectionId,omitempty" tf:"aws_connection_id,omitempty"` ID *string `json:"id,omitempty" tf:"id,omitempty"` @@ -33,18 +37,22 @@ type L2ConnectionAccepterObservation struct { type L2ConnectionAccepterParameters struct { + // and secret_key resource arguments // Access Key used to accept connection on provider side // +kubebuilder:validation:Optional AccessKeySecretRef *v1.SecretKeySelector `json:"accessKeySecretRef,omitempty" tf:"-"` + // argument or AWS_PROFILE environmental variable // AWS Profile Name for retrieving credentials from shared credentials file // +kubebuilder:validation:Optional AwsProfile *string `json:"awsProfile,omitempty" tf:"aws_profile,omitempty"` + // Identifier of Layer 2 connection that will be accepted. // Identifier of layer 2 connection that will be accepted // +kubebuilder:validation:Required ConnectionID *string `json:"connectionId" tf:"connection_id,omitempty"` + // Secret Key used to accept connection on provider side. // Secret Key used to accept connection on provider side // +kubebuilder:validation:Optional SecretKeySecretRef *v1.SecretKeySelector `json:"secretKeySecretRef,omitempty" tf:"-"` @@ -64,13 +72,13 @@ type L2ConnectionAccepterStatus struct { // +kubebuilder:object:root=true -// L2ConnectionAccepter is the Schema for the L2ConnectionAccepters API +// L2ConnectionAccepter is the Schema for the L2ConnectionAccepters API. // +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,equinixjet} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,equinix} type L2ConnectionAccepter struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/ecx/v1alpha1/zz_l2serviceprofile_types.go b/apis/ecx/v1alpha1/zz_l2serviceprofile_types.go index bb2489b..e5e7963 100755 --- a/apis/ecx/v1alpha1/zz_l2serviceprofile_types.go +++ b/apis/ecx/v1alpha1/zz_l2serviceprofile_types.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package v1alpha1 @@ -30,10 +30,14 @@ type FeaturesObservation struct { type FeaturesParameters struct { + // Indicates whether or not connections to this profile + // can be created from remote metro locations. // Indicates whether or not connections to this profile can be created from remote metro locations // +kubebuilder:validation:Required AllowRemoteConnections *bool `json:"allowRemoteConnections" tf:"allow_remote_connections,omitempty"` + // (Deprecated) Indicates whether or not this profile can be used for test + // connections. // Indicates whether or not this profile can be used for test connections // +kubebuilder:validation:Optional TestProfile *bool `json:"testProfile,omitempty" tf:"test_profile,omitempty"` @@ -42,109 +46,172 @@ type FeaturesParameters struct { type L2ServiceprofileObservation struct { ID *string `json:"id,omitempty" tf:"id,omitempty"` + // Service profile provisioning status. + // Service profile provisioning status State *string `json:"state,omitempty" tf:"state,omitempty"` + // Unique identifier of the service profile. + // Unique identifier of the service profile UUID *string `json:"uuid,omitempty" tf:"uuid,omitempty"` } type L2ServiceprofileParameters struct { + // Boolean value that determines if API integration is enabled. It + // allows you to complete connection provisioning in less than five minutes. Without API Integration, + // additional manual steps will be required and the provisioning will likely take longer. // Specifies the API integration ID that was provided to the customer during onboarding // +kubebuilder:validation:Optional APIIntegration *bool `json:"apiIntegration,omitempty" tf:"api_integration,omitempty"` + // Name of the authentication key label to be used by the + // Authentication Key service. It allows Service Providers with QinQ ports to accept groups of + // connections or VLANs from Dot1q customers. This is similar to S-Tag/C-Tag capabilities. // Name of the authentication key label to be used by the Authentication Key service // +kubebuilder:validation:Optional AuthkeyLabel *string `json:"authkeyLabel,omitempty" tf:"authkey_label,omitempty"` + // Specifies the port bandwidth threshold percentage. If + // the bandwidth limit is met or exceeded, an alert is sent to the seller. // Specifies the port bandwidth threshold percentage. If the bandwidth limit is met or exceeded, an alert is sent to the seller // +kubebuilder:validation:Optional BandwidthAlertThreshold *float64 `json:"bandwidthAlertThreshold,omitempty" tf:"bandwidth_alert_threshold,omitempty"` + // A list of email addresses that will receive + // notifications about bandwidth thresholds. // A list of email addresses that will receive notifications about bandwidth thresholds // +kubebuilder:validation:Required BandwidthThresholdNotifications []*string `json:"bandwidthThresholdNotifications" tf:"bandwidth_threshold_notifications,omitempty"` + // Custom name used for calling a connections + // e.g. circuit. Defaults to Connection. // Custom name used for calling a connections i.e. circuit. Defaults to Connection // +kubebuilder:validation:Optional ConnectionNameLabel *string `json:"connectionNameLabel,omitempty" tf:"connection_name_label,omitempty"` + // C-Tag/Inner-Tag label name for the connections. // C-Tag/Inner-Tag label name for the connections // +kubebuilder:validation:Optional CtagLabel *string `json:"ctagLabel,omitempty" tf:"ctag_label,omitempty"` + // Description of the service profile. // Description of the service profile // +kubebuilder:validation:Optional Description *string `json:"description,omitempty" tf:"description,omitempty"` + // Applicable when api_integration is set to true. It + // indicates whether the port and VLAN details are managed by Equinix. // Boolean value that indicates whether the port and VLAN details are managed by Equinix // +kubebuilder:validation:Optional EquinixManagedPortVlan *bool `json:"equinixManagedPortVlan,omitempty" tf:"equinix_managed_port_vlan,omitempty"` + // Block of profile features configuration. See Features below + // for more details. // Block of profile features configuration // +kubebuilder:validation:Required Features []FeaturesParameters `json:"features" tf:"features,omitempty"` + // Specifies the API integration ID that was provided to the customer + // during onboarding. You can validate your API integration ID using the validateIntegrationId API. // Specifies the API integration ID that was provided to the customer during onboarding // +kubebuilder:validation:Optional IntegrationID *string `json:"integrationId,omitempty" tf:"integration_id,omitempty"` + // Name of the service profile. An alpha-numeric 50 characters string which can + // include only hyphens and underscores. // Name of the service profile. An alpha-numeric 50 characters string which can include only hyphens and underscores // +kubebuilder:validation:Required Name *string `json:"name" tf:"name,omitempty"` + // You can set an alert for when a percentage of your profile has + // been sold. Service providers like to use this functionality to alert them when they need to add + // more ports or when they need to create a new service profile. Required with + // oversubscription_allowed, defaults to 1x. // Oversubscription limit that will cause alerting. Default is 1x // +kubebuilder:validation:Optional Oversubscription *string `json:"oversubscription,omitempty" tf:"oversubscription,omitempty"` + // Boolean value that determines if, regardless of the + // utilization, Equinix Fabric will continue to add connections to your links until we reach the + // oversubscription limit. By selecting this service, you acknowledge that you will manage decisions + // on when to increase capacity on these link. // Boolean value that determines if, regardless of the utilization, Equinix Fabric will continue to add connections to your links until we reach the oversubscription limit // +kubebuilder:validation:Optional OversubscriptionAllowed *bool `json:"oversubscriptionAllowed,omitempty" tf:"oversubscription_allowed,omitempty"` + // One or more definitions of ports residing in locations, from which your + // customers will be able to access services using this service profile. See Port below for + // more details. // One or more definitions of ports associated with the profile // +kubebuilder:validation:Required Port []PortParameters `json:"port" tf:"port,omitempty"` + // Boolean value that indicates whether or not this is a private profile, + // i.e. not public like AWS/Azure/Oracle/Google, etc. If private, it can only be available for + // creating connections if correct permissions are granted. // Boolean value that indicates whether or not this is a private profile. // +kubebuilder:validation:Optional Private *bool `json:"private,omitempty" tf:"private,omitempty"` + // An array of users email ids who have permission to access this + // service profile. Argument is required when profile is set as private. // A list of email addresses associated to users that will be allowed to access this service profile. Applicable for private profiles // +kubebuilder:validation:Optional PrivateUserEmails []*string `json:"privateUserEmails,omitempty" tf:"private_user_emails,omitempty"` + // A list of email addresses that will receive + // notifications about profile status changes. // A list of email addresses that will receive notifications about profile status changes // +kubebuilder:validation:Required ProfileStatuschangeNotifications []*string `json:"profileStatuschangeNotifications" tf:"profile_statuschange_notifications,omitempty"` + // Boolean value that determines if your connections will require + // redundancy. if yes, then users need to create a secondary redundant connection. // Boolean value that determines if yourconnections will require redundancy // +kubebuilder:validation:Optional RedundancyRequired *bool `json:"redundancyRequired,omitempty" tf:"redundancy_required,omitempty"` + // Indicates whether the VLAN ID of. the secondary + // connection is the same as the primary connection. // Indicates whether the VLAN ID of the secondary connection is the same as the primary connection // +kubebuilder:validation:Optional SecondaryVlanFromPrimary *bool `json:"secondaryVlanFromPrimary,omitempty" tf:"secondary_vlan_from_primary,omitempty"` + // Boolean value that indicates whether multiple connections + // can be created with the same authorization key to connect to this service profile after the first + // connection has been approved by the seller. // Boolean value that indicates whether multiple connections can be created with the same authorization key // +kubebuilder:validation:Optional ServicekeyAutogenerated *bool `json:"servicekeyAutogenerated,omitempty" tf:"servicekey_autogenerated,omitempty"` + // One or more definitions of supported speed/bandwidth. Argument is + // required when speed_from_api is set to false. See Speed Band below for more + // details. // One or more definitions of supported speed/bandwidth configurations // +kubebuilder:validation:Optional SpeedBand []SpeedBandParameters `json:"speedBand,omitempty" tf:"speed_band,omitempty"` + // Boolean value that determines if customer is allowed + // to enter a custom connection speed. // Boolean value that determines if customer is allowed to enter a custom connection speed // +kubebuilder:validation:Optional SpeedCustomizationAllowed *bool `json:"speedCustomizationAllowed,omitempty" tf:"speed_customization_allowed,omitempty"` + // Boolean valuta that determines if connection speed will be derived + // from an API call. Argument has to be specified when api_integration is enabled. // Boolean valuta that determines if connection speed will be derived from an API call // +kubebuilder:validation:Optional SpeedFromAPI *bool `json:"speedFromApi,omitempty" tf:"speed_from_api,omitempty"` + // Specifies additional tagging information required by the seller profile + // for Dot1Q to QinQ translation. See Enhance Dot1q to QinQ translation support + // for additional information. Valid values are: // Specifies additional tagging information required by the seller profile for Dot1Q to QinQ translation // +kubebuilder:validation:Optional TagType *string `json:"tagType,omitempty" tf:"tag_type,omitempty"` + // A list of email addresses that will receive + // notifications about connections approvals and rejections. // A list of email addresses that will receive notifications about connections approvals and rejections // +kubebuilder:validation:Required VcStatuschangeNotifications []*string `json:"vcStatuschangeNotifications" tf:"vc_statuschange_notifications,omitempty"` @@ -155,10 +222,12 @@ type PortObservation struct { type PortParameters struct { + // The metro code of location where the port resides. // Port location metro code // +kubebuilder:validation:Required MetroCode *string `json:"metroCode" tf:"metro_code,omitempty"` + // Unique identifier of the port. // Unique identifier of the port // +kubebuilder:validation:Required UUID *string `json:"uuid" tf:"uuid,omitempty"` @@ -169,10 +238,13 @@ type SpeedBandObservation struct { type SpeedBandParameters struct { + // Speed/bandwidth supported by this service profile. // Speed/bandwidth supported by given service profile // +kubebuilder:validation:Required Speed *float64 `json:"speed" tf:"speed,omitempty"` + // Unit of the speed/bandwidth supported by this service profile. One of + // MB, GB. // Unit of the speed/bandwidth supported by given service profile // +kubebuilder:validation:Required SpeedUnit *string `json:"speedUnit" tf:"speed_unit,omitempty"` @@ -192,13 +264,13 @@ type L2ServiceprofileStatus struct { // +kubebuilder:object:root=true -// L2Serviceprofile is the Schema for the L2Serviceprofiles API +// L2Serviceprofile is the Schema for the L2Serviceprofiles API. // +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,equinixjet} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,equinix} type L2Serviceprofile struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/fabric/v1alpha1/zz_connection_types.go b/apis/fabric/v1alpha1/zz_connection_types.go index 6f28c92..85fa2f0 100755 --- a/apis/fabric/v1alpha1/zz_connection_types.go +++ b/apis/fabric/v1alpha1/zz_connection_types.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package v1alpha1 @@ -26,8 +26,13 @@ import ( ) type ASideObservation struct { + + // Point of access details + // +kubebuilder:validation:Optional AccessPoint []AccessPointObservation `json:"accessPoint,omitempty" tf:"access_point,omitempty"` + // For service token based connections, Service tokens authorize users to access protected resources and services. Resource owners can distribute the tokens to trusted partners and vendors, allowing selected third parties to work directly with Equinix network assets + // +kubebuilder:validation:Optional ServiceToken []ServiceTokenObservation `json:"serviceToken,omitempty" tf:"service_token,omitempty"` } @@ -66,6 +71,8 @@ type AccessPointAccountParameters struct { } type AccessPointGatewayObservation struct { + + // Unique Resource Identifier Href *string `json:"href,omitempty" tf:"href,omitempty"` } @@ -77,6 +84,8 @@ type AccessPointGatewayParameters struct { } type AccessPointInterfaceObservation struct { + + // id ID *string `json:"id,omitempty" tf:"id,omitempty"` } @@ -136,16 +145,28 @@ type AccessPointLocationParameters struct { } type AccessPointObservation struct { + + // Account Account []AccountObservation `json:"account,omitempty" tf:"account,omitempty"` + // Gateway access point information + // +kubebuilder:validation:Optional Gateway []GatewayObservation `json:"gateway,omitempty" tf:"gateway,omitempty"` + // Virtual device interface + // +kubebuilder:validation:Optional Interface []InterfaceObservation `json:"interface,omitempty" tf:"interface,omitempty"` + // Port access point information + // +kubebuilder:validation:Optional Port []PortObservation `json:"port,omitempty" tf:"port,omitempty"` + // Service Profile + // +kubebuilder:validation:Optional Profile []ProfileObservation `json:"profile,omitempty" tf:"profile,omitempty"` + // Virtual device + // +kubebuilder:validation:Optional VirtualDevice []VirtualDeviceObservation `json:"virtualDevice,omitempty" tf:"virtual_device,omitempty"` } @@ -205,10 +226,14 @@ type AccessPointParameters struct { } type AccessPointPortObservation struct { + + // Unique Resource Identifier Href *string `json:"href,omitempty" tf:"href,omitempty"` + // Port name Name *string `json:"name,omitempty" tf:"name,omitempty"` + // Redundancy Information Redundancy []PortRedundancyObservation `json:"redundancy,omitempty" tf:"redundancy,omitempty"` } @@ -220,12 +245,17 @@ type AccessPointPortParameters struct { } type AccessPointProfileObservation struct { + + // Access point config information AccessPointTypeConfigs []ProfileAccessPointTypeConfigsObservation `json:"accessPointTypeConfigs,omitempty" tf:"access_point_type_configs,omitempty"` + // User-provided service description Description *string `json:"description,omitempty" tf:"description,omitempty"` + // Service Profile URI response attribute Href *string `json:"href,omitempty" tf:"href,omitempty"` + // Customer-assigned service profile name Name *string `json:"name,omitempty" tf:"name,omitempty"` } @@ -268,6 +298,8 @@ type AccessPointTypeConfigsParameters struct { } type AccessPointVirtualDeviceObservation struct { + + // Unique Resource Identifier Href *string `json:"href,omitempty" tf:"href,omitempty"` } @@ -378,30 +410,48 @@ type ConnectionAdditionalInfoParameters struct { } type ConnectionObservation struct { + + // Requester or Customer side connection configuration object of the multi-segment connection + // +kubebuilder:validation:Required ASide []ASideObservation `json:"aSide,omitempty" tf:"a_side,omitempty"` + // Customer account information that is associated with this connection Account []ConnectionAccountObservation `json:"account,omitempty" tf:"account,omitempty"` + // Captures connection lifecycle change information ChangeLog []ChangeLogObservation `json:"changeLog,omitempty" tf:"change_log,omitempty"` + // Connection directionality from the requester point of view Direction *string `json:"direction,omitempty" tf:"direction,omitempty"` + // Connection URI information Href *string `json:"href,omitempty" tf:"href,omitempty"` ID *string `json:"id,omitempty" tf:"id,omitempty"` + // Connection property derived from access point locations IsRemote *bool `json:"isRemote,omitempty" tf:"is_remote,omitempty"` + // Connection type-specific operational data Operation []OperationObservation `json:"operation,omitempty" tf:"operation,omitempty"` + // Order related to this connection information + // +kubebuilder:validation:Optional Order []OrderObservation `json:"order,omitempty" tf:"order,omitempty"` + // Project information + // +kubebuilder:validation:Optional Project []ProjectObservation `json:"project,omitempty" tf:"project,omitempty"` + // Redundancy Information + // +kubebuilder:validation:Optional Redundancy []ConnectionRedundancyObservation `json:"redundancy,omitempty" tf:"redundancy,omitempty"` + // Connection overall state State *string `json:"state,omitempty" tf:"state,omitempty"` + // Destination or Provider side connection configuration object of the multi-segment connection + // +kubebuilder:validation:Required ZSide []ZSideObservation `json:"zSide,omitempty" tf:"z_side,omitempty"` } @@ -449,6 +499,8 @@ type ConnectionParameters struct { } type ConnectionRedundancyObservation struct { + + // Redundancy group identifier Group *string `json:"group,omitempty" tf:"group,omitempty"` } @@ -486,6 +538,8 @@ type ErrorsParameters struct { } type GatewayObservation struct { + + // Unique Resource Identifier Href *string `json:"href,omitempty" tf:"href,omitempty"` } @@ -497,6 +551,8 @@ type GatewayParameters struct { } type InterfaceObservation struct { + + // id ID *string `json:"id,omitempty" tf:"id,omitempty"` } @@ -585,8 +641,11 @@ type OperationParameters struct { } type OrderObservation struct { + + // Order Identification OrderID *string `json:"orderId,omitempty" tf:"order_id,omitempty"` + // Order Reference Number OrderNumber *string `json:"orderNumber,omitempty" tf:"order_number,omitempty"` } @@ -602,10 +661,14 @@ type OrderParameters struct { } type PortObservation struct { + + // Unique Resource Identifier Href *string `json:"href,omitempty" tf:"href,omitempty"` + // Port name Name *string `json:"name,omitempty" tf:"name,omitempty"` + // Redundancy Information Redundancy []RedundancyObservation `json:"redundancy,omitempty" tf:"redundancy,omitempty"` } @@ -633,12 +696,17 @@ type ProfileAccessPointTypeConfigsParameters struct { } type ProfileObservation struct { + + // Access point config information AccessPointTypeConfigs []AccessPointTypeConfigsObservation `json:"accessPointTypeConfigs,omitempty" tf:"access_point_type_configs,omitempty"` + // User-provided service description Description *string `json:"description,omitempty" tf:"description,omitempty"` + // Service Profile URI response attribute Href *string `json:"href,omitempty" tf:"href,omitempty"` + // Customer-assigned service profile name Name *string `json:"name,omitempty" tf:"name,omitempty"` } @@ -654,8 +722,11 @@ type ProfileParameters struct { } type ProjectObservation struct { + + // Unique Resource URL Href *string `json:"href,omitempty" tf:"href,omitempty"` + // Project Id ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` } @@ -688,8 +759,11 @@ type RoutingProtocolsParameters struct { } type ServiceTokenObservation struct { + + // Service token description Description *string `json:"description,omitempty" tf:"description,omitempty"` + // An absolute URL that is the subject of the link's context Href *string `json:"href,omitempty" tf:"href,omitempty"` } @@ -705,6 +779,8 @@ type ServiceTokenParameters struct { } type VirtualDeviceObservation struct { + + // Unique Resource Identifier Href *string `json:"href,omitempty" tf:"href,omitempty"` } @@ -720,16 +796,28 @@ type VirtualDeviceParameters struct { } type ZSideAccessPointObservation struct { + + // Account Account []AccessPointAccountObservation `json:"account,omitempty" tf:"account,omitempty"` + // Gateway access point information + // +kubebuilder:validation:Optional Gateway []AccessPointGatewayObservation `json:"gateway,omitempty" tf:"gateway,omitempty"` + // Virtual device interface + // +kubebuilder:validation:Optional Interface []AccessPointInterfaceObservation `json:"interface,omitempty" tf:"interface,omitempty"` + // Port access point information + // +kubebuilder:validation:Optional Port []AccessPointPortObservation `json:"port,omitempty" tf:"port,omitempty"` + // Service Profile + // +kubebuilder:validation:Optional Profile []AccessPointProfileObservation `json:"profile,omitempty" tf:"profile,omitempty"` + // Virtual device + // +kubebuilder:validation:Optional VirtualDevice []AccessPointVirtualDeviceObservation `json:"virtualDevice,omitempty" tf:"virtual_device,omitempty"` } @@ -803,8 +891,13 @@ type ZSideAdditionalInfoParameters struct { } type ZSideObservation struct { + + // Point of access details + // +kubebuilder:validation:Optional AccessPoint []ZSideAccessPointObservation `json:"accessPoint,omitempty" tf:"access_point,omitempty"` + // For service token based connections, Service tokens authorize users to access protected resources and services. Resource owners can distribute the tokens to trusted partners and vendors, allowing selected third parties to work directly with Equinix network assets + // +kubebuilder:validation:Optional ServiceToken []ZSideServiceTokenObservation `json:"serviceToken,omitempty" tf:"service_token,omitempty"` } @@ -824,8 +917,11 @@ type ZSideParameters struct { } type ZSideServiceTokenObservation struct { + + // Service token description Description *string `json:"description,omitempty" tf:"description,omitempty"` + // An absolute URL that is the subject of the link's context Href *string `json:"href,omitempty" tf:"href,omitempty"` } @@ -854,13 +950,13 @@ type ConnectionStatus struct { // +kubebuilder:object:root=true -// Connection is the Schema for the Connections API +// Connection is the Schema for the Connections API. // +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,equinixjet} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,equinix} type Connection struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/fabric/v1alpha1/zz_generated_terraformed.go b/apis/fabric/v1alpha1/zz_generated_terraformed.go index 8f4a1eb..24b8549 100755 --- a/apis/fabric/v1alpha1/zz_generated_terraformed.go +++ b/apis/fabric/v1alpha1/zz_generated_terraformed.go @@ -14,15 +14,15 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package v1alpha1 import ( "github.com/pkg/errors" - "github.com/crossplane/terrajet/pkg/resource" - "github.com/crossplane/terrajet/pkg/resource/json" + "github.com/upbound/upjet/pkg/resource" + "github.com/upbound/upjet/pkg/resource/json" ) // GetTerraformResourceType returns Terraform resource type for this Connection @@ -36,17 +36,17 @@ func (tr *Connection) GetConnectionDetailsMapping() map[string]string { } // GetObservation of this Connection -func (tr *Connection) GetObservation() (map[string]interface{}, error) { +func (tr *Connection) GetObservation() (map[string]any, error) { o, err := json.TFParser.Marshal(tr.Status.AtProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(o, &base) } // SetObservation for this Connection -func (tr *Connection) SetObservation(obs map[string]interface{}) error { +func (tr *Connection) SetObservation(obs map[string]any) error { p, err := json.TFParser.Marshal(obs) if err != nil { return err @@ -63,17 +63,17 @@ func (tr *Connection) GetID() string { } // GetParameters of this Connection -func (tr *Connection) GetParameters() (map[string]interface{}, error) { +func (tr *Connection) GetParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.ForProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(p, &base) } // SetParameters for this Connection -func (tr *Connection) SetParameters(params map[string]interface{}) error { +func (tr *Connection) SetParameters(params map[string]any) error { p, err := json.TFParser.Marshal(params) if err != nil { return err @@ -110,17 +110,17 @@ func (tr *ServiceProfile) GetConnectionDetailsMapping() map[string]string { } // GetObservation of this ServiceProfile -func (tr *ServiceProfile) GetObservation() (map[string]interface{}, error) { +func (tr *ServiceProfile) GetObservation() (map[string]any, error) { o, err := json.TFParser.Marshal(tr.Status.AtProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(o, &base) } // SetObservation for this ServiceProfile -func (tr *ServiceProfile) SetObservation(obs map[string]interface{}) error { +func (tr *ServiceProfile) SetObservation(obs map[string]any) error { p, err := json.TFParser.Marshal(obs) if err != nil { return err @@ -137,17 +137,17 @@ func (tr *ServiceProfile) GetID() string { } // GetParameters of this ServiceProfile -func (tr *ServiceProfile) GetParameters() (map[string]interface{}, error) { +func (tr *ServiceProfile) GetParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.ForProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(p, &base) } // SetParameters for this ServiceProfile -func (tr *ServiceProfile) SetParameters(params map[string]interface{}) error { +func (tr *ServiceProfile) SetParameters(params map[string]any) error { p, err := json.TFParser.Marshal(params) if err != nil { return err diff --git a/apis/fabric/v1alpha1/zz_groupversion_info.go b/apis/fabric/v1alpha1/zz_groupversion_info.go index da229a2..5c1e8b3 100755 --- a/apis/fabric/v1alpha1/zz_groupversion_info.go +++ b/apis/fabric/v1alpha1/zz_groupversion_info.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. // +kubebuilder:object:generate=true // +groupName=fabric.equinix.jet.crossplane.io diff --git a/apis/fabric/v1alpha1/zz_serviceprofile_types.go b/apis/fabric/v1alpha1/zz_serviceprofile_types.go index ca79a1d..abc1ced 100755 --- a/apis/fabric/v1alpha1/zz_serviceprofile_types.go +++ b/apis/fabric/v1alpha1/zz_serviceprofile_types.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package v1alpha1 @@ -244,6 +244,8 @@ type ProcessStepParameters struct { } type ServiceProfileAccessPointTypeConfigsObservation struct { + + // Colo/Port Uuid UUID *string `json:"uuid,omitempty" tf:"uuid,omitempty"` } @@ -388,16 +390,24 @@ type ServiceProfileNotificationsParameters struct { } type ServiceProfileObservation struct { + + // Access point config information + // +kubebuilder:validation:Optional AccessPointTypeConfigs []ServiceProfileAccessPointTypeConfigsObservation `json:"accessPointTypeConfigs,omitempty" tf:"access_point_type_configs,omitempty"` + // Captures connection lifecycle change information ChangeLog []ServiceProfileChangeLogObservation `json:"changeLog,omitempty" tf:"change_log,omitempty"` + // Service Profile URI response attribute Href *string `json:"href,omitempty" tf:"href,omitempty"` ID *string `json:"id,omitempty" tf:"id,omitempty"` + // Project information + // +kubebuilder:validation:Optional Project []ServiceProfileProjectObservation `json:"project,omitempty" tf:"project,omitempty"` + // Equinix assigned service profile identifier UUID *string `json:"uuid,omitempty" tf:"uuid,omitempty"` } @@ -473,8 +483,11 @@ type ServiceProfileParameters struct { } type ServiceProfileProjectObservation struct { + + // Unique Resource URL Href *string `json:"href,omitempty" tf:"href,omitempty"` + // Project Id ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` } @@ -539,13 +552,13 @@ type ServiceProfileStatus struct { // +kubebuilder:object:root=true -// ServiceProfile is the Schema for the ServiceProfiles API +// ServiceProfile is the Schema for the ServiceProfiles API. // +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,equinixjet} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,equinix} type ServiceProfile struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/generate.go b/apis/generate.go index 558a770..c95351b 100644 --- a/apis/generate.go +++ b/apis/generate.go @@ -24,13 +24,17 @@ limitations under the License. //go:generate rm -rf ../package/crds // Remove generated files -//go:generate bash -c "find . -iname 'zz_*' -delete" +//go:generate bash -c "find . -iname 'zz_*' ! -iname 'zz_generated.managed*.go' -delete" //go:generate bash -c "find . -type d -empty -delete" //go:generate bash -c "find ../internal/controller -iname 'zz_*' -delete" //go:generate bash -c "find ../internal/controller -type d -empty -delete" +//go:generate rm -rf ../examples-generated -// Run Terrajet generator -//go:generate go run -tags generate ../cmd/generator/main.go .. "${TERRAFORM_PROVIDER_SOURCE}" +// Generate documentation from Terraform docs. +//go:generate go run github.com/upbound/upjet/cmd/scraper -n ${TERRAFORM_PROVIDER_SOURCE} -r ../.work/${TERRAFORM_PROVIDER_SOURCE}/${TERRAFORM_DOCS_PATH} -o ../config/provider-metadata.yaml --prelude-xpath "//text()[contains(., \"subcategory\")]" + +// Run Upjet generator +//go:generate go run ../cmd/generator/main.go .. // Generate deepcopy methodsets and CRD manifests //go:generate go run -tags generate sigs.k8s.io/controller-tools/cmd/controller-gen object:headerFile=../hack/boilerplate.go.txt paths=./... crd:allowDangerousTypes=true,crdVersions=v1 output:artifacts:config=../package/crds diff --git a/apis/metal/v1alpha1/zz_bgpsession_types.go b/apis/metal/v1alpha1/zz_bgpsession_types.go index 6595b66..8434046 100755 --- a/apis/metal/v1alpha1/zz_bgpsession_types.go +++ b/apis/metal/v1alpha1/zz_bgpsession_types.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package v1alpha1 @@ -28,6 +28,7 @@ import ( type BGPSessionObservation struct { ID *string `json:"id,omitempty" tf:"id,omitempty"` + // Status of the session - up or down Status *string `json:"status,omitempty" tf:"status,omitempty"` } @@ -46,9 +47,11 @@ type BGPSessionParameters struct { // +kubebuilder:validation:Optional DeviceID *string `json:"deviceId,omitempty" tf:"device_id,omitempty"` + // Reference to a Device to populate deviceId. // +kubebuilder:validation:Optional DeviceIDRef *v1.Reference `json:"deviceIdRef,omitempty" tf:"-"` + // Selector for a Device to populate deviceId. // +kubebuilder:validation:Optional DeviceIDSelector *v1.Selector `json:"deviceIdSelector,omitempty" tf:"-"` } @@ -67,13 +70,13 @@ type BGPSessionStatus struct { // +kubebuilder:object:root=true -// BGPSession is the Schema for the BGPSessions API +// BGPSession is the Schema for the BGPSessions API. // +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,equinixjet} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,equinix} type BGPSession struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/metal/v1alpha1/zz_connection_types.go b/apis/metal/v1alpha1/zz_connection_types.go index 5dde5b3..18f3c31 100755 --- a/apis/metal/v1alpha1/zz_connection_types.go +++ b/apis/metal/v1alpha1/zz_connection_types.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package v1alpha1 @@ -28,79 +28,105 @@ import ( type ConnectionObservation struct { ID *string `json:"id,omitempty" tf:"id,omitempty"` + // List of connection ports - primary (ports[0]) and secondary (ports[1]). Schema of + // port is described in documentation of the + // equinix_metal_connection datasource. + // List of connection ports - primary (`ports[0]`) and secondary (`ports[1]`) Ports []PortsObservation `json:"ports,omitempty" tf:"ports,omitempty"` + // List of connection service tokens with attributes required to configure the connection in Equinix Fabric with the equinix_ecx_l2_connection resource or from the Equinix Fabric Portal. Scehma of service_token is described in documentation of the equinix_metal_connection datasource. + // Only used with shared connection. List of service tokens required to continue the setup process with [equinix_ecx_l2_connection](https://registry.io/providers/equinix/equinix/latest/docs/resources/equinix_ecx_l2_connection) or from the [Equinix Fabric Portal](https://ecxfabric.equinix.com/dashboard) ServiceTokens []ServiceTokensObservation `json:"serviceTokens,omitempty" tf:"service_tokens,omitempty"` + // Status of the connection resource. + // Status of the connection resource Status *string `json:"status,omitempty" tf:"status,omitempty"` + // (Deprecated) Fabric Token required to configure the connection in Equinix Fabric with the equinix_ecx_l2_connection resource or from the Equinix Fabric Portal. If your organization already has connection service tokens enabled, use service_tokens instead. + // Only used with shared connection. Fabric Token required to continue the setup process with [equinix_ecx_l2_connection](https://registry.io/providers/equinix/equinix/latest/docs/resources/equinix_ecx_l2_connection) or from the [Equinix Fabric Portal](https://ecxfabric.equinix.com/dashboard) Token *string `json:"token,omitempty" tf:"token,omitempty"` } type ConnectionParameters struct { + // Description for the connection resource. // Description of the connection resource // +kubebuilder:validation:Optional Description *string `json:"description,omitempty" tf:"description,omitempty"` + // Facility where the connection will be created. // Facility where the connection will be created // +kubebuilder:validation:Optional Facility *string `json:"facility,omitempty" tf:"facility,omitempty"` + // Metro where the connection will be created. // Metro where the connection will be created // +kubebuilder:validation:Optional Metro *string `json:"metro,omitempty" tf:"metro,omitempty"` + // Mode for connections in IBX facilities with the dedicated type - standard or tunnel. Default is standard. // Mode for connections in IBX facilities with the dedicated type - standard or tunnel // +kubebuilder:validation:Optional Mode *string `json:"mode,omitempty" tf:"mode,omitempty"` + // Name of the connection resource // Name of the connection resource // +kubebuilder:validation:Required Name *string `json:"name" tf:"name,omitempty"` + // ID of the organization where the connection is scoped to. // ID of the organization responsible for the connection. Applicable with type "dedicated" // +crossplane:generate:reference:type=Organization // +kubebuilder:validation:Optional OrganizationID *string `json:"organizationId,omitempty" tf:"organization_id,omitempty"` + // Reference to a Organization to populate organizationId. // +kubebuilder:validation:Optional OrganizationIDRef *v1.Reference `json:"organizationIdRef,omitempty" tf:"-"` + // Selector for a Organization to populate organizationId. // +kubebuilder:validation:Optional OrganizationIDSelector *v1.Selector `json:"organizationIdSelector,omitempty" tf:"-"` + // ID of the project where the connection is scoped to, must be set for. // ID of the project where the connection is scoped to. Required with type "shared" // +crossplane:generate:reference:type=Project // +kubebuilder:validation:Optional ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + // Reference to a Project to populate projectId. // +kubebuilder:validation:Optional ProjectIDRef *v1.Reference `json:"projectIdRef,omitempty" tf:"-"` + // Selector for a Project to populate projectId. // +kubebuilder:validation:Optional ProjectIDSelector *v1.Selector `json:"projectIdSelector,omitempty" tf:"-"` + // Connection redundancy - redundant or primary. // Connection redundancy - redundant or primary // +kubebuilder:validation:Required Redundancy *string `json:"redundancy" tf:"redundancy,omitempty"` - // Only used with shared connection. Type of service token to use for the connection, a_side or z_side + // Only used with shared connection. Type of service token to use for the connection, a_side or z_side. Type of service token to use for the connection, a_side or z_side // +kubebuilder:validation:Optional ServiceTokenType *string `json:"serviceTokenType,omitempty" tf:"service_token_type,omitempty"` + // Connection speed - one of 50Mbps, 200Mbps, 500Mbps, 1Gbps, 2Gbps, 5Gbps, 10Gbps. // Port speed. Allowed values are 50Mbps, 200Mbps, 500Mbps, 1Gbps, 2Gbps, 5Gbps, 10Gbps // +kubebuilder:validation:Required Speed *string `json:"speed" tf:"speed,omitempty"` + // String list of tags. // Tags attached to the connection // +kubebuilder:validation:Optional Tags []*string `json:"tags,omitempty" tf:"tags,omitempty"` + // Connection type - dedicated or shared. // Connection type - dedicated or shared // +kubebuilder:validation:Required Type *string `json:"type" tf:"type,omitempty"` + // Only used with shared connection. Vlans to attach. Pass one vlan for Primary/Single connection and two vlans for Redundant connection. // Only used with shared connection. VLANs to attach. Pass one vlan for Primary/Single connection and two vlans for Redundant connection // +kubebuilder:validation:Optional Vlans []*float64 `json:"vlans,omitempty" tf:"vlans,omitempty"` @@ -109,14 +135,18 @@ type ConnectionParameters struct { type PortsObservation struct { ID *string `json:"id,omitempty" tf:"id,omitempty"` + // Status of the connection resource. LinkStatus *string `json:"linkStatus,omitempty" tf:"link_status,omitempty"` + // Name of the connection resource Name *string `json:"name,omitempty" tf:"name,omitempty"` Role *string `json:"role,omitempty" tf:"role,omitempty"` + // Connection speed - one of 50Mbps, 200Mbps, 500Mbps, 1Gbps, 2Gbps, 5Gbps, 10Gbps. Speed *float64 `json:"speed,omitempty" tf:"speed,omitempty"` + // Status of the connection resource. Status *string `json:"status,omitempty" tf:"status,omitempty"` VirtualCircuitIds []*string `json:"virtualCircuitIds,omitempty" tf:"virtual_circuit_ids,omitempty"` @@ -130,12 +160,14 @@ type ServiceTokensObservation struct { ID *string `json:"id,omitempty" tf:"id,omitempty"` + // Connection speed - one of 50Mbps, 200Mbps, 500Mbps, 1Gbps, 2Gbps, 5Gbps, 10Gbps. MaxAllowedSpeed *string `json:"maxAllowedSpeed,omitempty" tf:"max_allowed_speed,omitempty"` Role *string `json:"role,omitempty" tf:"role,omitempty"` State *string `json:"state,omitempty" tf:"state,omitempty"` + // Connection type - dedicated or shared. Type *string `json:"type,omitempty" tf:"type,omitempty"` } @@ -156,13 +188,13 @@ type ConnectionStatus struct { // +kubebuilder:object:root=true -// Connection is the Schema for the Connections API +// Connection is the Schema for the Connections API. // +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,equinixjet} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,equinix} type Connection struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/metal/v1alpha1/zz_device_types.go b/apis/metal/v1alpha1/zz_device_types.go index 9347e2f..c14108d 100755 --- a/apis/metal/v1alpha1/zz_device_types.go +++ b/apis/metal/v1alpha1/zz_device_types.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package v1alpha1 @@ -26,141 +26,244 @@ import ( ) type DeviceObservation struct { + + // The ipv4 private IP assigned to the device. + // The ipv4 private IP assigned to the device AccessPrivateIPv4 *string `json:"accessPrivateIpv4,omitempty" tf:"access_private_ipv4,omitempty"` + // The ipv4 maintenance IP assigned to the device. + // The ipv4 maintenance IP assigned to the device AccessPublicIPv4 *string `json:"accessPublicIpv4,omitempty" tf:"access_public_ipv4,omitempty"` + // The ipv6 maintenance IP assigned to the device. + // The ipv6 maintenance IP assigned to the device AccessPublicIPv6 *string `json:"accessPublicIpv6,omitempty" tf:"access_public_ipv6,omitempty"` + // The timestamp for when the device was created. + // The timestamp for when the device was created Created *string `json:"created,omitempty" tf:"created,omitempty"` + // The facility where the device is deployed. + // The facility where the device is deployed DeployedFacility *string `json:"deployedFacility,omitempty" tf:"deployed_facility,omitempty"` + // ID of hardware reservation where this device was deployed. + // It is useful when using the next-available hardware reservation. + // ID of hardware reservation where this device was deployed. It is useful when using the next-available hardware reservation DeployedHardwareReservationID *string `json:"deployedHardwareReservationId,omitempty" tf:"deployed_hardware_reservation_id,omitempty"` + // The ID of the device. ID *string `json:"id,omitempty" tf:"id,omitempty"` + // Whether the device is locked. + // Whether the device is locked Locked *bool `json:"locked,omitempty" tf:"locked,omitempty"` + // The device's private and public IP (v4 and v6) network details. See + // Network Attribute below for more details. + // The device's private and public IP (v4 and v6) network details. When a device is run without any special network configuration, it will have 3 addresses: public ipv4, private ipv4 and ipv6 Network []NetworkObservation `json:"network,omitempty" tf:"network,omitempty"` + // (Deprecated) Network type of a device, used in + // Layer 2 networking. Since this + // attribute is deprecated you should handle Network Type with one of + // equinix_metal_port, + // equinix_metal_device_network_type resources or + // equinix_metal_port datasource. + // See network_types guide for more info. + // Network type of a device, used in [Layer 2 networking](https://metal.equinix.com/developers/docs/networking/layer2/). Will be one of layer3, hybrid, hybrid-bonded, layer2-individual, layer2-bonded NetworkType *string `json:"networkType,omitempty" tf:"network_type,omitempty"` + // List of ports assigned to the device. See Ports Attribute below for + // more details. + // Ports assigned to the device Ports []DevicePortsObservation `json:"ports,omitempty" tf:"ports,omitempty"` + // List of IDs of SSH keys deployed in the device, can be both user and project SSH keys. + // List of IDs of SSH keys deployed in the device, can be both user and project SSH keys SSHKeyIds []*string `json:"sshKeyIds,omitempty" tf:"ssh_key_ids,omitempty"` + // The status of the device. + // The status of the device State *string `json:"state,omitempty" tf:"state,omitempty"` + // The timestamp for the last time the device was updated. + // The timestamp for the last time the device was updated Updated *string `json:"updated,omitempty" tf:"updated,omitempty"` } type DeviceParameters struct { + // If true, a device with OS custom_ipxe will continue to boot via iPXE + // on reboots. // If true, a device with OS custom_ipxe will // +kubebuilder:validation:Optional AlwaysPxe *bool `json:"alwaysPxe,omitempty" tf:"always_pxe,omitempty"` + // monthly or hourly // monthly or hourly // +kubebuilder:validation:Optional BillingCycle *string `json:"billingCycle,omitempty" tf:"billing_cycle,omitempty"` + // A string of the desired Custom Data for the device. // A string of the desired Custom Data for the device // +kubebuilder:validation:Optional CustomDataSecretRef *v1.SecretKeySelector `json:"customDataSecretRef,omitempty" tf:"-"` + // The device description. // Description string for the device // +kubebuilder:validation:Optional Description *string `json:"description,omitempty" tf:"description,omitempty"` + // List of facility codes with deployment preferences. Equinix Metal API will go + // through the list and will deploy your device to first facility with free capacity. List items must + // be facility codes or any (a wildcard). To find the facility code, visit + // Facilities API docs, set your API auth + // token in the top of the page and see JSON from the API response. Conflicts with metro. // List of facility codes with deployment preferences. Equinix Metal API will go through the list and will deploy your device to first facility with free capacity. List items must be facility codes or any (a wildcard). To find the facility code, visit [Facilities API docs](https://metal.equinix.com/developers/api/facilities/), set your API auth token in the top of the page and see JSON from the API response. Conflicts with metro // +kubebuilder:validation:Optional Facilities []*string `json:"facilities,omitempty" tf:"facilities,omitempty"` + // Delete device even if it has volumes attached. Only applies + // for destroy action. // Delete device even if it has volumes attached. Only applies for destroy action // +kubebuilder:validation:Optional ForceDetachVolumes *bool `json:"forceDetachVolumes,omitempty" tf:"force_detach_volumes,omitempty"` + // The UUID of the hardware reservation where you want this + // device deployed, or next-available if you want to pick your next available reservation + // automatically. Changing this from a reservation UUID to next-available will re-create the device + // in another reservation. Please be careful when using hardware reservation UUID and next-available + // together for the same pool of reservations. It might happen that the reservation which Equinix + // Metal API will pick as next-available is the reservation which you refer with UUID in another + // equinix_metal_device resource. If that happens, and the equinix_metal_device with the UUID is + // created later, resource creation will fail because the reservation is already in use (by the + // resource created with next-available). To workaround this, have the next-available resource + // explicitly depend_on + // the resource with hardware reservation UUID, so that the latter is created first. For more details, + // see issue #176. // The UUID of the hardware reservation where you want this device deployed, or next-available if you want to pick your next available reservation automatically // +kubebuilder:validation:Optional HardwareReservationID *string `json:"hardwareReservationId,omitempty" tf:"hardware_reservation_id,omitempty"` + // The device hostname used in deployments taking advantage of Layer3 DHCP + // or metadata service configuration. // The device hostname used in deployments taking advantage of Layer3 DHCP or metadata service configuration. // +kubebuilder:validation:Optional Hostname *string `json:"hostname,omitempty" tf:"hostname,omitempty"` + // A list of IP address types for the device. See + // IP address below for more details. // A list of IP address types for the device (structure is documented below) // +kubebuilder:validation:Optional IPAddress []IPAddressParameters `json:"ipAddress,omitempty" tf:"ip_address,omitempty"` + // URL pointing to a hosted iPXE script. More information is in the + // Custom iPXE doc. // URL pointing to a hosted iPXE script. More // +kubebuilder:validation:Optional IpxeScriptURL *string `json:"ipxeScriptUrl,omitempty" tf:"ipxe_script_url,omitempty"` + // Metro area for the new device. Conflicts with facilities. // Metro area for the new device. Conflicts with facilities // +kubebuilder:validation:Optional Metro *string `json:"metro,omitempty" tf:"metro,omitempty"` + // The operating system slug. To find the slug, or visit + // Operating Systems API docs, set your + // API auth token in the top of the page and see JSON from the API response. // The operating system slug. To find the slug, or visit [Operating Systems API docs](https://metal.equinix.com/developers/api/operatingsystems), set your API auth token in the top of the page and see JSON from the API response // +kubebuilder:validation:Required OperatingSystem *string `json:"operatingSystem" tf:"operating_system,omitempty"` + // The device plan slug. To find the plan slug, visit + // Device plans API docs, set your auth token in the + // top of the page and see JSON from the API response. // The device plan slug. To find the plan slug, visit [Device plans API docs](https://metal.equinix.com/developers/api/plans), set your auth token in the top of the page and see JSON from the API response // +kubebuilder:validation:Required Plan *string `json:"plan" tf:"plan,omitempty"` + // The ID of the project in which to create the device // The ID of the project in which to create the device // +crossplane:generate:reference:type=Project // +kubebuilder:validation:Optional ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + // Reference to a Project to populate projectId. // +kubebuilder:validation:Optional ProjectIDRef *v1.Reference `json:"projectIdRef,omitempty" tf:"-"` + // Selector for a Project to populate projectId. // +kubebuilder:validation:Optional ProjectIDSelector *v1.Selector `json:"projectIdSelector,omitempty" tf:"-"` + // Array of IDs of the project SSH keys which should be added to the device. + // If you omit this, SSH keys of all the members of the parent project will be added to the device. If + // you specify this array, only the listed project SSH keys will be added. Project SSH keys can be + // created with the equinix_metal_project_ssh_key resource. // Array of IDs of the project SSH keys which should be added to the device. If you omit this, SSH keys of all the members of the parent project will be added to the device. If you specify this array, only the listed project SSH keys (and any user_ssh_key_ids) will be added. Project SSH keys can be created with the [equinix_metal_project_ssh_key](equinix_metal_project_ssh_key.md) resource // +kubebuilder:validation:Optional ProjectSSHKeyIds []*string `json:"projectSshKeyIds,omitempty" tf:"project_ssh_key_ids,omitempty"` + // Whether the device should be reinstalled instead of destroyed when + // modifying user_data, custom_data, or operating system. See Reinstall below for more + // details. // +kubebuilder:validation:Optional Reinstall []ReinstallParameters `json:"reinstall,omitempty" tf:"reinstall,omitempty"` + // JSON for custom partitioning. Only usable on reserved hardware. More + // information in in the + // Custom Partitioning and RAID + // doc. Please note that the disks.partitions.size attribute must be a string, not an integer. It can + // be a number string, or size notation string, e.g. "4G" or "8M" (for gigabytes and megabytes). // JSON for custom partitioning. Only usable on reserved hardware. More information in in the [Custom Partitioning and RAID](https://metal.equinix.com/developers/docs/servers/custom-partitioning-raid/) doc // +kubebuilder:validation:Optional Storage *string `json:"storage,omitempty" tf:"storage,omitempty"` + // Tags attached to the device. // Tags attached to the device // +kubebuilder:validation:Optional Tags []*string `json:"tags,omitempty" tf:"tags,omitempty"` + // Timestamp for device termination. For example 2021-09-03T16:32:00+03:00. + // If you don't supply timezone info, timestamp is assumed to be in UTC. // Timestamp for device termination. For example "2021-09-03T16:32:00+03:00". If you don't supply timezone info, timestamp is assumed to be in UTC. // +kubebuilder:validation:Optional TerminationTime *string `json:"terminationTime,omitempty" tf:"termination_time,omitempty"` + // A string of the desired User Data for the device. // A string of the desired User Data for the device // +kubebuilder:validation:Optional UserDataSecretRef *v1.SecretKeySelector `json:"userDataSecretRef,omitempty" tf:"-"` + // Array of IDs of the user SSH keys which should be added to the device. If you omit this, SSH keys of all the members of the parent project will be added to the device. If you specify this array, only the listed user SSH keys (and any project_ssh_key_ids) will be added. User SSH keys can be created with the equinix_metal_ssh_key resource // Array of IDs of the user SSH keys which should be added to the device. If you omit this, SSH keys of all the members of the parent project will be added to the device. If you specify this array, only the listed user SSH keys (and any project_ssh_key_ids) will be added. User SSH keys can be created with the [equinix_metal_ssh_key](equinix_metal_ssh_key.md) resource // +kubebuilder:validation:Optional UserSSHKeyIds []*string `json:"userSshKeyIds,omitempty" tf:"user_ssh_key_ids,omitempty"` + // Only used for devices in reserved hardware. If + // set, the deletion of this device will block until the hardware reservation is marked provisionable + // (about 4 minutes in August 2019). // Only used for devices in reserved hardware. If set, the deletion of this device will block until the hardware reservation is marked provisionable (about 4 minutes in August 2019) // +kubebuilder:validation:Optional WaitForReservationDeprovision *bool `json:"waitForReservationDeprovision,omitempty" tf:"wait_for_reservation_deprovision,omitempty"` } type DevicePortsObservation struct { + + // Whether this port is part of a bond in bonded network setup. Bonded *bool `json:"bonded,omitempty" tf:"bonded,omitempty"` + // The ID of the device. ID *string `json:"id,omitempty" tf:"id,omitempty"` + // MAC address assigned to the port. Mac *string `json:"mac,omitempty" tf:"mac,omitempty"` + // Name of the port (e.g. eth0, or bond0). Name *string `json:"name,omitempty" tf:"name,omitempty"` + // Type of the port (e.g. NetworkPort or NetworkBondPort). Type *string `json:"type,omitempty" tf:"type,omitempty"` } @@ -172,28 +275,38 @@ type IPAddressObservation struct { type IPAddressParameters struct { + // CIDR suffix for IP address block to be assigned, i.e. amount of addresses. // CIDR suffix for IP block assigned to this device // +kubebuilder:validation:Optional Cidr *float64 `json:"cidr,omitempty" tf:"cidr,omitempty"` + // List of UUIDs of IP block reservations + // from which the public IPv4 address should be taken. // IDs of reservations to pick the blocks from // +kubebuilder:validation:Optional ReservationIds []*string `json:"reservationIds,omitempty" tf:"reservation_ids,omitempty"` + // One of private_ipv4, public_ipv4, public_ipv6. // one of public_ipv4,private_ipv4,public_ipv6 // +kubebuilder:validation:Required Type *string `json:"type" tf:"type,omitempty"` } type NetworkObservation struct { + + // IPv4 or IPv6 address string. Address *string `json:"address,omitempty" tf:"address,omitempty"` + // CIDR suffix for IP address block to be assigned, i.e. amount of addresses. Cidr *float64 `json:"cidr,omitempty" tf:"cidr,omitempty"` + // IP version. One of 4, 6. Family *float64 `json:"family,omitempty" tf:"family,omitempty"` + // Address of router. Gateway *string `json:"gateway,omitempty" tf:"gateway,omitempty"` + // Whether the address is routable from the Internet. Public *bool `json:"public,omitempty" tf:"public,omitempty"` } @@ -205,14 +318,20 @@ type ReinstallObservation struct { type ReinstallParameters struct { + // Whether the OS disk should be filled with 00h bytes before reinstall. + // Defaults to false. // Whether the OS disk should be filled with `00h` bytes before reinstall // +kubebuilder:validation:Optional DeprovisionFast *bool `json:"deprovisionFast,omitempty" tf:"deprovision_fast,omitempty"` + // Whether the provider should favour reinstall over destroy and create. Defaults to + // false. // Whether the device should be reinstalled instead of destroyed // +kubebuilder:validation:Optional Enabled *bool `json:"enabled,omitempty" tf:"enabled,omitempty"` + // Whether the non-OS disks should be kept or wiped during reinstall. + // Defaults to false. // Whether the non-OS disks should be kept or wiped during reinstall // +kubebuilder:validation:Optional PreserveData *bool `json:"preserveData,omitempty" tf:"preserve_data,omitempty"` @@ -232,13 +351,13 @@ type DeviceStatus struct { // +kubebuilder:object:root=true -// Device is the Schema for the Devices API +// Device is the Schema for the Devices API. // +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,equinixjet} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,equinix} type Device struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/metal/v1alpha1/zz_devicenetworktype_types.go b/apis/metal/v1alpha1/zz_devicenetworktype_types.go index a14d7a7..5e8b304 100755 --- a/apis/metal/v1alpha1/zz_devicenetworktype_types.go +++ b/apis/metal/v1alpha1/zz_devicenetworktype_types.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package v1alpha1 @@ -36,9 +36,11 @@ type DeviceNetworkTypeParameters struct { // +kubebuilder:validation:Optional DeviceID *string `json:"deviceId,omitempty" tf:"device_id,omitempty"` + // Reference to a Device to populate deviceId. // +kubebuilder:validation:Optional DeviceIDRef *v1.Reference `json:"deviceIdRef,omitempty" tf:"-"` + // Selector for a Device to populate deviceId. // +kubebuilder:validation:Optional DeviceIDSelector *v1.Selector `json:"deviceIdSelector,omitempty" tf:"-"` @@ -61,13 +63,13 @@ type DeviceNetworkTypeStatus struct { // +kubebuilder:object:root=true -// DeviceNetworkType is the Schema for the DeviceNetworkTypes API +// DeviceNetworkType is the Schema for the DeviceNetworkTypes API. // +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,equinixjet} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,equinix} type DeviceNetworkType struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/metal/v1alpha1/zz_gateway_types.go b/apis/metal/v1alpha1/zz_gateway_types.go index 6670e6d..5d44ca2 100755 --- a/apis/metal/v1alpha1/zz_gateway_types.go +++ b/apis/metal/v1alpha1/zz_gateway_types.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package v1alpha1 @@ -28,8 +28,10 @@ import ( type GatewayObservation struct { ID *string `json:"id,omitempty" tf:"id,omitempty"` + // Status of the gateway resource State *string `json:"state,omitempty" tf:"state,omitempty"` + // UUID of the VRF associated with the IP Reservation VrfID *string `json:"vrfId,omitempty" tf:"vrf_id,omitempty"` } @@ -40,9 +42,11 @@ type GatewayParameters struct { // +kubebuilder:validation:Optional IPReservationID *string `json:"ipReservationId,omitempty" tf:"ip_reservation_id,omitempty"` + // Reference to a ReservedIPBlock to populate ipReservationId. // +kubebuilder:validation:Optional IPReservationIDRef *v1.Reference `json:"ipReservationIdRef,omitempty" tf:"-"` + // Selector for a ReservedIPBlock to populate ipReservationId. // +kubebuilder:validation:Optional IPReservationIDSelector *v1.Selector `json:"ipReservationIdSelector,omitempty" tf:"-"` @@ -55,9 +59,11 @@ type GatewayParameters struct { // +kubebuilder:validation:Optional ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + // Reference to a Project to populate projectId. // +kubebuilder:validation:Optional ProjectIDRef *v1.Reference `json:"projectIdRef,omitempty" tf:"-"` + // Selector for a Project to populate projectId. // +kubebuilder:validation:Optional ProjectIDSelector *v1.Selector `json:"projectIdSelector,omitempty" tf:"-"` @@ -66,9 +72,11 @@ type GatewayParameters struct { // +kubebuilder:validation:Optional VlanID *string `json:"vlanId,omitempty" tf:"vlan_id,omitempty"` + // Reference to a Vlan to populate vlanId. // +kubebuilder:validation:Optional VlanIDRef *v1.Reference `json:"vlanIdRef,omitempty" tf:"-"` + // Selector for a Vlan to populate vlanId. // +kubebuilder:validation:Optional VlanIDSelector *v1.Selector `json:"vlanIdSelector,omitempty" tf:"-"` } @@ -87,13 +95,13 @@ type GatewayStatus struct { // +kubebuilder:object:root=true -// Gateway is the Schema for the Gateways API +// Gateway is the Schema for the Gateways API. // +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,equinixjet} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,equinix} type Gateway struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/metal/v1alpha1/zz_generated.deepcopy.go b/apis/metal/v1alpha1/zz_generated.deepcopy.go index 8ff1183..3d48bf9 100644 --- a/apis/metal/v1alpha1/zz_generated.deepcopy.go +++ b/apis/metal/v1alpha1/zz_generated.deepcopy.go @@ -241,7 +241,7 @@ func (in *BGPSessionParameters) DeepCopyInto(out *BGPSessionParameters) { if in.DeviceIDRef != nil { in, out := &in.DeviceIDRef, &out.DeviceIDRef *out = new(v1.Reference) - **out = **in + (*in).DeepCopyInto(*out) } if in.DeviceIDSelector != nil { in, out := &in.DeviceIDSelector, &out.DeviceIDSelector @@ -433,7 +433,7 @@ func (in *ConnectionParameters) DeepCopyInto(out *ConnectionParameters) { if in.OrganizationIDRef != nil { in, out := &in.OrganizationIDRef, &out.OrganizationIDRef *out = new(v1.Reference) - **out = **in + (*in).DeepCopyInto(*out) } if in.OrganizationIDSelector != nil { in, out := &in.OrganizationIDSelector, &out.OrganizationIDSelector @@ -448,7 +448,7 @@ func (in *ConnectionParameters) DeepCopyInto(out *ConnectionParameters) { if in.ProjectIDRef != nil { in, out := &in.ProjectIDRef, &out.ProjectIDRef *out = new(v1.Reference) - **out = **in + (*in).DeepCopyInto(*out) } if in.ProjectIDSelector != nil { in, out := &in.ProjectIDSelector, &out.ProjectIDSelector @@ -692,7 +692,7 @@ func (in *DeviceNetworkTypeParameters) DeepCopyInto(out *DeviceNetworkTypeParame if in.DeviceIDRef != nil { in, out := &in.DeviceIDRef, &out.DeviceIDRef *out = new(v1.Reference) - **out = **in + (*in).DeepCopyInto(*out) } if in.DeviceIDSelector != nil { in, out := &in.DeviceIDSelector, &out.DeviceIDSelector @@ -929,7 +929,7 @@ func (in *DeviceParameters) DeepCopyInto(out *DeviceParameters) { if in.ProjectIDRef != nil { in, out := &in.ProjectIDRef, &out.ProjectIDRef *out = new(v1.Reference) - **out = **in + (*in).DeepCopyInto(*out) } if in.ProjectIDSelector != nil { in, out := &in.ProjectIDSelector, &out.ProjectIDSelector @@ -1197,7 +1197,7 @@ func (in *GatewayParameters) DeepCopyInto(out *GatewayParameters) { if in.IPReservationIDRef != nil { in, out := &in.IPReservationIDRef, &out.IPReservationIDRef *out = new(v1.Reference) - **out = **in + (*in).DeepCopyInto(*out) } if in.IPReservationIDSelector != nil { in, out := &in.IPReservationIDSelector, &out.IPReservationIDSelector @@ -1217,7 +1217,7 @@ func (in *GatewayParameters) DeepCopyInto(out *GatewayParameters) { if in.ProjectIDRef != nil { in, out := &in.ProjectIDRef, &out.ProjectIDRef *out = new(v1.Reference) - **out = **in + (*in).DeepCopyInto(*out) } if in.ProjectIDSelector != nil { in, out := &in.ProjectIDSelector, &out.ProjectIDSelector @@ -1232,7 +1232,7 @@ func (in *GatewayParameters) DeepCopyInto(out *GatewayParameters) { if in.VlanIDRef != nil { in, out := &in.VlanIDRef, &out.VlanIDRef *out = new(v1.Reference) - **out = **in + (*in).DeepCopyInto(*out) } if in.VlanIDSelector != nil { in, out := &in.VlanIDSelector, &out.VlanIDSelector @@ -1486,7 +1486,7 @@ func (in *IPAttachmentParameters) DeepCopyInto(out *IPAttachmentParameters) { if in.DeviceIDRef != nil { in, out := &in.DeviceIDRef, &out.DeviceIDRef *out = new(v1.Reference) - **out = **in + (*in).DeepCopyInto(*out) } if in.DeviceIDSelector != nil { in, out := &in.DeviceIDSelector, &out.DeviceIDSelector @@ -1907,7 +1907,7 @@ func (in *OrganizationMemberParameters) DeepCopyInto(out *OrganizationMemberPara if in.OrganizationIDRef != nil { in, out := &in.OrganizationIDRef, &out.OrganizationIDRef *out = new(v1.Reference) - **out = **in + (*in).DeepCopyInto(*out) } if in.OrganizationIDSelector != nil { in, out := &in.OrganizationIDSelector, &out.OrganizationIDSelector @@ -2228,7 +2228,7 @@ func (in *PortParameters) DeepCopyInto(out *PortParameters) { if in.NativeVlanIDRef != nil { in, out := &in.NativeVlanIDRef, &out.NativeVlanIDRef *out = new(v1.Reference) - **out = **in + (*in).DeepCopyInto(*out) } if in.NativeVlanIDSelector != nil { in, out := &in.NativeVlanIDSelector, &out.NativeVlanIDSelector @@ -2413,7 +2413,7 @@ func (in *PortVlanAttachmentParameters) DeepCopyInto(out *PortVlanAttachmentPara if in.DeviceIDRef != nil { in, out := &in.DeviceIDRef, &out.DeviceIDRef *out = new(v1.Reference) - **out = **in + (*in).DeepCopyInto(*out) } if in.DeviceIDSelector != nil { in, out := &in.DeviceIDSelector, &out.DeviceIDSelector @@ -2679,7 +2679,7 @@ func (in *ProjectAPIKeyParameters) DeepCopyInto(out *ProjectAPIKeyParameters) { if in.ProjectIDRef != nil { in, out := &in.ProjectIDRef, &out.ProjectIDRef *out = new(v1.Reference) - **out = **in + (*in).DeepCopyInto(*out) } if in.ProjectIDSelector != nil { in, out := &in.ProjectIDSelector, &out.ProjectIDSelector @@ -2834,7 +2834,7 @@ func (in *ProjectParameters) DeepCopyInto(out *ProjectParameters) { if in.OrganizationIDRef != nil { in, out := &in.OrganizationIDRef, &out.OrganizationIDRef *out = new(v1.Reference) - **out = **in + (*in).DeepCopyInto(*out) } if in.OrganizationIDSelector != nil { in, out := &in.OrganizationIDSelector, &out.OrganizationIDSelector @@ -2973,7 +2973,7 @@ func (in *ProjectSSHKeyParameters) DeepCopyInto(out *ProjectSSHKeyParameters) { if in.ProjectIDRef != nil { in, out := &in.ProjectIDRef, &out.ProjectIDRef *out = new(v1.Reference) - **out = **in + (*in).DeepCopyInto(*out) } if in.ProjectIDSelector != nil { in, out := &in.ProjectIDSelector, &out.ProjectIDSelector @@ -3275,7 +3275,7 @@ func (in *ReservedIPBlockParameters) DeepCopyInto(out *ReservedIPBlockParameters if in.ProjectIDRef != nil { in, out := &in.ProjectIDRef, &out.ProjectIDRef *out = new(v1.Reference) - **out = **in + (*in).DeepCopyInto(*out) } if in.ProjectIDSelector != nil { in, out := &in.ProjectIDSelector, &out.ProjectIDSelector @@ -3311,7 +3311,7 @@ func (in *ReservedIPBlockParameters) DeepCopyInto(out *ReservedIPBlockParameters if in.VrfIDRef != nil { in, out := &in.VrfIDRef, &out.VrfIDRef *out = new(v1.Reference) - **out = **in + (*in).DeepCopyInto(*out) } if in.VrfIDSelector != nil { in, out := &in.VrfIDSelector, &out.VrfIDSelector @@ -3722,7 +3722,7 @@ func (in *SpotMarketRequestParameters) DeepCopyInto(out *SpotMarketRequestParame if in.ProjectIDRef != nil { in, out := &in.ProjectIDRef, &out.ProjectIDRef *out = new(v1.Reference) - **out = **in + (*in).DeepCopyInto(*out) } if in.ProjectIDSelector != nil { in, out := &in.ProjectIDSelector, &out.ProjectIDSelector @@ -4028,7 +4028,7 @@ func (in *VirtualCircuitParameters) DeepCopyInto(out *VirtualCircuitParameters) if in.ConnectionIDRef != nil { in, out := &in.ConnectionIDRef, &out.ConnectionIDRef *out = new(v1.Reference) - **out = **in + (*in).DeepCopyInto(*out) } if in.ConnectionIDSelector != nil { in, out := &in.ConnectionIDSelector, &out.ConnectionIDSelector @@ -4083,7 +4083,7 @@ func (in *VirtualCircuitParameters) DeepCopyInto(out *VirtualCircuitParameters) if in.ProjectIDRef != nil { in, out := &in.ProjectIDRef, &out.ProjectIDRef *out = new(v1.Reference) - **out = **in + (*in).DeepCopyInto(*out) } if in.ProjectIDSelector != nil { in, out := &in.ProjectIDSelector, &out.ProjectIDSelector @@ -4119,7 +4119,7 @@ func (in *VirtualCircuitParameters) DeepCopyInto(out *VirtualCircuitParameters) if in.VlanIDRef != nil { in, out := &in.VlanIDRef, &out.VlanIDRef *out = new(v1.Reference) - **out = **in + (*in).DeepCopyInto(*out) } if in.VlanIDSelector != nil { in, out := &in.VlanIDSelector, &out.VlanIDSelector @@ -4134,7 +4134,7 @@ func (in *VirtualCircuitParameters) DeepCopyInto(out *VirtualCircuitParameters) if in.VrfIDRef != nil { in, out := &in.VrfIDRef, &out.VrfIDRef *out = new(v1.Reference) - **out = **in + (*in).DeepCopyInto(*out) } if in.VrfIDSelector != nil { in, out := &in.VrfIDSelector, &out.VrfIDSelector @@ -4292,7 +4292,7 @@ func (in *VlanParameters) DeepCopyInto(out *VlanParameters) { if in.ProjectIDRef != nil { in, out := &in.ProjectIDRef, &out.ProjectIDRef *out = new(v1.Reference) - **out = **in + (*in).DeepCopyInto(*out) } if in.ProjectIDSelector != nil { in, out := &in.ProjectIDSelector, &out.ProjectIDSelector @@ -4471,7 +4471,7 @@ func (in *VrfParameters) DeepCopyInto(out *VrfParameters) { if in.ProjectIDRef != nil { in, out := &in.ProjectIDRef, &out.ProjectIDRef *out = new(v1.Reference) - **out = **in + (*in).DeepCopyInto(*out) } if in.ProjectIDSelector != nil { in, out := &in.ProjectIDSelector, &out.ProjectIDSelector diff --git a/apis/metal/v1alpha1/zz_generated_terraformed.go b/apis/metal/v1alpha1/zz_generated_terraformed.go index 82e4baa..7db914d 100755 --- a/apis/metal/v1alpha1/zz_generated_terraformed.go +++ b/apis/metal/v1alpha1/zz_generated_terraformed.go @@ -14,15 +14,15 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package v1alpha1 import ( "github.com/pkg/errors" - "github.com/crossplane/terrajet/pkg/resource" - "github.com/crossplane/terrajet/pkg/resource/json" + "github.com/upbound/upjet/pkg/resource" + "github.com/upbound/upjet/pkg/resource/json" ) // GetTerraformResourceType returns Terraform resource type for this BGPSession @@ -36,17 +36,17 @@ func (tr *BGPSession) GetConnectionDetailsMapping() map[string]string { } // GetObservation of this BGPSession -func (tr *BGPSession) GetObservation() (map[string]interface{}, error) { +func (tr *BGPSession) GetObservation() (map[string]any, error) { o, err := json.TFParser.Marshal(tr.Status.AtProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(o, &base) } // SetObservation for this BGPSession -func (tr *BGPSession) SetObservation(obs map[string]interface{}) error { +func (tr *BGPSession) SetObservation(obs map[string]any) error { p, err := json.TFParser.Marshal(obs) if err != nil { return err @@ -63,17 +63,17 @@ func (tr *BGPSession) GetID() string { } // GetParameters of this BGPSession -func (tr *BGPSession) GetParameters() (map[string]interface{}, error) { +func (tr *BGPSession) GetParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.ForProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(p, &base) } // SetParameters for this BGPSession -func (tr *BGPSession) SetParameters(params map[string]interface{}) error { +func (tr *BGPSession) SetParameters(params map[string]any) error { p, err := json.TFParser.Marshal(params) if err != nil { return err @@ -110,17 +110,17 @@ func (tr *Connection) GetConnectionDetailsMapping() map[string]string { } // GetObservation of this Connection -func (tr *Connection) GetObservation() (map[string]interface{}, error) { +func (tr *Connection) GetObservation() (map[string]any, error) { o, err := json.TFParser.Marshal(tr.Status.AtProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(o, &base) } // SetObservation for this Connection -func (tr *Connection) SetObservation(obs map[string]interface{}) error { +func (tr *Connection) SetObservation(obs map[string]any) error { p, err := json.TFParser.Marshal(obs) if err != nil { return err @@ -137,17 +137,17 @@ func (tr *Connection) GetID() string { } // GetParameters of this Connection -func (tr *Connection) GetParameters() (map[string]interface{}, error) { +func (tr *Connection) GetParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.ForProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(p, &base) } // SetParameters for this Connection -func (tr *Connection) SetParameters(params map[string]interface{}) error { +func (tr *Connection) SetParameters(params map[string]any) error { p, err := json.TFParser.Marshal(params) if err != nil { return err @@ -184,17 +184,17 @@ func (tr *Device) GetConnectionDetailsMapping() map[string]string { } // GetObservation of this Device -func (tr *Device) GetObservation() (map[string]interface{}, error) { +func (tr *Device) GetObservation() (map[string]any, error) { o, err := json.TFParser.Marshal(tr.Status.AtProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(o, &base) } // SetObservation for this Device -func (tr *Device) SetObservation(obs map[string]interface{}) error { +func (tr *Device) SetObservation(obs map[string]any) error { p, err := json.TFParser.Marshal(obs) if err != nil { return err @@ -211,17 +211,17 @@ func (tr *Device) GetID() string { } // GetParameters of this Device -func (tr *Device) GetParameters() (map[string]interface{}, error) { +func (tr *Device) GetParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.ForProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(p, &base) } // SetParameters for this Device -func (tr *Device) SetParameters(params map[string]interface{}) error { +func (tr *Device) SetParameters(params map[string]any) error { p, err := json.TFParser.Marshal(params) if err != nil { return err @@ -260,17 +260,17 @@ func (tr *DeviceNetworkType) GetConnectionDetailsMapping() map[string]string { } // GetObservation of this DeviceNetworkType -func (tr *DeviceNetworkType) GetObservation() (map[string]interface{}, error) { +func (tr *DeviceNetworkType) GetObservation() (map[string]any, error) { o, err := json.TFParser.Marshal(tr.Status.AtProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(o, &base) } // SetObservation for this DeviceNetworkType -func (tr *DeviceNetworkType) SetObservation(obs map[string]interface{}) error { +func (tr *DeviceNetworkType) SetObservation(obs map[string]any) error { p, err := json.TFParser.Marshal(obs) if err != nil { return err @@ -287,17 +287,17 @@ func (tr *DeviceNetworkType) GetID() string { } // GetParameters of this DeviceNetworkType -func (tr *DeviceNetworkType) GetParameters() (map[string]interface{}, error) { +func (tr *DeviceNetworkType) GetParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.ForProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(p, &base) } // SetParameters for this DeviceNetworkType -func (tr *DeviceNetworkType) SetParameters(params map[string]interface{}) error { +func (tr *DeviceNetworkType) SetParameters(params map[string]any) error { p, err := json.TFParser.Marshal(params) if err != nil { return err @@ -334,17 +334,17 @@ func (tr *Gateway) GetConnectionDetailsMapping() map[string]string { } // GetObservation of this Gateway -func (tr *Gateway) GetObservation() (map[string]interface{}, error) { +func (tr *Gateway) GetObservation() (map[string]any, error) { o, err := json.TFParser.Marshal(tr.Status.AtProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(o, &base) } // SetObservation for this Gateway -func (tr *Gateway) SetObservation(obs map[string]interface{}) error { +func (tr *Gateway) SetObservation(obs map[string]any) error { p, err := json.TFParser.Marshal(obs) if err != nil { return err @@ -361,17 +361,17 @@ func (tr *Gateway) GetID() string { } // GetParameters of this Gateway -func (tr *Gateway) GetParameters() (map[string]interface{}, error) { +func (tr *Gateway) GetParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.ForProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(p, &base) } // SetParameters for this Gateway -func (tr *Gateway) SetParameters(params map[string]interface{}) error { +func (tr *Gateway) SetParameters(params map[string]any) error { p, err := json.TFParser.Marshal(params) if err != nil { return err @@ -408,17 +408,17 @@ func (tr *IPAttachment) GetConnectionDetailsMapping() map[string]string { } // GetObservation of this IPAttachment -func (tr *IPAttachment) GetObservation() (map[string]interface{}, error) { +func (tr *IPAttachment) GetObservation() (map[string]any, error) { o, err := json.TFParser.Marshal(tr.Status.AtProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(o, &base) } // SetObservation for this IPAttachment -func (tr *IPAttachment) SetObservation(obs map[string]interface{}) error { +func (tr *IPAttachment) SetObservation(obs map[string]any) error { p, err := json.TFParser.Marshal(obs) if err != nil { return err @@ -435,17 +435,17 @@ func (tr *IPAttachment) GetID() string { } // GetParameters of this IPAttachment -func (tr *IPAttachment) GetParameters() (map[string]interface{}, error) { +func (tr *IPAttachment) GetParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.ForProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(p, &base) } // SetParameters for this IPAttachment -func (tr *IPAttachment) SetParameters(params map[string]interface{}) error { +func (tr *IPAttachment) SetParameters(params map[string]any) error { p, err := json.TFParser.Marshal(params) if err != nil { return err @@ -482,17 +482,17 @@ func (tr *Organization) GetConnectionDetailsMapping() map[string]string { } // GetObservation of this Organization -func (tr *Organization) GetObservation() (map[string]interface{}, error) { +func (tr *Organization) GetObservation() (map[string]any, error) { o, err := json.TFParser.Marshal(tr.Status.AtProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(o, &base) } // SetObservation for this Organization -func (tr *Organization) SetObservation(obs map[string]interface{}) error { +func (tr *Organization) SetObservation(obs map[string]any) error { p, err := json.TFParser.Marshal(obs) if err != nil { return err @@ -509,17 +509,17 @@ func (tr *Organization) GetID() string { } // GetParameters of this Organization -func (tr *Organization) GetParameters() (map[string]interface{}, error) { +func (tr *Organization) GetParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.ForProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(p, &base) } // SetParameters for this Organization -func (tr *Organization) SetParameters(params map[string]interface{}) error { +func (tr *Organization) SetParameters(params map[string]any) error { p, err := json.TFParser.Marshal(params) if err != nil { return err @@ -556,17 +556,17 @@ func (tr *OrganizationMember) GetConnectionDetailsMapping() map[string]string { } // GetObservation of this OrganizationMember -func (tr *OrganizationMember) GetObservation() (map[string]interface{}, error) { +func (tr *OrganizationMember) GetObservation() (map[string]any, error) { o, err := json.TFParser.Marshal(tr.Status.AtProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(o, &base) } // SetObservation for this OrganizationMember -func (tr *OrganizationMember) SetObservation(obs map[string]interface{}) error { +func (tr *OrganizationMember) SetObservation(obs map[string]any) error { p, err := json.TFParser.Marshal(obs) if err != nil { return err @@ -583,17 +583,17 @@ func (tr *OrganizationMember) GetID() string { } // GetParameters of this OrganizationMember -func (tr *OrganizationMember) GetParameters() (map[string]interface{}, error) { +func (tr *OrganizationMember) GetParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.ForProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(p, &base) } // SetParameters for this OrganizationMember -func (tr *OrganizationMember) SetParameters(params map[string]interface{}) error { +func (tr *OrganizationMember) SetParameters(params map[string]any) error { p, err := json.TFParser.Marshal(params) if err != nil { return err @@ -630,17 +630,17 @@ func (tr *Port) GetConnectionDetailsMapping() map[string]string { } // GetObservation of this Port -func (tr *Port) GetObservation() (map[string]interface{}, error) { +func (tr *Port) GetObservation() (map[string]any, error) { o, err := json.TFParser.Marshal(tr.Status.AtProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(o, &base) } // SetObservation for this Port -func (tr *Port) SetObservation(obs map[string]interface{}) error { +func (tr *Port) SetObservation(obs map[string]any) error { p, err := json.TFParser.Marshal(obs) if err != nil { return err @@ -657,17 +657,17 @@ func (tr *Port) GetID() string { } // GetParameters of this Port -func (tr *Port) GetParameters() (map[string]interface{}, error) { +func (tr *Port) GetParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.ForProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(p, &base) } // SetParameters for this Port -func (tr *Port) SetParameters(params map[string]interface{}) error { +func (tr *Port) SetParameters(params map[string]any) error { p, err := json.TFParser.Marshal(params) if err != nil { return err @@ -704,17 +704,17 @@ func (tr *PortVlanAttachment) GetConnectionDetailsMapping() map[string]string { } // GetObservation of this PortVlanAttachment -func (tr *PortVlanAttachment) GetObservation() (map[string]interface{}, error) { +func (tr *PortVlanAttachment) GetObservation() (map[string]any, error) { o, err := json.TFParser.Marshal(tr.Status.AtProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(o, &base) } // SetObservation for this PortVlanAttachment -func (tr *PortVlanAttachment) SetObservation(obs map[string]interface{}) error { +func (tr *PortVlanAttachment) SetObservation(obs map[string]any) error { p, err := json.TFParser.Marshal(obs) if err != nil { return err @@ -731,17 +731,17 @@ func (tr *PortVlanAttachment) GetID() string { } // GetParameters of this PortVlanAttachment -func (tr *PortVlanAttachment) GetParameters() (map[string]interface{}, error) { +func (tr *PortVlanAttachment) GetParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.ForProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(p, &base) } // SetParameters for this PortVlanAttachment -func (tr *PortVlanAttachment) SetParameters(params map[string]interface{}) error { +func (tr *PortVlanAttachment) SetParameters(params map[string]any) error { p, err := json.TFParser.Marshal(params) if err != nil { return err @@ -778,17 +778,17 @@ func (tr *Project) GetConnectionDetailsMapping() map[string]string { } // GetObservation of this Project -func (tr *Project) GetObservation() (map[string]interface{}, error) { +func (tr *Project) GetObservation() (map[string]any, error) { o, err := json.TFParser.Marshal(tr.Status.AtProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(o, &base) } // SetObservation for this Project -func (tr *Project) SetObservation(obs map[string]interface{}) error { +func (tr *Project) SetObservation(obs map[string]any) error { p, err := json.TFParser.Marshal(obs) if err != nil { return err @@ -805,17 +805,17 @@ func (tr *Project) GetID() string { } // GetParameters of this Project -func (tr *Project) GetParameters() (map[string]interface{}, error) { +func (tr *Project) GetParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.ForProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(p, &base) } // SetParameters for this Project -func (tr *Project) SetParameters(params map[string]interface{}) error { +func (tr *Project) SetParameters(params map[string]any) error { p, err := json.TFParser.Marshal(params) if err != nil { return err @@ -852,17 +852,17 @@ func (tr *ProjectAPIKey) GetConnectionDetailsMapping() map[string]string { } // GetObservation of this ProjectAPIKey -func (tr *ProjectAPIKey) GetObservation() (map[string]interface{}, error) { +func (tr *ProjectAPIKey) GetObservation() (map[string]any, error) { o, err := json.TFParser.Marshal(tr.Status.AtProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(o, &base) } // SetObservation for this ProjectAPIKey -func (tr *ProjectAPIKey) SetObservation(obs map[string]interface{}) error { +func (tr *ProjectAPIKey) SetObservation(obs map[string]any) error { p, err := json.TFParser.Marshal(obs) if err != nil { return err @@ -879,17 +879,17 @@ func (tr *ProjectAPIKey) GetID() string { } // GetParameters of this ProjectAPIKey -func (tr *ProjectAPIKey) GetParameters() (map[string]interface{}, error) { +func (tr *ProjectAPIKey) GetParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.ForProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(p, &base) } // SetParameters for this ProjectAPIKey -func (tr *ProjectAPIKey) SetParameters(params map[string]interface{}) error { +func (tr *ProjectAPIKey) SetParameters(params map[string]any) error { p, err := json.TFParser.Marshal(params) if err != nil { return err @@ -926,17 +926,17 @@ func (tr *ProjectSSHKey) GetConnectionDetailsMapping() map[string]string { } // GetObservation of this ProjectSSHKey -func (tr *ProjectSSHKey) GetObservation() (map[string]interface{}, error) { +func (tr *ProjectSSHKey) GetObservation() (map[string]any, error) { o, err := json.TFParser.Marshal(tr.Status.AtProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(o, &base) } // SetObservation for this ProjectSSHKey -func (tr *ProjectSSHKey) SetObservation(obs map[string]interface{}) error { +func (tr *ProjectSSHKey) SetObservation(obs map[string]any) error { p, err := json.TFParser.Marshal(obs) if err != nil { return err @@ -953,17 +953,17 @@ func (tr *ProjectSSHKey) GetID() string { } // GetParameters of this ProjectSSHKey -func (tr *ProjectSSHKey) GetParameters() (map[string]interface{}, error) { +func (tr *ProjectSSHKey) GetParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.ForProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(p, &base) } // SetParameters for this ProjectSSHKey -func (tr *ProjectSSHKey) SetParameters(params map[string]interface{}) error { +func (tr *ProjectSSHKey) SetParameters(params map[string]any) error { p, err := json.TFParser.Marshal(params) if err != nil { return err @@ -1000,17 +1000,17 @@ func (tr *ReservedIPBlock) GetConnectionDetailsMapping() map[string]string { } // GetObservation of this ReservedIPBlock -func (tr *ReservedIPBlock) GetObservation() (map[string]interface{}, error) { +func (tr *ReservedIPBlock) GetObservation() (map[string]any, error) { o, err := json.TFParser.Marshal(tr.Status.AtProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(o, &base) } // SetObservation for this ReservedIPBlock -func (tr *ReservedIPBlock) SetObservation(obs map[string]interface{}) error { +func (tr *ReservedIPBlock) SetObservation(obs map[string]any) error { p, err := json.TFParser.Marshal(obs) if err != nil { return err @@ -1027,17 +1027,17 @@ func (tr *ReservedIPBlock) GetID() string { } // GetParameters of this ReservedIPBlock -func (tr *ReservedIPBlock) GetParameters() (map[string]interface{}, error) { +func (tr *ReservedIPBlock) GetParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.ForProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(p, &base) } // SetParameters for this ReservedIPBlock -func (tr *ReservedIPBlock) SetParameters(params map[string]interface{}) error { +func (tr *ReservedIPBlock) SetParameters(params map[string]any) error { p, err := json.TFParser.Marshal(params) if err != nil { return err @@ -1074,17 +1074,17 @@ func (tr *SpotMarketRequest) GetConnectionDetailsMapping() map[string]string { } // GetObservation of this SpotMarketRequest -func (tr *SpotMarketRequest) GetObservation() (map[string]interface{}, error) { +func (tr *SpotMarketRequest) GetObservation() (map[string]any, error) { o, err := json.TFParser.Marshal(tr.Status.AtProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(o, &base) } // SetObservation for this SpotMarketRequest -func (tr *SpotMarketRequest) SetObservation(obs map[string]interface{}) error { +func (tr *SpotMarketRequest) SetObservation(obs map[string]any) error { p, err := json.TFParser.Marshal(obs) if err != nil { return err @@ -1101,17 +1101,17 @@ func (tr *SpotMarketRequest) GetID() string { } // GetParameters of this SpotMarketRequest -func (tr *SpotMarketRequest) GetParameters() (map[string]interface{}, error) { +func (tr *SpotMarketRequest) GetParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.ForProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(p, &base) } // SetParameters for this SpotMarketRequest -func (tr *SpotMarketRequest) SetParameters(params map[string]interface{}) error { +func (tr *SpotMarketRequest) SetParameters(params map[string]any) error { p, err := json.TFParser.Marshal(params) if err != nil { return err @@ -1148,17 +1148,17 @@ func (tr *SSHKey) GetConnectionDetailsMapping() map[string]string { } // GetObservation of this SSHKey -func (tr *SSHKey) GetObservation() (map[string]interface{}, error) { +func (tr *SSHKey) GetObservation() (map[string]any, error) { o, err := json.TFParser.Marshal(tr.Status.AtProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(o, &base) } // SetObservation for this SSHKey -func (tr *SSHKey) SetObservation(obs map[string]interface{}) error { +func (tr *SSHKey) SetObservation(obs map[string]any) error { p, err := json.TFParser.Marshal(obs) if err != nil { return err @@ -1175,17 +1175,17 @@ func (tr *SSHKey) GetID() string { } // GetParameters of this SSHKey -func (tr *SSHKey) GetParameters() (map[string]interface{}, error) { +func (tr *SSHKey) GetParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.ForProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(p, &base) } // SetParameters for this SSHKey -func (tr *SSHKey) SetParameters(params map[string]interface{}) error { +func (tr *SSHKey) SetParameters(params map[string]any) error { p, err := json.TFParser.Marshal(params) if err != nil { return err @@ -1222,17 +1222,17 @@ func (tr *UserAPIKey) GetConnectionDetailsMapping() map[string]string { } // GetObservation of this UserAPIKey -func (tr *UserAPIKey) GetObservation() (map[string]interface{}, error) { +func (tr *UserAPIKey) GetObservation() (map[string]any, error) { o, err := json.TFParser.Marshal(tr.Status.AtProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(o, &base) } // SetObservation for this UserAPIKey -func (tr *UserAPIKey) SetObservation(obs map[string]interface{}) error { +func (tr *UserAPIKey) SetObservation(obs map[string]any) error { p, err := json.TFParser.Marshal(obs) if err != nil { return err @@ -1249,17 +1249,17 @@ func (tr *UserAPIKey) GetID() string { } // GetParameters of this UserAPIKey -func (tr *UserAPIKey) GetParameters() (map[string]interface{}, error) { +func (tr *UserAPIKey) GetParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.ForProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(p, &base) } // SetParameters for this UserAPIKey -func (tr *UserAPIKey) SetParameters(params map[string]interface{}) error { +func (tr *UserAPIKey) SetParameters(params map[string]any) error { p, err := json.TFParser.Marshal(params) if err != nil { return err @@ -1296,17 +1296,17 @@ func (tr *VirtualCircuit) GetConnectionDetailsMapping() map[string]string { } // GetObservation of this VirtualCircuit -func (tr *VirtualCircuit) GetObservation() (map[string]interface{}, error) { +func (tr *VirtualCircuit) GetObservation() (map[string]any, error) { o, err := json.TFParser.Marshal(tr.Status.AtProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(o, &base) } // SetObservation for this VirtualCircuit -func (tr *VirtualCircuit) SetObservation(obs map[string]interface{}) error { +func (tr *VirtualCircuit) SetObservation(obs map[string]any) error { p, err := json.TFParser.Marshal(obs) if err != nil { return err @@ -1323,17 +1323,17 @@ func (tr *VirtualCircuit) GetID() string { } // GetParameters of this VirtualCircuit -func (tr *VirtualCircuit) GetParameters() (map[string]interface{}, error) { +func (tr *VirtualCircuit) GetParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.ForProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(p, &base) } // SetParameters for this VirtualCircuit -func (tr *VirtualCircuit) SetParameters(params map[string]interface{}) error { +func (tr *VirtualCircuit) SetParameters(params map[string]any) error { p, err := json.TFParser.Marshal(params) if err != nil { return err @@ -1370,17 +1370,17 @@ func (tr *Vlan) GetConnectionDetailsMapping() map[string]string { } // GetObservation of this Vlan -func (tr *Vlan) GetObservation() (map[string]interface{}, error) { +func (tr *Vlan) GetObservation() (map[string]any, error) { o, err := json.TFParser.Marshal(tr.Status.AtProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(o, &base) } // SetObservation for this Vlan -func (tr *Vlan) SetObservation(obs map[string]interface{}) error { +func (tr *Vlan) SetObservation(obs map[string]any) error { p, err := json.TFParser.Marshal(obs) if err != nil { return err @@ -1397,17 +1397,17 @@ func (tr *Vlan) GetID() string { } // GetParameters of this Vlan -func (tr *Vlan) GetParameters() (map[string]interface{}, error) { +func (tr *Vlan) GetParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.ForProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(p, &base) } // SetParameters for this Vlan -func (tr *Vlan) SetParameters(params map[string]interface{}) error { +func (tr *Vlan) SetParameters(params map[string]any) error { p, err := json.TFParser.Marshal(params) if err != nil { return err @@ -1444,17 +1444,17 @@ func (tr *Vrf) GetConnectionDetailsMapping() map[string]string { } // GetObservation of this Vrf -func (tr *Vrf) GetObservation() (map[string]interface{}, error) { +func (tr *Vrf) GetObservation() (map[string]any, error) { o, err := json.TFParser.Marshal(tr.Status.AtProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(o, &base) } // SetObservation for this Vrf -func (tr *Vrf) SetObservation(obs map[string]interface{}) error { +func (tr *Vrf) SetObservation(obs map[string]any) error { p, err := json.TFParser.Marshal(obs) if err != nil { return err @@ -1471,17 +1471,17 @@ func (tr *Vrf) GetID() string { } // GetParameters of this Vrf -func (tr *Vrf) GetParameters() (map[string]interface{}, error) { +func (tr *Vrf) GetParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.ForProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(p, &base) } // SetParameters for this Vrf -func (tr *Vrf) SetParameters(params map[string]interface{}) error { +func (tr *Vrf) SetParameters(params map[string]any) error { p, err := json.TFParser.Marshal(params) if err != nil { return err diff --git a/apis/metal/v1alpha1/zz_groupversion_info.go b/apis/metal/v1alpha1/zz_groupversion_info.go index c1524a6..c44d4db 100755 --- a/apis/metal/v1alpha1/zz_groupversion_info.go +++ b/apis/metal/v1alpha1/zz_groupversion_info.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. // +kubebuilder:object:generate=true // +groupName=metal.equinix.jet.crossplane.io diff --git a/apis/metal/v1alpha1/zz_ipattachment_types.go b/apis/metal/v1alpha1/zz_ipattachment_types.go index 05168eb..0dbf7e4 100755 --- a/apis/metal/v1alpha1/zz_ipattachment_types.go +++ b/apis/metal/v1alpha1/zz_ipattachment_types.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package v1alpha1 @@ -28,12 +28,15 @@ import ( type IPAttachmentObservation struct { Address *string `json:"address,omitempty" tf:"address,omitempty"` + // Address family as integer (4 or 6) AddressFamily *float64 `json:"addressFamily,omitempty" tf:"address_family,omitempty"` + // Length of CIDR prefix of the block as integer Cidr *float64 `json:"cidr,omitempty" tf:"cidr,omitempty"` Gateway *string `json:"gateway,omitempty" tf:"gateway,omitempty"` + // Flag indicating whether IP block is global, i.e. assignable in any location Global *bool `json:"global,omitempty" tf:"global,omitempty"` ID *string `json:"id,omitempty" tf:"id,omitempty"` @@ -42,10 +45,13 @@ type IPAttachmentObservation struct { Management *bool `json:"management,omitempty" tf:"management,omitempty"` + // Mask in decimal notation, e.g. 255.255.255.0 Netmask *string `json:"netmask,omitempty" tf:"netmask,omitempty"` + // Network IP address portion of the block specification Network *string `json:"network,omitempty" tf:"network,omitempty"` + // Flag indicating whether IP block is addressable from the Internet Public *bool `json:"public,omitempty" tf:"public,omitempty"` VrfID *string `json:"vrfId,omitempty" tf:"vrf_id,omitempty"` @@ -60,9 +66,11 @@ type IPAttachmentParameters struct { // +kubebuilder:validation:Optional DeviceID *string `json:"deviceId,omitempty" tf:"device_id,omitempty"` + // Reference to a Device to populate deviceId. // +kubebuilder:validation:Optional DeviceIDRef *v1.Reference `json:"deviceIdRef,omitempty" tf:"-"` + // Selector for a Device to populate deviceId. // +kubebuilder:validation:Optional DeviceIDSelector *v1.Selector `json:"deviceIdSelector,omitempty" tf:"-"` } @@ -81,13 +89,13 @@ type IPAttachmentStatus struct { // +kubebuilder:object:root=true -// IPAttachment is the Schema for the IPAttachments API +// IPAttachment is the Schema for the IPAttachments API. // +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,equinixjet} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,equinix} type IPAttachment struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/metal/v1alpha1/zz_organization_types.go b/apis/metal/v1alpha1/zz_organization_types.go index 9ea045d..2caf40b 100755 --- a/apis/metal/v1alpha1/zz_organization_types.go +++ b/apis/metal/v1alpha1/zz_organization_types.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package v1alpha1 @@ -30,57 +30,73 @@ type AddressObservation struct { type AddressParameters struct { + // Postal address. // Postal address // +kubebuilder:validation:Required Address *string `json:"address" tf:"address,omitempty"` + // City name. // City name // +kubebuilder:validation:Required City *string `json:"city" tf:"city,omitempty"` + // Two letter country code (ISO 3166-1 alpha-2), e.g. US. // Two letter country code (ISO 3166-1 alpha-2), e.g. US // +kubebuilder:validation:Required Country *string `json:"country" tf:"country,omitempty"` + // State name. // State name // +kubebuilder:validation:Optional State *string `json:"state,omitempty" tf:"state,omitempty"` + // Zip Code. // Zip Code // +kubebuilder:validation:Required ZipCode *string `json:"zipCode" tf:"zip_code,omitempty"` } type OrganizationObservation struct { + + // The timestamp for when the organization was created. Created *string `json:"created,omitempty" tf:"created,omitempty"` + // The unique ID of the organization. ID *string `json:"id,omitempty" tf:"id,omitempty"` + // The timestamp for the last time the organization was updated. Updated *string `json:"updated,omitempty" tf:"updated,omitempty"` } type OrganizationParameters struct { + // An object that has the address information. See Address + // below for more details. // Address information block // +kubebuilder:validation:Required Address []AddressParameters `json:"address" tf:"address,omitempty"` + // Description string. // Description string // +kubebuilder:validation:Optional Description *string `json:"description,omitempty" tf:"description,omitempty"` + // Logo URL. // Logo URL // +kubebuilder:validation:Optional Logo *string `json:"logo,omitempty" tf:"logo,omitempty"` + // The name of the Organization. // The name of the Organization // +kubebuilder:validation:Required Name *string `json:"name" tf:"name,omitempty"` + // Twitter handle. // Twitter handle // +kubebuilder:validation:Optional Twitter *string `json:"twitter,omitempty" tf:"twitter,omitempty"` + // Website link. // Website link // +kubebuilder:validation:Optional Website *string `json:"website,omitempty" tf:"website,omitempty"` @@ -100,13 +116,13 @@ type OrganizationStatus struct { // +kubebuilder:object:root=true -// Organization is the Schema for the Organizations API +// Organization is the Schema for the Organizations API. // +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,equinixjet} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,equinix} type Organization struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/metal/v1alpha1/zz_organizationmember_types.go b/apis/metal/v1alpha1/zz_organizationmember_types.go index d146922..e7d60f3 100755 --- a/apis/metal/v1alpha1/zz_organizationmember_types.go +++ b/apis/metal/v1alpha1/zz_organizationmember_types.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package v1alpha1 @@ -26,44 +26,63 @@ import ( ) type OrganizationMemberObservation struct { + + // When the invitation was created (only known in the invitation stage) + // When the invitation was created (only known in the invitation stage) Created *string `json:"created,omitempty" tf:"created,omitempty"` + // The unique ID of the membership. ID *string `json:"id,omitempty" tf:"id,omitempty"` + // The user_id of the user that sent the invitation (only known in the invitation stage) + // The user id of the user that sent the invitation (only known in the invitation stage) InvitedBy *string `json:"invitedBy,omitempty" tf:"invited_by,omitempty"` + // The nonce for the invitation (only known in the invitation stage) + // The nonce for the invitation (only known in the invitation stage) Nonce *string `json:"nonce,omitempty" tf:"nonce,omitempty"` + // The state of the membership ('invited' when an invitation is open, 'active' when the user is an organization member) + // The state of the membership ('invited' when an invitation is open, 'active' when the user is an organization member) State *string `json:"state,omitempty" tf:"state,omitempty"` + // When the invitation was updated (only known in the invitation stage) + // When the invitation was updated (only known in the invitation stage) Updated *string `json:"updated,omitempty" tf:"updated,omitempty"` } type OrganizationMemberParameters struct { + // The email address of the user to invite // The email address of the user to invite // +kubebuilder:validation:Required Invitee *string `json:"invitee" tf:"invitee,omitempty"` + // A message to include in the emailed invitation. // A message to the invitee (only used during the invitation stage) // +kubebuilder:validation:Optional Message *string `json:"message,omitempty" tf:"message,omitempty"` + // The organization to invite the user to // The organization to invite the user to // +crossplane:generate:reference:type=Organization // +kubebuilder:validation:Optional OrganizationID *string `json:"organizationId,omitempty" tf:"organization_id,omitempty"` + // Reference to a Organization to populate organizationId. // +kubebuilder:validation:Optional OrganizationIDRef *v1.Reference `json:"organizationIdRef,omitempty" tf:"-"` + // Selector for a Organization to populate organizationId. // +kubebuilder:validation:Optional OrganizationIDSelector *v1.Selector `json:"organizationIdSelector,omitempty" tf:"-"` + // Project IDs the member has access to within the organization. If the member is an 'admin', the projects list should be empty. // Project IDs the member has access to within the organization. If the member is an 'owner', the projects list should be empty. // +kubebuilder:validation:Required ProjectsIds []*string `json:"projectsIds" tf:"projects_ids,omitempty"` + // Organization roles (admin, collaborator, limited_collaborator, billing) // Organization roles (owner, collaborator, limited_collaborator, billing) // +kubebuilder:validation:Required Roles []*string `json:"roles" tf:"roles,omitempty"` @@ -83,13 +102,13 @@ type OrganizationMemberStatus struct { // +kubebuilder:object:root=true -// OrganizationMember is the Schema for the OrganizationMembers API +// OrganizationMember is the Schema for the OrganizationMembers API. // +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,equinixjet} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,equinix} type OrganizationMember struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/metal/v1alpha1/zz_port_types.go b/apis/metal/v1alpha1/zz_port_types.go index e0a8b2b..93d73ac 100755 --- a/apis/metal/v1alpha1/zz_port_types.go +++ b/apis/metal/v1alpha1/zz_port_types.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package v1alpha1 @@ -26,20 +26,28 @@ import ( ) type PortObservation struct { + + // UUID of the bond port BondID *string `json:"bondId,omitempty" tf:"bond_id,omitempty"` + // Name of the bond port BondName *string `json:"bondName,omitempty" tf:"bond_name,omitempty"` + // Flag indicating whether the port can be removed from a bond DisbondSupported *bool `json:"disbondSupported,omitempty" tf:"disbond_supported,omitempty"` ID *string `json:"id,omitempty" tf:"id,omitempty"` + // MAC address of the port Mac *string `json:"mac,omitempty" tf:"mac,omitempty"` + // Name of the port to look up, e.g. bond0, eth1 Name *string `json:"name,omitempty" tf:"name,omitempty"` + // One of layer2-bonded, layer2-individual, layer3, hybrid and hybrid-bonded. This attribute is only set on bond ports. NetworkType *string `json:"networkType,omitempty" tf:"network_type,omitempty"` + // Port type Type *string `json:"type,omitempty" tf:"type,omitempty"` } @@ -58,9 +66,11 @@ type PortParameters struct { // +kubebuilder:validation:Optional NativeVlanID *string `json:"nativeVlanId,omitempty" tf:"native_vlan_id,omitempty"` + // Reference to a Vlan to populate nativeVlanId. // +kubebuilder:validation:Optional NativeVlanIDRef *v1.Reference `json:"nativeVlanIdRef,omitempty" tf:"-"` + // Selector for a Vlan to populate nativeVlanId. // +kubebuilder:validation:Optional NativeVlanIDSelector *v1.Selector `json:"nativeVlanIdSelector,omitempty" tf:"-"` @@ -95,13 +105,13 @@ type PortStatus struct { // +kubebuilder:object:root=true -// Port is the Schema for the Ports API +// Port is the Schema for the Ports API. // +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,equinixjet} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,equinix} type Port struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/metal/v1alpha1/zz_portvlanattachment_types.go b/apis/metal/v1alpha1/zz_portvlanattachment_types.go index d634b5c..b3f633d 100755 --- a/apis/metal/v1alpha1/zz_portvlanattachment_types.go +++ b/apis/metal/v1alpha1/zz_portvlanattachment_types.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package v1alpha1 @@ -28,8 +28,10 @@ import ( type PortVlanAttachmentObservation struct { ID *string `json:"id,omitempty" tf:"id,omitempty"` + // UUID of device port PortID *string `json:"portId,omitempty" tf:"port_id,omitempty"` + // UUID of VLAN API resource VlanID *string `json:"vlanId,omitempty" tf:"vlan_id,omitempty"` } @@ -40,9 +42,11 @@ type PortVlanAttachmentParameters struct { // +kubebuilder:validation:Optional DeviceID *string `json:"deviceId,omitempty" tf:"device_id,omitempty"` + // Reference to a Device to populate deviceId. // +kubebuilder:validation:Optional DeviceIDRef *v1.Reference `json:"deviceIdRef,omitempty" tf:"-"` + // Selector for a Device to populate deviceId. // +kubebuilder:validation:Optional DeviceIDSelector *v1.Selector `json:"deviceIdSelector,omitempty" tf:"-"` @@ -77,13 +81,13 @@ type PortVlanAttachmentStatus struct { // +kubebuilder:object:root=true -// PortVlanAttachment is the Schema for the PortVlanAttachments API +// PortVlanAttachment is the Schema for the PortVlanAttachments API. // +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,equinixjet} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,equinix} type PortVlanAttachment struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/metal/v1alpha1/zz_project_types.go b/apis/metal/v1alpha1/zz_project_types.go index a8ed0fc..b2b8703 100755 --- a/apis/metal/v1alpha1/zz_project_types.go +++ b/apis/metal/v1alpha1/zz_project_types.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package v1alpha1 @@ -26,8 +26,11 @@ import ( ) type BGPConfigObservation struct { + + // The maximum number of route filters allowed per server MaxPrefix *float64 `json:"maxPrefix,omitempty" tf:"max_prefix,omitempty"` + // Status of BGP configuration in the project Status *string `json:"status,omitempty" tf:"status,omitempty"` } @@ -47,12 +50,17 @@ type BGPConfigParameters struct { } type ProjectObservation struct { + + // Optional BGP settings. Refer to [Equinix Metal guide for BGP](https://metal.equinix.com/developers/docs/networking/local-global-bgp/) + // +kubebuilder:validation:Optional BGPConfig []BGPConfigObservation `json:"bgpConfig,omitempty" tf:"bgp_config,omitempty"` + // The timestamp for when the project was created Created *string `json:"created,omitempty" tf:"created,omitempty"` ID *string `json:"id,omitempty" tf:"id,omitempty"` + // The timestamp for the last time the project was updated Updated *string `json:"updated,omitempty" tf:"updated,omitempty"` } @@ -66,6 +74,7 @@ type ProjectParameters struct { // +kubebuilder:validation:Optional BackendTransfer *bool `json:"backendTransfer,omitempty" tf:"backend_transfer,omitempty"` + // User-supplied name of the VRF, unique to the project // The name of the project // +kubebuilder:validation:Required Name *string `json:"name" tf:"name,omitempty"` @@ -75,9 +84,11 @@ type ProjectParameters struct { // +kubebuilder:validation:Optional OrganizationID *string `json:"organizationId,omitempty" tf:"organization_id,omitempty"` + // Reference to a Organization to populate organizationId. // +kubebuilder:validation:Optional OrganizationIDRef *v1.Reference `json:"organizationIdRef,omitempty" tf:"-"` + // Selector for a Organization to populate organizationId. // +kubebuilder:validation:Optional OrganizationIDSelector *v1.Selector `json:"organizationIdSelector,omitempty" tf:"-"` @@ -100,13 +111,13 @@ type ProjectStatus struct { // +kubebuilder:object:root=true -// Project is the Schema for the Projects API +// Project is the Schema for the Projects API. // +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,equinixjet} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,equinix} type Project struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/metal/v1alpha1/zz_projectapikey_types.go b/apis/metal/v1alpha1/zz_projectapikey_types.go index 4278fdc..7e47d98 100755 --- a/apis/metal/v1alpha1/zz_projectapikey_types.go +++ b/apis/metal/v1alpha1/zz_projectapikey_types.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package v1alpha1 @@ -31,18 +31,22 @@ type ProjectAPIKeyObservation struct { type ProjectAPIKeyParameters struct { + // Description string for the Project API Key resource. // Description string for the API key // +kubebuilder:validation:Required Description *string `json:"description" tf:"description,omitempty"` + // UUID of the project where the API key is scoped to. // UUID of project which the new API key is scoped to // +crossplane:generate:reference:type=Project // +kubebuilder:validation:Optional ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + // Reference to a Project to populate projectId. // +kubebuilder:validation:Optional ProjectIDRef *v1.Reference `json:"projectIdRef,omitempty" tf:"-"` + // Selector for a Project to populate projectId. // +kubebuilder:validation:Optional ProjectIDSelector *v1.Selector `json:"projectIdSelector,omitempty" tf:"-"` @@ -65,13 +69,13 @@ type ProjectAPIKeyStatus struct { // +kubebuilder:object:root=true -// ProjectAPIKey is the Schema for the ProjectAPIKeys API +// ProjectAPIKey is the Schema for the ProjectAPIKeys API. // +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,equinixjet} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,equinix} type ProjectAPIKey struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/metal/v1alpha1/zz_projectsshkey_types.go b/apis/metal/v1alpha1/zz_projectsshkey_types.go index b2f2f26..b76cb7e 100755 --- a/apis/metal/v1alpha1/zz_projectsshkey_types.go +++ b/apis/metal/v1alpha1/zz_projectsshkey_types.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package v1alpha1 @@ -26,34 +26,49 @@ import ( ) type ProjectSSHKeyObservation struct { + + // The timestamp for when the SSH key was created. + // The timestamp for when the SSH key was created Created *string `json:"created,omitempty" tf:"created,omitempty"` + // The fingerprint of the SSH key. + // The fingerprint of the SSH key Fingerprint *string `json:"fingerprint,omitempty" tf:"fingerprint,omitempty"` + // The unique ID of the key. ID *string `json:"id,omitempty" tf:"id,omitempty"` + // The ID of parent project (same as project_id). + // The UUID of the Equinix Metal API User who owns this key OwnerID *string `json:"ownerId,omitempty" tf:"owner_id,omitempty"` + // The timestamp for the last time the SSH key was updated. + // The timestamp for the last time the SSH key was updated Updated *string `json:"updated,omitempty" tf:"updated,omitempty"` } type ProjectSSHKeyParameters struct { + // The name of the SSH key for identification. // The name of the SSH key for identification // +kubebuilder:validation:Required Name *string `json:"name" tf:"name,omitempty"` + // The ID of parent project. // The ID of parent project // +crossplane:generate:reference:type=Project // +kubebuilder:validation:Optional ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + // Reference to a Project to populate projectId. // +kubebuilder:validation:Optional ProjectIDRef *v1.Reference `json:"projectIdRef,omitempty" tf:"-"` + // Selector for a Project to populate projectId. // +kubebuilder:validation:Optional ProjectIDSelector *v1.Selector `json:"projectIdSelector,omitempty" tf:"-"` + // The public key. If this is a file, it can be read using the file interpolation function. // The public key. If this is a file, it // +kubebuilder:validation:Required PublicKey *string `json:"publicKey" tf:"public_key,omitempty"` @@ -73,13 +88,13 @@ type ProjectSSHKeyStatus struct { // +kubebuilder:object:root=true -// ProjectSSHKey is the Schema for the ProjectSSHKeys API +// ProjectSSHKey is the Schema for the ProjectSSHKeys API. // +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,equinixjet} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,equinix} type ProjectSSHKey struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/metal/v1alpha1/zz_reservedipblock_types.go b/apis/metal/v1alpha1/zz_reservedipblock_types.go index b80322e..becb846 100755 --- a/apis/metal/v1alpha1/zz_reservedipblock_types.go +++ b/apis/metal/v1alpha1/zz_reservedipblock_types.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package v1alpha1 @@ -28,85 +28,114 @@ import ( type ReservedIPBlockObservation struct { Address *string `json:"address,omitempty" tf:"address,omitempty"` + // Address family as integer. One of 4 or 6. + // Address family as integer (4 or 6) AddressFamily *float64 `json:"addressFamily,omitempty" tf:"address_family,omitempty"` + // Address and mask in CIDR notation, e.g. 147.229.15.30/31. CidrNotation *string `json:"cidrNotation,omitempty" tf:"cidr_notation,omitempty"` Gateway *string `json:"gateway,omitempty" tf:"gateway,omitempty"` + // Boolean flag whether addresses from a block are global (i.e. can be assigned in any + // facility). + // Flag indicating whether IP block is global, i.e. assignable in any location Global *bool `json:"global,omitempty" tf:"global,omitempty"` + // The unique ID of the block. ID *string `json:"id,omitempty" tf:"id,omitempty"` Manageable *bool `json:"manageable,omitempty" tf:"manageable,omitempty"` Management *bool `json:"management,omitempty" tf:"management,omitempty"` + // Mask in decimal notation, e.g. 255.255.255.0. + // Mask in decimal notation, e.g. 255.255.255.0 Netmask *string `json:"netmask,omitempty" tf:"netmask,omitempty"` + // Boolean flag whether addresses from a block are public. + // Flag indicating whether IP block is addressable from the Internet Public *bool `json:"public,omitempty" tf:"public,omitempty"` } type ReservedIPBlockParameters struct { + // Only valid as an argument and required when type is vrf. The size of the network to reserve from an existing VRF ip_range. cidr can only be specified with vrf_id. Range is 22-31. Virtual Circuits require 30-31. Other VRF resources must use a CIDR in the 22-29 range. // the size of the network to reserve from an existing vrf ip_range. `cidr` can only be specified with `vrf_id`. Minimum range is 22-29, with 30-31 supported and necessary for virtual-circuits // +kubebuilder:validation:Optional Cidr *float64 `json:"cidr,omitempty" tf:"cidr,omitempty"` - // Custom Data is an arbitrary object (submitted in Terraform as serialized JSON) to assign to the IP Reservation. This may be helpful for self-managed IPAM. The object must be valid JSON. + // This may be helpful for self-managed IPAM. The object must be valid JSON. This may be helpful for self-managed IPAM. The object must be valid JSON. // +kubebuilder:validation:Optional CustomData *string `json:"customData,omitempty" tf:"custom_data,omitempty"` + // Arbitrary description. // Arbitrary description // +kubebuilder:validation:Optional Description *string `json:"description,omitempty" tf:"description,omitempty"` + // Facility where to allocate the public IP address block, makes sense only + // if type is public_ipv4 and must be empty if type is global_ipv4. Conflicts with metro. // Facility where to allocate the public IP address block, makes sense only for type==public_ipv4, must be empty for type==global_ipv4, conflicts with metro // +kubebuilder:validation:Optional Facility *string `json:"facility,omitempty" tf:"facility,omitempty"` + // Metro where to allocate the public IP address block, makes sense only + // if type is public_ipv4 and must be empty if type is global_ipv4. Conflicts with facility. // Metro where to allocate the public IP address block, makes sense only for type==public_ipv4, must be empty for type==global_ipv4, conflicts with facility // +kubebuilder:validation:Optional Metro *string `json:"metro,omitempty" tf:"metro,omitempty"` + // Only valid as an argument and required when type is vrf. An unreserved network address from an existing ip_range in the specified VRF. // an unreserved network address from an existing vrf ip_range. `network` can only be specified with vrf_id // +kubebuilder:validation:Optional Network *string `json:"network,omitempty" tf:"network,omitempty"` + // The metal project ID where to allocate the address block. // The metal project ID where to allocate the address block // +crossplane:generate:reference:type=Project // +kubebuilder:validation:Optional ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + // Reference to a Project to populate projectId. // +kubebuilder:validation:Optional ProjectIDRef *v1.Reference `json:"projectIdRef,omitempty" tf:"-"` + // Selector for a Project to populate projectId. // +kubebuilder:validation:Optional ProjectIDSelector *v1.Selector `json:"projectIdSelector,omitempty" tf:"-"` + // The number of allocated /32 addresses, a power of 2. Required when type is not vrf. // The number of allocated /32 addresses, a power of 2 // +kubebuilder:validation:Optional Quantity *float64 `json:"quantity,omitempty" tf:"quantity,omitempty"` + // String list of tags. // Tags attached to the reserved block // +kubebuilder:validation:Optional Tags []*string `json:"tags,omitempty" tf:"tags,omitempty"` + // One of global_ipv4, public_ipv4, or vrf. Defaults to public_ipv4 for backward + // compatibility. // Either global_ipv4, public_ipv4, or vrf. Defaults to public_ipv4. // +kubebuilder:validation:Optional Type *string `json:"type,omitempty" tf:"type,omitempty"` + // Only valid and required when type is vrf. VRF ID for type=vrf reservations. // VRF ID for type=vrf reservations // +crossplane:generate:reference:type=Vrf // +kubebuilder:validation:Optional VrfID *string `json:"vrfId,omitempty" tf:"vrf_id,omitempty"` + // Reference to a Vrf to populate vrfId. // +kubebuilder:validation:Optional VrfIDRef *v1.Reference `json:"vrfIdRef,omitempty" tf:"-"` + // Selector for a Vrf to populate vrfId. // +kubebuilder:validation:Optional VrfIDSelector *v1.Selector `json:"vrfIdSelector,omitempty" tf:"-"` + // Wait for the IP reservation block to reach a desired state on resource creation. One of: pending, created. The created state is default and recommended if the addresses are needed within the configuration. An error will be returned if a timeout or the denied state is encountered. // Wait for the IP reservation block to reach a desired state on resource creation. One of: `pending`, `created`. The `created` state is default and recommended if the addresses are needed within the configuration. An error will be returned if a timeout or the `denied` state is encountered. // +kubebuilder:validation:Optional WaitForState *string `json:"waitForState,omitempty" tf:"wait_for_state,omitempty"` @@ -126,13 +155,13 @@ type ReservedIPBlockStatus struct { // +kubebuilder:object:root=true -// ReservedIPBlock is the Schema for the ReservedIPBlocks API +// ReservedIPBlock is the Schema for the ReservedIPBlocks API. // +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,equinixjet} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,equinix} type ReservedIPBlock struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/metal/v1alpha1/zz_spotmarketrequest_types.go b/apis/metal/v1alpha1/zz_spotmarketrequest_types.go index bec19e1..2da4fd5 100755 --- a/apis/metal/v1alpha1/zz_spotmarketrequest_types.go +++ b/apis/metal/v1alpha1/zz_spotmarketrequest_types.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package v1alpha1 @@ -52,6 +52,7 @@ type InstanceParametersParameters struct { // +kubebuilder:validation:Optional IpxeScriptURL *string `json:"ipxeScriptUrl,omitempty" tf:"ipxe_script_url,omitempty"` + // Blocks deletion of the SpotMarketRequest device until the lock is disabled. // +kubebuilder:validation:Optional Locked *bool `json:"locked,omitempty" tf:"locked,omitempty"` @@ -75,48 +76,72 @@ type InstanceParametersParameters struct { } type SpotMarketRequestObservation struct { + + // The ID of the Spot Market Request. ID *string `json:"id,omitempty" tf:"id,omitempty"` + // Key/Value pairs of parameters for devices provisioned from + // this request. Valid keys are: billing_cycle, plan, operating_system, hostname, + // termintation_time, always_pxe, description, features, locked, project_ssh_keys, + // user_ssh_keys, userdata, customdata, ipxe_script_url, tags. You can find each parameter + // description in equinix_metal_device docs. + // Parameters for devices provisioned from this request. You can find the parameter description from the [equinix_metal_device doc](device.md) + // +kubebuilder:validation:Required InstanceParameters []InstanceParametersObservation `json:"instanceParameters,omitempty" tf:"instance_parameters,omitempty"` } type SpotMarketRequestParameters struct { + // Maximum number devices to be created. // Maximum number devices to be created // +kubebuilder:validation:Required DevicesMax *float64 `json:"devicesMax" tf:"devices_max,omitempty"` + // Miniumum number devices to be created. // Miniumum number devices to be created // +kubebuilder:validation:Required DevicesMin *float64 `json:"devicesMin" tf:"devices_min,omitempty"` + // Facility IDs where devices should be created. // Facility IDs where devices should be created // +kubebuilder:validation:Optional Facilities []*string `json:"facilities,omitempty" tf:"facilities,omitempty"` + // Key/Value pairs of parameters for devices provisioned from + // this request. Valid keys are: billing_cycle, plan, operating_system, hostname, + // termintation_time, always_pxe, description, features, locked, project_ssh_keys, + // user_ssh_keys, userdata, customdata, ipxe_script_url, tags. You can find each parameter + // description in equinix_metal_device docs. // Parameters for devices provisioned from this request. You can find the parameter description from the [equinix_metal_device doc](device.md) // +kubebuilder:validation:Required InstanceParameters []InstanceParametersParameters `json:"instanceParameters" tf:"instance_parameters,omitempty"` + // Maximum price user is willing to pay per hour per device. // Maximum price user is willing to pay per hour per device // +kubebuilder:validation:Required MaxBidPrice *float64 `json:"maxBidPrice" tf:"max_bid_price,omitempty"` + // Metro where devices should be created. // Metro where devices should be created // +kubebuilder:validation:Optional Metro *string `json:"metro,omitempty" tf:"metro,omitempty"` + // Project ID. // Project ID // +crossplane:generate:reference:type=Project // +kubebuilder:validation:Optional ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + // Reference to a Project to populate projectId. // +kubebuilder:validation:Optional ProjectIDRef *v1.Reference `json:"projectIdRef,omitempty" tf:"-"` + // Selector for a Project to populate projectId. // +kubebuilder:validation:Optional ProjectIDSelector *v1.Selector `json:"projectIdSelector,omitempty" tf:"-"` + // On resource creation wait until all desired devices are active. + // On resource destruction wait until devices are removed. // On resource creation - wait until all desired devices are active, on resource destruction - wait until devices are removed // +kubebuilder:validation:Optional WaitForDevices *bool `json:"waitForDevices,omitempty" tf:"wait_for_devices,omitempty"` @@ -136,13 +161,13 @@ type SpotMarketRequestStatus struct { // +kubebuilder:object:root=true -// SpotMarketRequest is the Schema for the SpotMarketRequests API +// SpotMarketRequest is the Schema for the SpotMarketRequests API. // +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,equinixjet} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,equinix} type SpotMarketRequest struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/metal/v1alpha1/zz_sshkey_types.go b/apis/metal/v1alpha1/zz_sshkey_types.go index 26ccc4d..d53360f 100755 --- a/apis/metal/v1alpha1/zz_sshkey_types.go +++ b/apis/metal/v1alpha1/zz_sshkey_types.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package v1alpha1 @@ -26,23 +26,36 @@ import ( ) type SSHKeyObservation struct { + + // The timestamp for when the SSH key was created. + // The timestamp for when the SSH key was created Created *string `json:"created,omitempty" tf:"created,omitempty"` + // The fingerprint of the SSH key. + // The fingerprint of the SSH key Fingerprint *string `json:"fingerprint,omitempty" tf:"fingerprint,omitempty"` + // The unique ID of the key. ID *string `json:"id,omitempty" tf:"id,omitempty"` + // The UUID of the Equinix Metal API User who owns this key. + // The UUID of the Equinix Metal API User who owns this key OwnerID *string `json:"ownerId,omitempty" tf:"owner_id,omitempty"` + // The timestamp for the last time the SSH key was updated. + // The timestamp for the last time the SSH key was updated Updated *string `json:"updated,omitempty" tf:"updated,omitempty"` } type SSHKeyParameters struct { + // The name of the SSH key for identification // The name of the SSH key for identification // +kubebuilder:validation:Required Name *string `json:"name" tf:"name,omitempty"` + // The public key. If this is a file, it + // can be read using the file interpolation function // The public key. If this is a file, it // +kubebuilder:validation:Required PublicKey *string `json:"publicKey" tf:"public_key,omitempty"` @@ -62,13 +75,13 @@ type SSHKeyStatus struct { // +kubebuilder:object:root=true -// SSHKey is the Schema for the SSHKeys API +// SSHKey is the Schema for the SSHKeys API. // +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,equinixjet} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,equinix} type SSHKey struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/metal/v1alpha1/zz_userapikey_types.go b/apis/metal/v1alpha1/zz_userapikey_types.go index 15e2363..7eff44f 100755 --- a/apis/metal/v1alpha1/zz_userapikey_types.go +++ b/apis/metal/v1alpha1/zz_userapikey_types.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package v1alpha1 @@ -28,11 +28,14 @@ import ( type UserAPIKeyObservation struct { ID *string `json:"id,omitempty" tf:"id,omitempty"` + // UUID of the owner of the API key. + // UUID of user owning this key UserID *string `json:"userId,omitempty" tf:"user_id,omitempty"` } type UserAPIKeyParameters struct { + // Description string for the User API Key resource. // Description string for the API key // +kubebuilder:validation:Required Description *string `json:"description" tf:"description,omitempty"` @@ -56,13 +59,13 @@ type UserAPIKeyStatus struct { // +kubebuilder:object:root=true -// UserAPIKey is the Schema for the UserAPIKeys API +// UserAPIKey is the Schema for the UserAPIKeys API. // +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,equinixjet} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,equinix} type UserAPIKey struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/metal/v1alpha1/zz_virtualcircuit_types.go b/apis/metal/v1alpha1/zz_virtualcircuit_types.go index 39cb3ea..2884836 100755 --- a/apis/metal/v1alpha1/zz_virtualcircuit_types.go +++ b/apis/metal/v1alpha1/zz_virtualcircuit_types.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package v1alpha1 @@ -28,10 +28,13 @@ import ( type VirtualCircuitObservation struct { ID *string `json:"id,omitempty" tf:"id,omitempty"` + // Nni VLAN ID parameter, see https://metal.equinix.com/developers/docs/networking/fabric/ NniVnid *float64 `json:"nniVnid,omitempty" tf:"nni_vnid,omitempty"` + // Status of the virtual circuit resource Status *string `json:"status,omitempty" tf:"status,omitempty"` + // VNID VLAN parameter, see https://metal.equinix.com/developers/docs/networking/fabric/ Vnid *float64 `json:"vnid,omitempty" tf:"vnid,omitempty"` } @@ -42,9 +45,11 @@ type VirtualCircuitParameters struct { // +kubebuilder:validation:Optional ConnectionID *string `json:"connectionId,omitempty" tf:"connection_id,omitempty"` + // Reference to a Connection to populate connectionId. // +kubebuilder:validation:Optional ConnectionIDRef *v1.Reference `json:"connectionIdRef,omitempty" tf:"-"` + // Selector for a Connection to populate connectionId. // +kubebuilder:validation:Optional ConnectionIDSelector *v1.Selector `json:"connectionIdSelector,omitempty" tf:"-"` @@ -85,9 +90,11 @@ type VirtualCircuitParameters struct { // +kubebuilder:validation:Optional ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + // Reference to a Project to populate projectId. // +kubebuilder:validation:Optional ProjectIDRef *v1.Reference `json:"projectIdRef,omitempty" tf:"-"` + // Selector for a Project to populate projectId. // +kubebuilder:validation:Optional ProjectIDSelector *v1.Selector `json:"projectIdSelector,omitempty" tf:"-"` @@ -110,9 +117,11 @@ type VirtualCircuitParameters struct { // +kubebuilder:validation:Optional VlanID *string `json:"vlanId,omitempty" tf:"vlan_id,omitempty"` + // Reference to a Vlan to populate vlanId. // +kubebuilder:validation:Optional VlanIDRef *v1.Reference `json:"vlanIdRef,omitempty" tf:"-"` + // Selector for a Vlan to populate vlanId. // +kubebuilder:validation:Optional VlanIDSelector *v1.Selector `json:"vlanIdSelector,omitempty" tf:"-"` @@ -121,9 +130,11 @@ type VirtualCircuitParameters struct { // +kubebuilder:validation:Optional VrfID *string `json:"vrfId,omitempty" tf:"vrf_id,omitempty"` + // Reference to a Vrf to populate vrfId. // +kubebuilder:validation:Optional VrfIDRef *v1.Reference `json:"vrfIdRef,omitempty" tf:"-"` + // Selector for a Vrf to populate vrfId. // +kubebuilder:validation:Optional VrfIDSelector *v1.Selector `json:"vrfIdSelector,omitempty" tf:"-"` } @@ -142,13 +153,13 @@ type VirtualCircuitStatus struct { // +kubebuilder:object:root=true -// VirtualCircuit is the Schema for the VirtualCircuits API +// VirtualCircuit is the Schema for the VirtualCircuits API. // +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,equinixjet} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,equinix} type VirtualCircuit struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/metal/v1alpha1/zz_vlan_types.go b/apis/metal/v1alpha1/zz_vlan_types.go index 799998e..607e681 100755 --- a/apis/metal/v1alpha1/zz_vlan_types.go +++ b/apis/metal/v1alpha1/zz_vlan_types.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package v1alpha1 @@ -26,15 +26,19 @@ import ( ) type VlanObservation struct { + + // ID of the virtual network. ID *string `json:"id,omitempty" tf:"id,omitempty"` } type VlanParameters struct { + // Description string. // Description string // +kubebuilder:validation:Optional Description *string `json:"description,omitempty" tf:"description,omitempty"` + // Facility where to create the VLAN. // Facility where to create the VLAN // +kubebuilder:validation:Optional Facility *string `json:"facility,omitempty" tf:"facility,omitempty"` @@ -42,17 +46,21 @@ type VlanParameters struct { // +kubebuilder:validation:Optional Metro *string `json:"metro,omitempty" tf:"metro,omitempty"` + // ID of parent project. // ID of parent project // +crossplane:generate:reference:type=Project // +kubebuilder:validation:Optional ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + // Reference to a Project to populate projectId. // +kubebuilder:validation:Optional ProjectIDRef *v1.Reference `json:"projectIdRef,omitempty" tf:"-"` + // Selector for a Project to populate projectId. // +kubebuilder:validation:Optional ProjectIDSelector *v1.Selector `json:"projectIdSelector,omitempty" tf:"-"` + // VLAN ID, must be unique in metro. // VLAN ID, must be unique in metro // +kubebuilder:validation:Optional Vxlan *float64 `json:"vxlan,omitempty" tf:"vxlan,omitempty"` @@ -72,13 +80,13 @@ type VlanStatus struct { // +kubebuilder:object:root=true -// Vlan is the Schema for the Vlans API +// Vlan is the Schema for the Vlans API. // +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,equinixjet} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,equinix} type Vlan struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/metal/v1alpha1/zz_vrf_types.go b/apis/metal/v1alpha1/zz_vrf_types.go index c591467..54fd956 100755 --- a/apis/metal/v1alpha1/zz_vrf_types.go +++ b/apis/metal/v1alpha1/zz_vrf_types.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package v1alpha1 @@ -56,9 +56,11 @@ type VrfParameters struct { // +kubebuilder:validation:Optional ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"` + // Reference to a Project to populate projectId. // +kubebuilder:validation:Optional ProjectIDRef *v1.Reference `json:"projectIdRef,omitempty" tf:"-"` + // Selector for a Project to populate projectId. // +kubebuilder:validation:Optional ProjectIDSelector *v1.Selector `json:"projectIdSelector,omitempty" tf:"-"` } @@ -77,13 +79,13 @@ type VrfStatus struct { // +kubebuilder:object:root=true -// Vrf is the Schema for the Vrfs API +// Vrf is the Schema for the Vrfs API. // +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,equinixjet} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,equinix} type Vrf struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/network/v1alpha1/zz_acltemplate_types.go b/apis/network/v1alpha1/zz_acltemplate_types.go index 6dabca7..023ad9e 100755 --- a/apis/network/v1alpha1/zz_acltemplate_types.go +++ b/apis/network/v1alpha1/zz_acltemplate_types.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package v1alpha1 @@ -26,43 +26,67 @@ import ( ) type ACLTemplateObservation struct { + + // Status of ACL template provisioning process, where template was applied. + // One of PROVISIONING, PROVISIONED. + // Status of ACL template provisioning process on a device, where template was applied DeviceACLStatus *string `json:"deviceAclStatus,omitempty" tf:"device_acl_status,omitempty"` + // List of the devices where the ACL template is applied. + // Device Details to which ACL template is assigned to. DeviceDetails []DeviceDetailsObservation `json:"deviceDetails,omitempty" tf:"device_details,omitempty"` + // (Deprecated) Identifier of a network device where template was applied. + // Identifier of a network device where template was applied DeviceID *string `json:"deviceId,omitempty" tf:"device_id,omitempty"` ID *string `json:"id,omitempty" tf:"id,omitempty"` + // One or more rules to specify allowed inbound traffic. + // Rules are ordered, matching traffic rule stops processing subsequent ones. + // One or more rules to specify allowed inbound traffic. Rules are ordered, matching traffic rule stops processing subsequent ones. + // +kubebuilder:validation:Required InboundRule []InboundRuleObservation `json:"inboundRule,omitempty" tf:"inbound_rule,omitempty"` + // Unique identifier of ACL template resource. + // Unique identifier of ACL template resource UUID *string `json:"uuid,omitempty" tf:"uuid,omitempty"` } type ACLTemplateParameters struct { + // ACL template description, up to 200 characters. // ACL template description, up to 200 characters // +kubebuilder:validation:Optional Description *string `json:"description,omitempty" tf:"description,omitempty"` + // One or more rules to specify allowed inbound traffic. + // Rules are ordered, matching traffic rule stops processing subsequent ones. // One or more rules to specify allowed inbound traffic. Rules are ordered, matching traffic rule stops processing subsequent ones. // +kubebuilder:validation:Required InboundRule []InboundRuleParameters `json:"inboundRule" tf:"inbound_rule,omitempty"` + // (Deprecated) ACL template location metro code. // ACL template location metro code // +kubebuilder:validation:Optional MetroCode *string `json:"metroCode,omitempty" tf:"metro_code,omitempty"` + // ACL template name. // ACL template name // +kubebuilder:validation:Required Name *string `json:"name" tf:"name,omitempty"` } type DeviceDetailsObservation struct { + + // Device ACL provisioning status where template was applied. One of PROVISIONING, + // PROVISIONED. ACLStatus *string `json:"aclStatus,omitempty" tf:"acl_status,omitempty"` + // Device name. Name *string `json:"name,omitempty" tf:"name,omitempty"` + // Device uuid. UUID *string `json:"uuid,omitempty" tf:"uuid,omitempty"` } @@ -70,33 +94,44 @@ type DeviceDetailsParameters struct { } type InboundRuleObservation struct { + + // Inbound rule sequence number SequenceNumber *float64 `json:"sequenceNumber,omitempty" tf:"sequence_number,omitempty"` + // Type of traffic source used in a given inbound rule SourceType *string `json:"sourceType,omitempty" tf:"source_type,omitempty"` } type InboundRuleParameters struct { + // Inbound rule description, up to 200 characters. // Inbound rule description, up to 200 characters // +kubebuilder:validation:Optional Description *string `json:"description,omitempty" tf:"description,omitempty"` + // Inbound traffic destination ports. Allowed values are a comma separated + // list of ports, e.g., 20,22,23, port range, e.g., 1023-1040 or word any. // Inbound traffic destination ports. Either up to 10, comma separated ports or port range or any word // +kubebuilder:validation:Required DstPort *string `json:"dstPort" tf:"dst_port,omitempty"` + // Inbound traffic protocol. One of IP, TCP, UDP. // Inbound traffic protocol. One of: `IP`, `TCP`, `UDP` // +kubebuilder:validation:Required Protocol *string `json:"protocol" tf:"protocol,omitempty"` + // Inbound traffic source ports. Allowed values are a comma separated list + // of ports, e.g., 20,22,23, port range, e.g., 1023-1040 or word any. // Inbound traffic source ports. Either up to 10, comma separated ports or port range or any word // +kubebuilder:validation:Required SrcPort *string `json:"srcPort" tf:"src_port,omitempty"` + // Inbound traffic source IP subnet in CIDR format. // Inbound traffic source IP subnet in CIDR format // +kubebuilder:validation:Optional Subnet *string `json:"subnet,omitempty" tf:"subnet,omitempty"` + // (Deprecated) Inbound traffic source IP subnets in CIDR format. // Inbound traffic source IP subnets in CIDR format // +kubebuilder:validation:Optional Subnets []*string `json:"subnets,omitempty" tf:"subnets,omitempty"` @@ -116,13 +151,13 @@ type ACLTemplateStatus struct { // +kubebuilder:object:root=true -// ACLTemplate is the Schema for the ACLTemplates API +// ACLTemplate is the Schema for the ACLTemplates API. // +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,equinixjet} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,equinix} type ACLTemplate struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/network/v1alpha1/zz_bgp_types.go b/apis/network/v1alpha1/zz_bgp_types.go index 70a421b..7693fe6 100755 --- a/apis/network/v1alpha1/zz_bgp_types.go +++ b/apis/network/v1alpha1/zz_bgp_types.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package v1alpha1 @@ -26,39 +26,58 @@ import ( ) type BGPObservation struct { + + // unique identifier of a network device that is a local peer in a given BGP peering + // configuration. + // Unique identifier of a network device that is a local peer in a given BGP peering configuration DeviceID *string `json:"deviceId,omitempty" tf:"device_id,omitempty"` ID *string `json:"id,omitempty" tf:"id,omitempty"` + // BGP peering configuration provisioning status, one of PROVISIONING, + // PENDING_UPDATE, PROVISIONED, FAILED. + // BGP peering configuration provisioning status ProvisioningStatus *string `json:"provisioningStatus,omitempty" tf:"provisioning_status,omitempty"` + // BGP peer state, one of Idle, Connect, Active, OpenSent, OpenConfirm, + // Established. + // BGP peer state State *string `json:"state,omitempty" tf:"state,omitempty"` + // BGP peering configuration unique identifier. + // BGP peering configuration unique identifier UUID *string `json:"uuid,omitempty" tf:"uuid,omitempty"` } type BGPParameters struct { + // shared key used for BGP peer authentication. // Shared key used for BGP peer authentication // +kubebuilder:validation:Optional AuthenticationKeySecretRef *v1.SecretKeySelector `json:"authenticationKeySecretRef,omitempty" tf:"-"` + // identifier of a connection established between. + // network device and remote service provider that will be used for peering. // Identifier of a connection established between network device and remote service provider that will be used for peering // +kubebuilder:validation:Required ConnectionID *string `json:"connectionId" tf:"connection_id,omitempty"` + // Local ASN number. // Local ASN number // +kubebuilder:validation:Required LocalAsn *float64 `json:"localAsn" tf:"local_asn,omitempty"` + // IP address in CIDR format of a local device. // IP address in CIDR format of a local device // +kubebuilder:validation:Required LocalIPAddress *string `json:"localIpAddress" tf:"local_ip_address,omitempty"` + // Remote ASN number. // Remote ASN number // +kubebuilder:validation:Required RemoteAsn *float64 `json:"remoteAsn" tf:"remote_asn,omitempty"` + // IP address of remote peer. // IP address of remote peer // +kubebuilder:validation:Required RemoteIPAddress *string `json:"remoteIpAddress" tf:"remote_ip_address,omitempty"` @@ -78,13 +97,13 @@ type BGPStatus struct { // +kubebuilder:object:root=true -// BGP is the Schema for the BGPs API +// BGP is the Schema for the BGPs API. // +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,equinixjet} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,equinix} type BGP struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/network/v1alpha1/zz_device_types.go b/apis/network/v1alpha1/zz_device_types.go index 0826ede..9517989 100755 --- a/apis/network/v1alpha1/zz_device_types.go +++ b/apis/network/v1alpha1/zz_device_types.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package v1alpha1 @@ -26,130 +26,215 @@ import ( ) type ClusterDetailsObservation struct { + + // The ID of the cluster. + // The id of the cluster ClusterID *string `json:"clusterId,omitempty" tf:"cluster_id,omitempty"` + // An object that has node0 configuration. + // See Cluster Details - Nodes below for more details. + // An object that has node0 details + // +kubebuilder:validation:Required Node0 []Node0Observation `json:"node0,omitempty" tf:"node0,omitempty"` + // An object that has node1 configuration. + // See Cluster Details - Nodes below for more details. + // An object that has node1 details + // +kubebuilder:validation:Required Node1 []Node1Observation `json:"node1,omitempty" tf:"node1,omitempty"` + // The number of nodes in the cluster. + // The number of nodes in the cluster NumOfNodes *float64 `json:"numOfNodes,omitempty" tf:"num_of_nodes,omitempty"` } type ClusterDetailsParameters struct { + // The name of the cluster device // The name of the cluster device // +kubebuilder:validation:Required ClusterName *string `json:"clusterName" tf:"cluster_name,omitempty"` + // An object that has node0 configuration. + // See Cluster Details - Nodes below for more details. // An object that has node0 details // +kubebuilder:validation:Required Node0 []Node0Parameters `json:"node0" tf:"node0,omitempty"` + // An object that has node1 configuration. + // See Cluster Details - Nodes below for more details. // An object that has node1 details // +kubebuilder:validation:Required Node1 []Node1Parameters `json:"node1" tf:"node1,omitempty"` } type DeviceObservation struct { + + // (Autonomous System Number) Unique identifier for a network on the internet. + // Autonomous system number Asn *float64 `json:"asn,omitempty" tf:"asn,omitempty"` + // An object that has the cluster details. See + // Cluster Details below for more details. + // An object that has the cluster details + // +kubebuilder:validation:Optional ClusterDetails []ClusterDetailsObservation `json:"clusterDetails,omitempty" tf:"cluster_details,omitempty"` + // interface identifier. ID *string `json:"id,omitempty" tf:"id,omitempty"` + // Device location Equinix Business Exchange name. + // Device location Equinix Business Exchange name Ibx *string `json:"ibx,omitempty" tf:"ibx,omitempty"` + // List of device interfaces. See Interface Attribute below + // for more details. + // List of device interfaces Interface []InterfaceObservation `json:"interface,omitempty" tf:"interface,omitempty"` + // Unique identifier of applied license file. + // Unique identifier of applied license file LicenseFileID *string `json:"licenseFileId,omitempty" tf:"license_file_id,omitempty"` + // Device license registration status. Possible values are APPLYING_LICENSE, + // REGISTERED, APPLIED, WAITING_FOR_CLUSTER_SETUP, REGISTRATION_FAILED. + // Device license registration status LicenseStatus *string `json:"licenseStatus,omitempty" tf:"license_status,omitempty"` + // Device redundancy type applicable for HA devices, either + // primary or secondary. + // Device redundancy type applicable for HA devices, either primary or secondary RedundancyType *string `json:"redundancyType,omitempty" tf:"redundancy_type,omitempty"` + // Unique identifier for a redundant device applicable for HA devices. + // Unique identifier for a redundant device, applicable for HA device RedundantID *string `json:"redundantId,omitempty" tf:"redundant_id,omitempty"` + // Device location region. + // Device location region Region *string `json:"region,omitempty" tf:"region,omitempty"` + // IP address of SSH enabled interface on the device. + // IP address of SSH enabled interface on the device SSHIPAddress *string `json:"sshIpAddress,omitempty" tf:"ssh_ip_address,omitempty"` + // FQDN of SSH enabled interface on the device. + // FQDN of SSH enabled interface on the device SSHIPFqdn *string `json:"sshIpFqdn,omitempty" tf:"ssh_ip_fqdn,omitempty"` + // Definition of secondary device for redundant + // device configurations. See Secondary Device below for more details. + // Definition of secondary device applicable for HA setup + // +kubebuilder:validation:Optional SecondaryDevice []SecondaryDeviceObservation `json:"secondaryDevice,omitempty" tf:"secondary_device,omitempty"` + // Device provisioning status. Possible values are + // INITIALIZING, PROVISIONING, WAITING_FOR_PRIMARY, WAITING_FOR_SECONDARY, + // WAITING_FOR_REPLICA_CLUSTER_NODES, CLUSTER_SETUP_IN_PROGRESS, FAILED, PROVISIONED, + // DEPROVISIONING, DEPROVISIONED. + // Device provisioning status Status *string `json:"status,omitempty" tf:"status,omitempty"` + // Device unique identifier. + // Device unique identifier UUID *string `json:"uuid,omitempty" tf:"uuid,omitempty"` + // Device location zone code. + // Device location zone code ZoneCode *string `json:"zoneCode,omitempty" tf:"zone_code,omitempty"` } type DeviceParameters struct { + // Identifier of an ACL template that will be applied on the device. // Unique identifier of applied ACL template // +kubebuilder:validation:Optional ACLTemplateID *string `json:"aclTemplateId,omitempty" tf:"acl_template_id,omitempty"` + // Billing account number for a device. // Device billing account number // +kubebuilder:validation:Required AccountNumber *string `json:"accountNumber" tf:"account_number,omitempty"` + // Additional Internet bandwidth, in Mbps, that will be + // allocated to the device (in addition to default 15Mbps). // Additional Internet bandwidth, in Mbps, that will be allocated to the device // +kubebuilder:validation:Optional AdditionalBandwidth *float64 `json:"additionalBandwidth,omitempty" tf:"additional_bandwidth,omitempty"` + // Boolean value that determines device licensing mode, i.e., + // bring your own license or subscription (default). // Boolean value that determines device licensing mode: bring your own license or subscription (default) // +kubebuilder:validation:Optional Byol *bool `json:"byol,omitempty" tf:"byol,omitempty"` + // An object that has the cluster details. See + // Cluster Details below for more details. // An object that has the cluster details // +kubebuilder:validation:Optional ClusterDetails []ClusterDetailsParameters `json:"clusterDetails,omitempty" tf:"cluster_details,omitempty"` + // Number of CPU cores used by device. // Number of CPU cores used by device // +kubebuilder:validation:Required CoreCount *float64 `json:"coreCount" tf:"core_count,omitempty"` + // Device hostname prefix. // Device hostname prefix // +kubebuilder:validation:Optional Hostname *string `json:"hostname,omitempty" tf:"hostname,omitempty"` + // Number of network interfaces on a device. If not specified, + // default number for a given device type will be used. // Number of network interfaces on a device. If not specified, default number for a given device type will be used // +kubebuilder:validation:Optional InterfaceCount *float64 `json:"interfaceCount,omitempty" tf:"interface_count,omitempty"` + // Path to the license file that will be uploaded and applied on a + // device. Applicable for some devices types in BYOL licensing mode. // Path to the license file that will be uploaded and applied on a device, applicable for some device types in BYOL licensing mode // +kubebuilder:validation:Optional LicenseFile *string `json:"licenseFile,omitempty" tf:"license_file,omitempty"` + // License Token applicable for some device types in BYOL licensing + // mode. // License Token applicable for some device types in BYOL licensing mode // +kubebuilder:validation:Optional LicenseToken *string `json:"licenseToken,omitempty" tf:"license_token,omitempty"` + // Device location metro code. // Device location metro code // +kubebuilder:validation:Required MetroCode *string `json:"metroCode" tf:"metro_code,omitempty"` + // Identifier of an MGMT interface ACL template that will be + // applied on the device. // Unique identifier of applied MGMT ACL template // +kubebuilder:validation:Optional MgmtACLTemplateUUID *string `json:"mgmtAclTemplateUuid,omitempty" tf:"mgmt_acl_template_uuid,omitempty"` + // Device name. // Device name // +kubebuilder:validation:Required Name *string `json:"name" tf:"name,omitempty"` + // List of email addresses that will receive device status + // notifications. // List of email addresses that will receive device status notifications // +kubebuilder:validation:Required Notifications []*string `json:"notifications" tf:"notifications,omitempty"` + // Name/number used to identify device order on the invoice. // Name/number used to identify device order on the invoice // +kubebuilder:validation:Optional OrderReference *string `json:"orderReference,omitempty" tf:"order_reference,omitempty"` + // Device software package code. // Device software package code // +kubebuilder:validation:Required PackageCode *string `json:"packageCode" tf:"package_code,omitempty"` + // Purchase order number associated with a device order. // Purchase order number associated with a device order // +kubebuilder:validation:Optional PurchaseOrderNumber *string `json:"purchaseOrderNumber,omitempty" tf:"purchase_order_number,omitempty"` @@ -158,38 +243,50 @@ type DeviceParameters struct { // +kubebuilder:validation:Optional SSHKey []DeviceSSHKeyParameters `json:"sshKey,omitempty" tf:"ssh_key,omitempty"` + // Definition of secondary device for redundant + // device configurations. See Secondary Device below for more details. // Definition of secondary device applicable for HA setup // +kubebuilder:validation:Optional SecondaryDevice []SecondaryDeviceParameters `json:"secondaryDevice,omitempty" tf:"secondary_device,omitempty"` + // Boolean value that determines device management mode, i.e., + // self-managed or Equinix managed (default). // Boolean value that determines device management mode: self-managed or subscription (default) // +kubebuilder:validation:Optional SelfManaged *bool `json:"selfManaged,omitempty" tf:"self_managed,omitempty"` + // Device term length. // Device term length // +kubebuilder:validation:Required TermLength *float64 `json:"termLength" tf:"term_length,omitempty"` + // Device license throughput. // Device license throughput // +kubebuilder:validation:Optional Throughput *float64 `json:"throughput,omitempty" tf:"throughput,omitempty"` + // License throughput unit. One of Mbps or Gbps. // Device license throughput unit (Mbps or Gbps) // +kubebuilder:validation:Optional ThroughputUnit *string `json:"throughputUnit,omitempty" tf:"throughput_unit,omitempty"` + // Device type code. // Device type code // +kubebuilder:validation:Required TypeCode *string `json:"typeCode" tf:"type_code,omitempty"` + // Map of vendor specific configuration parameters for a device + // (controller1, activationKey, managementType, siteId, systemIpAddress) // Map of vendor specific configuration parameters for a device (controller1, activationKey, managementType, siteId, systemIpAddress) // +kubebuilder:validation:Optional VendorConfiguration map[string]*string `json:"vendorConfiguration,omitempty" tf:"vendor_configuration,omitempty"` + // Device software software version. // Device software software version // +kubebuilder:validation:Required Version *string `json:"version" tf:"version,omitempty"` + // interface identifier. // device interface id picked for WAN // +kubebuilder:validation:Optional WanInterfaceID *string `json:"wanInterfaceId,omitempty" tf:"wan_interface_id,omitempty"` @@ -200,30 +297,44 @@ type DeviceSSHKeyObservation struct { type DeviceSSHKeyParameters struct { + // Device name. // Reference by name to previously provisioned public SSH key // +kubebuilder:validation:Required KeyName *string `json:"keyName" tf:"key_name,omitempty"` + // username associated with given key. // Username associated with given key // +kubebuilder:validation:Required Username *string `json:"username" tf:"username,omitempty"` } type InterfaceObservation struct { + + // interface management type (Equinix Managed or empty). AssignedType *string `json:"assignedType,omitempty" tf:"assigned_type,omitempty"` + // interface identifier. ID *float64 `json:"id,omitempty" tf:"id,omitempty"` + // interface IP address. IPAddress *string `json:"ipAddress,omitempty" tf:"ip_address,omitempty"` + // interface MAC address. MacAddress *string `json:"macAddress,omitempty" tf:"mac_address,omitempty"` + // reference by name to previously provisioned public SSH key. Name *string `json:"name,omitempty" tf:"name,omitempty"` + // interface operational status. One of up, down. OperationalStatus *string `json:"operationalStatus,omitempty" tf:"operational_status,omitempty"` + // Device provisioning status. Possible values are + // INITIALIZING, PROVISIONING, WAITING_FOR_PRIMARY, WAITING_FOR_SECONDARY, + // WAITING_FOR_REPLICA_CLUSTER_NODES, CLUSTER_SETUP_IN_PROGRESS, FAILED, PROVISIONED, + // DEPROVISIONING, DEPROVISIONED. Status *string `json:"status,omitempty" tf:"status,omitempty"` + // interface type. Type *string `json:"type,omitempty" tf:"type,omitempty"` } @@ -231,42 +342,61 @@ type InterfaceParameters struct { } type Node0Observation struct { + + // reference by name to previously provisioned public SSH key. + // The name of the node Name *string `json:"name,omitempty" tf:"name,omitempty"` + // Device unique identifier. + // The unique id of the node UUID *string `json:"uuid,omitempty" tf:"uuid,omitempty"` } type Node0Parameters struct { + // License file id. This is necessary for Fortinet and Juniper clusters. // License file id. This is necessary for Fortinet and Juniper clusters // +kubebuilder:validation:Optional LicenseFileIDSecretRef *v1.SecretKeySelector `json:"licenseFileIdSecretRef,omitempty" tf:"-"` + // License token. This is necessary for Palo Alto clusters. // License token. This is necessary for Palo Alto clusters // +kubebuilder:validation:Optional LicenseTokenSecretRef *v1.SecretKeySelector `json:"licenseTokenSecretRef,omitempty" tf:"-"` + // An object that has fields relevant to the vendor of the + // cluster device. See Cluster Details - Nodes - Vendor Configuration + // below for more details. // An object that has fields relevant to the vendor of the cluster device // +kubebuilder:validation:Optional VendorConfiguration []VendorConfigurationParameters `json:"vendorConfiguration,omitempty" tf:"vendor_configuration,omitempty"` } type Node1Observation struct { + + // reference by name to previously provisioned public SSH key. + // The name of the node Name *string `json:"name,omitempty" tf:"name,omitempty"` + // Device unique identifier. + // The unique id of the node UUID *string `json:"uuid,omitempty" tf:"uuid,omitempty"` } type Node1Parameters struct { + // Unique identifier of applied license file. // License file id. This is necessary for Fortinet and Juniper clusters // +kubebuilder:validation:Optional LicenseFileIDSecretRef *v1.SecretKeySelector `json:"licenseFileIdSecretRef,omitempty" tf:"-"` + // License Token can be provided for some device types o the device. // License token. This is necessary for Palo Alto clusters // +kubebuilder:validation:Optional LicenseTokenSecretRef *v1.SecretKeySelector `json:"licenseTokenSecretRef,omitempty" tf:"-"` + // Map of vendor specific configuration parameters for a device + // (controller1, activationKey, managementType, siteId, systemIpAddress) // An object that has fields relevant to the vendor of the cluster device // +kubebuilder:validation:Optional VendorConfiguration []Node1VendorConfigurationParameters `json:"vendorConfiguration,omitempty" tf:"vendor_configuration,omitempty"` @@ -277,26 +407,34 @@ type Node1VendorConfigurationObservation struct { type Node1VendorConfigurationParameters struct { + // Activation key. This is required for Velocloud clusters. // Activation key. This is required for Velocloud clusters // +kubebuilder:validation:Optional ActivationKeySecretRef *v1.SecretKeySelector `json:"activationKeySecretRef,omitempty" tf:"-"` + // The administrative password of the device. You can use it to log in + // to the console. This field is not available for all device types. // The administrative password of the device. You can use it to log in to the console. This field is not available for all device types // +kubebuilder:validation:Optional AdminPasswordSecretRef *v1.SecretKeySelector `json:"adminPasswordSecretRef,omitempty" tf:"-"` + // System IP Address. Mandatory for the Fortinet SDWAN cluster device. // System IP Address. Mandatory for the Fortinet SDWAN cluster device // +kubebuilder:validation:Optional Controller1 *string `json:"controller1,omitempty" tf:"controller1,omitempty"` + // Controller fqdn. This is required for Velocloud clusters. // Controller fqdn. This is required for Velocloud clusters // +kubebuilder:validation:Optional ControllerFqdn *string `json:"controllerFqdn,omitempty" tf:"controller_fqdn,omitempty"` + // Secondary device hostname. // Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters // +kubebuilder:validation:Optional Hostname *string `json:"hostname,omitempty" tf:"hostname,omitempty"` + // The CLI password of the device. This field is relevant only for the + // Velocloud SDWAN cluster. // The CLI password of the device. This field is relevant only for the Velocloud SDWAN cluster // +kubebuilder:validation:Optional RootPasswordSecretRef *v1.SecretKeySelector `json:"rootPasswordSecretRef,omitempty" tf:"-"` @@ -307,30 +445,44 @@ type SSHKeyObservation struct { type SSHKeyParameters struct { + // Device name. // Reference by name to previously provisioned public SSH key // +kubebuilder:validation:Required KeyName *string `json:"keyName" tf:"key_name,omitempty"` + // username associated with given key. // Username associated with given key // +kubebuilder:validation:Required Username *string `json:"username" tf:"username,omitempty"` } type SecondaryDeviceInterfaceObservation struct { + + // interface management type (Equinix Managed or empty). AssignedType *string `json:"assignedType,omitempty" tf:"assigned_type,omitempty"` + // interface identifier. ID *float64 `json:"id,omitempty" tf:"id,omitempty"` + // interface IP address. IPAddress *string `json:"ipAddress,omitempty" tf:"ip_address,omitempty"` + // interface MAC address. MacAddress *string `json:"macAddress,omitempty" tf:"mac_address,omitempty"` + // reference by name to previously provisioned public SSH key. Name *string `json:"name,omitempty" tf:"name,omitempty"` + // interface operational status. One of up, down. OperationalStatus *string `json:"operationalStatus,omitempty" tf:"operational_status,omitempty"` + // Device provisioning status. Possible values are + // INITIALIZING, PROVISIONING, WAITING_FOR_PRIMARY, WAITING_FOR_SECONDARY, + // WAITING_FOR_REPLICA_CLUSTER_NODES, CLUSTER_SETUP_IN_PROGRESS, FAILED, PROVISIONED, + // DEPROVISIONING, DEPROVISIONED. Status *string `json:"status,omitempty" tf:"status,omitempty"` + // interface type. Type *string `json:"type,omitempty" tf:"type,omitempty"` } @@ -338,71 +490,119 @@ type SecondaryDeviceInterfaceParameters struct { } type SecondaryDeviceObservation struct { + + // (Autonomous System Number) Unique identifier for a network on the internet. + // Autonomous system number Asn *float64 `json:"asn,omitempty" tf:"asn,omitempty"` + // Device location Equinix Business Exchange name. + // Device location Equinix Business Exchange name Ibx *string `json:"ibx,omitempty" tf:"ibx,omitempty"` + // List of device interfaces. See Interface Attribute below + // for more details. + // List of device interfaces Interface []SecondaryDeviceInterfaceObservation `json:"interface,omitempty" tf:"interface,omitempty"` + // Unique identifier of applied license file. + // Unique identifier of applied license file LicenseFileID *string `json:"licenseFileId,omitempty" tf:"license_file_id,omitempty"` + // Device license registration status. Possible values are APPLYING_LICENSE, + // REGISTERED, APPLIED, WAITING_FOR_CLUSTER_SETUP, REGISTRATION_FAILED. + // Device license registration status LicenseStatus *string `json:"licenseStatus,omitempty" tf:"license_status,omitempty"` + // Device redundancy type applicable for HA devices, either + // primary or secondary. + // Device redundancy type applicable for HA devices, either primary or secondary RedundancyType *string `json:"redundancyType,omitempty" tf:"redundancy_type,omitempty"` + // Unique identifier for a redundant device applicable for HA devices. + // Unique identifier for a redundant device, applicable for HA device RedundantID *string `json:"redundantId,omitempty" tf:"redundant_id,omitempty"` + // Device location region. + // Device location region Region *string `json:"region,omitempty" tf:"region,omitempty"` + // IP address of SSH enabled interface on the device. + // IP address of SSH enabled interface on the device SSHIPAddress *string `json:"sshIpAddress,omitempty" tf:"ssh_ip_address,omitempty"` + // FQDN of SSH enabled interface on the device. + // FQDN of SSH enabled interface on the device SSHIPFqdn *string `json:"sshIpFqdn,omitempty" tf:"ssh_ip_fqdn,omitempty"` + // Device provisioning status. Possible values are + // INITIALIZING, PROVISIONING, WAITING_FOR_PRIMARY, WAITING_FOR_SECONDARY, + // WAITING_FOR_REPLICA_CLUSTER_NODES, CLUSTER_SETUP_IN_PROGRESS, FAILED, PROVISIONED, + // DEPROVISIONING, DEPROVISIONED. + // Device provisioning status Status *string `json:"status,omitempty" tf:"status,omitempty"` + // Device unique identifier. + // Device unique identifier UUID *string `json:"uuid,omitempty" tf:"uuid,omitempty"` + // Device location zone code. + // Device location zone code ZoneCode *string `json:"zoneCode,omitempty" tf:"zone_code,omitempty"` } type SecondaryDeviceParameters struct { + // Identifier of a WAN interface ACL template that will be applied + // on a secondary device. // Unique identifier of applied ACL template // +kubebuilder:validation:Optional ACLTemplateID *string `json:"aclTemplateId,omitempty" tf:"acl_template_id,omitempty"` + // Billing account number for secondary device. // Device billing account number // +kubebuilder:validation:Required AccountNumber *string `json:"accountNumber" tf:"account_number,omitempty"` + // Additional Internet bandwidth, in Mbps, for a secondary + // device. // Additional Internet bandwidth, in Mbps, that will be allocated to the device // +kubebuilder:validation:Optional AdditionalBandwidth *float64 `json:"additionalBandwidth,omitempty" tf:"additional_bandwidth,omitempty"` + // Secondary device hostname. // Device hostname prefix // +kubebuilder:validation:Optional Hostname *string `json:"hostname,omitempty" tf:"hostname,omitempty"` + // Path to the license file that will be uploaded and applied on a + // secondary device. Applicable for some devices types in BYOL licensing mode. // Path to the license file that will be uploaded and applied on a device, applicable for some device types in BYOL licensing mode // +kubebuilder:validation:Optional LicenseFile *string `json:"licenseFile,omitempty" tf:"license_file,omitempty"` + // License Token can be provided for some device types o the device. // License Token applicable for some device types in BYOL licensing mode // +kubebuilder:validation:Optional LicenseToken *string `json:"licenseToken,omitempty" tf:"license_token,omitempty"` + // Metro location of a secondary device. // Device location metro code // +kubebuilder:validation:Required MetroCode *string `json:"metroCode" tf:"metro_code,omitempty"` + // Identifier of an MGMT interface ACL template that will be + // applied on the device. // Unique identifier of applied MGMT ACL template // +kubebuilder:validation:Optional MgmtACLTemplateUUID *string `json:"mgmtAclTemplateUuid,omitempty" tf:"mgmt_acl_template_uuid,omitempty"` + // Secondary device name. // Device name // +kubebuilder:validation:Required Name *string `json:"name" tf:"name,omitempty"` + // List of email addresses that will receive notifications about + // secondary device. // List of email addresses that will receive device status notifications // +kubebuilder:validation:Required Notifications []*string `json:"notifications" tf:"notifications,omitempty"` @@ -411,10 +611,14 @@ type SecondaryDeviceParameters struct { // +kubebuilder:validation:Optional SSHKey []SSHKeyParameters `json:"sshKey,omitempty" tf:"ssh_key,omitempty"` + // Key/Value pairs of vendor specific configuration parameters + // for a secondary device. Key values are controller1, activationKey, managementType, siteId, + // systemIpAddress. // Map of vendor specific configuration parameters for a device (controller1, activationKey, managementType, siteId, systemIpAddress) // +kubebuilder:validation:Optional VendorConfiguration map[string]*string `json:"vendorConfiguration,omitempty" tf:"vendor_configuration,omitempty"` + // interface identifier. // device interface id picked for WAN // +kubebuilder:validation:Optional WanInterfaceID *string `json:"wanInterfaceId,omitempty" tf:"wan_interface_id,omitempty"` @@ -425,26 +629,34 @@ type VendorConfigurationObservation struct { type VendorConfigurationParameters struct { + // Activation key. This is required for Velocloud clusters. // Activation key. This is required for Velocloud clusters // +kubebuilder:validation:Optional ActivationKeySecretRef *v1.SecretKeySelector `json:"activationKeySecretRef,omitempty" tf:"-"` + // The administrative password of the device. You can use it to log in + // to the console. This field is not available for all device types. // The administrative password of the device. You can use it to log in to the console. This field is not available for all device types // +kubebuilder:validation:Optional AdminPasswordSecretRef *v1.SecretKeySelector `json:"adminPasswordSecretRef,omitempty" tf:"-"` + // System IP Address. Mandatory for the Fortinet SDWAN cluster device. // System IP Address. Mandatory for the Fortinet SDWAN cluster device // +kubebuilder:validation:Optional Controller1 *string `json:"controller1,omitempty" tf:"controller1,omitempty"` + // Controller fqdn. This is required for Velocloud clusters. // Controller fqdn. This is required for Velocloud clusters // +kubebuilder:validation:Optional ControllerFqdn *string `json:"controllerFqdn,omitempty" tf:"controller_fqdn,omitempty"` + // Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters. // Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters // +kubebuilder:validation:Optional Hostname *string `json:"hostname,omitempty" tf:"hostname,omitempty"` + // The CLI password of the device. This field is relevant only for the + // Velocloud SDWAN cluster. // The CLI password of the device. This field is relevant only for the Velocloud SDWAN cluster // +kubebuilder:validation:Optional RootPasswordSecretRef *v1.SecretKeySelector `json:"rootPasswordSecretRef,omitempty" tf:"-"` @@ -464,13 +676,13 @@ type DeviceStatus struct { // +kubebuilder:object:root=true -// Device is the Schema for the Devices API +// Device is the Schema for the Devices API. // +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,equinixjet} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,equinix} type Device struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/network/v1alpha1/zz_devicelink_types.go b/apis/network/v1alpha1/zz_devicelink_types.go index 09663ef..ca4451c 100755 --- a/apis/network/v1alpha1/zz_devicelink_types.go +++ b/apis/network/v1alpha1/zz_devicelink_types.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package v1alpha1 @@ -26,49 +26,76 @@ import ( ) type DeviceLinkDeviceObservation struct { + + // IP address from device link subnet that was assigned to the device + // Assigned IP address from device link subnet IPAddress *string `json:"ipAddress,omitempty" tf:"ip_address,omitempty"` + // device link provisioning status on a given device. One of PROVISIONING, + // PROVISIONED, DEPROVISIONING, DEPROVISIONED, FAILED. + // Device link connection provisioning status Status *string `json:"status,omitempty" tf:"status,omitempty"` } type DeviceLinkDeviceParameters struct { + // Device ASN number. Not required for self configured devices. // Device ASN number // +kubebuilder:validation:Optional Asn *float64 `json:"asn,omitempty" tf:"asn,omitempty"` + // Device identifier. // Device identifier // +kubebuilder:validation:Required ID *string `json:"id" tf:"id,omitempty"` + // Device network interface identifier to use for device link + // connection. // Device network interface identifier to use for device link connection // +kubebuilder:validation:Optional InterfaceID *float64 `json:"interfaceId,omitempty" tf:"interface_id,omitempty"` } type DeviceLinkObservation struct { + + // definition of one or more devices belonging to the + // device link. See Device section below for more details. + // +kubebuilder:validation:Required Device []DeviceLinkDeviceObservation `json:"device,omitempty" tf:"device,omitempty"` + // Device identifier. ID *string `json:"id,omitempty" tf:"id,omitempty"` + // Device link provisioning status. One of PROVISIONING, PROVISIONED, + // DEPROVISIONING, DEPROVISIONED, FAILED. + // Device link provisioning status Status *string `json:"status,omitempty" tf:"status,omitempty"` + // Device link unique identifier. + // Device link unique identifier UUID *string `json:"uuid,omitempty" tf:"uuid,omitempty"` } type DeviceLinkParameters struct { + // definition of one or more devices belonging to the + // device link. See Device section below for more details. // +kubebuilder:validation:Required Device []DeviceLinkDeviceParameters `json:"device" tf:"device,omitempty"` + // definition of one or more, inter metro, connections belonging + // to the device link. See Link section below for more details. // link // +kubebuilder:validation:Optional Link []LinkParameters `json:"link,omitempty" tf:"link,omitempty"` + // device link name. // name // +kubebuilder:validation:Required Name *string `json:"name" tf:"name,omitempty"` + // device link subnet in CIDR format. Not required for link + // between self configured devices. // subnet // +kubebuilder:validation:Optional Subnet *string `json:"subnet,omitempty" tf:"subnet,omitempty"` @@ -79,30 +106,38 @@ type LinkObservation struct { type LinkParameters struct { + // billing account number to be used for + // connection charges // Billing account number to be used for connection charges // +kubebuilder:validation:Required AccountNumber *string `json:"accountNumber" tf:"account_number,omitempty"` + // connection destination metro code. // Connection destination metro code // +kubebuilder:validation:Required DstMetroCode *string `json:"dstMetroCode" tf:"dst_metro_code,omitempty"` + // (Deprecated) connection destination zone code is not required. // Connection destination zone code // +kubebuilder:validation:Optional DstZoneCode *string `json:"dstZoneCode,omitempty" tf:"dst_zone_code,omitempty"` + // connection source metro code. // Connection source metro code // +kubebuilder:validation:Required SrcMetroCode *string `json:"srcMetroCode" tf:"src_metro_code,omitempty"` + // (Deprecated) connection source zone code is not required. // Connection source zone code // +kubebuilder:validation:Optional SrcZoneCode *string `json:"srcZoneCode,omitempty" tf:"src_zone_code,omitempty"` + // connection throughput. // Connection throughput // +kubebuilder:validation:Required Throughput *string `json:"throughput" tf:"throughput,omitempty"` + // connection throughput unit (Mbps or Gbps). // Connection throughput unit // +kubebuilder:validation:Required ThroughputUnit *string `json:"throughputUnit" tf:"throughput_unit,omitempty"` @@ -122,13 +157,13 @@ type DeviceLinkStatus struct { // +kubebuilder:object:root=true -// DeviceLink is the Schema for the DeviceLinks API +// DeviceLink is the Schema for the DeviceLinks API. // +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,equinixjet} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,equinix} type DeviceLink struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/network/v1alpha1/zz_generated_terraformed.go b/apis/network/v1alpha1/zz_generated_terraformed.go index 1ccc71c..98c586f 100755 --- a/apis/network/v1alpha1/zz_generated_terraformed.go +++ b/apis/network/v1alpha1/zz_generated_terraformed.go @@ -14,15 +14,15 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package v1alpha1 import ( "github.com/pkg/errors" - "github.com/crossplane/terrajet/pkg/resource" - "github.com/crossplane/terrajet/pkg/resource/json" + "github.com/upbound/upjet/pkg/resource" + "github.com/upbound/upjet/pkg/resource/json" ) // GetTerraformResourceType returns Terraform resource type for this ACLTemplate @@ -36,17 +36,17 @@ func (tr *ACLTemplate) GetConnectionDetailsMapping() map[string]string { } // GetObservation of this ACLTemplate -func (tr *ACLTemplate) GetObservation() (map[string]interface{}, error) { +func (tr *ACLTemplate) GetObservation() (map[string]any, error) { o, err := json.TFParser.Marshal(tr.Status.AtProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(o, &base) } // SetObservation for this ACLTemplate -func (tr *ACLTemplate) SetObservation(obs map[string]interface{}) error { +func (tr *ACLTemplate) SetObservation(obs map[string]any) error { p, err := json.TFParser.Marshal(obs) if err != nil { return err @@ -63,17 +63,17 @@ func (tr *ACLTemplate) GetID() string { } // GetParameters of this ACLTemplate -func (tr *ACLTemplate) GetParameters() (map[string]interface{}, error) { +func (tr *ACLTemplate) GetParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.ForProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(p, &base) } // SetParameters for this ACLTemplate -func (tr *ACLTemplate) SetParameters(params map[string]interface{}) error { +func (tr *ACLTemplate) SetParameters(params map[string]any) error { p, err := json.TFParser.Marshal(params) if err != nil { return err @@ -110,17 +110,17 @@ func (tr *BGP) GetConnectionDetailsMapping() map[string]string { } // GetObservation of this BGP -func (tr *BGP) GetObservation() (map[string]interface{}, error) { +func (tr *BGP) GetObservation() (map[string]any, error) { o, err := json.TFParser.Marshal(tr.Status.AtProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(o, &base) } // SetObservation for this BGP -func (tr *BGP) SetObservation(obs map[string]interface{}) error { +func (tr *BGP) SetObservation(obs map[string]any) error { p, err := json.TFParser.Marshal(obs) if err != nil { return err @@ -137,17 +137,17 @@ func (tr *BGP) GetID() string { } // GetParameters of this BGP -func (tr *BGP) GetParameters() (map[string]interface{}, error) { +func (tr *BGP) GetParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.ForProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(p, &base) } // SetParameters for this BGP -func (tr *BGP) SetParameters(params map[string]interface{}) error { +func (tr *BGP) SetParameters(params map[string]any) error { p, err := json.TFParser.Marshal(params) if err != nil { return err @@ -184,17 +184,17 @@ func (tr *Device) GetConnectionDetailsMapping() map[string]string { } // GetObservation of this Device -func (tr *Device) GetObservation() (map[string]interface{}, error) { +func (tr *Device) GetObservation() (map[string]any, error) { o, err := json.TFParser.Marshal(tr.Status.AtProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(o, &base) } // SetObservation for this Device -func (tr *Device) SetObservation(obs map[string]interface{}) error { +func (tr *Device) SetObservation(obs map[string]any) error { p, err := json.TFParser.Marshal(obs) if err != nil { return err @@ -211,17 +211,17 @@ func (tr *Device) GetID() string { } // GetParameters of this Device -func (tr *Device) GetParameters() (map[string]interface{}, error) { +func (tr *Device) GetParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.ForProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(p, &base) } // SetParameters for this Device -func (tr *Device) SetParameters(params map[string]interface{}) error { +func (tr *Device) SetParameters(params map[string]any) error { p, err := json.TFParser.Marshal(params) if err != nil { return err @@ -258,17 +258,17 @@ func (tr *DeviceLink) GetConnectionDetailsMapping() map[string]string { } // GetObservation of this DeviceLink -func (tr *DeviceLink) GetObservation() (map[string]interface{}, error) { +func (tr *DeviceLink) GetObservation() (map[string]any, error) { o, err := json.TFParser.Marshal(tr.Status.AtProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(o, &base) } // SetObservation for this DeviceLink -func (tr *DeviceLink) SetObservation(obs map[string]interface{}) error { +func (tr *DeviceLink) SetObservation(obs map[string]any) error { p, err := json.TFParser.Marshal(obs) if err != nil { return err @@ -285,17 +285,17 @@ func (tr *DeviceLink) GetID() string { } // GetParameters of this DeviceLink -func (tr *DeviceLink) GetParameters() (map[string]interface{}, error) { +func (tr *DeviceLink) GetParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.ForProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(p, &base) } // SetParameters for this DeviceLink -func (tr *DeviceLink) SetParameters(params map[string]interface{}) error { +func (tr *DeviceLink) SetParameters(params map[string]any) error { p, err := json.TFParser.Marshal(params) if err != nil { return err @@ -332,17 +332,17 @@ func (tr *SSHKey) GetConnectionDetailsMapping() map[string]string { } // GetObservation of this SSHKey -func (tr *SSHKey) GetObservation() (map[string]interface{}, error) { +func (tr *SSHKey) GetObservation() (map[string]any, error) { o, err := json.TFParser.Marshal(tr.Status.AtProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(o, &base) } // SetObservation for this SSHKey -func (tr *SSHKey) SetObservation(obs map[string]interface{}) error { +func (tr *SSHKey) SetObservation(obs map[string]any) error { p, err := json.TFParser.Marshal(obs) if err != nil { return err @@ -359,17 +359,17 @@ func (tr *SSHKey) GetID() string { } // GetParameters of this SSHKey -func (tr *SSHKey) GetParameters() (map[string]interface{}, error) { +func (tr *SSHKey) GetParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.ForProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(p, &base) } // SetParameters for this SSHKey -func (tr *SSHKey) SetParameters(params map[string]interface{}) error { +func (tr *SSHKey) SetParameters(params map[string]any) error { p, err := json.TFParser.Marshal(params) if err != nil { return err @@ -406,17 +406,17 @@ func (tr *SSHUser) GetConnectionDetailsMapping() map[string]string { } // GetObservation of this SSHUser -func (tr *SSHUser) GetObservation() (map[string]interface{}, error) { +func (tr *SSHUser) GetObservation() (map[string]any, error) { o, err := json.TFParser.Marshal(tr.Status.AtProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(o, &base) } // SetObservation for this SSHUser -func (tr *SSHUser) SetObservation(obs map[string]interface{}) error { +func (tr *SSHUser) SetObservation(obs map[string]any) error { p, err := json.TFParser.Marshal(obs) if err != nil { return err @@ -433,17 +433,17 @@ func (tr *SSHUser) GetID() string { } // GetParameters of this SSHUser -func (tr *SSHUser) GetParameters() (map[string]interface{}, error) { +func (tr *SSHUser) GetParameters() (map[string]any, error) { p, err := json.TFParser.Marshal(tr.Spec.ForProvider) if err != nil { return nil, err } - base := map[string]interface{}{} + base := map[string]any{} return base, json.TFParser.Unmarshal(p, &base) } // SetParameters for this SSHUser -func (tr *SSHUser) SetParameters(params map[string]interface{}) error { +func (tr *SSHUser) SetParameters(params map[string]any) error { p, err := json.TFParser.Marshal(params) if err != nil { return err diff --git a/apis/network/v1alpha1/zz_groupversion_info.go b/apis/network/v1alpha1/zz_groupversion_info.go index a07243c..ba1a652 100755 --- a/apis/network/v1alpha1/zz_groupversion_info.go +++ b/apis/network/v1alpha1/zz_groupversion_info.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. // +kubebuilder:object:generate=true // +groupName=network.equinix.jet.crossplane.io diff --git a/apis/network/v1alpha1/zz_sshkey_types.go b/apis/network/v1alpha1/zz_sshkey_types.go index 9e73f3d..f0d16bd 100755 --- a/apis/network/v1alpha1/zz_sshkey_types.go +++ b/apis/network/v1alpha1/zz_sshkey_types.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package v1alpha1 @@ -28,15 +28,20 @@ import ( type SSHKeyObservation_2 struct { ID *string `json:"id,omitempty" tf:"id,omitempty"` + // The unique identifier of the key + // The unique identifier of the key UUID *string `json:"uuid,omitempty" tf:"uuid,omitempty"` } type SSHKeyParameters_2 struct { + // The name of SSH key used for identification. // The name of SSH key used for identification // +kubebuilder:validation:Required Name *string `json:"name" tf:"name,omitempty"` + // The SSH public key. If this is a file, it can be read using the file + // interpolation function. // The SSH public key. If this is a file, it can be read using the file interpolation function // +kubebuilder:validation:Required PublicKey *string `json:"publicKey" tf:"public_key,omitempty"` @@ -56,13 +61,13 @@ type SSHKeyStatus struct { // +kubebuilder:object:root=true -// SSHKey is the Schema for the SSHKeys API +// SSHKey is the Schema for the SSHKeys API. // +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,equinixjet} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,equinix} type SSHKey struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/network/v1alpha1/zz_sshuser_types.go b/apis/network/v1alpha1/zz_sshuser_types.go index da6ee47..df8608d 100755 --- a/apis/network/v1alpha1/zz_sshuser_types.go +++ b/apis/network/v1alpha1/zz_sshuser_types.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package v1alpha1 @@ -28,19 +28,24 @@ import ( type SSHUserObservation struct { ID *string `json:"id,omitempty" tf:"id,omitempty"` + // SSH user unique identifier. + // SSH user unique identifier UUID *string `json:"uuid,omitempty" tf:"uuid,omitempty"` } type SSHUserParameters struct { + // list of device identifiers to which user will have access. // list of device identifiers to which user will have access // +kubebuilder:validation:Required DeviceIds []*string `json:"deviceIds" tf:"device_ids,omitempty"` + // SSH user password. // SSH user password // +kubebuilder:validation:Required PasswordSecretRef v1.SecretKeySelector `json:"passwordSecretRef" tf:"-"` + // SSH user login name. // SSH user login name // +kubebuilder:validation:Required Username *string `json:"username" tf:"username,omitempty"` @@ -60,13 +65,13 @@ type SSHUserStatus struct { // +kubebuilder:object:root=true -// SSHUser is the Schema for the SSHUsers API +// SSHUser is the Schema for the SSHUsers API. // +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,equinixjet} +// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,equinix} type SSHUser struct { metav1.TypeMeta `json:",inline"` metav1.ObjectMeta `json:"metadata,omitempty"` diff --git a/apis/v1alpha1/zz_generated.deepcopy.go b/apis/v1alpha1/zz_generated.deepcopy.go index f4f97e8..eb9bed7 100644 --- a/apis/v1alpha1/zz_generated.deepcopy.go +++ b/apis/v1alpha1/zz_generated.deepcopy.go @@ -121,7 +121,7 @@ func (in *ProviderConfigUsage) DeepCopyInto(out *ProviderConfigUsage) { *out = *in out.TypeMeta = in.TypeMeta in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - out.ProviderConfigUsage = in.ProviderConfigUsage + in.ProviderConfigUsage.DeepCopyInto(&out.ProviderConfigUsage) } // DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ProviderConfigUsage. diff --git a/apis/zz_register.go b/apis/zz_register.go index baf5e50..b10cf14 100755 --- a/apis/zz_register.go +++ b/apis/zz_register.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. // Package apis contains Kubernetes API for the provider. package apis diff --git a/cmd/generator/main.go b/cmd/generator/main.go index 5f4f693..e0b8a1b 100644 --- a/cmd/generator/main.go +++ b/cmd/generator/main.go @@ -23,7 +23,7 @@ import ( "os" "path/filepath" - "github.com/crossplane/terrajet/pkg/pipeline" + "github.com/upbound/upjet/pkg/pipeline" "github.com/crossplane-contrib/provider-jet-equinix/config" ) diff --git a/cmd/provider/main.go b/cmd/provider/main.go index ce30a71..d9fbe8d 100644 --- a/cmd/provider/main.go +++ b/cmd/provider/main.go @@ -27,8 +27,8 @@ import ( "github.com/crossplane/crossplane-runtime/pkg/logging" "github.com/crossplane/crossplane-runtime/pkg/ratelimiter" "github.com/crossplane/crossplane-runtime/pkg/resource" - tjcontroller "github.com/crossplane/terrajet/pkg/controller" - "github.com/crossplane/terrajet/pkg/terraform" + upcontroller "github.com/upbound/upjet/pkg/controller" + "github.com/upbound/upjet/pkg/terraform" "gopkg.in/alecthomas/kingpin.v2" kerrors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -84,7 +84,7 @@ func main() { }) kingpin.FatalIfError(err, "Cannot create controller manager") kingpin.FatalIfError(apis.AddToScheme(mgr.GetScheme()), "Cannot add Equinix APIs to scheme") - o := tjcontroller.Options{ + o := upcontroller.Options{ Options: xpcontroller.Options{ Logger: log, GlobalRateLimiter: ratelimiter.NewGlobal(*maxReconcileRate), diff --git a/config/ecx/l2connection/config.go b/config/ecx/l2connection/config.go index b28aeaa..9fda22f 100644 --- a/config/ecx/l2connection/config.go +++ b/config/ecx/l2connection/config.go @@ -17,7 +17,7 @@ limitations under the License. package l2connection import ( - "github.com/crossplane/terrajet/pkg/config" + "github.com/upbound/upjet/pkg/config" ) // Configure the device group with references to other resources diff --git a/config/metal/device/config.go b/config/metal/device/config.go index 2261223..bb8eeb9 100644 --- a/config/metal/device/config.go +++ b/config/metal/device/config.go @@ -17,7 +17,7 @@ limitations under the License. package device import ( - "github.com/crossplane/terrajet/pkg/config" + "github.com/upbound/upjet/pkg/config" ) // Configure the device group with references to other resources @@ -25,7 +25,7 @@ func Configure(p *config.Provider) { p.AddResourceConfigurator("equinix_metal_device", func(r *config.Resource) { r.LateInitializer = config.LateInitializer{ // NOTE(displague): These are ignored because they conflict with each other. - // See the following for more details: https://github.com/crossplane/terrajet/issues/107 + // See the following for more details: https://github.com/upbound/upjet/issues/107 IgnoredFields: []string{ "metro", "facilities", diff --git a/config/overrides.go b/config/overrides.go index 814179a..ef2c64e 100644 --- a/config/overrides.go +++ b/config/overrides.go @@ -21,22 +21,22 @@ import ( _ "embed" "strings" - tjconfig "github.com/crossplane/terrajet/pkg/config" + upconfig "github.com/upbound/upjet/pkg/config" ) // IdentifierAssignedByEquinix will work for all Equinix types because even if // the ID is assigned by user, we'll see it in the TF State ID. The // resource-specific configurations should override this whenever possible. -func IdentifierAssignedByEquinix() tjconfig.ResourceOption { - return func(r *tjconfig.Resource) { - r.ExternalName = tjconfig.IdentifierFromProvider +func IdentifierAssignedByEquinix() upconfig.ResourceOption { + return func(r *upconfig.Resource) { + r.ExternalName = upconfig.IdentifierFromProvider } } // KnownReferencers adds referencers for fields that are known and common among // more than a few resources. -func KnownReferencers() tjconfig.ResourceOption { //nolint:gocyclo - return func(r *tjconfig.Resource) { +func KnownReferencers() upconfig.ResourceOption { //nolint:gocyclo + return func(r *upconfig.Resource) { for k, s := range r.TerraformResource.Schema { // We shouldn't add referencers for status fields and sensitive fields // since they already have secret referencer. @@ -46,33 +46,33 @@ func KnownReferencers() tjconfig.ResourceOption { //nolint:gocyclo if r.ShortGroup == "metal" { switch { case strings.HasSuffix(k, "project_id"): - r.References[k] = tjconfig.Reference{ + r.References[k] = upconfig.Reference{ // github.com/crossplane-contrib/provider-jet-equinix/apis/metal/v1alpha1.Project Type: "Project", } case strings.HasSuffix(k, "organization_id"): - r.References[k] = tjconfig.Reference{ + r.References[k] = upconfig.Reference{ Type: "Organization", } case strings.HasSuffix(k, "connection_id"): - r.References[k] = tjconfig.Reference{ + r.References[k] = upconfig.Reference{ Type: "Connection", } case strings.HasSuffix(k, "device_id"): - r.References[k] = tjconfig.Reference{ + r.References[k] = upconfig.Reference{ Type: "Device", } case strings.HasSuffix(k, "vlan_id"): // vlan_vnid is ignored because it is an int type - r.References[k] = tjconfig.Reference{ + r.References[k] = upconfig.Reference{ Type: "Vlan", } case strings.HasSuffix(k, "vrf_id"): - r.References[k] = tjconfig.Reference{ + r.References[k] = upconfig.Reference{ Type: "Vrf", } case strings.HasSuffix(k, "ip_reservation_id"): - r.References[k] = tjconfig.Reference{ + r.References[k] = upconfig.Reference{ Type: "ReservedIPBlock", } } diff --git a/config/provider-metadata.yaml b/config/provider-metadata.yaml new file mode 100644 index 0000000..266c60c --- /dev/null +++ b/config/provider-metadata.yaml @@ -0,0 +1,1770 @@ +name: equinix/equinix +resources: + "": + subCategory: Metal + name: "" + title: "" + argumentDocs: + bond_id: '- UUID of the bond port.' + bond_name: '- Name of the bond port.' + bonded: '- (Required) Whether the port should be bonded.' + disbond_supported: '- Flag indicating whether the port can be removed from a bond.' + layer2: '- (Optional) Whether to put the port to Layer 2 mode, valid only for bond ports.' + mac: '- MAC address of the port.' + name: '- Name of the port, e.g. bond0 or eth0.' + native_vlan_id: |- + - (Optional) UUID of a VLAN to assign as a native VLAN. It must be one of + attached VLANs (from vlan_ids parameter). + network_type: |- + - One of layer2-bonded, layer2-individual, layer3, hybrid and hybrid-bonded. This + attribute is only set on bond ports. + port_id: '- (Required) ID of the port to read.' + reset_on_delete: '- (Optional) Behavioral setting to reset the port to default settings (layer3 bonded mode without any vlan attached) before delete/destroy.' + type: '- Type is either "NetworkBondPort" for bond ports or "NetworkPort" for bondable ethernet ports.' + vlan_ids: |- + - (Optional) List of VLAN UUIDs to attach to the port, valid only for L2 and Hybrid + ports. + vxlan_ids: |- + - (Optional) List of VXLAN IDs to attach to the port, valid only for L2 and Hybrid + ports. + importStatements: [] + equinix_ecx_l2_connection: + subCategory: Fabric + name: equinix_ecx_l2_connection + title: "" + examples: + - name: port-2-aws + manifest: |- + { + "authorization_key": "345742915919", + "name": "tf-aws", + "notifications": [ + "marry@equinix.com", + "john@equinix.com" + ], + "port_uuid": "${data.equinix_ecx_port.sv-qinq-pri.id}", + "profile_uuid": "${data.equinix_ecx_l2_sellerprofile.aws.id}", + "seller_metro_code": "SV", + "seller_region": "us-west-1", + "speed": 200, + "speed_unit": "MB", + "vlan_ctag": 1000, + "vlan_stag": 777 + } + references: + port_uuid: data.equinix_ecx_port.sv-qinq-pri.id + profile_uuid: data.equinix_ecx_l2_sellerprofile.aws.id + - name: ports-2-azure + manifest: |- + { + "authorization_key": "c4dff8e8-b52f-4b34-b0d4-c4588f7338f3", + "name": "tf-azure-pri", + "named_tag": "PRIVATE", + "notifications": [ + "john@equinix.com", + "marry@equinix.com" + ], + "port_uuid": "${data.equinix_ecx_port.sv-qinq-pri.id}", + "profile_uuid": "${data.equinix_ecx_l2_sellerprofile.azure.id}", + "seller_metro_code": "SV", + "speed": 50, + "speed_unit": "MB", + "vlan_ctag": 2512, + "vlan_stag": 1482 + } + references: + port_uuid: data.equinix_ecx_port.sv-qinq-pri.id + profile_uuid: data.equinix_ecx_l2_sellerprofile.azure.id + - name: router-to-gcp + manifest: |- + { + "authorization_key": "4d335adc-00fd-4a41-c9f3-782ca31ab3f7/us-west1/1", + "device_interface_id": 5, + "device_uuid": "${equinix_network_device.myrouter.id}", + "name": "tf-gcp-pri", + "notifications": [ + "john@equinix.com", + "marry@equinix.com" + ], + "profile_uuid": "${data.equinix_ecx_l2_sellerprofile.gcp-1.id}", + "seller_metro_code": "SV", + "seller_region": "us-west1", + "speed": 100, + "speed_unit": "MB" + } + references: + device_uuid: equinix_network_device.myrouter.id + profile_uuid: data.equinix_ecx_l2_sellerprofile.gcp-1.id + - name: token-to-gcp + manifest: |- + { + "authorization_key": "4d335adc-00fd-4a41-c9f3-782ca31ab3f7/us-west1/1", + "name": "tf-gcp-pri", + "notifications": [ + "john@equinix.com", + "marry@equinix.com" + ], + "profile_uuid": "${data.equinix_ecx_l2_sellerprofile.gcp-1.id}", + "seller_metro_code": "SV", + "seller_region": "us-west1", + "service_token": "e9c22453-d3a7-4d5d-9112-d50173531392", + "speed": 100, + "speed_unit": "MB" + } + references: + profile_uuid: data.equinix_ecx_l2_sellerprofile.gcp-1.id + - name: port-to-token + manifest: |- + { + "name": "tf-port-token", + "notifications": [ + "john@equinix.com", + "marry@equinix.com" + ], + "port_uuid": "${data.equinix_ecx_port.sv-qinq-pri.id}", + "seller_metro_code": "FR", + "speed": 200, + "speed_unit": "MB", + "vlan_stag": 1000, + "zside_service_token": "e9c22453-d3a7-4d5d-9112-d50173531392" + } + references: + port_uuid: data.equinix_ecx_port.sv-qinq-pri.id + argumentDocs: + actions: '- One or more pending actions to complete connection provisioning.' + additional_info: '- (Optional) one or more additional information key-value objects' + authorization_key: |- + - (Optional) Unique identifier authorizing Equinix to provision a connection + towards a cloud service provider. At Equinix, an Authorization Key is a generic term and is NOT + encrypted on Equinix Fabric. Cloud Service Providers might use a different name to refer to this + key such as Service Key or Authentication Key. Value depends on a provider service profile, + more information on Equinix Fabric how to guide. + device_interface_id: |- + - (Optional) Applicable with device_uuid, identifier of network interface + on a given device, used for a connection. If not specified then first available interface will be + selected. + device_uuid: |- + - (Required when port_uuid or service_token are not set) Unique identifier of + the Network Edge virtual device from which the connection would originate. + name: |- + - (Required) Connection name. An alpha-numeric 24 characters string which can include only + hyphens and underscores + named_tag: |- + - (Optional) The type of peering to set up when connecting to Azure Express Route. + Valid values: PRIVATE, MICROSOFT, MANUAL*, PUBLIC*. + notifications: |- + - (Required) A list of email addresses used for sending connection update + notifications. + port_uuid: |- + - (Required when device_uuid or service_token are not set) Unique identifier of + the Equinix Fabric Port from which the connection would originate. + profile_uuid: '- (Required) Unique identifier of the service provider''s profile.' + provider_status: '- Connection provisioning status on service provider''s side.' + purchase_order_number: '- (Optional) Connection''s purchase order number to reflect on the invoice' + redundancy_group: '- Unique identifier of group containing a primary and secondary connection.' + redundancy_type: |- + - Connection redundancy type, applicable for HA connections. Valid values are + PRIMARY, SECONDARY. + redundant_uuid: '- Unique identifier of the redundant connection, applicable for HA connections.' + secondary_connection: |- + - (Optional) Definition of secondary connection for redundant, HA + connectivity. See Secondary Connection below for more details. + secondary_connection.authorization_key: |- + - (Optional) Unique identifier authorizing Equinix to provision a connection + towards a cloud service provider. If not specified primary authorization_key will be used. However, + some service providers may require different keys for each connection. More information on + Equinix Fabric how to guide. + secondary_connection.device_interface_id: |- + - (Optional) Applicable with device_uuid, identifier of network interface + on a given device. If not specified then first available interface will be selected. + secondary_connection.device_uuid: |- + - (Optional) Applicable with primary device_uuid. Identifier of the Network Edge + virtual device from which the secondary connection would originate. If not specified primary + device_uuid will be used. + secondary_connection.name: '- (Required) secondary connection name' + secondary_connection.port_uuid: |- + - (Optional) Applicable with primary port_uuid. Identifier of the Equinix Fabric Port from + which the secondary connection would originate. If not specified primary port_uuid will be used. + secondary_connection.seller_metro_code: |- + - (Optional) The metro code that denotes the secondary connection’s + destination (Z side). . + secondary_connection.seller_region: |- + - (Optional) The region in which the seller port resides. If not specified + primary seller_region will be used. + secondary_connection.service_token: |- + - (Optional) Required with primary service_token. Unique Equinix Fabric key + given by a provider that grants you authorization to enable connectivity from an Equinix Fabric Port or + virtual device. Each connection (primary and secondary) requires a separate token. + More details in Fabric Service Tokens. + secondary_connection.speed: |- + - (Optional) Speed/Bandwidth to be allocated to the secondary connection. If not + specified primary speed will be used. + secondary_connection.speed_unit: |- + - (Optional) Unit of the speed/bandwidth to be allocated to the secondary + connection. If not specified primary speed_unit will be used. + secondary_connection.vlan_ctag: |- + - (Optional) Applicable with port_uuid. C-Tag/Inner-Tag of the secondary + connection, a numeric character ranging from 2 - 4094. + secondary_connection.vlan_stag: |- + - (Required when port_uuid is set) S-Tag/Outer-Tag of the secondary connection, a + numeric character ranging from 2 - 4094. + seller_metro_code: |- + - (Optional) The metro code that denotes the connection’s remote/destination + side (z-side). + seller_region: '- (Optional) The region in which the seller port resides.' + service_token: |- + - (Required when port_uuid or device_uuid are not set) - A-side + service tokens authorize you to create a connection from a customer port, which created the token + for you, to a service profile or your own port. + More details in A-Side Fabric Service Tokens. + speed: '- (Required) Speed/Bandwidth to be allocated to the connection.' + speed_unit: '- (Required) Unit of the speed/bandwidth to be allocated to the connection.' + status: '- Connection provisioning status on Equinix Fabric side.' + uuid: '- Unique identifier of the connection.' + value: '- (Required) additional information value' + vendor_token: |- + - The Equinix Fabric Token the connection was created with. Applicable if the + connection was created with a service_token (a-side) or zside_service_token (z-side). + vlan_ctag: |- + - (Optional) C-Tag/Inner-Tag of the connection - a numeric character ranging from 2 + - 4094. + vlan_stag: |- + - (Required when port_uuid is set) S-Tag/Outer-Tag of the connection - a numeric + character ranging from 2 - 4094. + zside_port_uuid: |- + - (Optional) Unique identifier of the port on the remote/destination side + (z-side). Allows you to connect between your own ports or virtual devices across your company's + Equinix Fabric deployment, with no need for a private service profile. + zside_service_token: |- + - (Required when profile_uuid or zside_port_uuid are not set) - Z-side + service tokens authorize you to create a connection from your port or virtual device to a customer + port which created the token for you. zside_service_token cannot be used with secondary_connection. + More details in Z-Side Fabric Service Tokens. + zside_vlan_ctag: |- + - (Optional) C-Tag/Inner-Tag of the connection on the remote/destination + side (z-side) - a numeric character ranging from 2 - 4094. + secondary_connection is defined it will internally use same zside_vlan_ctag for the secondary + connection. + zside_vlan_stag: |- + - (Optional) S-Tag/Outer-Tag of the connection on the remote/destination + side (z-side) - a numeric character ranging from 2 - 4094. + importStatements: [] + equinix_ecx_l2_connection_accepter: + subCategory: Fabric + name: equinix_ecx_l2_connection_accepter + title: "" + examples: + - name: accepter + manifest: |- + { + "connection_id": "${equinix_ecx_l2_connection.awsConn.id}" + } + references: + connection_id: equinix_ecx_l2_connection.awsConn.id + argumentDocs: + AWS: (AWS Direct Connect) + AWS_ACCESS_KEY_ID: |- + and AWS_SECRET_ACCESS_KEY + environmental variables + access_key: and secret_key resource arguments + aws_connection_id: |- + - Identifier of a hosted Direct Connect connection on AWS side, + applicable for accepter resource with connections to AWS only. + aws_profile: argument or AWS_PROFILE environmental variable + connection_id: '- (Required) Identifier of Layer 2 connection that will be accepted.' + secret_key: '- (Optional) Secret Key used to accept connection on provider side.' + importStatements: [] + equinix_ecx_l2_serviceprofile: + subCategory: Fabric + name: equinix_ecx_l2_serviceprofile + title: "" + examples: + - name: private-profile + manifest: |- + { + "bandwidth_threshold_notifications": [ + "John.Doe@example.com", + "Marry.Doe@example.com" + ], + "connection_name_label": "Connection", + "description": "my private profile", + "features": [ + { + "allow_remote_connections": true, + "test_profile": false + } + ], + "name": "private-profile", + "port": [ + { + "metro_code": "NY", + "uuid": "a867f685-422f-22f7-6de0-320a5c00abdd" + }, + { + "metro_code": "NY", + "uuid": "a867f685-4231-2317-6de0-320a5c00abdd" + } + ], + "private": true, + "private_user_emails": [ + "John.Doe@example.com", + "Marry.Doe@example.com" + ], + "profile_statuschange_notifications": [ + "John.Doe@example.com", + "Marry.Doe@example.com" + ], + "speed_band": [ + { + "speed": 1000, + "speed_unit": "MB" + }, + { + "speed": 500, + "speed_unit": "MB" + }, + { + "speed": 100, + "speed_unit": "MB" + } + ], + "vc_statuschange_notifications": [ + "John.Doe@example.com", + "Marry.Doe@example.com" + ] + } + argumentDocs: + BOTH: '- When both, application tag or seller side VLAN C-Tag can be provided.' + CTAGED: '- When seller side VLAN C-Tag has to be provided (Default).' + NAMED: '- When application named tag has to be provided.' + api_integration: |- + - (Optional) Boolean value that determines if API integration is enabled. It + allows you to complete connection provisioning in less than five minutes. Without API Integration, + additional manual steps will be required and the provisioning will likely take longer. + authkey_label: |- + - (Optional) Name of the authentication key label to be used by the + Authentication Key service. It allows Service Providers with QinQ ports to accept groups of + connections or VLANs from Dot1q customers. This is similar to S-Tag/C-Tag capabilities. + bandwidth_alert_threshold: |- + - (Optional) Specifies the port bandwidth threshold percentage. If + the bandwidth limit is met or exceeded, an alert is sent to the seller. + bandwidth_threshold_notifications: |- + - (Optional) A list of email addresses that will receive + notifications about bandwidth thresholds. + connection_name_label: |- + - (Optional) Custom name used for calling a connections + e.g. circuit. Defaults to Connection. + ctag_label: '- (Optional) C-Tag/Inner-Tag label name for the connections.' + description: '- (Optional) Description of the service profile.' + equinix_managed_port_vlan: |- + - (Optional) Applicable when api_integration is set to true. It + indicates whether the port and VLAN details are managed by Equinix. + features: |- + - (Required) Block of profile features configuration. See Features below + for more details. + features.allow_remote_connections: |- + - (Required) Indicates whether or not connections to this profile + can be created from remote metro locations. + features.test_profile: |- + - (Deprecated) Indicates whether or not this profile can be used for test + connections. + integration_id: |- + - (Optional) Specifies the API integration ID that was provided to the customer + during onboarding. You can validate your API integration ID using the validateIntegrationId API. + name: |- + - (Required) Name of the service profile. An alpha-numeric 50 characters string which can + include only hyphens and underscores. + oversubscription: |- + - (Optional) You can set an alert for when a percentage of your profile has + been sold. Service providers like to use this functionality to alert them when they need to add + more ports or when they need to create a new service profile. Required with + oversubscription_allowed, defaults to 1x. + oversubscription_allowed: |- + - (Optional) Boolean value that determines if, regardless of the + utilization, Equinix Fabric will continue to add connections to your links until we reach the + oversubscription limit. By selecting this service, you acknowledge that you will manage decisions + on when to increase capacity on these link. + port: |- + - (Required) One or more definitions of ports residing in locations, from which your + customers will be able to access services using this service profile. See Port below for + more details. + port.metro_code: '- (Required) The metro code of location where the port resides.' + port.uuid: '- (Required) Unique identifier of the port.' + private: |- + - (Optional) Boolean value that indicates whether or not this is a private profile, + i.e. not public like AWS/Azure/Oracle/Google, etc. If private, it can only be available for + creating connections if correct permissions are granted. + private_user_emails: |- + - (Optional) An array of users email ids who have permission to access this + service profile. Argument is required when profile is set as private. + profile_statuschange_notifications: |- + - (Required) A list of email addresses that will receive + notifications about profile status changes. + redundancy_required: |- + - (Optional) Boolean value that determines if your connections will require + redundancy. if yes, then users need to create a secondary redundant connection. + secondary_vlan_from_primary: |- + - (Optional) Indicates whether the VLAN ID of. the secondary + connection is the same as the primary connection. + servicekey_autogenerated: |- + - (Optional) Boolean value that indicates whether multiple connections + can be created with the same authorization key to connect to this service profile after the first + connection has been approved by the seller. + speed_band: |- + - (Optional) One or more definitions of supported speed/bandwidth. Argument is + required when speed_from_api is set to false. See Speed Band below for more + details. + speed_band.speed: '- (Required) Speed/bandwidth supported by this service profile.' + speed_band.speed_unit: |- + - (Required) Unit of the speed/bandwidth supported by this service profile. One of + MB, GB. + speed_customization_allowed: |- + - (Optional) Boolean value that determines if customer is allowed + to enter a custom connection speed. + speed_from_api: |- + - (Optional) Boolean valuta that determines if connection speed will be derived + from an API call. Argument has to be specified when api_integration is enabled. + state: '- Service profile provisioning status.' + tag_type: |- + - (Optional) Specifies additional tagging information required by the seller profile + for Dot1Q to QinQ translation. See Enhance Dot1q to QinQ translation support + for additional information. Valid values are: + uuid: '- Unique identifier of the service profile.' + vc_statuschange_notifications: |- + - (Required) A list of email addresses that will receive + notifications about connections approvals and rejections. + importStatements: [] + equinix_fabric_connection Resource - terraform-provider-equinix: + subCategory: Fabric + description: Fabric V4 API compatible resource allows creation and management of Equinix Fabric connection ~> Note Equinix Fabric v4 resources and datasources are currently in Beta. The interfaces related to equinix_fabric_ resources and datasources may change ahead of general availability. Please, do not hesitate to report any problems that you experience by opening a new issue https://github.com/equinix/terraform-provider-equinix/issues/new?template=bug.md + name: equinix_fabric_connection Resource - terraform-provider-equinix + title: equinix_fabric_connection Resource - terraform-provider-equinix + argumentDocs: + a_side: '(Block Set, Min: 1) Requester or Customer side connection configuration object of the multi-segment connection (see below for nested schema)' + access_point: (Block Set) Point of access details (see below for nested schema) + access_point_type_configs: (List of Object) Access point config information (see below for nested schema) + account: (Set of Object) Customer account information that is associated with this connection (see below for nested schema) + account_name: (String) + account_number: (Number) + additional_info: (Block List) Connection additional information (see below for nested schema) + authentication_key: (String) Authentication key for provider based connections + bandwidth: (Number) Connection bandwidth in Mbps + billing_tier: (String) Billing tier for connection bandwidth + change_log: (Set of Object) Captures connection lifecycle change information (see below for nested schema) + correlation_id: (String) + create: (String) + created_by: (String) + created_by_email: (String) + created_by_full_name: (String) + created_date_time: (String) + delete: (String) + deleted_by: (String) + deleted_by_email: (String) + deleted_by_full_name: (String) + deleted_date_time: (String) + description: (String) User-provided service description + details: (String) + direction: (String) Connection directionality from the requester point of view + emails: (List of String) Array of contact emails + equinix_status: (String) + error_code: (String) + error_message: (String) + errors: (List of Object) (see below for nested schema) + gateway: (Block Set) Gateway access point information (see below for nested schema) + global_cust_id: (String) + global_org_id: (String) + global_organization_name: (String) + group: (String) Redundancy group identifier + help: (String) + href: (String) Connection URI information + ibx: (String) IBX Code + id: (String) The ID of this resource. + interface: (Block Set) Virtual device interface (see below for nested schema) + is_remote: (Boolean) Connection property derived from access point locations + key: (String) Additional information key + link_protocol: (Block Set) Connection link protocol (see below for nested schema) + location: (Block Set) Access point location (see below for nested schema) + metro_code: (String) Access point metro code + metro_name: (String) Access point metro name + name: (String) Connection name. An alpha-numeric 24 characters string which can include only hyphens and underscores + notifications: '(Block List, Min: 1) Preferences for notifications on connection configuration or status changes (see below for nested schema)' + operation: (Set of Object) Connection type-specific operational data (see below for nested schema) + order: (Block Set) Order related to this connection information (see below for nested schema) + order_id: (String) Order Identification + order_number: (String) Order Reference Number + org_id: (Number) + organization_name: (String) + peering_type: (String) Peering Type- PRIVATE,MICROSOFT,PUBLIC, MANUAL + port: (Block Set) Port access point information (see below for nested schema) + priority: (String) + profile: (Block Set) Service Profile (see below for nested schema) + project: (Block Set) Project information (see below for nested schema) + project_id: (String) Project Id + property: (String) + provider_connection_id: (String) Provider assigned Connection Id + provider_status: (String) + purchase_order_number: (String) Purchase order number + read: (String) + reason: (String) + redundancy: (Block Set) Redundancy Information (see below for nested schema) + region: (String) Access point region + routing_protocols: (Block List) Access point routing protocols configuration (see below for nested schema) + seller_region: (String) Access point seller region + send_interval: (String) Send interval + service_token: (Block Set) For service token based connections, Service tokens authorize users to access protected resources and services. Resource owners can distribute the tokens to trusted partners and vendors, allowing selected third parties to work directly with Equinix network assets (see below for nested schema) + state: (String) Connection overall state + timeouts: (Block, Optional) (see below for nested schema) + type: (String) Defines the connection type like VG_VC, EVPL_VC, EPL_VC, EC_VC, GW_VC, ACCESS_EPL_VC + update: (String) + updated_by: (String) + updated_by_email: (String) + updated_by_full_name: (String) + updated_date_time: (String) + uuid: (String) Equinix-assigned virtual gateway identifier + value: (String) Additional information value + virtual_device: (Block Set) Virtual device (see below for nested schema) + vlan_c_tag: (Number) Vlan Customer Tag information, vlanCTag value specified for QINQ connections + vlan_s_tag: (Number) Vlan Provider Tag information, vlanSTag value specified for QINQ connections + vlan_tag: (Number) Vlan Tag information, vlanTag value specified for DOT1Q connections + z_side: '(Block Set, Min: 1) Destination or Provider side connection configuration object of the multi-segment connection (see below for nested schema)' + importStatements: [] + equinix_fabric_service_profile Resource - terraform-provider-equinix: + subCategory: Fabric + description: Fabric V4 API compatible resource allows creation and management of Equinix Fabric Service Profile ~> Note Equinix Fabric v4 resources and datasources are currently in Beta. The interfaces related to equinix_fabric_ resources and datasources may change ahead of general availability. Please, do not hesitate to report any problems that you experience by opening a new issue https://github.com/equinix/terraform-provider-equinix/issues/new?template=bug.md + name: equinix_fabric_service_profile Resource - terraform-provider-equinix + title: equinix_fabric_service_profile Resource - terraform-provider-equinix + argumentDocs: + access_point_type_configs: (Block List) Access point config information (see below for nested schema) + account: (Block Set) Account (see below for nested schema) + account_name: (String) Account Name + account_number: (Number) Account Number + allow_bandwidth_auto_approval: (Boolean) Setting to enable or disable the ability of the buyer to change connection bandwidth without approval of the seller + allow_bandwidth_upgrade: (Boolean) Availability of a bandwidth upgrade. The default is false + allow_custom_bandwidth: (Boolean) Setting to enable or disable the ability of the buyer to customize the bandwidth + allow_over_subscription: (Boolean) Setting showing that oversubscription support is available (true) or not (false). The default is false + allow_remote_connections: (Boolean) Setting to allow or prohibit remote connections to the service profile + allowed_emails: (List of String) Array of contact emails + api_available: (Boolean) Setting indicating whether the API is available (true) or not (false) + api_config: (Block Set) Api configuration details (see below for nested schema) + authentication_key: (Block Set) Authentication key details (see below for nested schema) + bandwidth_alert_threshold: (Number) Percentage of port bandwidth at which an allocation alert is generated + bandwidth_from_api: (Boolean) Bandwidth from api + capture_in_email: (Boolean) Required field + change_log: (Set of Object) Captures connection lifecycle change information (see below for nested schema) + code: (String) Metro Code - Example SV + connection_label: (String) Custom name for Connection + connection_redundancy_required: (Boolean) Mandate redundant connections + create: (String) + created_by: (String) + created_by_email: (String) + created_by_full_name: (String) + created_date_time: (String) + cross_connect_id: (String) Cross Connect Id + custom_fields: (Block List) Custom Fields (see below for nested schema) + data_type: (String) Data type + delete: (String) + deleted_by: (String) + deleted_by_email: (String) + deleted_by_full_name: (String) + deleted_date_time: (String) + description: (String) User-provided service description + display_name: (String) Display Name + emails: (List of String) Array of contact emails + enable_auto_generate_service_key: (Boolean) Enable auto generate service key + encapsulation: (String) Port Encapsulation + encapsulation_strategy: (String) Encapsulation strategy + equinix_managed_port: (Boolean) Setting indicating that the port is managed by Equinix (true) or not (false) + equinix_managed_vlan: (Boolean) Setting indicating that the VLAN is managed by Equinix (true) or not (false) + global_cust_id: (String) Global Customer organization identifier + global_org_id: (String) Global organization identifier + global_organization_name: (String) Global organization name + href: (String) Service Profile URI response attribute + ibx: (String) IBX Code + ibxs: (List of String) IBX- Equinix International Business Exchange list + id: (String) The ID of this resource. + in_trail: (Boolean) In Trail + integration_id: (String) Integration id + interface_uuid: (String) Device Interface Uuid + label: (String) Label + link_protocol_config: (Block Set) Link protocol configuration details (see below for nested schema) + location: (Block Set) Colo/Port Location (see below for nested schema) + logo: (String) Logo + marketing_info: (Block Set) Marketing Info (see below for nested schema) + metro_code: (String) Access point metro code + metro_name: (String) Access point metro name + metros: (Block List) Access point config information (see below for nested schema) + name: (String) Customer-assigned service profile name + notifications: (Block List) Preferences for notifications on connection configuration or status changes (see below for nested schema) + options: (List of String) Options + org_id: (Number) Customer organization identifier + organization_name: (String) Customer organization name + over_subscription_limit: (Number) A cap on over subscription + ports: (Block List) Ports (see below for nested schema) + process_step: (Block List) Process Step (see below for nested schema) + project: (Block Set) Project information (see below for nested schema) + project_id: (String) Project Id + promotion: (Boolean) Promotion + read: (String) + region: (String) Access point region + required: (Boolean) Required + reuse_vlan_s_tag: (Boolean) Reuse vlan sTag + self_profile: (Boolean) Self Profile + seller_region: (String) Seller Region + seller_region_description: (String) Seller Region details + seller_regions: (Map of String) Seller Regions + send_interval: (String) Send interval + state: (String) Service profile state - ACTIVE, PENDING_APPROVAL, DELETED, REJECTED + sub_title: (String) Sub Title + supported_bandwidths: (List of Number) Supported bandwidths + tags: (List of String) Tags attached to the connection + timeouts: (Block, Optional) (see below for nested schema) + title: (String) Title + type: (String) Service profile type - L2_PROFILE, L3_PROFILE, ECIA_PROFILE, ECMC_PROFILE + ucm_id: (String) Enterprise datastore id + update: (String) + updated_by: (String) + updated_by_email: (String) + updated_by_full_name: (String) + updated_date_time: (String) + uuid: (String) Equinix assigned service profile identifier + virtual_devices: (Block List) Virtual Devices (see below for nested schema) + visibility: (String) Service profile visibility - PUBLIC, PRIVATE + importStatements: [] + equinix_metal_connection: + subCategory: Metal + name: equinix_metal_connection + title: "" + examples: + - name: example + manifest: |- + { + "metro": "sv", + "name": "tf-metal-to-azure", + "project_id": "${local.project_id}", + "redundancy": "redundant", + "service_token_type": "a_side", + "speed": "1000Mbps", + "type": "shared" + } + references: + project_id: local.project_id + dependencies: + equinix_ecx_l2_connection.example: |- + { + "authorization_key": "${azurerm_express_route_circuit.example.service_key}", + "name": "tf-metal-to-azure", + "named_tag": "PRIVATE", + "notifications": [ + "example@equinix.com" + ], + "profile_uuid": "${data.equinix_ecx_l2_sellerprofile.example.uuid}", + "secondary_connection": [ + { + "name": "tf-metal-to-azure-sec", + "service_token": "${equinix_metal_connection.example.service_tokens.1.id}" + } + ], + "seller_metro_code": "AM", + "service_token": "${equinix_metal_connection.example.service_tokens.0.id}", + "speed": "${azurerm_express_route_circuit.example.bandwidth_in_mbps}", + "speed_unit": "MB" + } + - name: example + manifest: |- + { + "metro": "FR", + "name": "tf-port-to-metal", + "project_id": "${local.project_id}", + "redundancy": "primary", + "service_token_type": "z_side", + "speed": "200Mbps", + "type": "shared" + } + references: + project_id: local.project_id + dependencies: + equinix_ecx_l2_connection.example: |- + { + "name": "tf-port-to-metal", + "notifications": [ + "example@equinix.com" + ], + "port_uuid": "${data.equinix_ecx_port.example.id}", + "speed": "200", + "speed_unit": "MB", + "vlan_stag": 1020, + "zside_service_token": "${equinix_metal_connection.example.service_tokens.0.id}" + } + - name: example + manifest: |- + { + "metro": "SV", + "name": "tf-port-to-metal-legacy", + "project_id": "${local.my_project_id}", + "redundancy": "redundant", + "type": "shared" + } + references: + project_id: local.my_project_id + dependencies: + equinix_ecx_l2_connection.example: |- + { + "authorization_key": "${equinix_metal_connection.example.token}", + "name": "tf-port-to-metal-legacy", + "notifications": [ + "example@equinix.com" + ], + "port_uuid": "${data.equinix_ecx_port.example.id}", + "speed": "200", + "speed_unit": "MB", + "vlan_stag": 1020 + } + argumentDocs: + description: '- (Optional) Description for the connection resource.' + facility: '- (Optional) Facility where the connection will be created.' + metro: '- (Optional) Metro where the connection will be created.' + mode: '- (Optional) Mode for connections in IBX facilities with the dedicated type - standard or tunnel. Default is standard.' + name: '- (Required) Name of the connection resource' + organization_id: '- ID of the organization where the connection is scoped to.' + ports: |- + - List of connection ports - primary (ports[0]) and secondary (ports[1]). Schema of + port is described in documentation of the + equinix_metal_connection datasource. + project_id: '- (Optional) ID of the project where the connection is scoped to, must be set for.' + redundancy: '- (Required) Connection redundancy - redundant or primary.' + service_token_type: '- (Optional) Only used with shared connection. Type of service token to use for the connection, a_side or z_side. (NOTE: To support the legacy non-automated way to create connections, terraform will not check if )' + service_tokens: '- List of connection service tokens with attributes required to configure the connection in Equinix Fabric with the equinix_ecx_l2_connection resource or from the Equinix Fabric Portal. Scehma of service_token is described in documentation of the equinix_metal_connection datasource.' + speed: '- (Required) Connection speed - one of 50Mbps, 200Mbps, 500Mbps, 1Gbps, 2Gbps, 5Gbps, 10Gbps.' + status: '- Status of the connection resource.' + tags: '- (Optional) String list of tags.' + token: '- (Deprecated) Fabric Token required to configure the connection in Equinix Fabric with the equinix_ecx_l2_connection resource or from the Equinix Fabric Portal. If your organization already has connection service tokens enabled, use service_tokens instead.' + type: '- (Required) Connection type - dedicated or shared.' + vlans: '- (Optional) Only used with shared connection. Vlans to attach. Pass one vlan for Primary/Single connection and two vlans for Redundant connection.' + importStatements: [] + equinix_metal_device: + subCategory: Metal + name: equinix_metal_device + title: "" + examples: + - name: web1 + manifest: |- + { + "billing_cycle": "hourly", + "hostname": "tf.coreos2", + "metro": "sv", + "operating_system": "ubuntu_20_04", + "plan": "c3.small.x86", + "project_id": "${local.project_id}" + } + references: + project_id: local.project_id + - name: pxe1 + manifest: |- + { + "always_pxe": "false", + "billing_cycle": "hourly", + "hostname": "tf.coreos2-pxe", + "ipxe_script_url": "https://rawgit.com/cloudnativelabs/pxe/master/metal/coreos-stable-metal.ipxe", + "metro": "sv", + "operating_system": "custom_ipxe", + "plan": "c3.small.x86", + "project_id": "${local.project_id}", + "user_data": "${data.ignition_config.example.rendered}" + } + references: + project_id: local.project_id + user_data: data.ignition_config.example.rendered + - name: web1 + manifest: |- + { + "billing_cycle": "hourly", + "facilities": [ + "ny5" + ], + "hostname": "tf.coreos2", + "ip_address": [ + { + "cidr": 30, + "type": "private_ipv4" + } + ], + "operating_system": "ubuntu_20_04", + "plan": "c3.small.x86", + "project_id": "${local.project_id}" + } + references: + project_id: local.project_id + - name: web1 + manifest: |- + { + "billing_cycle": "hourly", + "facilities": [ + "ny5" + ], + "hardware_reservation_id": "next-available", + "hostname": "tftest", + "operating_system": "ubuntu_20_04", + "plan": "c3.small.x86", + "project_id": "${local.project_id}", + "storage": "{\n \"disks\": [\n {\n \"device\": \"/dev/sda\",\n \"wipeTable\": true,\n \"partitions\": [\n {\n \"label\": \"BIOS\",\n \"number\": 1,\n \"size\": \"4096\"\n },\n {\n \"label\": \"SWAP\",\n \"number\": 2,\n \"size\": \"3993600\"\n },\n {\n \"label\": \"ROOT\",\n \"number\": 3,\n \"size\": \"0\"\n }\n ]\n }\n ],\n \"filesystems\": [\n {\n \"mount\": {\n \"device\": \"/dev/sda3\",\n \"format\": \"ext4\",\n \"point\": \"/\",\n \"create\": {\n \"options\": [\n \"-L\",\n \"ROOT\"\n ]\n }\n }\n },\n {\n \"mount\": {\n \"device\": \"/dev/sda2\",\n \"format\": \"swap\",\n \"point\": \"none\",\n \"create\": {\n \"options\": [\n \"-L\",\n \"SWAP\"\n ]\n }\n }\n }\n ]\n}\n" + } + references: + project_id: local.project_id + argumentDocs: + access_private_ipv4: '- The ipv4 private IP assigned to the device.' + access_public_ipv4: '- The ipv4 maintenance IP assigned to the device.' + access_public_ipv6: '- The ipv6 maintenance IP assigned to the device.' + address: '- IPv4 or IPv6 address string.' + always_pxe: |- + - (Optional) If true, a device with OS custom_ipxe will continue to boot via iPXE + on reboots. + billing_cycle: '- (Optional) monthly or hourly' + bonded: '- Whether this port is part of a bond in bonded network setup.' + cidr: '- Bit length of the network mask of the address.' + created: '- The timestamp for when the device was created.' + custom_data: '- (Optional) A string of the desired Custom Data for the device.' + deployed_facility: '- The facility where the device is deployed.' + deployed_hardware_reservation_id: |- + - ID of hardware reservation where this device was deployed. + It is useful when using the next-available hardware reservation. + description: '- (Optional) The device description.' + equinix_metal_device.name.network.0: . + equinix_metal_device.name.network.1: . + equinix_metal_device.name.network.2: . + facilities: |- + - (Optional) List of facility codes with deployment preferences. Equinix Metal API will go + through the list and will deploy your device to first facility with free capacity. List items must + be facility codes or any (a wildcard). To find the facility code, visit + Facilities API docs, set your API auth + token in the top of the page and see JSON from the API response. Conflicts with metro. + family: '- IP version. One of 4, 6.' + force_detach_volumes: |- + - (Optional) Delete device even if it has volumes attached. Only applies + for destroy action. + gateway: '- Address of router.' + hardware_reservation_id: |- + - (Optional) The UUID of the hardware reservation where you want this + device deployed, or next-available if you want to pick your next available reservation + automatically. Changing this from a reservation UUID to next-available will re-create the device + in another reservation. Please be careful when using hardware reservation UUID and next-available + together for the same pool of reservations. It might happen that the reservation which Equinix + Metal API will pick as next-available is the reservation which you refer with UUID in another + equinix_metal_device resource. If that happens, and the equinix_metal_device with the UUID is + created later, resource creation will fail because the reservation is already in use (by the + resource created with next-available). To workaround this, have the next-available resource + explicitly depend_on + the resource with hardware reservation UUID, so that the latter is created first. For more details, + see issue #176. + hostname: |- + - (Optional) The device hostname used in deployments taking advantage of Layer3 DHCP + or metadata service configuration. + id: '- The ID of the device.' + ip_address: |- + - (Optional) A list of IP address types for the device. See + IP address below for more details. + ip_address.cidr: '- (Optional) CIDR suffix for IP address block to be assigned, i.e. amount of addresses.' + ip_address.reservation_ids: |- + - (Optional) List of UUIDs of IP block reservations + from which the public IPv4 address should be taken. + ip_address.type: '- (Required) One of private_ipv4, public_ipv4, public_ipv6.' + ipxe_script_url: |- + - (Optional) URL pointing to a hosted iPXE script. More information is in the + Custom iPXE doc. + locked: '- Whether the device is locked.' + mac: '- MAC address assigned to the port.' + metro: '- (Optional) Metro area for the new device. Conflicts with facilities.' + name: '- Name of the port (e.g. eth0, or bond0).' + network: |- + - The device's private and public IP (v4 and v6) network details. See + Network Attribute below for more details. + network_type: |- + - (Deprecated) Network type of a device, used in + Layer 2 networking. Since this + attribute is deprecated you should handle Network Type with one of + equinix_metal_port, + equinix_metal_device_network_type resources or + equinix_metal_port datasource. + See network_types guide for more info. + operating_system: |- + - (Required) The operating system slug. To find the slug, or visit + Operating Systems API docs, set your + API auth token in the top of the page and see JSON from the API response. + plan: |- + - (Required) The device plan slug. To find the plan slug, visit + Device plans API docs, set your auth token in the + top of the page and see JSON from the API response. + ports: |- + - List of ports assigned to the device. See Ports Attribute below for + more details. + project_id: '- (Required) The ID of the project in which to create the device' + project_ssh_key_ids: |- + - (Optional) Array of IDs of the project SSH keys which should be added to the device. + If you omit this, SSH keys of all the members of the parent project will be added to the device. If + you specify this array, only the listed project SSH keys will be added. Project SSH keys can be + created with the equinix_metal_project_ssh_key resource. + public: '- Whether the address is routable from the Internet.' + reinstall: |- + - (Optional) Whether the device should be reinstalled instead of destroyed when + modifying user_data, custom_data, or operating system. See Reinstall below for more + details. + reinstall.deprovision_fast: |- + - (Optional) Whether the OS disk should be filled with 00h bytes before reinstall. + Defaults to false. + reinstall.enabled: |- + - (Optional) Whether the provider should favour reinstall over destroy and create. Defaults to + false. + reinstall.preserve_data: |- + - (Optional) Whether the non-OS disks should be kept or wiped during reinstall. + Defaults to false. + root_password: '- Root password to the server (disabled after 24 hours).' + ssh_key_ids: '- List of IDs of SSH keys deployed in the device, can be both user and project SSH keys.' + state: '- The status of the device.' + storage: |- + - (Optional) JSON for custom partitioning. Only usable on reserved hardware. More + information in in the + Custom Partitioning and RAID + doc. Please note that the disks.partitions.size attribute must be a string, not an integer. It can + be a number string, or size notation string, e.g. "4G" or "8M" (for gigabytes and megabytes). + tags: '- (Optional) Tags attached to the device.' + termination_time: |- + - (Optional) Timestamp for device termination. For example 2021-09-03T16:32:00+03:00. + If you don't supply timezone info, timestamp is assumed to be in UTC. + timeouts.create: '- (Defaults to 20 mins) Used when creating the Device. This includes the time to provision the OS.' + timeouts.delete: '- (Defaults to 20 mins) Used when deleting the Device. This includes the time to deprovision a hardware reservation when wait_for_reservation_deprovision is enabled.' + timeouts.update: '- (Defaults to 20 mins) Used when updating the Device. This includes the time needed to reprovision instances when reinstall arguments are used.' + type: '- Type of the port (e.g. NetworkPort or NetworkBondPort).' + updated: '- The timestamp for the last time the device was updated.' + user_data: '- (Optional) A string of the desired User Data for the device.' + user_ssh_key_ids: '- (Optional) Array of IDs of the user SSH keys which should be added to the device. If you omit this, SSH keys of all the members of the parent project will be added to the device. If you specify this array, only the listed user SSH keys (and any project_ssh_key_ids) will be added. User SSH keys can be created with the equinix_metal_ssh_key resource' + wait_for_reservation_deprovision: |- + - (Optional) Only used for devices in reserved hardware. If + set, the deletion of this device will block until the hardware reservation is marked provisionable + (about 4 minutes in August 2019). + importStatements: [] + equinix_metal_organization: + subCategory: Metal + name: equinix_metal_organization + title: "" + examples: + - name: tf_organization_1 + manifest: |- + { + "description": "quux", + "name": "foobar" + } + argumentDocs: + address: |- + - (Required) An object that has the address information. See Address + below for more details. + address.address: '- (Required) Postal address.' + address.city: '- (Required) City name.' + address.country: '- (Required) Two letter country code (ISO 3166-1 alpha-2), e.g. US.' + address.state: '- (Optional) State name.' + address.zip_code: '- (Required) Zip Code.' + created: '- The timestamp for when the organization was created.' + description: '- (Optional) Description string.' + id: '- The unique ID of the organization.' + logo: '- (Optional) Logo URL.' + name: '- (Required) The name of the Organization.' + twitter: '- (Optional) Twitter handle.' + updated: '- The timestamp for the last time the organization was updated.' + website: '- (Optional) Website link.' + importStatements: [] + equinix_metal_organization_member: + subCategory: Metal + name: equinix_metal_organization_member + title: "" + examples: + - name: member + manifest: |- + { + "invitee": "member@example.com", + "organization_id": "${var.organization_id}", + "projects_ids": [ + "${var.project_id}" + ], + "roles": [ + "limited_collaborator" + ] + } + references: + organization_id: var.organization_id + - name: owner + manifest: |- + { + "invitee": "admin@example.com", + "organization_id": "${var.organization_id}", + "projects_ids": [], + "roles": [ + "owner" + ] + } + references: + organization_id: var.organization_id + argumentDocs: + created: '- When the invitation was created (only known in the invitation stage)' + id: '- The unique ID of the membership.' + invited_by: '- The user_id of the user that sent the invitation (only known in the invitation stage)' + invitee: '- (Required) The email address of the user to invite' + message: '- A message to include in the emailed invitation.' + nonce: '- The nonce for the invitation (only known in the invitation stage)' + organization_id: '- (Required) The organization to invite the user to' + projects_ids: '- (Required) Project IDs the member has access to within the organization. If the member is an ''admin'', the projects list should be empty.' + roles: '- (Required) Organization roles (admin, collaborator, limited_collaborator, billing)' + state: '- The state of the membership (''invited'' when an invitation is open, ''active'' when the user is an organization member)' + updated: '- When the invitation was updated (only known in the invitation stage)' + importStatements: [] + equinix_metal_project: + subCategory: Metal + name: equinix_metal_project + title: "" + examples: + - name: example + manifest: |- + { + "name": "example" + } + dependencies: + equinix_metal_vrf.example: |- + { + "description": "VRF with ASN 65000 and a pool of address space that includes 192.168.100.0/25", + "ip_ranges": [ + "192.168.100.0/25", + "192.168.200.0/25" + ], + "local_asn": "65000", + "metro": "da", + "name": "example-vrf", + "project_id": "${equinix_metal_project.example.id}" + } + argumentDocs: + description: '- (Optional) Description of the VRF.' + ip_ranges: '- (Optional) All IPv4 and IPv6 Ranges that will be available to BGP Peers. IPv4 addresses must be /8 or smaller with a minimum size of /29. IPv6 must be /56 or smaller with a minimum size of /64. Ranges must not overlap other ranges within the VRF.' + local_asn: '- (Optional) The 4-byte ASN set on the VRF.' + metro: '- (Required) Metro ID or Code where the VRF will be deployed.' + name: '- (Required) User-supplied name of the VRF, unique to the project' + project_id: '- (Required) Project ID where the VRF will be deployed.' + importStatements: [] + equinix_metal_project_api_key: + subCategory: Metal + name: equinix_metal_project_api_key + title: "" + examples: + - name: test + manifest: |- + { + "description": "Read-only key scoped to a projct", + "project_id": "${local.existing_project_id}", + "read_only": true + } + references: + project_id: local.existing_project_id + argumentDocs: + description: '- (Required) Description string for the Project API Key resource.' + project_id: '- (Required) UUID of the project where the API key is scoped to.' + read-only: '- (Optional) Flag indicating whether the API key shoud be read-only.' + token: '- API token which can be used in Equinix Metal API clients' + importStatements: [] + equinix_metal_project_ssh_key: + subCategory: Metal + name: equinix_metal_project_ssh_key + title: "" + examples: + - name: test + manifest: |- + { + "name": "test", + "project_id": "${local.project_id}", + "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDM/unxJeFqxsTJcu6mhqsMHSaVlpu+Jj/P+44zrm6X/MAoHSX3X9oLgujEjjZ74yLfdfe0bJrbL2YgJzNaEkIQQ1VPMHB5EhTKUBGnzlPP0hHTnxsjAm9qDHgUPgvgFDQSAMzdJRJ0Cexo16Ph9VxCoLh3dxiE7s2gaM2FdVg7P8aSxKypsxAhYV3D0AwqzoOyT6WWhBoQ0xZ85XevOTnJCpImSemEGs6nVGEsWcEc1d1YvdxFjAK4SdsKUMkj4Dsy/leKsdi/DEAf356vbMT1UHsXXvy5TlHu/Pa6qF53v32Enz+nhKy7/8W2Yt2yWx8HnQcT2rug9lvCXagJO6oauqRTO77C4QZn13ZLMZgLT66S/tNh2EX0gi6vmIs5dth8uF+K6nxIyKJXbcA4ASg7F1OJrHKFZdTc5v1cPeq6PcbqGgc+8SrPYQmzvQqLoMBuxyos2hUkYOmw3aeWJj9nFa8Wu5WaN89mUeOqSkU4S5cgUzWUOmKey56B/j/s1sVys9rMhZapVs0wL4L9GBBM48N5jAQZnnpo85A8KsZq5ME22bTLqnxsDXqDYZvS7PSI6Dxi7eleOFE/NYYDkrgDLHTQri8ucDMVeVWHgoMY2bPXdn7KKy5jW5jKsf8EPARXg77A4gRYmgKrcwIKqJEUPqyxJBe0CPoGTqgXPRsUiQ== tomk@hp2" + } + references: + project_id: local.project_id + dependencies: + equinix_metal_device.test: |- + { + "billing_cycle": "hourly", + "facilities": [ + "ny5" + ], + "hostname": "test", + "operating_system": "ubuntu_20_04", + "plan": "c3.medium.x86", + "project_id": "${local.project_id}", + "project_ssh_key_ids": [ + "${equinix_metal_project_ssh_key.test.id}" + ] + } + argumentDocs: + created: '- The timestamp for when the SSH key was created.' + fingerprint: '- The fingerprint of the SSH key.' + id: '- The unique ID of the key.' + name: '- (Required) The name of the SSH key for identification.' + owner_id: '- The ID of parent project (same as project_id).' + project_id: '- (Required) The ID of parent project.' + public_key: '- (Required) The public key. If this is a file, it can be read using the file interpolation function.' + updated: '- The timestamp for the last time the SSH key was updated.' + importStatements: [] + equinix_metal_reserved_ip_block: + subCategory: Metal + name: equinix_metal_reserved_ip_block + title: "" + examples: + - name: two_elastic_addresses + manifest: |- + { + "facility": "sv15", + "project_id": "${local.project_id}", + "quantity": 2 + } + references: + project_id: local.project_id + - name: test + manifest: |- + { + "metro": "sv", + "project_id": "${local.project_id}", + "quantity": 1, + "type": "public_ipv4" + } + references: + project_id: local.project_id + - name: test + manifest: |- + { + "project_id": "${local.project_id}", + "quantity": 1, + "type": "global_ipv4" + } + references: + project_id: local.project_id + - name: example + manifest: |- + { + "facility": "sv15", + "project_id": "${local.project_id}", + "quantity": 2 + } + references: + project_id: local.project_id + dependencies: + equinix_metal_device.nodes: |- + { + "billing_cycle": "hourly", + "facilities": [ + "sv15" + ], + "hostname": "test", + "ip_address": [ + { + "cidr": 31, + "reservation_ids": [ + "${equinix_metal_reserved_ip_block.example.id}" + ], + "type": "public_ipv4" + }, + { + "type": "private_ipv4" + } + ], + "operating_system": "ubuntu_20_04", + "plan": "c3.small.x86", + "project_id": "${local.project_id}" + } + argumentDocs: + address_family: '- Address family as integer. One of 4 or 6.' + cidr: '- (Optional) Only valid as an argument and required when type is vrf. The size of the network to reserve from an existing VRF ip_range. cidr can only be specified with vrf_id. Range is 22-31. Virtual Circuits require 30-31. Other VRF resources must use a CIDR in the 22-29 range.' + cidr_notation: '- Address and mask in CIDR notation, e.g. 147.229.15.30/31.' + custom_data: '- (Optional) Custom Data is an arbitrary object (submitted in Terraform as serialized JSON) to assign to the IP Reservation. This may be helpful for self-managed IPAM. The object must be valid JSON.' + description: '- (Optional) Arbitrary description.' + facility: |- + - (Optional) Facility where to allocate the public IP address block, makes sense only + if type is public_ipv4 and must be empty if type is global_ipv4. Conflicts with metro. + global: |- + - Boolean flag whether addresses from a block are global (i.e. can be assigned in any + facility). + id: '- The unique ID of the block.' + metro: |- + - (Optional) Metro where to allocate the public IP address block, makes sense only + if type is public_ipv4 and must be empty if type is global_ipv4. Conflicts with facility. + netmask: '- Mask in decimal notation, e.g. 255.255.255.0.' + network: '- (Optional) Only valid as an argument and required when type is vrf. An unreserved network address from an existing ip_range in the specified VRF.' + project_id: '- (Required) The metal project ID where to allocate the address block.' + public: '- Boolean flag whether addresses from a block are public.' + quantity: '- (Optional) The number of allocated /32 addresses, a power of 2. Required when type is not vrf.' + tags: '- (Optional) String list of tags.' + type: |- + - (Optional) One of global_ipv4, public_ipv4, or vrf. Defaults to public_ipv4 for backward + compatibility. + vrf_id: '- (Optional) Only valid and required when type is vrf. VRF ID for type=vrf reservations.' + wait_for_state: '- (Optional) Wait for the IP reservation block to reach a desired state on resource creation. One of: pending, created. The created state is default and recommended if the addresses are needed within the configuration. An error will be returned if a timeout or the denied state is encountered.' + importStatements: [] + equinix_metal_spot_market_request: + subCategory: Metal + name: equinix_metal_spot_market_request + title: "" + examples: + - name: req + manifest: |- + { + "devices_max": 1, + "devices_min": 1, + "facilities": [ + "ny5" + ], + "instance_parameters": [ + { + "billing_cycle": "hourly", + "hostname": "testspot", + "operating_system": "ubuntu_20_04", + "plan": "c3.small.x86" + } + ], + "max_bid_price": 0.03, + "project_id": "${local.project_id}" + } + references: + project_id: local.project_id + argumentDocs: + devices_max: '- (Required) Maximum number devices to be created.' + devices_min: '- (Required) Miniumum number devices to be created.' + facilities: '- (Optional) Facility IDs where devices should be created.' + id: '- The ID of the Spot Market Request.' + instance_parameters: |- + - (Required) Key/Value pairs of parameters for devices provisioned from + this request. Valid keys are: billing_cycle, plan, operating_system, hostname, + termintation_time, always_pxe, description, features, locked, project_ssh_keys, + user_ssh_keys, userdata, customdata, ipxe_script_url, tags. You can find each parameter + description in equinix_metal_device docs. + locked: '- (Optional) Blocks deletion of the SpotMarketRequest device until the lock is disabled.' + max_bid_price: '- (Required) Maximum price user is willing to pay per hour per device.' + metro: '- (Optional) Metro where devices should be created.' + project_id: '- (Required) Project ID.' + timeouts.create: |- + - (Defaults to 60 mins) Used when creating the Spot Market Request and wait_for_devices + is set to true. + timeouts.delete: |- + - (Defaults to 60 mins) Used when destroying the Spot Market Request and wait_for_devices + is set to true. + wait_for_devices: |- + - (Optional) On resource creation wait until all desired devices are active. + On resource destruction wait until devices are removed. + importStatements: [] + equinix_metal_ssh_key: + subCategory: Metal + name: equinix_metal_ssh_key + title: "" + examples: + - name: key1 + manifest: |- + { + "name": "terraform-1", + "public_key": "${file(\"/home/terraform/.ssh/id_rsa.pub\")}" + } + dependencies: + equinix_metal_device.test: |- + { + "billing_cycle": "hourly", + "depends_on": [ + "equinix_metal_ssh_key.key1" + ], + "hostname": "test-device", + "metro": "sv", + "operating_system": "ubuntu_20_04", + "plan": "c3.small.x86", + "project_id": "${local.project_id}" + } + argumentDocs: + created: '- The timestamp for when the SSH key was created.' + fingerprint: '- The fingerprint of the SSH key.' + id: '- The unique ID of the key.' + name: '- (Required) The name of the SSH key for identification' + owner_id: '- The UUID of the Equinix Metal API User who owns this key.' + public_key: |- + - (Required) The public key. If this is a file, it + can be read using the file interpolation function + updated: '- The timestamp for the last time the SSH key was updated.' + importStatements: [] + equinix_metal_user_api_key: + subCategory: Metal + name: equinix_metal_user_api_key + title: "" + examples: + - name: test + manifest: |- + { + "description": "Read-only user key", + "read_only": true + } + argumentDocs: + description: '- (Required) Description string for the User API Key resource.' + read-only: '- (Required) Flag indicating whether the API key shoud be read-only.' + token: '- API token which can be used in Equinix Metal API clients.' + user_id: '- UUID of the owner of the API key.' + importStatements: [] + equinix_metal_vlan: + subCategory: Metal + name: equinix_metal_vlan + title: "" + examples: + - name: vlan1 + manifest: |- + { + "description": "VLAN in New Jersey", + "facility": "sv15", + "project_id": "${local.project_id}" + } + references: + project_id: local.project_id + - name: vlan1 + manifest: |- + { + "description": "VLAN in New Jersey", + "metro": "sv", + "project_id": "${local.project_id}", + "vxlan": 1040 + } + references: + project_id: local.project_id + argumentDocs: + description: '- (Optional) Description string.' + facility: '- (Required) Facility where to create the VLAN.' + id: '- ID of the virtual network.' + project_id: '- (Required) ID of parent project.' + vxlan: '- (Optional) VLAN ID, must be unique in metro.' + importStatements: [] + equinix_network_acl_template: + subCategory: Network Edge + name: equinix_network_acl_template + title: "" + examples: + - name: myacl + manifest: |- + { + "description": "Test ACL template", + "inbound_rule": [ + { + "description": "inbound rule description", + "dst_port": "any", + "protocol": "IP", + "src_port": "any", + "subnet": "1.1.1.1/32" + }, + { + "dst_port": "53,1045,2041", + "protocol": "UDP", + "src_port": "any", + "subnet": "172.16.25.0/24" + } + ], + "name": "test" + } + argumentDocs: + description: '- (Optional) ACL template description, up to 200 characters.' + device_acl_status: |- + - Status of ACL template provisioning process, where template was applied. + One of PROVISIONING, PROVISIONED. + device_details: '- List of the devices where the ACL template is applied.' + device_details.acl_status: |- + - Device ACL provisioning status where template was applied. One of PROVISIONING, + PROVISIONED. + device_details.name: '- Device name.' + device_details.uuid: '- Device uuid.' + device_id: '- (Deprecated) Identifier of a network device where template was applied.' + inbound_rule: |- + - (Required) One or more rules to specify allowed inbound traffic. + Rules are ordered, matching traffic rule stops processing subsequent ones. + inbound_rule.description: '- (Optional) Inbound rule description, up to 200 characters.' + inbound_rule.dst_port: |- + - (Required) Inbound traffic destination ports. Allowed values are a comma separated + list of ports, e.g., 20,22,23, port range, e.g., 1023-1040 or word any. + inbound_rule.protocol: '- (Required) Inbound traffic protocol. One of IP, TCP, UDP.' + inbound_rule.src_port: |- + - (Required) Inbound traffic source ports. Allowed values are a comma separated list + of ports, e.g., 20,22,23, port range, e.g., 1023-1040 or word any. + inbound_rule.subnet: '- (Required) Inbound traffic source IP subnet in CIDR format.' + inbound_rule.subnets: '- (Deprecated) Inbound traffic source IP subnets in CIDR format.' + metro_code: '- (Deprecated) ACL template location metro code.' + name: '- (Required) ACL template name.' + uuid: '- Unique identifier of ACL template resource.' + importStatements: [] + equinix_network_bgp: + subCategory: Network Edge + name: equinix_network_bgp + title: "" + examples: + - name: test + manifest: |- + { + "authentication_key": "secret", + "connection_id": "54014acf-9730-4b55-a791-459283d05fb1", + "local_asn": 12345, + "local_ip_address": "10.1.1.1/30", + "remote_asn": 66123, + "remote_ip_address": "10.1.1.2" + } + argumentDocs: + authentication_key: '- (Optional) shared key used for BGP peer authentication.' + connection_id: |- + - (Required) identifier of a connection established between. + network device and remote service provider that will be used for peering. + device_id: |- + - unique identifier of a network device that is a local peer in a given BGP peering + configuration. + local_asn: '- (Required) Local ASN number.' + local_ip_address: '- (Required) IP address in CIDR format of a local device.' + provisioning_status: |- + - BGP peering configuration provisioning status, one of PROVISIONING, + PENDING_UPDATE, PROVISIONED, FAILED. + remote_asn: '- (Required) Remote ASN number.' + remote_ip_address: '- (Required) IP address of remote peer.' + state: |- + - BGP peer state, one of Idle, Connect, Active, OpenSent, OpenConfirm, + Established. + uuid: '- BGP peering configuration unique identifier.' + importStatements: [] + equinix_network_device: + subCategory: Network Edge + name: equinix_network_device + title: "" + examples: + - name: csr1000v-ha + manifest: |- + { + "account_number": "${data.equinix_network_account.dc.number}", + "core_count": 2, + "hostname": "csr1000v-p", + "metro_code": "${data.equinix_network_account.dc.metro_code}", + "name": "tf-csr1000v-p", + "notifications": [ + "john@equinix.com", + "marry@equinix.com", + "fred@equinix.com" + ], + "package_code": "SEC", + "secondary_device": [ + { + "account_number": "${data.equinix_network_account.sv.number}", + "hostname": "csr1000v-s", + "metro_code": "${data.equinix_network_account.sv.metro_code}", + "name": "tf-csr1000v-s", + "notifications": [ + "john@equinix.com", + "marry@equinix.com" + ] + } + ], + "term_length": 6, + "throughput": 500, + "throughput_unit": "Mbps", + "type_code": "CSR1000V", + "version": "16.09.05" + } + references: + account_number: data.equinix_network_account.dc.number + metro_code: data.equinix_network_account.dc.metro_code + secondary_device.account_number: data.equinix_network_account.sv.number + secondary_device.metro_code: data.equinix_network_account.sv.metro_code + - name: panw-cluster + manifest: |- + { + "account_number": "${data.equinix_network_account.sv.number}", + "acl_template_id": "0bff6e05-f0e7-44cd-804a-25b92b835f8b", + "byol": true, + "cluster_details": [ + { + "cluster_name": "tf-panw-cluster", + "node0": [ + { + "license_token": "licenseToken", + "vendor_configuration": [ + { + "hostname": "panw-node0" + } + ] + } + ], + "node1": [ + { + "license_token": "licenseToken", + "vendor_configuration": [ + { + "hostname": "panw-node1" + } + ] + } + ] + } + ], + "core_count": 2, + "interface_count": 10, + "metro_code": "${data.equinix_network_account.sv.metro_code}", + "name": "tf-panw", + "notifications": [ + "john@equinix.com", + "marry@equinix.com", + "fred@equinix.com" + ], + "package_code": "VM100", + "self_managed": true, + "ssh_key": [ + { + "key_name": "test-key", + "username": "test" + } + ], + "term_length": 6, + "type_code": "PA-VM", + "version": "10.1.3" + } + references: + account_number: data.equinix_network_account.sv.number + metro_code: data.equinix_network_account.sv.metro_code + argumentDocs: + account_number: '- (Required) Billing account number for a device.' + acl_template_id: '- (Optional) Identifier of an ACL template that will be applied on the device.' + additional_bandwidth: |- + - (Optional) Additional Internet bandwidth, in Mbps, that will be + allocated to the device (in addition to default 15Mbps). + asn: '- (Autonomous System Number) Unique identifier for a network on the internet.' + assigned_type: '- interface management type (Equinix Managed or empty).' + byol: |- + - (Optional) Boolean value that determines device licensing mode, i.e., + bring your own license or subscription (default). + cluster_details: |- + - (Optional) An object that has the cluster details. See + Cluster Details below for more details. + cluster_details.cluster_name: '- (Required) The name of the cluster device' + cluster_details.node0: |- + - (Required) An object that has node0 configuration. + See Cluster Details - Nodes below for more details. + cluster_details.node0.license_file_id: '- (Optional) License file id. This is necessary for Fortinet and Juniper clusters.' + cluster_details.node0.license_token: '- (Optional) License token. This is necessary for Palo Alto clusters.' + cluster_details.node0.vendor_configuration: |- + - (Optional) An object that has fields relevant to the vendor of the + cluster device. See Cluster Details - Nodes - Vendor Configuration + below for more details. + cluster_details.node0.vendor_configuration.activation_key: '- (Optional) Activation key. This is required for Velocloud clusters.' + cluster_details.node0.vendor_configuration.admin_password: |- + - (Optional) The administrative password of the device. You can use it to log in + to the console. This field is not available for all device types. + cluster_details.node0.vendor_configuration.controller_fqdn: '- (Optional) Controller fqdn. This is required for Velocloud clusters.' + cluster_details.node0.vendor_configuration.controller1: '- (Optional) System IP Address. Mandatory for the Fortinet SDWAN cluster device.' + cluster_details.node0.vendor_configuration.hostname: '- (Optional) Hostname. This is necessary for Palo Alto, Juniper, and Fortinet clusters.' + cluster_details.node0.vendor_configuration.root_password: |- + - (Optional) The CLI password of the device. This field is relevant only for the + Velocloud SDWAN cluster. + cluster_details.node1: |- + - (Required) An object that has node1 configuration. + See Cluster Details - Nodes below for more details. + cluster_id: '- The ID of the cluster.' + core_count: '- (Required) Number of CPU cores used by device.' + hostname: '- (Optional) Device hostname prefix.' + ibx: '- Device location Equinix Business Exchange name.' + id: '- interface identifier.' + interface: |- + - List of device interfaces. See Interface Attribute below + for more details. + interface_count: |- + - (Optional) Number of network interfaces on a device. If not specified, + default number for a given device type will be used. + ip_address: '- interface IP address.' + license_file: |- + - (Optional) Path to the license file that will be uploaded and applied on a + device. Applicable for some devices types in BYOL licensing mode. + license_file_id: '- Unique identifier of applied license file.' + license_status: |- + - Device license registration status. Possible values are APPLYING_LICENSE, + REGISTERED, APPLIED, WAITING_FOR_CLUSTER_SETUP, REGISTRATION_FAILED. + license_token: |- + - (Optional) License Token applicable for some device types in BYOL licensing + mode. + mac_address: '- interface MAC address.' + metro_code: '- (Required) Device location metro code.' + mgmt_acl_template_uuid: |- + - (Optional) Identifier of an MGMT interface ACL template that will be + applied on the device. + name: '- (Required) Device name.' + notifications: |- + - (Required) List of email addresses that will receive device status + notifications. + num_of_nodes: '- The number of nodes in the cluster.' + operational_status: '- interface operational status. One of up, down.' + order_reference: '- (Optional) Name/number used to identify device order on the invoice.' + package_code: '- (Required) Device software package code.' + purchase_order_number: '- (Optional) Purchase order number associated with a device order.' + redundancy_type: |- + - Device redundancy type applicable for HA devices, either + primary or secondary. + redundant_id: '- Unique identifier for a redundant device applicable for HA devices.' + region: '- Device location region.' + secondary_device: |- + - (Optional) Definition of secondary device for redundant + device configurations. See Secondary Device below for more details. + secondary_device.account_number: '- (Required) Billing account number for secondary device.' + secondary_device.acl_template_id: |- + - (Optional) Identifier of a WAN interface ACL template that will be applied + on a secondary device. + secondary_device.additional_bandwidth: |- + - (Optional) Additional Internet bandwidth, in Mbps, for a secondary + device. + secondary_device.hostname: '- (Optional) Secondary device hostname.' + secondary_device.license_file: |- + - (Optional) Path to the license file that will be uploaded and applied on a + secondary device. Applicable for some devices types in BYOL licensing mode. + secondary_device.license_token: '- (Optional) License Token can be provided for some device types o the device.' + secondary_device.metro_code: '- (Required) Metro location of a secondary device.' + secondary_device.mgmt_acl_template_uuid: |- + - (Optional) Identifier of an MGMT interface ACL template that will be + applied on the device. + secondary_device.name: '- (Required) Secondary device name.' + secondary_device.notifications: |- + - (Required) List of email addresses that will receive notifications about + secondary device. + secondary_device.ssh-key: |- + - (Optional) Up to one definition of SSH key that will be provisioned on a secondary + device. + secondary_device.vendor_configuration: |- + - (Optional) Key/Value pairs of vendor specific configuration parameters + for a secondary device. Key values are controller1, activationKey, managementType, siteId, + systemIpAddress. + self-configured: devices. + self_managed: |- + - (Optional) Boolean value that determines device management mode, i.e., + self-managed or Equinix managed (default). + ssh-key: |- + - (Optional) Definition of SSH key that will be provisioned + on a device (max one key). See SSH Key below for more details. + ssh_ip_address: '- IP address of SSH enabled interface on the device.' + ssh_ip_fqdn: '- FQDN of SSH enabled interface on the device.' + ssh_key.name: '- (Required) reference by name to previously provisioned public SSH key.' + ssh_key.username: '- (Required) username associated with given key.' + status: |- + - Device provisioning status. Possible values are + INITIALIZING, PROVISIONING, WAITING_FOR_PRIMARY, WAITING_FOR_SECONDARY, + WAITING_FOR_REPLICA_CLUSTER_NODES, CLUSTER_SETUP_IN_PROGRESS, FAILED, PROVISIONED, + DEPROVISIONING, DEPROVISIONED. + term_length: '- (Required) Device term length.' + throughput: '- (Optional) Device license throughput.' + throughput_unit: '- (Optional) License throughput unit. One of Mbps or Gbps.' + type: '- interface type.' + type_code: '- (Required) Device type code.' + uuid: '- Device unique identifier.' + vendor_configuration: |- + - (Optional) Map of vendor specific configuration parameters for a device + (controller1, activationKey, managementType, siteId, systemIpAddress) + version: '- (Required) Device software software version.' + wan_interafce_id: |- + - (Optional) Specify the WAN/SSH interface id. If not specified, default + WAN/SSH interface for a given device type will be used. + zone_code: '- Device location zone code.' + importStatements: [] + equinix_network_device_link: + subCategory: Network Edge + name: equinix_network_device_link + title: "" + examples: + - name: test + manifest: |- + { + "device": [ + { + "asn": "${equinix_network_device.test.asn \u003e 0 ? equinix_network_device.test.asn : 22111}", + "id": "${equinix_network_device.test.uuid}", + "interface_id": 6 + }, + { + "asn": "${equinix_network_device.test.secondary_device[0].asn \u003e 0 ? equinix_network_device.test.secondary_device[0].asn : 22333}", + "id": "${equinix_network_device.test.secondary_device[0].uuid}", + "interface_id": 7 + } + ], + "link": [ + { + "account_number": "${equinix_network_device.test.account_number}", + "dst_metro_code": "${equinix_network_device.test.secondary_device[0].metro_code}", + "src_metro_code": "${equinix_network_device.test.metro_code}", + "throughput": "50", + "throughput_unit": "Mbps" + } + ], + "name": "test-link", + "subnet": "192.168.40.64/27" + } + references: + device.id: equinix_network_device.test.secondary_device[0].uuid + link.account_number: equinix_network_device.test.account_number + link.dst_metro_code: equinix_network_device.test.secondary_device[0].metro_code + link.src_metro_code: equinix_network_device.test.metro_code + argumentDocs: + device: |- + - (Required) definition of one or more devices belonging to the + device link. See Device section below for more details. + device.asn: '- (Optional) Device ASN number. Not required for self configured devices.' + device.id: '- (Required) Device identifier.' + device.interface_id: |- + - (Optional) Device network interface identifier to use for device link + connection. + device.ip_address: '- IP address from device link subnet that was assigned to the device' + device.status: |- + - device link provisioning status on a given device. One of PROVISIONING, + PROVISIONED, DEPROVISIONING, DEPROVISIONED, FAILED. + link: |- + - (Optional) definition of one or more, inter metro, connections belonging + to the device link. See Link section below for more details. + link.account_number: |- + - (Required) billing account number to be used for + connection charges + link.dst_metro_code: '- (Required) connection destination metro code.' + link.dst_zone_code: '- (Deprecated) connection destination zone code is not required.' + link.src_metro_code: '- (Required) connection source metro code.' + link.src_zone_code: '- (Deprecated) connection source zone code is not required.' + link.throughput: '- (Required) connection throughput.' + link.throughput_unit: '- (Required) connection throughput unit (Mbps or Gbps).' + name: '- (Required) device link name.' + status: |- + - Device link provisioning status. One of PROVISIONING, PROVISIONED, + DEPROVISIONING, DEPROVISIONED, FAILED. + subnet: |- + - (Optional) device link subnet in CIDR format. Not required for link + between self configured devices. + uuid: '- Device link unique identifier.' + importStatements: [] + equinix_network_ssh_key: + subCategory: Network Edge + name: equinix_network_ssh_key + title: "" + examples: + - name: john + manifest: |- + { + "name": "johnKent", + "public_key": "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDpXGdxljAyPp9vH97436U171cX" + } + argumentDocs: + name: '- (Required) The name of SSH key used for identification.' + public_key: |- + - (Required) The SSH public key. If this is a file, it can be read using the file + interpolation function. + uuid: '- The unique identifier of the key' + importStatements: [] + equinix_network_ssh_user: + subCategory: Network Edge + name: equinix_network_ssh_user + title: "" + examples: + - name: john + manifest: |- + { + "device_ids": [ + "${equinix_ne_device.csr1000v-ha.uuid}", + "${equinix_ne_device.csr1000v-ha.redundant_uuid}" + ], + "password": "secret", + "username": "john" + } + argumentDocs: + device_ids: '- (Required) list of device identifiers to which user will have access.' + password: '- (Required) SSH user password.' + username: '- (Required) SSH user login name.' + uuid: '- SSH user unique identifier.' + importStatements: [] diff --git a/config/provider.go b/config/provider.go index 541ee50..c8ad2b3 100644 --- a/config/provider.go +++ b/config/provider.go @@ -20,8 +20,7 @@ import ( // Note(turkenh): we are importing this to embed provider schema document _ "embed" - tjconfig "github.com/crossplane/terrajet/pkg/config" - "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" + upconfig "github.com/upbound/upjet/pkg/config" "github.com/crossplane-contrib/provider-jet-equinix/config/ecx/l2connection" "github.com/crossplane-contrib/provider-jet-equinix/config/metal/device" @@ -35,19 +34,35 @@ const ( //go:embed schema.json var providerSchema string +//go:embed provider-metadata.yaml +var providerMetadata string + // GetProvider returns provider configuration -func GetProvider() *tjconfig.Provider { - pc := tjconfig.NewProviderWithSchema([]byte(providerSchema), resourcePrefix, modulePath, - tjconfig.WithDefaultResourceFn(DefaultResource( +func GetProvider() *upconfig.Provider { + pc := upconfig.NewProvider([]byte(providerSchema), resourcePrefix, modulePath, []byte(providerMetadata), + upconfig.WithShortName("equinix"), + upconfig.WithRootGroup("equinix.jet.crossplane.io"), + // upconfig.WithReferenceInjectors([]config.ReferenceInjector{reference.NewInjector("github.com/crossplane-contrib/provider-jet-equinix")}), + upconfig.WithDefaultResourceOptions( KnownReferencers(), IdentifierAssignedByEquinix(), - )), - tjconfig.WithIncludeList([]string{ + ), + upconfig.WithIncludeList([]string{ ".*", }), + upconfig.WithBasePackages(upconfig.BasePackages{ + APIVersion: []string{ + // Default package for ProviderConfig APIs + "apis/v1alpha1", + }, + Controller: []string{ + // Default package for ProviderConfig controllers + "internal/controller/providerconfig", + }, + }), ) - for _, configure := range []func(provider *tjconfig.Provider){ + for _, configure := range []func(provider *upconfig.Provider){ // add custom config functions device.Configure, l2connection.Configure, @@ -58,11 +73,3 @@ func GetProvider() *tjconfig.Provider { pc.ConfigureResources() return pc } - -// DefaultResource returns a DefaultResourceFn that makes sure the original -// DefaultResource call is made with given options here. -func DefaultResource(opts ...tjconfig.ResourceOption) tjconfig.DefaultResourceFn { - return func(name string, terraformResource *schema.Resource, orgOpts ...tjconfig.ResourceOption) *tjconfig.Resource { //nolint:gocritic - return tjconfig.DefaultResource(name, terraformResource, append(orgOpts, opts...)...) - } -} diff --git a/examples-generated/ecx/l2connection.yaml b/examples-generated/ecx/l2connection.yaml new file mode 100644 index 0000000..8fa234c --- /dev/null +++ b/examples-generated/ecx/l2connection.yaml @@ -0,0 +1,28 @@ +apiVersion: ecx.equinix.jet.crossplane.io/v1alpha1 +kind: L2Connection +metadata: + annotations: + meta.upbound.io/example-id: ecx/v1alpha1/l2connection + labels: + testing.upbound.io/example-name: port-2-aws + name: port-2-aws +spec: + forProvider: + authorizationKey: "345742915919" + name: tf-aws + notifications: + - marry@equinix.com + - john@equinix.com + portUuid: ${data.equinix_ecx_port.sv-qinq-pri.id} + profileUuidSelector: + matchLabels: + testing.upbound.io/example-name: equinix_ecx_l2_sellerprofile + sellerMetroCode: SV + sellerRegion: us-west-1 + speed: 200 + speedUnit: MB + vlanCtag: 1000 + vlanStag: 777 + +--- + diff --git a/examples-generated/ecx/l2connectionaccepter.yaml b/examples-generated/ecx/l2connectionaccepter.yaml new file mode 100644 index 0000000..1c05ccb --- /dev/null +++ b/examples-generated/ecx/l2connectionaccepter.yaml @@ -0,0 +1,14 @@ +apiVersion: ecx.equinix.jet.crossplane.io/v1alpha1 +kind: L2ConnectionAccepter +metadata: + annotations: + meta.upbound.io/example-id: ecx/v1alpha1/l2connectionaccepter + labels: + testing.upbound.io/example-name: accepter + name: accepter +spec: + forProvider: + connectionId: ${equinix_ecx_l2_connection.awsConn.id} + +--- + diff --git a/examples-generated/ecx/l2serviceprofile.yaml b/examples-generated/ecx/l2serviceprofile.yaml new file mode 100644 index 0000000..e26a45a --- /dev/null +++ b/examples-generated/ecx/l2serviceprofile.yaml @@ -0,0 +1,44 @@ +apiVersion: ecx.equinix.jet.crossplane.io/v1alpha1 +kind: L2Serviceprofile +metadata: + annotations: + meta.upbound.io/example-id: ecx/v1alpha1/l2serviceprofile + labels: + testing.upbound.io/example-name: private-profile + name: private-profile +spec: + forProvider: + bandwidthThresholdNotifications: + - John.Doe@example.com + - Marry.Doe@example.com + connectionNameLabel: Connection + description: my private profile + features: + - allowRemoteConnections: true + testProfile: false + name: private-profile + port: + - metroCode: NY + uuid: a867f685-422f-22f7-6de0-320a5c00abdd + - metroCode: NY + uuid: a867f685-4231-2317-6de0-320a5c00abdd + private: true + privateUserEmails: + - John.Doe@example.com + - Marry.Doe@example.com + profileStatuschangeNotifications: + - John.Doe@example.com + - Marry.Doe@example.com + speedBand: + - speed: 1000 + speedUnit: MB + - speed: 500 + speedUnit: MB + - speed: 100 + speedUnit: MB + vcStatuschangeNotifications: + - John.Doe@example.com + - Marry.Doe@example.com + +--- + diff --git a/examples-generated/metal/connection.yaml b/examples-generated/metal/connection.yaml new file mode 100644 index 0000000..c0b6418 --- /dev/null +++ b/examples-generated/metal/connection.yaml @@ -0,0 +1,50 @@ +apiVersion: metal.equinix.jet.crossplane.io/v1alpha1 +kind: Connection +metadata: + annotations: + meta.upbound.io/example-id: metal/v1alpha1/connection + labels: + testing.upbound.io/example-name: example + name: example +spec: + forProvider: + metro: sv + name: tf-metal-to-azure + projectIdSelector: + matchLabels: + testing.upbound.io/example-name: example + redundancy: redundant + serviceTokenType: a_side + speed: 1000Mbps + type: shared + +--- + +apiVersion: ecx.equinix.jet.crossplane.io/v1alpha1 +kind: L2Connection +metadata: + annotations: + meta.upbound.io/example-id: metal/v1alpha1/connection + labels: + testing.upbound.io/example-name: example + name: example +spec: + forProvider: + authorizationKey: ${azurerm_express_route_circuit.example.service_key} + name: tf-metal-to-azure + namedTag: PRIVATE + notifications: + - example@equinix.com + profileUuidSelector: + matchLabels: + testing.upbound.io/example-name: equinix_ecx_l2_sellerprofile + secondaryConnection: + - name: tf-metal-to-azure-sec + serviceToken: ${equinix_metal_connection.example.service_tokens.1.id} + sellerMetroCode: AM + serviceToken: ${equinix_metal_connection.example.service_tokens.0.id} + speed: ${azurerm_express_route_circuit.example.bandwidth_in_mbps} + speedUnit: MB + +--- + diff --git a/examples-generated/metal/device.yaml b/examples-generated/metal/device.yaml new file mode 100644 index 0000000..125f27b --- /dev/null +++ b/examples-generated/metal/device.yaml @@ -0,0 +1,21 @@ +apiVersion: metal.equinix.jet.crossplane.io/v1alpha1 +kind: Device +metadata: + annotations: + meta.upbound.io/example-id: metal/v1alpha1/device + labels: + testing.upbound.io/example-name: web1 + name: web1 +spec: + forProvider: + billingCycle: hourly + hostname: tf.coreos2 + metro: sv + operatingSystem: ubuntu_20_04 + plan: c3.small.x86 + projectIdSelector: + matchLabels: + testing.upbound.io/example-name: example + +--- + diff --git a/examples-generated/metal/organization.yaml b/examples-generated/metal/organization.yaml new file mode 100644 index 0000000..b4c4f50 --- /dev/null +++ b/examples-generated/metal/organization.yaml @@ -0,0 +1,15 @@ +apiVersion: metal.equinix.jet.crossplane.io/v1alpha1 +kind: Organization +metadata: + annotations: + meta.upbound.io/example-id: metal/v1alpha1/organization + labels: + testing.upbound.io/example-name: tf_organization_1 + name: tf-organization-1 +spec: + forProvider: + description: quux + name: foobar + +--- + diff --git a/examples-generated/metal/organizationmember.yaml b/examples-generated/metal/organizationmember.yaml new file mode 100644 index 0000000..2099906 --- /dev/null +++ b/examples-generated/metal/organizationmember.yaml @@ -0,0 +1,21 @@ +apiVersion: metal.equinix.jet.crossplane.io/v1alpha1 +kind: OrganizationMember +metadata: + annotations: + meta.upbound.io/example-id: metal/v1alpha1/organizationmember + labels: + testing.upbound.io/example-name: member + name: member +spec: + forProvider: + invitee: member@example.com + organizationIdSelector: + matchLabels: + testing.upbound.io/example-name: example + projectsIds: + - ${var.project_id} + roles: + - limited_collaborator + +--- + diff --git a/examples-generated/metal/project.yaml b/examples-generated/metal/project.yaml new file mode 100644 index 0000000..d66e22e --- /dev/null +++ b/examples-generated/metal/project.yaml @@ -0,0 +1,14 @@ +apiVersion: metal.equinix.jet.crossplane.io/v1alpha1 +kind: Project +metadata: + annotations: + meta.upbound.io/example-id: metal/v1alpha1/project + labels: + testing.upbound.io/example-name: example + name: example +spec: + forProvider: + name: example + +--- + diff --git a/examples-generated/metal/projectapikey.yaml b/examples-generated/metal/projectapikey.yaml new file mode 100644 index 0000000..92f12db --- /dev/null +++ b/examples-generated/metal/projectapikey.yaml @@ -0,0 +1,18 @@ +apiVersion: metal.equinix.jet.crossplane.io/v1alpha1 +kind: ProjectAPIKey +metadata: + annotations: + meta.upbound.io/example-id: metal/v1alpha1/projectapikey + labels: + testing.upbound.io/example-name: test + name: test +spec: + forProvider: + description: Read-only key scoped to a projct + projectIdSelector: + matchLabels: + testing.upbound.io/example-name: example + readOnly: true + +--- + diff --git a/examples-generated/metal/projectsshkey.yaml b/examples-generated/metal/projectsshkey.yaml new file mode 100644 index 0000000..4908498 --- /dev/null +++ b/examples-generated/metal/projectsshkey.yaml @@ -0,0 +1,43 @@ +apiVersion: metal.equinix.jet.crossplane.io/v1alpha1 +kind: ProjectSSHKey +metadata: + annotations: + meta.upbound.io/example-id: metal/v1alpha1/projectsshkey + labels: + testing.upbound.io/example-name: test + name: test +spec: + forProvider: + name: test + projectIdSelector: + matchLabels: + testing.upbound.io/example-name: example + publicKey: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDM/unxJeFqxsTJcu6mhqsMHSaVlpu+Jj/P+44zrm6X/MAoHSX3X9oLgujEjjZ74yLfdfe0bJrbL2YgJzNaEkIQQ1VPMHB5EhTKUBGnzlPP0hHTnxsjAm9qDHgUPgvgFDQSAMzdJRJ0Cexo16Ph9VxCoLh3dxiE7s2gaM2FdVg7P8aSxKypsxAhYV3D0AwqzoOyT6WWhBoQ0xZ85XevOTnJCpImSemEGs6nVGEsWcEc1d1YvdxFjAK4SdsKUMkj4Dsy/leKsdi/DEAf356vbMT1UHsXXvy5TlHu/Pa6qF53v32Enz+nhKy7/8W2Yt2yWx8HnQcT2rug9lvCXagJO6oauqRTO77C4QZn13ZLMZgLT66S/tNh2EX0gi6vmIs5dth8uF+K6nxIyKJXbcA4ASg7F1OJrHKFZdTc5v1cPeq6PcbqGgc+8SrPYQmzvQqLoMBuxyos2hUkYOmw3aeWJj9nFa8Wu5WaN89mUeOqSkU4S5cgUzWUOmKey56B/j/s1sVys9rMhZapVs0wL4L9GBBM48N5jAQZnnpo85A8KsZq5ME22bTLqnxsDXqDYZvS7PSI6Dxi7eleOFE/NYYDkrgDLHTQri8ucDMVeVWHgoMY2bPXdn7KKy5jW5jKsf8EPARXg77A4gRYmgKrcwIKqJEUPqyxJBe0CPoGTqgXPRsUiQ== + tomk@hp2 + +--- + +apiVersion: metal.equinix.jet.crossplane.io/v1alpha1 +kind: Device +metadata: + annotations: + meta.upbound.io/example-id: metal/v1alpha1/projectsshkey + labels: + testing.upbound.io/example-name: test + name: test +spec: + forProvider: + billingCycle: hourly + facilities: + - ny5 + hostname: test + operatingSystem: ubuntu_20_04 + plan: c3.medium.x86 + projectIdSelector: + matchLabels: + testing.upbound.io/example-name: example + projectSshKeyIds: + - ${equinix_metal_project_ssh_key.test.id} + +--- + diff --git a/examples-generated/metal/reservedipblock.yaml b/examples-generated/metal/reservedipblock.yaml new file mode 100644 index 0000000..2a68a49 --- /dev/null +++ b/examples-generated/metal/reservedipblock.yaml @@ -0,0 +1,18 @@ +apiVersion: metal.equinix.jet.crossplane.io/v1alpha1 +kind: ReservedIPBlock +metadata: + annotations: + meta.upbound.io/example-id: metal/v1alpha1/reservedipblock + labels: + testing.upbound.io/example-name: two_elastic_addresses + name: two-elastic-addresses +spec: + forProvider: + facility: sv15 + projectIdSelector: + matchLabels: + testing.upbound.io/example-name: example + quantity: 2 + +--- + diff --git a/examples-generated/metal/spotmarketrequest.yaml b/examples-generated/metal/spotmarketrequest.yaml new file mode 100644 index 0000000..0adee38 --- /dev/null +++ b/examples-generated/metal/spotmarketrequest.yaml @@ -0,0 +1,26 @@ +apiVersion: metal.equinix.jet.crossplane.io/v1alpha1 +kind: SpotMarketRequest +metadata: + annotations: + meta.upbound.io/example-id: metal/v1alpha1/spotmarketrequest + labels: + testing.upbound.io/example-name: req + name: req +spec: + forProvider: + devicesMax: 1 + devicesMin: 1 + facilities: + - ny5 + instanceParameters: + - billingCycle: hourly + hostname: testspot + operatingSystem: ubuntu_20_04 + plan: c3.small.x86 + maxBidPrice: 0.03 + projectIdSelector: + matchLabels: + testing.upbound.io/example-name: example + +--- + diff --git a/examples-generated/metal/sshkey.yaml b/examples-generated/metal/sshkey.yaml new file mode 100644 index 0000000..f967548 --- /dev/null +++ b/examples-generated/metal/sshkey.yaml @@ -0,0 +1,36 @@ +apiVersion: metal.equinix.jet.crossplane.io/v1alpha1 +kind: SSHKey +metadata: + annotations: + meta.upbound.io/example-id: metal/v1alpha1/sshkey + labels: + testing.upbound.io/example-name: key1 + name: key1 +spec: + forProvider: + name: terraform-1 + publicKey: ${file("/home/terraform/.ssh/id_rsa.pub")} + +--- + +apiVersion: metal.equinix.jet.crossplane.io/v1alpha1 +kind: Device +metadata: + annotations: + meta.upbound.io/example-id: metal/v1alpha1/sshkey + labels: + testing.upbound.io/example-name: test + name: test +spec: + forProvider: + billingCycle: hourly + hostname: test-device + metro: sv + operatingSystem: ubuntu_20_04 + plan: c3.small.x86 + projectIdSelector: + matchLabels: + testing.upbound.io/example-name: example + +--- + diff --git a/examples-generated/metal/userapikey.yaml b/examples-generated/metal/userapikey.yaml new file mode 100644 index 0000000..0ff7419 --- /dev/null +++ b/examples-generated/metal/userapikey.yaml @@ -0,0 +1,15 @@ +apiVersion: metal.equinix.jet.crossplane.io/v1alpha1 +kind: UserAPIKey +metadata: + annotations: + meta.upbound.io/example-id: metal/v1alpha1/userapikey + labels: + testing.upbound.io/example-name: test + name: test +spec: + forProvider: + description: Read-only user key + readOnly: true + +--- + diff --git a/examples-generated/metal/vlan.yaml b/examples-generated/metal/vlan.yaml new file mode 100644 index 0000000..c46e920 --- /dev/null +++ b/examples-generated/metal/vlan.yaml @@ -0,0 +1,18 @@ +apiVersion: metal.equinix.jet.crossplane.io/v1alpha1 +kind: Vlan +metadata: + annotations: + meta.upbound.io/example-id: metal/v1alpha1/vlan + labels: + testing.upbound.io/example-name: vlan1 + name: vlan1 +spec: + forProvider: + description: VLAN in New Jersey + facility: sv15 + projectIdSelector: + matchLabels: + testing.upbound.io/example-name: example + +--- + diff --git a/examples-generated/network/acltemplate.yaml b/examples-generated/network/acltemplate.yaml new file mode 100644 index 0000000..c1f4155 --- /dev/null +++ b/examples-generated/network/acltemplate.yaml @@ -0,0 +1,25 @@ +apiVersion: network.equinix.jet.crossplane.io/v1alpha1 +kind: ACLTemplate +metadata: + annotations: + meta.upbound.io/example-id: network/v1alpha1/acltemplate + labels: + testing.upbound.io/example-name: myacl + name: myacl +spec: + forProvider: + description: Test ACL template + inboundRule: + - description: inbound rule description + dstPort: any + protocol: IP + srcPort: any + subnet: 1.1.1.1/32 + - dstPort: 53,1045,2041 + protocol: UDP + srcPort: any + subnet: 172.16.25.0/24 + name: test + +--- + diff --git a/examples-generated/network/bgp.yaml b/examples-generated/network/bgp.yaml new file mode 100644 index 0000000..14c9863 --- /dev/null +++ b/examples-generated/network/bgp.yaml @@ -0,0 +1,22 @@ +apiVersion: network.equinix.jet.crossplane.io/v1alpha1 +kind: BGP +metadata: + annotations: + meta.upbound.io/example-id: network/v1alpha1/bgp + labels: + testing.upbound.io/example-name: test + name: test +spec: + forProvider: + authenticationKeySecretRef: + key: example-key + name: example-secret + namespace: upbound-system + connectionId: 54014acf-9730-4b55-a791-459283d05fb1 + localAsn: 12345 + localIpAddress: 10.1.1.1/30 + remoteAsn: 66123 + remoteIpAddress: 10.1.1.2 + +--- + diff --git a/examples-generated/network/device.yaml b/examples-generated/network/device.yaml new file mode 100644 index 0000000..2ae82a3 --- /dev/null +++ b/examples-generated/network/device.yaml @@ -0,0 +1,36 @@ +apiVersion: network.equinix.jet.crossplane.io/v1alpha1 +kind: Device +metadata: + annotations: + meta.upbound.io/example-id: network/v1alpha1/device + labels: + testing.upbound.io/example-name: csr1000v-ha + name: csr1000v-ha +spec: + forProvider: + accountNumber: ${data.equinix_network_account.dc.number} + coreCount: 2 + hostname: csr1000v-p + metroCode: ${data.equinix_network_account.dc.metro_code} + name: tf-csr1000v-p + notifications: + - john@equinix.com + - marry@equinix.com + - fred@equinix.com + packageCode: SEC + secondaryDevice: + - accountNumber: ${data.equinix_network_account.sv.number} + hostname: csr1000v-s + metroCode: ${data.equinix_network_account.sv.metro_code} + name: tf-csr1000v-s + notifications: + - john@equinix.com + - marry@equinix.com + termLength: 6 + throughput: 500 + throughputUnit: Mbps + typeCode: CSR1000V + version: 16.09.05 + +--- + diff --git a/examples-generated/network/devicelink.yaml b/examples-generated/network/devicelink.yaml new file mode 100644 index 0000000..853acb3 --- /dev/null +++ b/examples-generated/network/devicelink.yaml @@ -0,0 +1,30 @@ +apiVersion: network.equinix.jet.crossplane.io/v1alpha1 +kind: DeviceLink +metadata: + annotations: + meta.upbound.io/example-id: network/v1alpha1/devicelink + labels: + testing.upbound.io/example-name: test + name: test +spec: + forProvider: + device: + - asn: '${equinix_network_device.test.asn > 0 ? equinix_network_device.test.asn + : 22111}' + id: ${equinix_network_device.test.uuid} + interfaceId: 6 + - asn: '${equinix_network_device.test.secondary_device[0].asn > 0 ? equinix_network_device.test.secondary_device[0].asn + : 22333}' + id: ${equinix_network_device.test.secondary_device[0].uuid} + interfaceId: 7 + link: + - accountNumber: ${equinix_network_device.test.account_number} + dstMetroCode: ${equinix_network_device.test.secondary_device[0].metro_code} + srcMetroCode: ${equinix_network_device.test.metro_code} + throughput: "50" + throughputUnit: Mbps + name: test-link + subnet: 192.168.40.64/27 + +--- + diff --git a/examples-generated/network/sshkey.yaml b/examples-generated/network/sshkey.yaml new file mode 100644 index 0000000..d570720 --- /dev/null +++ b/examples-generated/network/sshkey.yaml @@ -0,0 +1,15 @@ +apiVersion: network.equinix.jet.crossplane.io/v1alpha1 +kind: SSHKey +metadata: + annotations: + meta.upbound.io/example-id: network/v1alpha1/sshkey + labels: + testing.upbound.io/example-name: john + name: john +spec: + forProvider: + name: johnKent + publicKey: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDpXGdxljAyPp9vH97436U171cX + +--- + diff --git a/examples-generated/network/sshuser.yaml b/examples-generated/network/sshuser.yaml new file mode 100644 index 0000000..34bd62f --- /dev/null +++ b/examples-generated/network/sshuser.yaml @@ -0,0 +1,21 @@ +apiVersion: network.equinix.jet.crossplane.io/v1alpha1 +kind: SSHUser +metadata: + annotations: + meta.upbound.io/example-id: network/v1alpha1/sshuser + labels: + testing.upbound.io/example-name: john + name: john +spec: + forProvider: + deviceIds: + - ${equinix_ne_device.csr1000v-ha.uuid} + - ${equinix_ne_device.csr1000v-ha.redundant_uuid} + passwordSecretRef: + key: example-key + name: example-secret + namespace: upbound-system + username: john + +--- + diff --git a/examples/metal/device.yaml b/examples/metal/device.yaml index 652b944..25dab3a 100644 --- a/examples/metal/device.yaml +++ b/examples/metal/device.yaml @@ -1,13 +1,13 @@ apiVersion: metal.equinix.jet.crossplane.io/v1alpha1 kind: Device metadata: - name: terrajet-example + name: upjet-example spec: forProvider: projectIdRef: - name: terrajet-example-project + name: upjet-example-project metro: da - hostname: terrajet-example + hostname: upjet-example plan: t3.small.x86 operatingSystem: ubuntu_20_04 billingCycle: hourly @@ -16,5 +16,5 @@ spec: providerConfigRef: name: default writeConnectionSecretToRef: - name: terrajet-example + name: upjet-example namespace: crossplane-system diff --git a/examples/metal/project.yaml b/examples/metal/project.yaml index 7ac1dcb..e079200 100644 --- a/examples/metal/project.yaml +++ b/examples/metal/project.yaml @@ -1,9 +1,9 @@ apiVersion: metal.equinix.jet.crossplane.io/v1alpha1 kind: Project metadata: - name: terrajet-example-project + name: upjet-example-project spec: forProvider: - name: terrajet-example-project + name: upjet-example-project providerConfigRef: name: default diff --git a/examples/ne/device.yaml b/examples/ne/device.yaml index 26005aa..6b25e4b 100644 --- a/examples/ne/device.yaml +++ b/examples/ne/device.yaml @@ -1,7 +1,7 @@ apiVersion: network.equinix.jet.crossplane.io/v1alpha1 kind: Device metadata: - name: terrajet + name: upjet # annotations: # crossplane.io/external-name: spec: @@ -11,8 +11,8 @@ spec: licenseToken: null throughput: 500 throughputUnit: "Mbps" - name: "terrajet" - hostname: "terrajet" + name: "upjet" + hostname: "upjet" typeCode: "CSR1000V" packageCode: "IPBASE" version: "16.12.03" @@ -20,7 +20,7 @@ spec: metroCode: "DA" accountNumber: "1" termLength: 1 - notifications: ["terrajet@example.com"] + notifications: ["upjet@example.com"] aclTemplateId: null additionalBandwidth: null interfaceCount: null diff --git a/go.mod b/go.mod index 4709407..c78f8c1 100644 --- a/go.mod +++ b/go.mod @@ -3,126 +3,140 @@ module github.com/crossplane-contrib/provider-jet-equinix go 1.19 require ( - github.com/crossplane/crossplane-runtime v0.15.1-0.20220315141414-988c9ba9c255 + github.com/crossplane/crossplane-runtime v0.19.0-rc.0.0.20221012013934-bce61005a175 github.com/crossplane/crossplane-tools v0.0.0-20220310165030-1f43fc12793e - github.com/crossplane/terrajet v0.4.0-rc.0.0.20220809090519-689dd7ae3fff - github.com/hashicorp/terraform-plugin-sdk/v2 v2.7.0 github.com/pkg/errors v0.9.1 + github.com/upbound/upjet v0.8.0 gopkg.in/alecthomas/kingpin.v2 v2.2.6 - k8s.io/apimachinery v0.23.0 - k8s.io/client-go v0.23.0 - sigs.k8s.io/controller-runtime v0.11.0 + k8s.io/apimachinery v0.25.0 + k8s.io/client-go v0.25.0 + sigs.k8s.io/controller-runtime v0.12.1 sigs.k8s.io/controller-tools v0.8.0 ) require ( - github.com/agext/levenshtein v1.2.2 // indirect + github.com/agext/levenshtein v1.2.3 // indirect github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 // indirect - github.com/alecthomas/units v0.0.0-20210912230133-d1bdfacee922 // indirect - github.com/apparentlymart/go-textseg/v12 v12.0.0 // indirect + github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137 // indirect + github.com/antchfx/htmlquery v1.2.4 // indirect + github.com/antchfx/xpath v1.2.0 // indirect github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect github.com/armon/go-metrics v0.3.9 // indirect github.com/armon/go-radix v1.0.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cenkalti/backoff/v3 v3.0.0 // indirect - github.com/cespare/xxhash/v2 v2.1.1 // indirect + github.com/cespare/xxhash/v2 v2.1.2 // indirect github.com/dave/jennifer v1.4.1 // indirect github.com/davecgh/go-spew v1.1.1 // indirect + github.com/emicklei/go-restful/v3 v3.8.0 // indirect github.com/evanphx/json-patch v4.12.0+incompatible // indirect github.com/fatih/camelcase v1.0.0 // indirect - github.com/fatih/color v1.12.0 // indirect - github.com/fsnotify/fsnotify v1.5.1 // indirect - github.com/go-logr/logr v1.2.0 // indirect - github.com/go-logr/zapr v1.2.0 // indirect + github.com/fatih/color v1.13.0 // indirect + github.com/fsnotify/fsnotify v1.5.4 // indirect + github.com/go-logr/logr v1.2.3 // indirect + github.com/go-logr/zapr v1.2.3 // indirect + github.com/go-openapi/jsonpointer v0.19.5 // indirect + github.com/go-openapi/jsonreference v0.20.0 // indirect + github.com/go-openapi/swag v0.21.1 // indirect github.com/gobuffalo/flect v0.2.3 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect + github.com/golang/mock v1.6.0 // indirect github.com/golang/protobuf v1.5.2 // indirect github.com/golang/snappy v0.0.4 // indirect - github.com/google/go-cmp v0.5.6 // indirect - github.com/google/gofuzz v1.1.0 // indirect - github.com/google/uuid v1.1.2 // indirect - github.com/googleapis/gnostic v0.5.5 // indirect + github.com/google/gnostic v0.6.9 // indirect + github.com/google/go-cmp v0.5.9 // indirect + github.com/google/gofuzz v1.2.0 // indirect + github.com/google/uuid v1.3.0 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320 // indirect - github.com/hashicorp/go-hclog v0.16.2 // indirect + github.com/hashicorp/go-hclog v1.2.1 // indirect github.com/hashicorp/go-immutable-radix v1.3.1 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect - github.com/hashicorp/go-plugin v1.4.3 // indirect + github.com/hashicorp/go-plugin v1.4.4 // indirect github.com/hashicorp/go-retryablehttp v0.6.6 // indirect github.com/hashicorp/go-rootcerts v1.0.2 // indirect github.com/hashicorp/go-secure-stdlib/mlock v0.1.1 // indirect github.com/hashicorp/go-secure-stdlib/parseutil v0.1.1 // indirect github.com/hashicorp/go-secure-stdlib/strutil v0.1.1 // indirect github.com/hashicorp/go-sockaddr v1.0.2 // indirect - github.com/hashicorp/go-uuid v1.0.2 // indirect - github.com/hashicorp/go-version v1.3.0 // indirect + github.com/hashicorp/go-uuid v1.0.3 // indirect + github.com/hashicorp/go-version v1.6.0 // indirect github.com/hashicorp/golang-lru v0.5.4 // indirect github.com/hashicorp/hcl v1.0.0 // indirect - github.com/hashicorp/hcl/v2 v2.8.2 // indirect - github.com/hashicorp/terraform-json v0.13.0 // indirect - github.com/hashicorp/terraform-plugin-go v0.3.0 // indirect + github.com/hashicorp/hcl/v2 v2.14.1 // indirect + github.com/hashicorp/logutils v1.0.0 // indirect + github.com/hashicorp/terraform-json v0.14.0 // indirect + github.com/hashicorp/terraform-plugin-go v0.14.0 // indirect + github.com/hashicorp/terraform-plugin-log v0.7.0 // indirect + github.com/hashicorp/terraform-plugin-sdk/v2 v2.24.0 // indirect github.com/hashicorp/vault/api v1.3.1 // indirect github.com/hashicorp/vault/sdk v0.3.0 // indirect github.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d // indirect github.com/iancoleman/strcase v0.2.0 // indirect github.com/imdario/mergo v0.3.12 // indirect github.com/inconshreveable/mousetrap v1.0.0 // indirect + github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect - github.com/mattn/go-colorable v0.1.8 // indirect - github.com/mattn/go-isatty v0.0.12 // indirect + github.com/mailru/easyjson v0.7.7 // indirect + github.com/mattn/go-colorable v0.1.12 // indirect + github.com/mattn/go-isatty v0.0.16 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect - github.com/mitchellh/go-testing-interface v1.0.4 // indirect - github.com/mitchellh/go-wordwrap v1.0.0 // indirect - github.com/mitchellh/mapstructure v1.4.2 // indirect + github.com/mitchellh/go-testing-interface v1.14.1 // indirect + github.com/mitchellh/go-wordwrap v1.0.1 // indirect + github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/muvaf/typewriter v0.0.0-20220131201631-921e94e8e8d7 // indirect github.com/oklog/run v1.0.0 // indirect github.com/pierrec/lz4 v2.5.2+incompatible // indirect - github.com/prometheus/client_golang v1.11.1 // indirect + github.com/prometheus/client_golang v1.12.2 // indirect github.com/prometheus/client_model v0.2.0 // indirect - github.com/prometheus/common v0.28.0 // indirect - github.com/prometheus/procfs v0.6.0 // indirect + github.com/prometheus/common v0.32.1 // indirect + github.com/prometheus/procfs v0.7.3 // indirect github.com/ryanuber/go-glob v1.0.0 // indirect - github.com/spf13/afero v1.8.0 // indirect - github.com/spf13/cobra v1.2.1 // indirect + github.com/spf13/afero v1.9.2 // indirect + github.com/spf13/cobra v1.4.0 // indirect github.com/spf13/pflag v1.0.5 // indirect + github.com/tmccombs/hcl2json v0.3.3 // indirect github.com/vmihailenco/msgpack v4.0.4+incompatible // indirect - github.com/zclconf/go-cty v1.9.1 // indirect + github.com/vmihailenco/msgpack/v4 v4.3.12 // indirect + github.com/vmihailenco/tagparser v0.1.1 // indirect + github.com/yuin/goldmark v1.4.13 // indirect + github.com/zclconf/go-cty v1.11.0 // indirect go.uber.org/atomic v1.9.0 // indirect go.uber.org/multierr v1.7.0 // indirect go.uber.org/zap v1.19.1 // indirect - golang.org/x/crypto v0.1.0 // indirect - golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect - golang.org/x/net v0.7.0 // indirect - golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f // indirect - golang.org/x/sys v0.5.0 // indirect - golang.org/x/term v0.5.0 // indirect - golang.org/x/text v0.7.0 // indirect - golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac // indirect - golang.org/x/tools v0.1.12 // indirect - golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect + golang.org/x/crypto v0.7.0 // indirect + golang.org/x/mod v0.9.0 // indirect + golang.org/x/net v0.8.0 // indirect + golang.org/x/oauth2 v0.6.0 // indirect + golang.org/x/sys v0.6.0 // indirect + golang.org/x/term v0.6.0 // indirect + golang.org/x/text v0.8.0 // indirect + golang.org/x/time v0.3.0 // indirect + golang.org/x/tools v0.6.0 // indirect gomodules.xyz/jsonpatch/v2 v2.2.0 // indirect google.golang.org/appengine v1.6.7 // indirect - google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2 // indirect - google.golang.org/grpc v1.41.0 // indirect - google.golang.org/protobuf v1.27.1 // indirect + google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21 // indirect + google.golang.org/grpc v1.48.0 // indirect + google.golang.org/protobuf v1.28.1 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/square/go-jose.v2 v2.5.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect - gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect - k8s.io/api v0.23.0 // indirect - k8s.io/apiextensions-apiserver v0.23.0 // indirect - k8s.io/component-base v0.23.0 // indirect - k8s.io/klog/v2 v2.30.0 // indirect - k8s.io/kube-openapi v0.0.0-20211115234752-e816edb12b65 // indirect - k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b // indirect - sigs.k8s.io/json v0.0.0-20211020170558-c049b76a60c6 // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.2.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect + k8s.io/api v0.25.0 // indirect + k8s.io/apiextensions-apiserver v0.24.0 // indirect + k8s.io/component-base v0.25.0 // indirect + k8s.io/klog/v2 v2.70.1 // indirect + k8s.io/kube-openapi v0.0.0-20220803162953-67bda5d908f1 // indirect + k8s.io/utils v0.0.0-20220728103510-ee6ede2d64ed // indirect + sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.2.3 // indirect sigs.k8s.io/yaml v1.3.0 // indirect ) diff --git a/go.sum b/go.sum index c57f121..8cfb7db 100644 --- a/go.sum +++ b/go.sum @@ -12,7 +12,6 @@ cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6 cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= -cloud.google.com/go v0.61.0/go.mod h1:XukKJg4Y7QsUu0Hxg3qQKUWR4VuWivmyMK2+rUyxAqw= cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= @@ -41,7 +40,6 @@ cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RX cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/Azure/go-ansiterm v0.0.0-20210608223527-2377c96fe795/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= github.com/Azure/go-autorest/autorest v0.11.18/go.mod h1:dSiJPy22c3u0OtOKDNttNgqpNFY/GeWa7GH/Pz56QRA= @@ -53,21 +51,14 @@ github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBp github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/DataDog/datadog-go v3.2.0+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ= -github.com/Masterminds/goutils v1.1.0/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= -github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= -github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= -github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= -github.com/Microsoft/go-winio v0.4.16/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0= github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/ProtonMail/go-crypto v0.0.0-20210428141323-04723f9f07d7/go.mod h1:z4/9nQmJSSwwds7ejkxaJwO37dru3geImFUdJlaLzQo= github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= -github.com/acomagu/bufpipe v1.0.3/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4= github.com/agext/levenshtein v1.2.1/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= -github.com/agext/levenshtein v1.2.2 h1:0S/Yg6LYmFJ5stwQeRp6EeOcCbj7xiqQSdNelsXvaqE= -github.com/agext/levenshtein v1.2.2/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= +github.com/agext/levenshtein v1.2.3 h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo= +github.com/agext/levenshtein v1.2.3/go.mod h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558= github.com/alecthomas/kong v0.2.16/go.mod h1:kQOmtJgV+Lb4aj+I2LEn40cbtawdWJ9Y8QLq+lElKxE= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751 h1:JYp7IbQjafoB+tBA3gMyHYHrpOtNuDiK/uB5uXxq5wM= @@ -75,18 +66,17 @@ github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuy github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= -github.com/alecthomas/units v0.0.0-20210912230133-d1bdfacee922 h1:8ypNbf5sd3Sm3cKJ9waOGoQv6dKAFiFty9L6NP1AqJ4= -github.com/alecthomas/units v0.0.0-20210912230133-d1bdfacee922/go.mod h1:OMCwj8VM1Kc9e19TLln2VL61YJF0x1XFtfdL4JdbSyE= -github.com/andybalholm/crlf v0.0.0-20171020200849-670099aa064f/go.mod h1:k8feO4+kXDxro6ErPXBRTJ/ro2mf0SsFG8s7doP9kJE= -github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= +github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137 h1:s6gZFSlWYmbqAuRjVTiNNhvNRfY2Wxp9nhfyel4rklc= +github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137/go.mod h1:OMCwj8VM1Kc9e19TLln2VL61YJF0x1XFtfdL4JdbSyE= +github.com/antchfx/htmlquery v1.2.4 h1:qLteofCMe/KGovBI6SQgmou2QNyedFUW+pE+BpeZ494= +github.com/antchfx/htmlquery v1.2.4/go.mod h1:2xO6iu3EVWs7R2JYqBbp8YzG50gj/ofqs5/0VZoDZLc= +github.com/antchfx/xpath v1.2.0 h1:mbwv7co+x0RwgeGAOHdrKy89GvHaGvxxBtPK0uF9Zr8= +github.com/antchfx/xpath v1.2.0/go.mod h1:i54GszH55fYfBmoZXapTHN8T8tkcHfRgLyVwwqzXNcs= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/antlr/antlr4/runtime/Go/antlr v0.0.0-20210826220005-b48c857c3a0e/go.mod h1:F7bn7fEU90QkQ3tnmaTx3LTKLEDqnwWODIYppRQ5hnY= -github.com/apparentlymart/go-cidr v1.0.1/go.mod h1:EBcsNrHc3zQeuaeCeCtQruQm+n9/YjEn/vI25Lg7Gwc= github.com/apparentlymart/go-dump v0.0.0-20180507223929-23540a00eaa3/go.mod h1:oL81AME2rN47vu18xqj1S1jPIPuN7afo62yKTNn3XMM= github.com/apparentlymart/go-dump v0.0.0-20190214190832-042adf3cf4a0 h1:MzVXffFUye+ZcSR6opIgz9Co7WcDx6ZcY+RjfFHoA0I= -github.com/apparentlymart/go-dump v0.0.0-20190214190832-042adf3cf4a0/go.mod h1:oL81AME2rN47vu18xqj1S1jPIPuN7afo62yKTNn3XMM= github.com/apparentlymart/go-textseg v1.0.0/go.mod h1:z96Txxhf3xSFMPmb5X/1W05FF/Nj9VFpLOpjS5yuumk= -github.com/apparentlymart/go-textseg/v12 v12.0.0 h1:bNEQyAGak9tojivJNkoqWErVCQbjdL7GzRt3F8NvfJ0= github.com/apparentlymart/go-textseg/v12 v12.0.0/go.mod h1:S/4uRK2UtaQttw1GenVJEynmyUenKwP++x/+DdGV/Ec= github.com/apparentlymart/go-textseg/v13 v13.0.0 h1:Y+KvPE1NYz0xl601PVImeQfFyEy6iT90AvPUL1NNfNw= github.com/apparentlymart/go-textseg/v13 v13.0.0/go.mod h1:ZK2fH7c4NqDTLtiYLvIkEghdlcqw7yxLeM89kiTRPUo= @@ -99,8 +89,6 @@ github.com/armon/go-radix v1.0.0 h1:F4z6KzEeeQIMeLFa97iZU6vupzoecKdU5TX24SNppXI= github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= -github.com/aws/aws-sdk-go v1.15.78/go.mod h1:E3/ieXAlvM0XWO57iftYVDLLvQ824smPP3ATZkfNZeM= -github.com/aws/aws-sdk-go v1.25.3/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM= github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= @@ -108,20 +96,19 @@ github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24 github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d/go.mod h1:6QX/PXZ00z/TKoufEY6K/a0k6AhaJrQKdFe6OfVXsa4= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= -github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= -github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= +github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= +github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= github.com/cenkalti/backoff/v3 v3.0.0 h1:ske+9nBpD9qZsTBoF41nW5L+AIuFBKMeze18XQ3eG1c= github.com/cenkalti/backoff/v3 v3.0.0/go.mod h1:cIeZDE3IrqwwJl6VUwCN6trj1oXrTS4rc0ij+ULvLYs= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/certifi/gocertifi v0.0.0-20191021191039-0944d244cd40/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= -github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cheggaaa/pb v1.0.27/go.mod h1:pQciLPpbU0oxA0h+VJYYLxO+XeDQb5pZijXscXHm81s= +github.com/cespare/xxhash/v2 v2.1.2 h1:YRXhKfTDauu4ajMg1TPgFO5jnlC2HCbmLXMcTG5cbYE= +github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= @@ -131,8 +118,12 @@ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDk github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo= github.com/cockroachdb/errors v1.2.4/go.mod h1:rQD95gz6FARkaKkQXUksEje/d9a6wBJoCr5oaCLELYA= github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI= @@ -144,14 +135,13 @@ github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7 github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= -github.com/crossplane/crossplane-runtime v0.15.1-0.20220315141414-988c9ba9c255 h1:l9eAErqfcEzGpq5dMfO/4GTCG2qXgiQgH5J+xhBHqYc= -github.com/crossplane/crossplane-runtime v0.15.1-0.20220315141414-988c9ba9c255/go.mod h1:IPT3HTsovwmbw3i+SdsOyaC3r3b7TW+otBMmZsHLnSU= +github.com/crossplane/crossplane-runtime v0.19.0-rc.0.0.20221012013934-bce61005a175 h1:qGLew6IazCwfgvY4/xh5lQiumip/WrULpQfW4duol6g= +github.com/crossplane/crossplane-runtime v0.19.0-rc.0.0.20221012013934-bce61005a175/go.mod h1:o9ExoilV6k2M3qzSFoRVX4phuww0mLmjs1WrDTvsR4s= github.com/crossplane/crossplane-tools v0.0.0-20220310165030-1f43fc12793e h1:HqLaMji3FRPwEBA5P6twPz0HbE6no0XOnByLU5O1noM= github.com/crossplane/crossplane-tools v0.0.0-20220310165030-1f43fc12793e/go.mod h1:xFf30hwHd5n0/a0D4ZomId8nxQTTjE0Hc1j4/rWxefc= -github.com/crossplane/terrajet v0.4.0-rc.0.0.20220809090519-689dd7ae3fff h1:H7uG10CwIjKVLwc1AiW+k2Kk7VqzkalwBpCT5jMkmTk= -github.com/crossplane/terrajet v0.4.0-rc.0.0.20220809090519-689dd7ae3fff/go.mod h1:PY1geRNxxNXs2RFhGC36N7dDu3wZPhUZmAk6c4gQxAI= github.com/dave/jennifer v1.4.1 h1:XyqG6cn5RQsTj3qlWQTKlRGAyrTcsk1kUmWdZBzRjDw= github.com/dave/jennifer v1.4.1/go.mod h1:7jEdnm+qBcxl8PC0zyp7vxcpSRnzXSt9r39tpTVGlwA= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -164,7 +154,8 @@ github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25Kn github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= -github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= +github.com/emicklei/go-restful/v3 v3.8.0 h1:eCZ8ulSerjdAiaNpF7GxXIE7ZCMo1moN1qX+S609eVw= +github.com/emicklei/go-restful/v3 v3.8.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= @@ -173,6 +164,7 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.m github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= +github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/evanphx/json-patch v0.5.2/go.mod h1:ZWS5hhDbVDyob71nXKNL0+PWn6ToqBHMikGIFbs31qQ= github.com/evanphx/json-patch v4.12.0+incompatible h1:4onqiflcdA9EOZ4RxV643DvftH5pOlLGNtQ5lPWQu84= @@ -181,12 +173,12 @@ github.com/evanphx/json-patch/v5 v5.5.0/go.mod h1:G79N1coSVB93tBe7j6PhzjmR3/2Vvl github.com/fatih/camelcase v1.0.0 h1:hxNvNX/xYBp0ovncs8WyWZrOrpBNub/JfaMvbURyft8= github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fatih/color v1.12.0 h1:mRhaKNwANqRgUBGKmnI5ZxEk7QXmjQeCcuYFMX2bfcc= -github.com/fatih/color v1.12.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= +github.com/fatih/color v1.13.0 h1:8LOYc1KYPPmyKMuN8QV2DNRWNbLo6LZ0iLs8+mlH53w= +github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= github.com/fatih/structs v1.1.0 h1:Q7juDM0QtcnhCpeyLGQKyg4TOIghuNXrkL32pHAUMxo= github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= +github.com/flowstack/go-jsonschema v0.1.1/go.mod h1:yL7fNggx1o8rm9RlgXv7hTBWxdBM0rVwpMwimd3F3N0= github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= github.com/frankban/quicktest v1.10.0/go.mod h1:ui7WezCLWMWxVWr1GETZY3smRy0G4KWq9vcPtJmFl7Y= @@ -194,18 +186,12 @@ github.com/frankban/quicktest v1.13.0 h1:yNZif1OkDfNoDfb9zZa9aXIpejNR4F23Wely0c+ github.com/frankban/quicktest v1.13.0/go.mod h1:qLE0fzW0VuyUAJgPU19zByoIr0HtCHN/r/VLSOOIySU= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsnotify/fsnotify v1.5.1 h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI= -github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU= +github.com/fsnotify/fsnotify v1.5.4 h1:jRbGcIw6P2Meqdwuo0H1p6JVLbL5DHKAKlYndzMwVZI= +github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= github.com/getkin/kin-openapi v0.76.0/go.mod h1:660oXbgy5JFMKreazJaQTw7o+X00qeSyhcnluiMv+Xg= github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= github.com/go-asn1-ber/asn1-ber v1.3.1/go.mod h1:hEBeB/ic+5LoWskz+yKT7vGhhPYkProFKoKdwZRWMe0= -github.com/go-git/gcfg v1.5.0/go.mod h1:5m20vg6GwYabIxaOonVkTdrILxQMpEShl1xiMF4ua+E= -github.com/go-git/go-billy/v5 v5.2.0/go.mod h1:pmpqyWchKfYfrkb/UVH4otLvyi/5gJlGI4Hb3ZqZ3W0= -github.com/go-git/go-billy/v5 v5.3.1/go.mod h1:pmpqyWchKfYfrkb/UVH4otLvyi/5gJlGI4Hb3ZqZ3W0= -github.com/go-git/go-git-fixtures/v4 v4.2.1/go.mod h1:K8zd3kDUAykwTdDCr+I0per6Y6vMiRR/nnVTBtavnB0= -github.com/go-git/go-git/v5 v5.4.2/go.mod h1:gQ1kArt6d+n+BGd+/B/I74HwRTLhth2+zti4ihgckDc= github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= @@ -218,20 +204,29 @@ github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= -github.com/go-logr/logr v1.2.0 h1:QK40JKJyMdUDz+h+xvCsru/bJhvG0UxvePV0ufL/AcE= github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= -github.com/go-logr/zapr v1.2.0 h1:n4JnPI1T3Qq1SFEi/F8rwLrZERp2bso19PJZDB9dayk= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= +github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/zapr v1.2.0/go.mod h1:Qa4Bsj2Vb+FAVeAKsLD8RLQ+YRJB8YDmOAKxaBQf7Ro= +github.com/go-logr/zapr v1.2.3 h1:a9vnzlIBPQBBkeaR9IuMUfmVOrQlkoC4YfPoFkX3T7A= +github.com/go-logr/zapr v1.2.3/go.mod h1:eIauM6P8qSvTw5o2ez6UEAfGjQKrxQTl5EoK+Qa2oG4= github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= +github.com/go-openapi/jsonpointer v0.19.5 h1:gZr+CIYByUqjcgeLXnQu2gHYQC9o73G2XUeOFYEICuY= github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg= +github.com/go-openapi/jsonreference v0.20.0 h1:MYlu0sBgChmCfJxxUKZ8g1cPWFOB37YSZqewK7OKeyA= +github.com/go-openapi/jsonreference v0.20.0/go.mod h1:Ag74Ico3lPc+zR+qjn4XBUmXymS4zJbYVCZmcgkasdo= github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= +github.com/go-openapi/swag v0.21.1 h1:wm0rhTb5z7qpJRHBdPOMuY4QjVUMbF6/kwoYeRAOrKU= +github.com/go-openapi/swag v0.21.1/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-test/deep v1.0.2/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= -github.com/go-test/deep v1.0.3 h1:ZrJSEWsXzPOxaZnFteGEfooLba+ju3FYIbOrS+rQd68= github.com/go-test/deep v1.0.3/go.mod h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA= +github.com/go-test/deep v1.0.7 h1:/VSMRlnY/JSyqxQUzQLKVMAskpY/NZKFA5j2P+0pP2M= +github.com/go-test/deep v1.0.7/go.mod h1:QV8Hv/iy04NyLBxAdO9njL0iVPN1S4d/A3NVv1V36o8= github.com/gobuffalo/flect v0.2.3 h1:f/ZukRnSNA/DUpSNDadko7Qc0PhGvsew35p/2tu+CRY= github.com/gobuffalo/flect v0.2.3/go.mod h1:vmkQwuZYhN5Pc4ljYQZzP+1sq+NEkK+lh20jmEmX3jc= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= @@ -257,6 +252,7 @@ github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= +github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.1.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= @@ -276,15 +272,17 @@ github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaS github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/addlicense v0.0.0-20210428195630-6d92264d7170/go.mod h1:EMjYTRimagHs1FwlIqKyX3wAM0u3rA+McvlIIWmSamA= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= -github.com/google/cel-go v0.9.0/go.mod h1:U7ayypeSkw23szu4GaQTPJGx66c20mx8JklMSxrmI1w= +github.com/google/cel-go v0.10.1/go.mod h1:U7ayypeSkw23szu4GaQTPJGx66c20mx8JklMSxrmI1w= github.com/google/cel-spec v0.6.0/go.mod h1:Nwjgxy5CbjlPrtCWjeDjUyKMl8w41YBYGjsyDdqk0xA= +github.com/google/gnostic v0.5.7-v3refs/go.mod h1:73MKFl6jIHelAJNaBGFzt3SPtZULs9dYrGFt8OiIsHQ= +github.com/google/gnostic v0.6.9 h1:ZK/5VhkoX835RikCHpSUJV9a+S3e1zLh59YnyWeBW+0= +github.com/google/gnostic v0.6.9/go.mod h1:Nm8234We1lq6iB9OmlgNv3nH91XLLVZHCDayfA3xq+E= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -296,11 +294,14 @@ github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/gofuzz v1.1.0 h1:Hsa8mG0dQ46ij8Sl2AYJDUv1oA9/d6Vk+3LG99Oe02g= github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= +github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= @@ -317,13 +318,11 @@ github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.1.2 h1:EVhdT+1Kseyi1/pUmXKaFxYsDNy9RQYkMWRH68J/W7Y= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= +github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/gnostic v0.5.1/go.mod h1:6U4PtQXGIEt/Z3h5MAT7FNofLnw9vXk2cUuW7uA/OeU= -github.com/googleapis/gnostic v0.5.5 h1:9fHAtK0uDfpveeqqo1hkEZJcFvYXAiCN3UutL8F9xHw= -github.com/googleapis/gnostic v0.5.5/go.mod h1:7+EbHbldMins07ALC74bsA81Ovc97DwqyJO1AENw9kA= github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= @@ -339,20 +338,17 @@ github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyN github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/go-checkpoint v0.5.0/go.mod h1:7nfLNL10NsxqO4iWuW6tWW0HjZuDrwkBuEQsVcpCOgg= github.com/hashicorp/go-cleanhttp v0.5.0/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320 h1:1/D3zfFHttUKaCaGKZ/dR2roBXv0vKbSCnssIldfQdI= github.com/hashicorp/go-cty v1.4.1-0.20200414143053-d3edf31b6320/go.mod h1:EiZBMaudVLy8fmjf9Npq1dq9RalhveqZG5w/yz3mHWs= -github.com/hashicorp/go-getter v1.5.3/go.mod h1:BrrV/1clo8cCYu6mxvboYg+KutTiFnXjMEgDD8+i7ZI= -github.com/hashicorp/go-hclog v0.0.0-20180709165350-ff2cf002a8dd/go.mod h1:9bjs9uLqI8l75knNv3lV1kA55veR+WUPSiKIWcQHudI= github.com/hashicorp/go-hclog v0.9.2/go.mod h1:5CU+agLiy3J7N7QjHK5d05KxGsuXiQLrjA0H7acj2lQ= github.com/hashicorp/go-hclog v0.14.1/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= -github.com/hashicorp/go-hclog v0.15.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= -github.com/hashicorp/go-hclog v0.16.2 h1:K4ev2ib4LdQETX5cSZBG0DVLk1jwGqSPXBjdah3veNs= github.com/hashicorp/go-hclog v0.16.2/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= +github.com/hashicorp/go-hclog v1.2.1 h1:YQsLlGDJgwhXFpucSPyVbCBviQtjlHv3jLTlp8YmtEw= +github.com/hashicorp/go-hclog v1.2.1/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc= github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= @@ -361,17 +357,15 @@ github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iP github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= -github.com/hashicorp/go-plugin v1.3.0/go.mod h1:F9eH4LrE/ZsRdbwhfjs9k9HoDUwAHnYtXdgmf1AVNs0= -github.com/hashicorp/go-plugin v1.4.1/go.mod h1:5fGEH17QVwTTcR0zV7yhDPLLmFX9YSZ38b18Udy6vYQ= -github.com/hashicorp/go-plugin v1.4.3 h1:DXmvivbWD5qdiBts9TpBC7BYL1Aia5sxbRgQB+v6UZM= github.com/hashicorp/go-plugin v1.4.3/go.mod h1:5fGEH17QVwTTcR0zV7yhDPLLmFX9YSZ38b18Udy6vYQ= +github.com/hashicorp/go-plugin v1.4.4 h1:NVdrSdFRt3SkZtNckJ6tog7gbpRrcbOjQi/rgF7JYWQ= +github.com/hashicorp/go-plugin v1.4.4/go.mod h1:viDMjcLJuDui6pXb8U4HVfb8AamCWhHGUjr2IrTF67s= github.com/hashicorp/go-retryablehttp v0.5.3/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs= github.com/hashicorp/go-retryablehttp v0.6.6 h1:HJunrbHTDDbBb/ay4kxa1n+dLmttUlnP3V9oNE4hmsM= github.com/hashicorp/go-retryablehttp v0.6.6/go.mod h1:vAew36LZh98gCBJNLH42IQ1ER/9wtLZZ8meHqQvEYWY= github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc= github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= -github.com/hashicorp/go-safetemp v1.0.0/go.mod h1:oaerMy3BhqiTbVye6QuFhFtIceqFoDHxNAB65b+Rj1I= github.com/hashicorp/go-secure-stdlib/base62 v0.1.1/go.mod h1:EdWO6czbmthiwZ3/PUsDV+UD1D5IRU4ActiaWGwt0Yw= github.com/hashicorp/go-secure-stdlib/mlock v0.1.1 h1:cCRo8gK7oq6A2L6LICkUZ+/a5rLiRXFMf1Qd4xSwxTc= github.com/hashicorp/go-secure-stdlib/mlock v0.1.1/go.mod h1:zq93CJChV6L9QTfGKtfBxKqD7BqqXx5O04A/ns2p5+I= @@ -387,12 +381,13 @@ github.com/hashicorp/go-sockaddr v1.0.2/go.mod h1:rB4wwRAUzs07qva3c5SdrY/NEtAUjG github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-uuid v1.0.2 h1:cfejS+Tpcp13yd5nYHWDI6qVCny6wyX2Mt5SGur2IGE= github.com/hashicorp/go-uuid v1.0.2/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-version v1.1.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go-uuid v1.0.3 h1:2gKiV6YVmrJ1i2CKKa9obLvRieoRGviZFL26PcT/Co8= +github.com/hashicorp/go-uuid v1.0.3/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= github.com/hashicorp/go-version v1.2.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= -github.com/hashicorp/go-version v1.3.0 h1:McDWVJIU/y+u1BRV06dPaLfLCaT7fUTJLp5r04x7iNw= -github.com/hashicorp/go-version v1.3.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go-version v1.5.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= +github.com/hashicorp/go-version v1.6.0 h1:feTTfFNnjP967rlCxM/I9g701jU+RN74YKx2mOkIeek= +github.com/hashicorp/go-version v1.6.0/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09ZGVZPK5anwXA= github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= @@ -400,21 +395,22 @@ github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+l github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/hashicorp/hcl/v2 v2.3.0/go.mod h1:d+FwDBbOLvpAM3Z6J7gPj/VoAGkNe/gm352ZhjJ/Zv8= -github.com/hashicorp/hcl/v2 v2.8.2 h1:wmFle3D1vu0okesm8BTLVDyJ6/OL9DCLUwn0b2OptiY= -github.com/hashicorp/hcl/v2 v2.8.2/go.mod h1:bQTN5mpo+jewjJgh8jr0JUguIi7qPHUF6yIfAEN3jqY= +github.com/hashicorp/hcl/v2 v2.9.1/go.mod h1:FwWsfWEjyV/CMj8s/gqAuiviY72rJ1/oayI9WftqcKg= +github.com/hashicorp/hcl/v2 v2.14.1 h1:x0BpjfZ+CYdbiz+8yZTQ+gdLO7IXvOut7Da+XJayx34= +github.com/hashicorp/hcl/v2 v2.14.1/go.mod h1:e4z5nxYlWNPdDSNYX+ph14EvWYMFm3eP0zIUqPc2jr0= +github.com/hashicorp/logutils v1.0.0 h1:dLEQVugN8vlakKOUE3ihGLTZJRB4j+M2cdTm/ORI65Y= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= -github.com/hashicorp/terraform-exec v0.14.0/go.mod h1:qrAASDq28KZiMPDnQ02sFS9udcqEkRly002EA2izXTA= -github.com/hashicorp/terraform-json v0.12.0/go.mod h1:pmbq9o4EuL43db5+0ogX10Yofv1nozM+wskr/bGFJpI= -github.com/hashicorp/terraform-json v0.13.0 h1:Li9L+lKD1FO5RVFRM1mMMIBDoUHslOniyEi5CM+FWGY= -github.com/hashicorp/terraform-json v0.13.0/go.mod h1:y5OdLBCT+rxbwnpxZs9kGL7R9ExU76+cpdY8zHwoazk= -github.com/hashicorp/terraform-plugin-go v0.3.0 h1:AJqYzP52JFYl9NABRI7smXI1pNjgR5Q/y2WyVJ/BOZA= -github.com/hashicorp/terraform-plugin-go v0.3.0/go.mod h1:dFHsQMaTLpON2gWhVWT96fvtlc/MF1vSy3OdMhWBzdM= -github.com/hashicorp/terraform-plugin-sdk/v2 v2.7.0 h1:SuI59MqNjYDrL7EfqHX9V6P/24isgqYx/FdglwVs9bg= -github.com/hashicorp/terraform-plugin-sdk/v2 v2.7.0/go.mod h1:grseeRo9g3yNkYW09iFlV8LG78jTa1ssBgouogQg/RU= +github.com/hashicorp/terraform-json v0.14.0 h1:sh9iZ1Y8IFJLx+xQiKHGud6/TSUCM0N8e17dKDpqV7s= +github.com/hashicorp/terraform-json v0.14.0/go.mod h1:5A9HIWPkk4e5aeeXIBbkcOvaZbIYnAIkEyqP2pNSckM= +github.com/hashicorp/terraform-plugin-go v0.14.0 h1:ttnSlS8bz3ZPYbMb84DpcPhY4F5DsQtcAS7cHo8uvP4= +github.com/hashicorp/terraform-plugin-go v0.14.0/go.mod h1:2nNCBeRLaenyQEi78xrGrs9hMbulveqG/zDMQSvVJTE= +github.com/hashicorp/terraform-plugin-log v0.7.0 h1:SDxJUyT8TwN4l5b5/VkiTIaQgY6R+Y2BQ0sRZftGKQs= +github.com/hashicorp/terraform-plugin-log v0.7.0/go.mod h1:p4R1jWBXRTvL4odmEkFfDdhUjHf9zcs/BCoNHAc7IK4= +github.com/hashicorp/terraform-plugin-sdk/v2 v2.24.0 h1:FtCLTiTcykdsURXPt/ku7fYXm3y19nbzbZcUxHx9RbI= +github.com/hashicorp/terraform-plugin-sdk/v2 v2.24.0/go.mod h1:80wf5oad1tW+oLnbXS4UTYmDCrl7BuN1Q+IA91X1a4Y= github.com/hashicorp/vault/api v1.3.1 h1:pkDkcgTh47PRjY1NEFeofqR4W/HkNUi9qIakESO2aRM= github.com/hashicorp/vault/api v1.3.1/go.mod h1:QeJoWxMFt+MsuWcYhmwRLwKEXrjwAFFywzhptMsTIUw= github.com/hashicorp/vault/sdk v0.3.0 h1:kR3dpxNkhh/wr6ycaJYqp6AFT/i2xaftbfnwZduTKEY= @@ -423,26 +419,21 @@ github.com/hashicorp/yamux v0.0.0-20180604194846-3520598351bb/go.mod h1:+NfK9FKe github.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d h1:kJCB4vdITiW1eC1vq2e6IsrXKrZit1bv/TDYFGMp4BQ= github.com/hashicorp/yamux v0.0.0-20181012175058-2f1d1f20f75d/go.mod h1:+NfK9FKeTrX5uv1uIXGdwYDTeHna2qgaIlx54MXqjAM= github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= -github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/iancoleman/strcase v0.2.0 h1:05I4QRnGpI0m37iZQRuskXh+w77mr6Z41lwQzuHLwW0= github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= -github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/imdario/mergo v0.3.12 h1:b6R2BslTbIEToALKP7LxUvijTsNI9TAe80pLWN2g/HU= github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= github.com/jessevdk/go-flags v1.4.0/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= -github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4= github.com/jhump/protoreflect v1.6.0 h1:h5jfMVslIg6l29nsMs0D8Wj17RDVdNYti0vDN/PZZoE= github.com/jhump/protoreflect v1.6.0/go.mod h1:eaTn3RZAmMBcV0fifFvlm6VHNz3wSkYyXYWUh7ymB74= -github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= -github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= +github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= @@ -456,12 +447,10 @@ github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/X github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= -github.com/kevinburke/ssh_config v0.0.0-20201106050909-4977a11b4351/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.11.2/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= @@ -478,29 +467,29 @@ github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LE github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= -github.com/matryer/is v1.2.0/go.mod h1:2fLPjFQM9rhQ15aVEtbuwhJinnOqrmgXPNdZsdwlWXA= +github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= +github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-colorable v0.1.8 h1:c1ghPdyEDarC70ftn0y+A/Ee++9zz8ljHG1b13eJ0s8= -github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40= +github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= -github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= +github.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI= github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= -github.com/mitchellh/cli v1.1.2/go.mod h1:6iaV0fGdElS6dPBx0EApTxHrcWvmJphyh2n8YBLPPZ4= github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= @@ -509,23 +498,25 @@ github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-testing-interface v0.0.0-20171004221916-a61a99592b77/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= -github.com/mitchellh/go-testing-interface v1.0.4 h1:ZU1VNC02qyufSZsjjs7+khruk2fKvbQ3TwRV/IBCeFA= -github.com/mitchellh/go-testing-interface v1.0.4/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= +github.com/mitchellh/go-testing-interface v1.14.1 h1:jrgshOhYAUVNMAJiKbEu7EqAwgJJ2JqpQmpLJOu07cU= +github.com/mitchellh/go-testing-interface v1.14.1/go.mod h1:gfgS7OtZj6MA4U1UrDRp04twqAjfvlZyCfX3sDjEym8= github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= -github.com/mitchellh/go-wordwrap v1.0.0 h1:6GlHJ/LTGMrIJbwgdqdl2eEH8o+Exx/0m8ir9Gns0u4= github.com/mitchellh/go-wordwrap v1.0.0/go.mod h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo= +github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0= +github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0= github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/mitchellh/mapstructure v1.4.2 h1:6h7AQ0yhTcIsmFmnAwQls75jp2Gzs4iB8W7pjMO+rqo= github.com/mitchellh/mapstructure v1.4.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= +github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= -github.com/moby/term v0.0.0-20210610120745-9d4ed1856297/go.mod h1:vgPCkQMyxTZ7IDy8SXRufE172gr8+K/JE/7hHFxHW3A= +github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6/go.mod h1:E2VnQOmVuvZB6UYnnDB0qG5Nq/1tD9acaOpo6xmt0Kw= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -534,6 +525,7 @@ github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3Rllmb github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/muvaf/typewriter v0.0.0-20220131201631-921e94e8e8d7 h1:CxRHKnh1YJXgNKxcos9rrKL6AcmOl1AS/fygmxFDzh4= github.com/muvaf/typewriter v0.0.0-20220131201631-921e94e8e8d7/go.mod h1:SAAdeMEiFXR8LcHffvIdiLI1w243DCH2DuHq7UrA5YQ= @@ -542,7 +534,6 @@ github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRW github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/nsf/jsondiff v0.0.0-20200515183724-f29ed568f4ce h1:RPclfga2SEJmgMmz2k+Mg7cowZ8yv4Trqw9UsJby758= -github.com/nsf/jsondiff v0.0.0-20200515183724-f29ed568f4ce/go.mod h1:uFMI8w+ref4v2r9jz+c9i1IfIttS/OkmLfrk1jne5hs= github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= github.com/nxadm/tail v1.4.8 h1:nPr65rt6Y5JFSKQO7qToXr7pePgD6Gwiw05lkbyAQTE= github.com/oklog/run v1.0.0 h1:Ru7dDtJNOyC66gQ5dQmaCa0qIsAUFY3sFpK1Xk8igrw= @@ -553,18 +544,17 @@ github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+W github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= github.com/onsi/ginkgo v1.16.5 h1:8xi0RTUf59SOSfEtZMvwTvXYMzG4gV23XVHOZiXNtnE= +github.com/onsi/ginkgo/v2 v2.1.4 h1:GNapqRSid3zijZ9H77KrgVG4/8KqiyRsxcSxe+7ApXY= github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.17.0 h1:9Luw4uT5HTjHTN8+aNcSThgH1vdXnmdJ8xIfZ4wyTRE= +github.com/onsi/gomega v1.19.0 h1:4ieX6qQjPP/BfC3mpsAtIGGlxTWPeA3Inl/7DtXw1tw= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= -github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pierrec/lz4 v2.5.2+incompatible h1:WCjObylUIOlKy/+7Abdn34TLIkXiA4UWUMhxq9m9ZXI= github.com/pierrec/lz4 v2.5.2+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= @@ -583,8 +573,9 @@ github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5Fsn github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU= github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= -github.com/prometheus/client_golang v1.11.1 h1:+4eQaD7vAZ6DsfsxB15hbE0odUjGI5ARs9yskGu1v4s= -github.com/prometheus/client_golang v1.11.1/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= +github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= +github.com/prometheus/client_golang v1.12.2 h1:51L9cDoUHVrXx4zWYlcLQIZ+d+VXHgqnYKkIuq4g/34= +github.com/prometheus/client_golang v1.12.2/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= @@ -596,20 +587,22 @@ github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y8 github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4= github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= -github.com/prometheus/common v0.28.0 h1:vGVfV9KrDTvWt5boZO0I19g2E3CsWfpPPKZM9dt3mEw= -github.com/prometheus/common v0.28.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= +github.com/prometheus/common v0.32.1 h1:hWIdL3N2HoUx3B8j3YN9mWor0qhY/NlEKZEaXxuIRh4= +github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= -github.com/prometheus/procfs v0.6.0 h1:mxy4L2jP6qMonqmq+aTtOx1ifVWUgG/TAmntgbh3xv4= github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= +github.com/prometheus/procfs v0.7.3 h1:4jVXhlkAyzOScmCkXBTOLRLTz8EeU+eyjrwB/EPq0VU= +github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/ryanuber/columnize v2.1.0+incompatible/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/ryanuber/go-glob v1.0.0 h1:iQh3xXAumdQ+4Ufa5b25cRpC5TYKlno6hsv6Cb3pkBk= @@ -617,11 +610,8 @@ github.com/ryanuber/go-glob v1.0.0/go.mod h1:807d1WSdnB0XRJzKNil9Om6lcp/3a0v4qIH github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/sebdah/goldie v1.0.0/go.mod h1:jXP4hmWywNEwZzhMuv2ccnqTSFpuq8iyQhtQdkkZBH4= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= -github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= -github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= -github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= @@ -634,21 +624,18 @@ github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasO github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= -github.com/spf13/afero v1.8.0 h1:5MmtuhAgYeU6qpa7w7bP0dv6MBYuup0vekhSpSkoq60= -github.com/spf13/afero v1.8.0/go.mod h1:CtAatgMJh6bJEIs48Ay/FOnkljP3WeGUG0MC1RfAqwo= +github.com/spf13/afero v1.9.2 h1:j49Hj62F0n+DaZ1dDCvhABaPNSGNkt32oRFxI33IEMw= +github.com/spf13/afero v1.9.2/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= -github.com/spf13/cobra v1.2.1 h1:+KmjbUw1hriSNMF55oPrkZcb27aECyrj8V2ytv7kWDw= -github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= +github.com/spf13/cobra v1.4.0 h1:y+wJpx64xcgO1V+RcnwW0LEHxTKRi2ZDPSBjWnrg88Q= +github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB84g= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= -github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.2/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= -github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1 h1:2vfRuCMp5sSVIDSqO8oNnWJq7mPa6KVP3iPIwFBuy8A= @@ -658,38 +645,52 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.2 h1:4jaiDzPyXQvSd7D0EjG45355tLlV3VOECpq10pLC+8s= +github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/tmccombs/hcl2json v0.3.3 h1:+DLNYqpWE0CsOQiEZu+OZm5ZBImake3wtITYxQ8uLFQ= +github.com/tmccombs/hcl2json v0.3.3/go.mod h1:Y2chtz2x9bAeRTvSibVRVgbLJhLJXKlUeIvjeVdnm4w= github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM= -github.com/ulikunitz/xz v0.5.8/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= +github.com/upbound/upjet v0.8.0 h1:A/g6Vh+kIxCMSkL3m3gLTdlhOVkctTv3AFuGWzJ2fWA= +github.com/upbound/upjet v0.8.0/go.mod h1:3D9wYJGRyTiFZBUPx1hEg5B2HlTc7+94zq42kzyf0VU= github.com/vmihailenco/msgpack v3.3.3+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= github.com/vmihailenco/msgpack v4.0.4+incompatible h1:dSLoQfGFAo3F6OoNhwUmLwVgaUXK79GlxNBwueZn0xI= github.com/vmihailenco/msgpack v4.0.4+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= +github.com/vmihailenco/msgpack/v4 v4.3.12 h1:07s4sz9IReOgdikxLTKNbBdqDMLsjPKXwvCazn8G65U= github.com/vmihailenco/msgpack/v4 v4.3.12/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= +github.com/vmihailenco/tagparser v0.1.1 h1:quXMXlA39OCbd2wAdTsGDlK9RkOk6Wuw+x37wVyIuWY= github.com/vmihailenco/tagparser v0.1.1/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= -github.com/xanzy/ssh-agent v0.3.0/go.mod h1:3s9xbODqPuuhK9JV1R321M/FlMZSBvE5aY6eAcqrDh0= +github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= +github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= +github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yuin/goldmark v1.4.13 h1:fVcFKWvrslecOb/tg+Cc05dkeYx540o0FuFt3nUVDoE= +github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/zclconf/go-cty v1.2.0/go.mod h1:hOPWgoHbaTUnI5k4D2ld+GRpFJSCe6bCM7m1q/N4PQ8= -github.com/zclconf/go-cty v1.2.1/go.mod h1:hOPWgoHbaTUnI5k4D2ld+GRpFJSCe6bCM7m1q/N4PQ8= -github.com/zclconf/go-cty v1.8.4/go.mod h1:vVKLxnk3puL4qRAv72AO+W99LUD4da90g3uUAzyuvAk= -github.com/zclconf/go-cty v1.9.1 h1:viqrgQwFl5UpSxc046qblj78wZXVDFnSOufaOTER+cc= -github.com/zclconf/go-cty v1.9.1/go.mod h1:vVKLxnk3puL4qRAv72AO+W99LUD4da90g3uUAzyuvAk= +github.com/zclconf/go-cty v1.8.0/go.mod h1:vVKLxnk3puL4qRAv72AO+W99LUD4da90g3uUAzyuvAk= +github.com/zclconf/go-cty v1.8.1/go.mod h1:vVKLxnk3puL4qRAv72AO+W99LUD4da90g3uUAzyuvAk= +github.com/zclconf/go-cty v1.10.0/go.mod h1:vVKLxnk3puL4qRAv72AO+W99LUD4da90g3uUAzyuvAk= +github.com/zclconf/go-cty v1.11.0 h1:726SxLdi2SDnjY+BStqB9J1hNp4+2WlzyXLuimibIe0= +github.com/zclconf/go-cty v1.11.0/go.mod h1:s9IfD1LK5ccNMSWCVFCE2rJfHiZgi7JijgeWIMfhLvA= github.com/zclconf/go-cty-debug v0.0.0-20191215020915-b22d67c1ba0b/go.mod h1:ZRKQfBXbGkpdV6QMzT3rU1kSTAnfu1dO8dPKjYprgj8= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4= go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= +go.etcd.io/etcd/api/v3 v3.5.1/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= +go.etcd.io/etcd/client/pkg/v3 v3.5.1/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= go.etcd.io/etcd/client/v3 v3.5.0/go.mod h1:AIKXXVX/DQXtfTEqBryiLTUXwON+GuvO6Z7lLS/oTh0= +go.etcd.io/etcd/client/v3 v3.5.1/go.mod h1:OnjH4M8OnAotwaB2l9bVgZzRFKru7/ZMoS46OtKyd3Q= go.etcd.io/etcd/pkg/v3 v3.5.0/go.mod h1:UzJGatBQ1lXChBkQF0AuAtkRQMYnHubxAEYIrC3MSsE= go.etcd.io/etcd/raft/v3 v3.5.0/go.mod h1:UFOHSIvO/nKwd4lhkwabrTD3cqW5yVyYYf/KlD00Szc= go.etcd.io/etcd/server/v3 v3.5.0/go.mod h1:3Ah5ruV+M+7RZr0+Y/5mNLwC+eQlni+mQmOVdCRJoS4= @@ -730,7 +731,6 @@ go.uber.org/zap v1.19.1 h1:ue41HOKd1vGURxrmeKIgELGb3jPW9DMUDGtsinblHwI= go.uber.org/zap v1.19.1/go.mod h1:j3DNczoxDZroyBnOT1L/Q79cfUMGZxlv/9dzN7SM1rI= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190219172222-a4c6cb3142f2/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= @@ -738,15 +738,14 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= -golang.org/x/crypto v0.1.0 h1:MDRAIl0xIo9Io2xV565hzXHw3zVseKrJKodhohM5CjU= -golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= +golang.org/x/crypto v0.0.0-20220214200702-86341886e292/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.7.0 h1:AvwMYaRytfdeVt3u6mLaxYtErKYjxA2OXjJ1HHq6t3A= +golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -782,8 +781,9 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= +golang.org/x/mod v0.9.0 h1:KENHtAZL2y3NLMYZeHY9DW8HW8V+kQyJsY/V9JlKvCs= +golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180530234432-1e491301e022/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180811021610-c39426892332/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -812,6 +812,7 @@ golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLL golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200421231249-e086a090c8fd/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= @@ -829,13 +830,15 @@ golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= -golang.org/x/net v0.0.0-20210326060303-6b1517762897/go.mod h1:uSPa2vr4CLtc/ILN5odXGNXS6mhrKVzTaCXzk9m6W3k= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210825183410-e898025ed96a/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.7.0 h1:rJrUqqhjsgNp7KqAIc25s9pZnjU7TUcSY7HcVZjdn1g= -golang.org/x/net v0.7.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= +golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -847,10 +850,10 @@ golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f h1:Qmd2pbz05z7z6lm0DrgQVVPuBm92jqujBKMHMOlOQEw= -golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.6.0 h1:Lh8GPgSKBfWSwFvtuWOfeI3aAAnbXTSutYxJiOJFgIw= +golang.org/x/oauth2 v0.6.0/go.mod h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -862,6 +865,7 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -881,7 +885,6 @@ golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -907,7 +910,6 @@ golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -921,25 +923,30 @@ golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210502180810-71e4cd670f79/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210831042530-f4d43177bf5e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0 h1:MUK/U/4lj1t1oPg0HfuXDN/Z1wv31ZJ/YcPiGccS4DU= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220209214540-3681064d5158/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.5.0 h1:n2a8QNdAb0sZNpU9R1ALUXBbY+w51fCQDN+7EdxNBsY= -golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw= +golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -949,15 +956,16 @@ golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.7.0 h1:4BRB4x83lYWy72KwLD/qYDuTu7q9PjSagHvijDw7cLo= -golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68= +golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac h1:7zkz7BUtwNFFqcowJ+RIgu2MaV/MapERkDIy+mwPyjs= -golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20220210224613-90d013bbcef8/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.3.0 h1:rg5rLMjNzMS1RkNLzCG38eapWhnYLFYXDXj2gOlr8j4= +golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -1003,7 +1011,6 @@ golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200713011307-fd294ab11aed/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= @@ -1015,15 +1022,15 @@ golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/tools v0.1.6-0.20210820212750-d4cc65f0b2ff/go.mod h1:YD9qOF0M9xpSpdWTBbzEl5e/RnCefISl8E5Noe10jFM= -golang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU= -golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.1.10-0.20220218145154-897bd77cd717/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= +golang.org/x/tools v0.6.0 h1:BOw41kyTf3PuCW1pVQf8+Cyg8pMlkYB1oo9iJ6D/lKM= +golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gomodules.xyz/jsonpatch/v2 v2.2.0 h1:4pT439QV83L+G9FkcCriY6EkpcK6r6bK+A5FBUMI7qY= gomodules.xyz/jsonpatch/v2 v2.2.0/go.mod h1:WXp+iVDkoLQqPudfQ9GBlwB2eZ5DKOnjQZCYdOS8GPY= @@ -1048,7 +1055,6 @@ google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34q google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= -google.golang.org/api v0.44.0/go.mod h1:EBOGZqzyhtvMDoxwS97ctnh0zUmYY6CxqXsc1AvkYD8= google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= @@ -1086,7 +1092,6 @@ google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfG google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= -google.golang.org/genproto v0.0.0-20200711021454-869866162049/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= @@ -1105,8 +1110,10 @@ google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2 h1:NHN4wOCScVzKhPenJ2dt+BTs3X/XkBVI/Rh4iDt55T8= google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21 h1:hrbNEivu7Zn1pxvHk6MBrq9iE22woVILTHqexqBxe6I= +google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= google.golang.org/grpc v1.8.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= @@ -1121,7 +1128,6 @@ google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3Iji google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.32.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= @@ -1131,8 +1137,10 @@ google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAG google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= -google.golang.org/grpc v1.41.0 h1:f+PlOh7QV4iIJkPrx5NQ7qaNGFQ3OTse67yaDHfju4E= google.golang.org/grpc v1.41.0/go.mod h1:U3l9uK9J0sini8mHphKoXyaqDA/8VyGnDee1zzIUK6k= +google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.48.0 h1:rQOsyJ/8+ufEDJd/Gdsz7HG220Mh9HAhFHRGnIjda0w= +google.golang.org/grpc v1.48.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -1145,8 +1153,10 @@ google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGj google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w= +google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/alecthomas/kingpin.v2 v2.2.6 h1:jMFz6MfLP0/4fUyZle81rXUoxOBFi19VUFKVDOQfozc= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= @@ -1154,14 +1164,11 @@ gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8 gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/cheggaaa/pb.v1 v1.0.27/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= @@ -1169,7 +1176,6 @@ gopkg.in/square/go-jose.v2 v2.5.1 h1:7odma5RETjNHWJnR32wx8t+Io4djHE1PqxCFx3iiZ2w gopkg.in/square/go-jose.v2 v2.5.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 h1:uRGJdciOHaEIrze2W8Q3AKkepLTh2hOroT7a+7czfdQ= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -1182,8 +1188,9 @@ gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -1193,42 +1200,51 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -k8s.io/api v0.23.0 h1:WrL1gb73VSC8obi8cuYETJGXEoFNEh3LU0Pt+Sokgro= -k8s.io/api v0.23.0/go.mod h1:8wmDdLBHBNxtOIytwLstXt5E9PddnZb0GaMcqsvDBpg= -k8s.io/apiextensions-apiserver v0.23.0 h1:uii8BYmHYiT2ZTAJxmvc3X8UhNYMxl2A0z0Xq3Pm+WY= -k8s.io/apiextensions-apiserver v0.23.0/go.mod h1:xIFAEEDlAZgpVBl/1VSjGDmLoXAWRG40+GsWhKhAxY4= -k8s.io/apimachinery v0.23.0 h1:mIfWRMjBuMdolAWJ3Fd+aPTMv3X9z+waiARMpvvb0HQ= -k8s.io/apimachinery v0.23.0/go.mod h1:fFCTTBKvKcwTPFzjlcxp91uPFZr+JA0FubU4fLzzFYc= -k8s.io/apiserver v0.23.0/go.mod h1:Cec35u/9zAepDPPFyT+UMrgqOCjgJ5qtfVJDxjZYmt4= -k8s.io/client-go v0.23.0 h1:vcsOqyPq7XV3QmQRCBH/t9BICJM9Q1M18qahjv+rebY= -k8s.io/client-go v0.23.0/go.mod h1:hrDnpnK1mSr65lHHcUuIZIXDgEbzc7/683c6hyG4jTA= -k8s.io/code-generator v0.23.0/go.mod h1:vQvOhDXhuzqiVfM/YHp+dmg10WDZCchJVObc9MvowsE= -k8s.io/component-base v0.23.0 h1:UAnyzjvVZ2ZR1lF35YwtNY6VMN94WtOnArcXBu34es8= -k8s.io/component-base v0.23.0/go.mod h1:DHH5uiFvLC1edCpvcTDV++NKULdYYU6pR9Tt3HIKMKI= +k8s.io/api v0.24.0/go.mod h1:5Jl90IUrJHUJYEMANRURMiVvJ0g7Ax7r3R1bqO8zx8I= +k8s.io/api v0.25.0 h1:H+Q4ma2U/ww0iGB78ijZx6DRByPz6/733jIuFpX70e0= +k8s.io/api v0.25.0/go.mod h1:ttceV1GyV1i1rnmvzT3BST08N6nGt+dudGrquzVQWPk= +k8s.io/apiextensions-apiserver v0.24.0 h1:JfgFqbA8gKJ/uDT++feAqk9jBIwNnL9YGdQvaI9DLtY= +k8s.io/apiextensions-apiserver v0.24.0/go.mod h1:iuVe4aEpe6827lvO6yWQVxiPSpPoSKVjkq+MIdg84cM= +k8s.io/apimachinery v0.24.0/go.mod h1:82Bi4sCzVBdpYjyI4jY6aHX+YCUchUIrZrXKedjd2UM= +k8s.io/apimachinery v0.25.0 h1:MlP0r6+3XbkUG2itd6vp3oxbtdQLQI94fD5gCS+gnoU= +k8s.io/apimachinery v0.25.0/go.mod h1:qMx9eAk0sZQGsXGu86fab8tZdffHbwUfsvzqKn4mfB0= +k8s.io/apiserver v0.24.0/go.mod h1:WFx2yiOMawnogNToVvUYT9nn1jaIkMKj41ZYCVycsBA= +k8s.io/client-go v0.24.0/go.mod h1:VFPQET+cAFpYxh6Bq6f4xyMY80G6jKKktU6G0m00VDw= +k8s.io/client-go v0.25.0 h1:CVWIaCETLMBNiTUta3d5nzRbXvY5Hy9Dpl+VvREpu5E= +k8s.io/client-go v0.25.0/go.mod h1:lxykvypVfKilxhTklov0wz1FoaUZ8X4EwbhS6rpRfN8= +k8s.io/code-generator v0.24.0/go.mod h1:dpVhs00hTuTdTY6jvVxvTFCk6gSMrtfRydbhZwHI15w= +k8s.io/component-base v0.24.0/go.mod h1:Dgazgon0i7KYUsS8krG8muGiMVtUZxG037l1MKyXgrA= +k8s.io/component-base v0.25.0 h1:haVKlLkPCFZhkcqB6WCvpVxftrg6+FK5x1ZuaIDaQ5Y= +k8s.io/component-base v0.25.0/go.mod h1:F2Sumv9CnbBlqrpdf7rKZTmmd2meJq0HizeyY/yAFxk= k8s.io/gengo v0.0.0-20210813121822-485abfe95c7c/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= +k8s.io/gengo v0.0.0-20211129171323-c02415ce4185/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= -k8s.io/klog/v2 v2.30.0 h1:bUO6drIvCIsvZ/XFgfxoGFQU/a4Qkh0iAlvUR7vlHJw= -k8s.io/klog/v2 v2.30.0/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/kube-openapi v0.0.0-20211115234752-e816edb12b65 h1:E3J9oCLlaobFUqsjG9DfKbP2BmgwBL2p7pn0A3dG9W4= -k8s.io/kube-openapi v0.0.0-20211115234752-e816edb12b65/go.mod h1:sX9MT8g7NVZM5lVL/j8QyCCJe8YSMW30QvGZWaCIDIk= +k8s.io/klog/v2 v2.60.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= +k8s.io/klog/v2 v2.70.1 h1:7aaoSdahviPmR+XkS7FyxlkkXs6tHISSG03RxleQAVQ= +k8s.io/klog/v2 v2.70.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= +k8s.io/kube-openapi v0.0.0-20220328201542-3ee0da9b0b42/go.mod h1:Z/45zLw8lUo4wdiUkI+v/ImEGAvu3WatcZl3lPMR4Rk= +k8s.io/kube-openapi v0.0.0-20220803162953-67bda5d908f1 h1:MQ8BAZPZlWk3S9K4a9NCkIFQtZShWqoha7snGixVgEA= +k8s.io/kube-openapi v0.0.0-20220803162953-67bda5d908f1/go.mod h1:C/N6wCaBHeBHkHUesQOQy2/MZqGgMAFPqGsGQLdbZBU= k8s.io/utils v0.0.0-20210802155522-efc7438f0176/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= -k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b h1:wxEMGetGMur3J1xuGLQY7GEQYg9bZxKn3tKo5k/eYcs= -k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +k8s.io/utils v0.0.0-20220210201930-3a6ce19ff2f9/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +k8s.io/utils v0.0.0-20220728103510-ee6ede2d64ed h1:jAne/RjBTyawwAy0utX5eqigAwz/lQhTmy+Hr/Cpue4= +k8s.io/utils v0.0.0-20220728103510-ee6ede2d64ed/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.25/go.mod h1:Mlj9PNLmG9bZ6BHFwFKDo5afkpWyUISkb9Me0GnK66I= -sigs.k8s.io/controller-runtime v0.11.0 h1:DqO+c8mywcZLFJWILq4iktoECTyn30Bkj0CwgqMpZWQ= -sigs.k8s.io/controller-runtime v0.11.0/go.mod h1:KKwLiTooNGu+JmLZGn9Sl3Gjmfj66eMbCQznLP5zcqA= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.30/go.mod h1:fEO7lRTdivWO2qYVCVG7dEADOMo/MLDCVr8So2g88Uw= +sigs.k8s.io/controller-runtime v0.12.1 h1:4BJY01xe9zKQti8oRjj/NeHKRXthf1YkYJAgLONFFoI= +sigs.k8s.io/controller-runtime v0.12.1/go.mod h1:BKhxlA4l7FPK4AQcsuL4X6vZeWnKDXez/vp1Y8dxTU0= sigs.k8s.io/controller-tools v0.8.0 h1:uUkfTGEwrguqYYfcI2RRGUnC8mYdCFDqfwPKUcNJh1o= sigs.k8s.io/controller-tools v0.8.0/go.mod h1:qE2DXhVOiEq5ijmINcFbqi9GZrrUjzB1TuJU0xa6eoY= -sigs.k8s.io/json v0.0.0-20211020170558-c049b76a60c6 h1:fD1pz4yfdADVNfFmcP2aBEtudwUQ1AlLnRBALr33v3s= -sigs.k8s.io/json v0.0.0-20211020170558-c049b76a60c6/go.mod h1:p4QtZmO4uMYipTQNzagwnNoseA6OxSUutVw05NhYDRs= +sigs.k8s.io/json v0.0.0-20211208200746-9f7c6b3444d2/go.mod h1:B+TnT182UBxE84DiCz4CVE26eOSDAeYCpfDnC2kdKMY= +sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2 h1:iXTIw73aPyC+oRdyqqvVJuloN1p0AC/kzH07hu3NE+k= +sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= -sigs.k8s.io/structured-merge-diff/v4 v4.1.2/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4= -sigs.k8s.io/structured-merge-diff/v4 v4.2.0 h1:kDvPBbnPk+qYmkHmSo8vKGp438IASWofnbbUKDE/bv0= -sigs.k8s.io/structured-merge-diff/v4 v4.2.0/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4= +sigs.k8s.io/structured-merge-diff/v4 v4.2.1/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4= +sigs.k8s.io/structured-merge-diff/v4 v4.2.3 h1:PRbqxJClWWYMNV1dhaG4NsibJbArud9kFxnAMREiWFE= +sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= sigs.k8s.io/yaml v1.3.0 h1:a2VclLzOGrwOHDiV8EfBGhvjHvP46CtW5j6POvhYGGo= sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= diff --git a/hack/prepare.sh b/hack/prepare.sh index abb2661..fe0bf63 100755 --- a/hack/prepare.sh +++ b/hack/prepare.sh @@ -15,7 +15,7 @@ # limitations under the License. # Please set ProviderNameLower & ProviderNameUpper environment variables before running this script. -# See: https://github.com/crossplane/terrajet/blob/main/docs/generating-a-provider.md +# See: https://github.com/upbound/upjet/blob/main/docs/generating-a-provider.md set -euo pipefail REPLACE_FILES='./* ./.github :!build/** :!go.* :!hack/prepare.sh' diff --git a/internal/clients/equinix.go b/internal/clients/equinix.go index 008e97d..1cda758 100644 --- a/internal/clients/equinix.go +++ b/internal/clients/equinix.go @@ -19,21 +19,18 @@ package clients import ( "context" "encoding/json" - "fmt" "github.com/crossplane/crossplane-runtime/pkg/resource" "github.com/pkg/errors" "k8s.io/apimachinery/pkg/types" "sigs.k8s.io/controller-runtime/pkg/client" - "github.com/crossplane/terrajet/pkg/terraform" + "github.com/upbound/upjet/pkg/terraform" "github.com/crossplane-contrib/provider-jet-equinix/apis/v1alpha1" ) const ( - fmtEnvVar = "%s=%s" - // error messages errNoProviderConfig = "no providerConfigRef provided" errGetProviderConfig = "cannot get referenced ProviderConfig" @@ -41,17 +38,9 @@ const ( errExtractCredentials = "cannot extract credentials" errUnmarshalCredentials = "cannot unmarshal equinix credentials as JSON" - keyClientID = "client_id" - keyClientSecret = "client_secret" - keyAuthToken = "auth_token" keyEndpoint = "endpoint" keyRequestTimeout = "request_timeout" keyResponseMaxPageSize = "response_max_page_size" - - // Equinix credentials environment variable names - envClientID = "EQUINIX_API_CLIENTID" - envClientSecret = "EQUINIX_API_CLIENTSECRET" - envAuthToken = "METAL_AUTH_TOKEN" ) // TerraformSetupBuilder builds Terraform a terraform.SetupFn function which @@ -89,15 +78,6 @@ func TerraformSetupBuilder(version, providerSource, providerVersion string) terr return ps, errors.Wrap(err, errUnmarshalCredentials) } - // set environment variables for sensitive provider configuration - // Deprecated: In shared gRPC mode we do not support injecting - // credentials via the environment variables. You should specify - // credentials via the Terraform main.tf.json instead. - ps.Env = []string{ - fmt.Sprintf(fmtEnvVar, envClientID, equinixCreds[keyClientID]), - fmt.Sprintf(fmtEnvVar, envClientSecret, equinixCreds[keyClientSecret]), - fmt.Sprintf(fmtEnvVar, envAuthToken, equinixCreds[keyAuthToken]), - } // set credentials in Terraform provider configuration ps.Configuration = map[string]interface{}{} for _, key := range []string{ diff --git a/internal/controller/ecx/l2connection/zz_controller.go b/internal/controller/ecx/l2connection/zz_controller.go index 4455b0f..928af5f 100755 --- a/internal/controller/ecx/l2connection/zz_controller.go +++ b/internal/controller/ecx/l2connection/zz_controller.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package l2connection @@ -26,8 +26,8 @@ import ( "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/terrajet/pkg/controller" - "github.com/crossplane/terrajet/pkg/terraform" + tjcontroller "github.com/upbound/upjet/pkg/controller" + "github.com/upbound/upjet/pkg/terraform" ctrl "sigs.k8s.io/controller-runtime" v1alpha1 "github.com/crossplane-contrib/provider-jet-equinix/apis/ecx/v1alpha1" @@ -43,13 +43,16 @@ func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { } r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.L2Connection_GroupVersionKind), - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_ecx_l2_connection"])), + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_ecx_l2_connection"], + tjcontroller.WithCallbackProvider(tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.L2Connection_GroupVersionKind))), + )), 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), ) return ctrl.NewControllerManagedBy(mgr). diff --git a/internal/controller/ecx/l2connectionaccepter/zz_controller.go b/internal/controller/ecx/l2connectionaccepter/zz_controller.go index ad7d5ff..bb7b707 100755 --- a/internal/controller/ecx/l2connectionaccepter/zz_controller.go +++ b/internal/controller/ecx/l2connectionaccepter/zz_controller.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package l2connectionaccepter @@ -26,8 +26,8 @@ import ( "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/terrajet/pkg/controller" - "github.com/crossplane/terrajet/pkg/terraform" + tjcontroller "github.com/upbound/upjet/pkg/controller" + "github.com/upbound/upjet/pkg/terraform" ctrl "sigs.k8s.io/controller-runtime" v1alpha1 "github.com/crossplane-contrib/provider-jet-equinix/apis/ecx/v1alpha1" @@ -43,13 +43,16 @@ func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { } r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.L2ConnectionAccepter_GroupVersionKind), - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_ecx_l2_connection_accepter"])), + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_ecx_l2_connection_accepter"], + tjcontroller.WithCallbackProvider(tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.L2ConnectionAccepter_GroupVersionKind))), + )), 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), ) return ctrl.NewControllerManagedBy(mgr). diff --git a/internal/controller/ecx/l2serviceprofile/zz_controller.go b/internal/controller/ecx/l2serviceprofile/zz_controller.go index a2b6e05..a83d703 100755 --- a/internal/controller/ecx/l2serviceprofile/zz_controller.go +++ b/internal/controller/ecx/l2serviceprofile/zz_controller.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package l2serviceprofile @@ -26,8 +26,8 @@ import ( "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/terrajet/pkg/controller" - "github.com/crossplane/terrajet/pkg/terraform" + tjcontroller "github.com/upbound/upjet/pkg/controller" + "github.com/upbound/upjet/pkg/terraform" ctrl "sigs.k8s.io/controller-runtime" v1alpha1 "github.com/crossplane-contrib/provider-jet-equinix/apis/ecx/v1alpha1" @@ -43,13 +43,16 @@ func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { } r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.L2Serviceprofile_GroupVersionKind), - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_ecx_l2_serviceprofile"])), + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_ecx_l2_serviceprofile"], + tjcontroller.WithCallbackProvider(tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.L2Serviceprofile_GroupVersionKind))), + )), 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), ) return ctrl.NewControllerManagedBy(mgr). diff --git a/internal/controller/fabric/connection/zz_controller.go b/internal/controller/fabric/connection/zz_controller.go index 552518d..d6a5fff 100755 --- a/internal/controller/fabric/connection/zz_controller.go +++ b/internal/controller/fabric/connection/zz_controller.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package connection @@ -26,8 +26,8 @@ import ( "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/terrajet/pkg/controller" - "github.com/crossplane/terrajet/pkg/terraform" + tjcontroller "github.com/upbound/upjet/pkg/controller" + "github.com/upbound/upjet/pkg/terraform" ctrl "sigs.k8s.io/controller-runtime" v1alpha1 "github.com/crossplane-contrib/provider-jet-equinix/apis/fabric/v1alpha1" @@ -43,13 +43,16 @@ func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { } r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.Connection_GroupVersionKind), - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_fabric_connection"])), + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_fabric_connection"], + tjcontroller.WithCallbackProvider(tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.Connection_GroupVersionKind))), + )), 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), ) return ctrl.NewControllerManagedBy(mgr). diff --git a/internal/controller/fabric/serviceprofile/zz_controller.go b/internal/controller/fabric/serviceprofile/zz_controller.go index e92c752..21f4b75 100755 --- a/internal/controller/fabric/serviceprofile/zz_controller.go +++ b/internal/controller/fabric/serviceprofile/zz_controller.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package serviceprofile @@ -26,8 +26,8 @@ import ( "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/terrajet/pkg/controller" - "github.com/crossplane/terrajet/pkg/terraform" + tjcontroller "github.com/upbound/upjet/pkg/controller" + "github.com/upbound/upjet/pkg/terraform" ctrl "sigs.k8s.io/controller-runtime" v1alpha1 "github.com/crossplane-contrib/provider-jet-equinix/apis/fabric/v1alpha1" @@ -43,13 +43,16 @@ func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { } r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.ServiceProfile_GroupVersionKind), - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_fabric_service_profile"])), + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_fabric_service_profile"], + tjcontroller.WithCallbackProvider(tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.ServiceProfile_GroupVersionKind))), + )), 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), ) return ctrl.NewControllerManagedBy(mgr). diff --git a/internal/controller/metal/bgpsession/zz_controller.go b/internal/controller/metal/bgpsession/zz_controller.go index f44735e..f5f90b1 100755 --- a/internal/controller/metal/bgpsession/zz_controller.go +++ b/internal/controller/metal/bgpsession/zz_controller.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package bgpsession @@ -26,8 +26,8 @@ import ( "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/terrajet/pkg/controller" - "github.com/crossplane/terrajet/pkg/terraform" + tjcontroller "github.com/upbound/upjet/pkg/controller" + "github.com/upbound/upjet/pkg/terraform" ctrl "sigs.k8s.io/controller-runtime" v1alpha1 "github.com/crossplane-contrib/provider-jet-equinix/apis/metal/v1alpha1" @@ -43,13 +43,16 @@ func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { } r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.BGPSession_GroupVersionKind), - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_bgp_session"])), + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_bgp_session"], + tjcontroller.WithCallbackProvider(tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.BGPSession_GroupVersionKind))), + )), 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), ) return ctrl.NewControllerManagedBy(mgr). diff --git a/internal/controller/metal/connection/zz_controller.go b/internal/controller/metal/connection/zz_controller.go index 403683e..8f254ba 100755 --- a/internal/controller/metal/connection/zz_controller.go +++ b/internal/controller/metal/connection/zz_controller.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package connection @@ -26,8 +26,8 @@ import ( "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/terrajet/pkg/controller" - "github.com/crossplane/terrajet/pkg/terraform" + tjcontroller "github.com/upbound/upjet/pkg/controller" + "github.com/upbound/upjet/pkg/terraform" ctrl "sigs.k8s.io/controller-runtime" v1alpha1 "github.com/crossplane-contrib/provider-jet-equinix/apis/metal/v1alpha1" @@ -43,13 +43,16 @@ func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { } r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.Connection_GroupVersionKind), - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_connection"])), + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_connection"], + tjcontroller.WithCallbackProvider(tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.Connection_GroupVersionKind))), + )), 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), ) return ctrl.NewControllerManagedBy(mgr). diff --git a/internal/controller/metal/device/zz_controller.go b/internal/controller/metal/device/zz_controller.go index ca89361..798a4b1 100755 --- a/internal/controller/metal/device/zz_controller.go +++ b/internal/controller/metal/device/zz_controller.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package device @@ -26,8 +26,8 @@ import ( "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/terrajet/pkg/controller" - "github.com/crossplane/terrajet/pkg/terraform" + tjcontroller "github.com/upbound/upjet/pkg/controller" + "github.com/upbound/upjet/pkg/terraform" ctrl "sigs.k8s.io/controller-runtime" v1alpha1 "github.com/crossplane-contrib/provider-jet-equinix/apis/metal/v1alpha1" @@ -43,13 +43,16 @@ func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { } r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.Device_GroupVersionKind), - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_device"])), + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_device"], + tjcontroller.WithCallbackProvider(tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.Device_GroupVersionKind))), + )), 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), ) return ctrl.NewControllerManagedBy(mgr). diff --git a/internal/controller/metal/devicenetworktype/zz_controller.go b/internal/controller/metal/devicenetworktype/zz_controller.go index 091eb34..ed10f15 100755 --- a/internal/controller/metal/devicenetworktype/zz_controller.go +++ b/internal/controller/metal/devicenetworktype/zz_controller.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package devicenetworktype @@ -26,8 +26,8 @@ import ( "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/terrajet/pkg/controller" - "github.com/crossplane/terrajet/pkg/terraform" + tjcontroller "github.com/upbound/upjet/pkg/controller" + "github.com/upbound/upjet/pkg/terraform" ctrl "sigs.k8s.io/controller-runtime" v1alpha1 "github.com/crossplane-contrib/provider-jet-equinix/apis/metal/v1alpha1" @@ -43,13 +43,16 @@ func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { } r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.DeviceNetworkType_GroupVersionKind), - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_device_network_type"])), + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_device_network_type"], + tjcontroller.WithCallbackProvider(tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.DeviceNetworkType_GroupVersionKind))), + )), 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), ) return ctrl.NewControllerManagedBy(mgr). diff --git a/internal/controller/metal/gateway/zz_controller.go b/internal/controller/metal/gateway/zz_controller.go index ec1dd24..66913c2 100755 --- a/internal/controller/metal/gateway/zz_controller.go +++ b/internal/controller/metal/gateway/zz_controller.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package gateway @@ -26,8 +26,8 @@ import ( "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/terrajet/pkg/controller" - "github.com/crossplane/terrajet/pkg/terraform" + tjcontroller "github.com/upbound/upjet/pkg/controller" + "github.com/upbound/upjet/pkg/terraform" ctrl "sigs.k8s.io/controller-runtime" v1alpha1 "github.com/crossplane-contrib/provider-jet-equinix/apis/metal/v1alpha1" @@ -43,13 +43,16 @@ func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { } r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.Gateway_GroupVersionKind), - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_gateway"])), + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_gateway"], + tjcontroller.WithCallbackProvider(tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.Gateway_GroupVersionKind))), + )), 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), ) return ctrl.NewControllerManagedBy(mgr). diff --git a/internal/controller/metal/ipattachment/zz_controller.go b/internal/controller/metal/ipattachment/zz_controller.go index 6d104b8..4fb74e6 100755 --- a/internal/controller/metal/ipattachment/zz_controller.go +++ b/internal/controller/metal/ipattachment/zz_controller.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package ipattachment @@ -26,8 +26,8 @@ import ( "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/terrajet/pkg/controller" - "github.com/crossplane/terrajet/pkg/terraform" + tjcontroller "github.com/upbound/upjet/pkg/controller" + "github.com/upbound/upjet/pkg/terraform" ctrl "sigs.k8s.io/controller-runtime" v1alpha1 "github.com/crossplane-contrib/provider-jet-equinix/apis/metal/v1alpha1" @@ -43,13 +43,16 @@ func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { } r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.IPAttachment_GroupVersionKind), - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_ip_attachment"])), + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_ip_attachment"], + tjcontroller.WithCallbackProvider(tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.IPAttachment_GroupVersionKind))), + )), 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), ) return ctrl.NewControllerManagedBy(mgr). diff --git a/internal/controller/metal/organization/zz_controller.go b/internal/controller/metal/organization/zz_controller.go index 7958533..4013567 100755 --- a/internal/controller/metal/organization/zz_controller.go +++ b/internal/controller/metal/organization/zz_controller.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package organization @@ -26,8 +26,8 @@ import ( "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/terrajet/pkg/controller" - "github.com/crossplane/terrajet/pkg/terraform" + tjcontroller "github.com/upbound/upjet/pkg/controller" + "github.com/upbound/upjet/pkg/terraform" ctrl "sigs.k8s.io/controller-runtime" v1alpha1 "github.com/crossplane-contrib/provider-jet-equinix/apis/metal/v1alpha1" @@ -43,13 +43,16 @@ func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { } r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.Organization_GroupVersionKind), - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_organization"])), + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_organization"], + tjcontroller.WithCallbackProvider(tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.Organization_GroupVersionKind))), + )), 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), ) return ctrl.NewControllerManagedBy(mgr). diff --git a/internal/controller/metal/organizationmember/zz_controller.go b/internal/controller/metal/organizationmember/zz_controller.go index a554ad0..453f639 100755 --- a/internal/controller/metal/organizationmember/zz_controller.go +++ b/internal/controller/metal/organizationmember/zz_controller.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package organizationmember @@ -26,8 +26,8 @@ import ( "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/terrajet/pkg/controller" - "github.com/crossplane/terrajet/pkg/terraform" + tjcontroller "github.com/upbound/upjet/pkg/controller" + "github.com/upbound/upjet/pkg/terraform" ctrl "sigs.k8s.io/controller-runtime" v1alpha1 "github.com/crossplane-contrib/provider-jet-equinix/apis/metal/v1alpha1" @@ -43,13 +43,16 @@ func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { } r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.OrganizationMember_GroupVersionKind), - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_organization_member"])), + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_organization_member"], + tjcontroller.WithCallbackProvider(tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.OrganizationMember_GroupVersionKind))), + )), 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), ) return ctrl.NewControllerManagedBy(mgr). diff --git a/internal/controller/metal/port/zz_controller.go b/internal/controller/metal/port/zz_controller.go index 2d703db..8ebc342 100755 --- a/internal/controller/metal/port/zz_controller.go +++ b/internal/controller/metal/port/zz_controller.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package port @@ -26,8 +26,8 @@ import ( "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/terrajet/pkg/controller" - "github.com/crossplane/terrajet/pkg/terraform" + tjcontroller "github.com/upbound/upjet/pkg/controller" + "github.com/upbound/upjet/pkg/terraform" ctrl "sigs.k8s.io/controller-runtime" v1alpha1 "github.com/crossplane-contrib/provider-jet-equinix/apis/metal/v1alpha1" @@ -43,13 +43,16 @@ func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { } r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.Port_GroupVersionKind), - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_port"])), + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_port"], + tjcontroller.WithCallbackProvider(tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.Port_GroupVersionKind))), + )), 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), ) return ctrl.NewControllerManagedBy(mgr). diff --git a/internal/controller/metal/portvlanattachment/zz_controller.go b/internal/controller/metal/portvlanattachment/zz_controller.go index 2c781f4..24b3ab7 100755 --- a/internal/controller/metal/portvlanattachment/zz_controller.go +++ b/internal/controller/metal/portvlanattachment/zz_controller.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package portvlanattachment @@ -26,8 +26,8 @@ import ( "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/terrajet/pkg/controller" - "github.com/crossplane/terrajet/pkg/terraform" + tjcontroller "github.com/upbound/upjet/pkg/controller" + "github.com/upbound/upjet/pkg/terraform" ctrl "sigs.k8s.io/controller-runtime" v1alpha1 "github.com/crossplane-contrib/provider-jet-equinix/apis/metal/v1alpha1" @@ -43,13 +43,16 @@ func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { } r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.PortVlanAttachment_GroupVersionKind), - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_port_vlan_attachment"])), + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_port_vlan_attachment"], + tjcontroller.WithCallbackProvider(tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.PortVlanAttachment_GroupVersionKind))), + )), 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), ) return ctrl.NewControllerManagedBy(mgr). diff --git a/internal/controller/metal/project/zz_controller.go b/internal/controller/metal/project/zz_controller.go index 9bf7bbc..732f144 100755 --- a/internal/controller/metal/project/zz_controller.go +++ b/internal/controller/metal/project/zz_controller.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package project @@ -26,8 +26,8 @@ import ( "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/terrajet/pkg/controller" - "github.com/crossplane/terrajet/pkg/terraform" + tjcontroller "github.com/upbound/upjet/pkg/controller" + "github.com/upbound/upjet/pkg/terraform" ctrl "sigs.k8s.io/controller-runtime" v1alpha1 "github.com/crossplane-contrib/provider-jet-equinix/apis/metal/v1alpha1" @@ -43,13 +43,16 @@ func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { } r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.Project_GroupVersionKind), - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_project"])), + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_project"], + tjcontroller.WithCallbackProvider(tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.Project_GroupVersionKind))), + )), 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), ) return ctrl.NewControllerManagedBy(mgr). diff --git a/internal/controller/metal/projectapikey/zz_controller.go b/internal/controller/metal/projectapikey/zz_controller.go index bc6e70f..6a6a9b6 100755 --- a/internal/controller/metal/projectapikey/zz_controller.go +++ b/internal/controller/metal/projectapikey/zz_controller.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package projectapikey @@ -26,8 +26,8 @@ import ( "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/terrajet/pkg/controller" - "github.com/crossplane/terrajet/pkg/terraform" + tjcontroller "github.com/upbound/upjet/pkg/controller" + "github.com/upbound/upjet/pkg/terraform" ctrl "sigs.k8s.io/controller-runtime" v1alpha1 "github.com/crossplane-contrib/provider-jet-equinix/apis/metal/v1alpha1" @@ -43,13 +43,16 @@ func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { } r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.ProjectAPIKey_GroupVersionKind), - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_project_api_key"])), + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_project_api_key"], + tjcontroller.WithCallbackProvider(tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.ProjectAPIKey_GroupVersionKind))), + )), 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), ) return ctrl.NewControllerManagedBy(mgr). diff --git a/internal/controller/metal/projectsshkey/zz_controller.go b/internal/controller/metal/projectsshkey/zz_controller.go index 17722b2..050e13f 100755 --- a/internal/controller/metal/projectsshkey/zz_controller.go +++ b/internal/controller/metal/projectsshkey/zz_controller.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package projectsshkey @@ -26,8 +26,8 @@ import ( "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/terrajet/pkg/controller" - "github.com/crossplane/terrajet/pkg/terraform" + tjcontroller "github.com/upbound/upjet/pkg/controller" + "github.com/upbound/upjet/pkg/terraform" ctrl "sigs.k8s.io/controller-runtime" v1alpha1 "github.com/crossplane-contrib/provider-jet-equinix/apis/metal/v1alpha1" @@ -43,13 +43,16 @@ func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { } r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.ProjectSSHKey_GroupVersionKind), - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_project_ssh_key"])), + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_project_ssh_key"], + tjcontroller.WithCallbackProvider(tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.ProjectSSHKey_GroupVersionKind))), + )), 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), ) return ctrl.NewControllerManagedBy(mgr). diff --git a/internal/controller/metal/reservedipblock/zz_controller.go b/internal/controller/metal/reservedipblock/zz_controller.go index b0fbc3f..926b612 100755 --- a/internal/controller/metal/reservedipblock/zz_controller.go +++ b/internal/controller/metal/reservedipblock/zz_controller.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package reservedipblock @@ -26,8 +26,8 @@ import ( "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/terrajet/pkg/controller" - "github.com/crossplane/terrajet/pkg/terraform" + tjcontroller "github.com/upbound/upjet/pkg/controller" + "github.com/upbound/upjet/pkg/terraform" ctrl "sigs.k8s.io/controller-runtime" v1alpha1 "github.com/crossplane-contrib/provider-jet-equinix/apis/metal/v1alpha1" @@ -43,13 +43,16 @@ func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { } r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.ReservedIPBlock_GroupVersionKind), - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_reserved_ip_block"])), + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_reserved_ip_block"], + tjcontroller.WithCallbackProvider(tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.ReservedIPBlock_GroupVersionKind))), + )), 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), ) return ctrl.NewControllerManagedBy(mgr). diff --git a/internal/controller/metal/spotmarketrequest/zz_controller.go b/internal/controller/metal/spotmarketrequest/zz_controller.go index 4738cc0..0dfdd3d 100755 --- a/internal/controller/metal/spotmarketrequest/zz_controller.go +++ b/internal/controller/metal/spotmarketrequest/zz_controller.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package spotmarketrequest @@ -26,8 +26,8 @@ import ( "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/terrajet/pkg/controller" - "github.com/crossplane/terrajet/pkg/terraform" + tjcontroller "github.com/upbound/upjet/pkg/controller" + "github.com/upbound/upjet/pkg/terraform" ctrl "sigs.k8s.io/controller-runtime" v1alpha1 "github.com/crossplane-contrib/provider-jet-equinix/apis/metal/v1alpha1" @@ -43,13 +43,16 @@ func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { } r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.SpotMarketRequest_GroupVersionKind), - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_spot_market_request"])), + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_spot_market_request"], + tjcontroller.WithCallbackProvider(tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.SpotMarketRequest_GroupVersionKind))), + )), 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), ) return ctrl.NewControllerManagedBy(mgr). diff --git a/internal/controller/metal/sshkey/zz_controller.go b/internal/controller/metal/sshkey/zz_controller.go index a48d611..df4d686 100755 --- a/internal/controller/metal/sshkey/zz_controller.go +++ b/internal/controller/metal/sshkey/zz_controller.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package sshkey @@ -26,8 +26,8 @@ import ( "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/terrajet/pkg/controller" - "github.com/crossplane/terrajet/pkg/terraform" + tjcontroller "github.com/upbound/upjet/pkg/controller" + "github.com/upbound/upjet/pkg/terraform" ctrl "sigs.k8s.io/controller-runtime" v1alpha1 "github.com/crossplane-contrib/provider-jet-equinix/apis/metal/v1alpha1" @@ -43,13 +43,16 @@ func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { } r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.SSHKey_GroupVersionKind), - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_ssh_key"])), + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_ssh_key"], + tjcontroller.WithCallbackProvider(tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.SSHKey_GroupVersionKind))), + )), 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), ) return ctrl.NewControllerManagedBy(mgr). diff --git a/internal/controller/metal/userapikey/zz_controller.go b/internal/controller/metal/userapikey/zz_controller.go index 34c9a23..55de824 100755 --- a/internal/controller/metal/userapikey/zz_controller.go +++ b/internal/controller/metal/userapikey/zz_controller.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package userapikey @@ -26,8 +26,8 @@ import ( "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/terrajet/pkg/controller" - "github.com/crossplane/terrajet/pkg/terraform" + tjcontroller "github.com/upbound/upjet/pkg/controller" + "github.com/upbound/upjet/pkg/terraform" ctrl "sigs.k8s.io/controller-runtime" v1alpha1 "github.com/crossplane-contrib/provider-jet-equinix/apis/metal/v1alpha1" @@ -43,13 +43,16 @@ func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { } r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.UserAPIKey_GroupVersionKind), - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_user_api_key"])), + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_user_api_key"], + tjcontroller.WithCallbackProvider(tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.UserAPIKey_GroupVersionKind))), + )), 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), ) return ctrl.NewControllerManagedBy(mgr). diff --git a/internal/controller/metal/virtualcircuit/zz_controller.go b/internal/controller/metal/virtualcircuit/zz_controller.go index 0b8d66f..83c0e9c 100755 --- a/internal/controller/metal/virtualcircuit/zz_controller.go +++ b/internal/controller/metal/virtualcircuit/zz_controller.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package virtualcircuit @@ -26,8 +26,8 @@ import ( "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/terrajet/pkg/controller" - "github.com/crossplane/terrajet/pkg/terraform" + tjcontroller "github.com/upbound/upjet/pkg/controller" + "github.com/upbound/upjet/pkg/terraform" ctrl "sigs.k8s.io/controller-runtime" v1alpha1 "github.com/crossplane-contrib/provider-jet-equinix/apis/metal/v1alpha1" @@ -43,13 +43,16 @@ func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { } r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.VirtualCircuit_GroupVersionKind), - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_virtual_circuit"])), + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_virtual_circuit"], + tjcontroller.WithCallbackProvider(tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.VirtualCircuit_GroupVersionKind))), + )), 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), ) return ctrl.NewControllerManagedBy(mgr). diff --git a/internal/controller/metal/vlan/zz_controller.go b/internal/controller/metal/vlan/zz_controller.go index bc06d39..2d88d24 100755 --- a/internal/controller/metal/vlan/zz_controller.go +++ b/internal/controller/metal/vlan/zz_controller.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package vlan @@ -26,8 +26,8 @@ import ( "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/terrajet/pkg/controller" - "github.com/crossplane/terrajet/pkg/terraform" + tjcontroller "github.com/upbound/upjet/pkg/controller" + "github.com/upbound/upjet/pkg/terraform" ctrl "sigs.k8s.io/controller-runtime" v1alpha1 "github.com/crossplane-contrib/provider-jet-equinix/apis/metal/v1alpha1" @@ -43,13 +43,16 @@ func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { } r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.Vlan_GroupVersionKind), - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_vlan"])), + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_vlan"], + tjcontroller.WithCallbackProvider(tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.Vlan_GroupVersionKind))), + )), 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), ) return ctrl.NewControllerManagedBy(mgr). diff --git a/internal/controller/metal/vrf/zz_controller.go b/internal/controller/metal/vrf/zz_controller.go index ad5cf82..27697ab 100755 --- a/internal/controller/metal/vrf/zz_controller.go +++ b/internal/controller/metal/vrf/zz_controller.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package vrf @@ -26,8 +26,8 @@ import ( "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/terrajet/pkg/controller" - "github.com/crossplane/terrajet/pkg/terraform" + tjcontroller "github.com/upbound/upjet/pkg/controller" + "github.com/upbound/upjet/pkg/terraform" ctrl "sigs.k8s.io/controller-runtime" v1alpha1 "github.com/crossplane-contrib/provider-jet-equinix/apis/metal/v1alpha1" @@ -43,13 +43,16 @@ func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { } r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.Vrf_GroupVersionKind), - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_vrf"])), + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_metal_vrf"], + tjcontroller.WithCallbackProvider(tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.Vrf_GroupVersionKind))), + )), 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), ) return ctrl.NewControllerManagedBy(mgr). diff --git a/internal/controller/network/acltemplate/zz_controller.go b/internal/controller/network/acltemplate/zz_controller.go index fc5a927..1d05711 100755 --- a/internal/controller/network/acltemplate/zz_controller.go +++ b/internal/controller/network/acltemplate/zz_controller.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package acltemplate @@ -26,8 +26,8 @@ import ( "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/terrajet/pkg/controller" - "github.com/crossplane/terrajet/pkg/terraform" + tjcontroller "github.com/upbound/upjet/pkg/controller" + "github.com/upbound/upjet/pkg/terraform" ctrl "sigs.k8s.io/controller-runtime" v1alpha1 "github.com/crossplane-contrib/provider-jet-equinix/apis/network/v1alpha1" @@ -43,13 +43,16 @@ func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { } r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.ACLTemplate_GroupVersionKind), - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_network_acl_template"])), + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_network_acl_template"], + tjcontroller.WithCallbackProvider(tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.ACLTemplate_GroupVersionKind))), + )), 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), ) return ctrl.NewControllerManagedBy(mgr). diff --git a/internal/controller/network/bgp/zz_controller.go b/internal/controller/network/bgp/zz_controller.go index f8848df..9666f6f 100755 --- a/internal/controller/network/bgp/zz_controller.go +++ b/internal/controller/network/bgp/zz_controller.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package bgp @@ -26,8 +26,8 @@ import ( "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/terrajet/pkg/controller" - "github.com/crossplane/terrajet/pkg/terraform" + tjcontroller "github.com/upbound/upjet/pkg/controller" + "github.com/upbound/upjet/pkg/terraform" ctrl "sigs.k8s.io/controller-runtime" v1alpha1 "github.com/crossplane-contrib/provider-jet-equinix/apis/network/v1alpha1" @@ -43,13 +43,16 @@ func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { } r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.BGP_GroupVersionKind), - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_network_bgp"])), + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_network_bgp"], + tjcontroller.WithCallbackProvider(tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.BGP_GroupVersionKind))), + )), 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), ) return ctrl.NewControllerManagedBy(mgr). diff --git a/internal/controller/network/device/zz_controller.go b/internal/controller/network/device/zz_controller.go index c55164e..f039db5 100755 --- a/internal/controller/network/device/zz_controller.go +++ b/internal/controller/network/device/zz_controller.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package device @@ -26,8 +26,8 @@ import ( "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/terrajet/pkg/controller" - "github.com/crossplane/terrajet/pkg/terraform" + tjcontroller "github.com/upbound/upjet/pkg/controller" + "github.com/upbound/upjet/pkg/terraform" ctrl "sigs.k8s.io/controller-runtime" v1alpha1 "github.com/crossplane-contrib/provider-jet-equinix/apis/network/v1alpha1" @@ -43,13 +43,16 @@ func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { } r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.Device_GroupVersionKind), - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_network_device"])), + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_network_device"], + tjcontroller.WithCallbackProvider(tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.Device_GroupVersionKind))), + )), 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), ) return ctrl.NewControllerManagedBy(mgr). diff --git a/internal/controller/network/devicelink/zz_controller.go b/internal/controller/network/devicelink/zz_controller.go index 4f948af..54fd4d3 100755 --- a/internal/controller/network/devicelink/zz_controller.go +++ b/internal/controller/network/devicelink/zz_controller.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package devicelink @@ -26,8 +26,8 @@ import ( "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/terrajet/pkg/controller" - "github.com/crossplane/terrajet/pkg/terraform" + tjcontroller "github.com/upbound/upjet/pkg/controller" + "github.com/upbound/upjet/pkg/terraform" ctrl "sigs.k8s.io/controller-runtime" v1alpha1 "github.com/crossplane-contrib/provider-jet-equinix/apis/network/v1alpha1" @@ -43,13 +43,16 @@ func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { } r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.DeviceLink_GroupVersionKind), - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_network_device_link"])), + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_network_device_link"], + tjcontroller.WithCallbackProvider(tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.DeviceLink_GroupVersionKind))), + )), 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), ) return ctrl.NewControllerManagedBy(mgr). diff --git a/internal/controller/network/sshkey/zz_controller.go b/internal/controller/network/sshkey/zz_controller.go index a4700f9..062cd2d 100755 --- a/internal/controller/network/sshkey/zz_controller.go +++ b/internal/controller/network/sshkey/zz_controller.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package sshkey @@ -26,8 +26,8 @@ import ( "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/terrajet/pkg/controller" - "github.com/crossplane/terrajet/pkg/terraform" + tjcontroller "github.com/upbound/upjet/pkg/controller" + "github.com/upbound/upjet/pkg/terraform" ctrl "sigs.k8s.io/controller-runtime" v1alpha1 "github.com/crossplane-contrib/provider-jet-equinix/apis/network/v1alpha1" @@ -43,13 +43,16 @@ func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { } r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.SSHKey_GroupVersionKind), - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_network_ssh_key"])), + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_network_ssh_key"], + tjcontroller.WithCallbackProvider(tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.SSHKey_GroupVersionKind))), + )), 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), ) return ctrl.NewControllerManagedBy(mgr). diff --git a/internal/controller/network/sshuser/zz_controller.go b/internal/controller/network/sshuser/zz_controller.go index e814306..68bfd24 100755 --- a/internal/controller/network/sshuser/zz_controller.go +++ b/internal/controller/network/sshuser/zz_controller.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -// Code generated by terrajet. DO NOT EDIT. +// Code generated by upjet. DO NOT EDIT. package sshuser @@ -26,8 +26,8 @@ import ( "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/terrajet/pkg/controller" - "github.com/crossplane/terrajet/pkg/terraform" + tjcontroller "github.com/upbound/upjet/pkg/controller" + "github.com/upbound/upjet/pkg/terraform" ctrl "sigs.k8s.io/controller-runtime" v1alpha1 "github.com/crossplane-contrib/provider-jet-equinix/apis/network/v1alpha1" @@ -43,13 +43,16 @@ func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { } r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1alpha1.SSHUser_GroupVersionKind), - managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_network_ssh_user"])), + managed.WithExternalConnecter(tjcontroller.NewConnector(mgr.GetClient(), o.WorkspaceStore, o.SetupFn, o.Provider.Resources["equinix_network_ssh_user"], + tjcontroller.WithCallbackProvider(tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1alpha1.SSHUser_GroupVersionKind))), + )), 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), ) return ctrl.NewControllerManagedBy(mgr). diff --git a/internal/controller/providerconfig/config.go b/internal/controller/providerconfig/config.go index 8ff412e..53396d7 100644 --- a/internal/controller/providerconfig/config.go +++ b/internal/controller/providerconfig/config.go @@ -23,7 +23,7 @@ import ( "github.com/crossplane/crossplane-runtime/pkg/event" "github.com/crossplane/crossplane-runtime/pkg/reconciler/providerconfig" "github.com/crossplane/crossplane-runtime/pkg/resource" - "github.com/crossplane/terrajet/pkg/controller" + "github.com/upbound/upjet/pkg/controller" "github.com/crossplane-contrib/provider-jet-equinix/apis/v1alpha1" ) diff --git a/internal/controller/zz_setup.go b/internal/controller/zz_setup.go index 6d7e36a..b0a6429 100755 --- a/internal/controller/zz_setup.go +++ b/internal/controller/zz_setup.go @@ -1,17 +1,5 @@ /* -Copyright 2021 The Crossplane Authors. - -Licensed under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. -You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software -distributed under the License is distributed on an "AS IS" BASIS, -WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -See the License for the specific language governing permissions and -limitations under the License. +Copyright 2021 Upbound Inc. */ package controller @@ -19,7 +7,7 @@ package controller import ( ctrl "sigs.k8s.io/controller-runtime" - "github.com/crossplane/terrajet/pkg/controller" + "github.com/upbound/upjet/pkg/controller" l2connection "github.com/crossplane-contrib/provider-jet-equinix/internal/controller/ecx/l2connection" l2connectionaccepter "github.com/crossplane-contrib/provider-jet-equinix/internal/controller/ecx/l2connectionaccepter" diff --git a/package/crds/ecx.equinix.jet.crossplane.io_l2connectionaccepters.yaml b/package/crds/ecx.equinix.jet.crossplane.io_l2connectionaccepters.yaml index f6e6c81..2023fa3 100644 --- a/package/crds/ecx.equinix.jet.crossplane.io_l2connectionaccepters.yaml +++ b/package/crds/ecx.equinix.jet.crossplane.io_l2connectionaccepters.yaml @@ -12,7 +12,7 @@ spec: categories: - crossplane - managed - - equinixjet + - equinix kind: L2ConnectionAccepter listKind: L2ConnectionAccepterList plural: l2connectionaccepters @@ -36,7 +36,7 @@ spec: schema: openAPIV3Schema: description: L2ConnectionAccepter is the Schema for the L2ConnectionAccepters - API + API. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -65,8 +65,8 @@ spec: forProvider: properties: accessKeySecretRef: - description: Access Key used to accept connection on provider - side + description: and secret_key resource arguments Access Key used + to accept connection on provider side properties: key: description: The key to select. @@ -83,15 +83,17 @@ spec: - namespace type: object awsProfile: - description: AWS Profile Name for retrieving credentials from - shared credentials file + description: argument or AWS_PROFILE environmental variable AWS + Profile Name for retrieving credentials from shared credentials + file type: string connectionId: - description: Identifier of layer 2 connection that will be accepted + description: Identifier of Layer 2 connection that will be accepted. + Identifier of layer 2 connection that will be accepted type: string secretKeySecretRef: description: Secret Key used to accept connection on provider - side + side. Secret Key used to accept connection on provider side properties: key: description: The key to select. @@ -120,6 +122,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -131,6 +158,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -150,6 +202,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -213,6 +290,11 @@ spec: atProvider: properties: awsConnectionId: + description: Identifier of a hosted Direct Connect connection + on AWS side, applicable for accepter resource with connections + to AWS only. Identifier of a hosted Direct Connect connection + on AWS side, applicable for accepter resource with connections + to AWS only type: string id: type: string diff --git a/package/crds/ecx.equinix.jet.crossplane.io_l2connections.yaml b/package/crds/ecx.equinix.jet.crossplane.io_l2connections.yaml index b7d53c8..1b969f5 100644 --- a/package/crds/ecx.equinix.jet.crossplane.io_l2connections.yaml +++ b/package/crds/ecx.equinix.jet.crossplane.io_l2connections.yaml @@ -12,7 +12,7 @@ spec: categories: - crossplane - managed - - equinixjet + - equinix kind: L2Connection listKind: L2ConnectionList plural: l2connections @@ -35,7 +35,7 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: L2Connection is the Schema for the L2Connections API + description: L2Connection is the Schema for the L2Connections API. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -64,14 +64,17 @@ spec: forProvider: properties: additionalInfo: - description: One or more additional information key-value objects + description: one or more additional information key-value objects + One or more additional information key-value objects items: properties: name: - description: Additional information key + description: secondary connection name Additional information + key type: string value: - description: Additional information value + description: additional information value Additional information + value type: string required: - name @@ -79,53 +82,95 @@ spec: type: object type: array authorizationKey: - description: Text field used to authorize connection on the provider - side. Value depends on a provider service profile used for connection + description: Unique identifier authorizing Equinix to provision + a connection towards a cloud service provider. At Equinix, an + Authorization Key is a generic term and is NOT encrypted on + Equinix Fabric. Cloud Service Providers might use a different + name to refer to this key such as Service Key or Authentication + Key. Value depends on a provider service profile, more information + on Equinix Fabric how to guide. Text field used to authorize + connection on the provider side. Value depends on a provider + service profile used for connection type: string deviceInterfaceId: - description: Identifier of network interface on a given device, - used for a connection. If not specified then first available - interface will be selected + description: Applicable with device_uuid, identifier of network + interface on a given device, used for a connection. If not specified + then first available interface will be selected. Identifier + of network interface on a given device, used for a connection. + If not specified then first available interface will be selected type: number deviceUuid: description: Unique identifier of the Network Edge virtual device - from which the connection would originate + from which the connection would originate. Unique identifier + of the Network Edge virtual device from which the connection + would originate type: string name: description: Connection name. An alpha-numeric 24 characters string - which can include only hyphens and underscores + which can include only hyphens and underscores Connection name. + An alpha-numeric 24 characters string which can include only + hyphens and underscores type: string namedTag: - description: The type of peering to set up in case when connecting + description: 'The type of peering to set up when connecting to + Azure Express Route. Valid values: PRIVATE, MICROSOFT, MANUAL*, + PUBLIC*. The type of peering to set up in case when connecting to Azure Express Route. One of PRIVATE, MICROSOFT, MANUAL, PUBLIC (MANUAL and PUBLIC are deprecated and not available for new - connections) + connections)' type: string notifications: description: A list of email addresses used for sending connection - update notifications + update notifications. A list of email addresses used for sending + connection update notifications items: type: string type: array portUuid: - description: Unique identifier of the buyer's port from which - the connection would originate + description: Unique identifier of the Equinix Fabric Port from + which the connection would originate. Unique identifier of the + buyer's port from which the connection would originate type: string profileUuid: - description: Unique identifier of the service provider's service - profile + description: Unique identifier of the service provider's profile. + Unique identifier of the service provider's service profile type: string profileUuidRef: - description: A Reference to a named object. + description: Reference to a L2Serviceprofile to populate profileUuid. properties: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object profileUuidSelector: - description: A Selector selects an object. + description: Selector for a L2Serviceprofile to populate profileUuid. properties: matchControllerRef: description: MatchControllerRef ensures an object with the @@ -137,116 +182,195 @@ spec: 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 purchaseOrderNumber: description: Connection's purchase order number to reflect on + the invoice Connection's purchase order number to reflect on the invoice type: string secondaryConnection: description: Definition of secondary connection for redundant, - HA connectivity + HA connectivity. See Secondary Connection below for more details. + Definition of secondary connection for redundant, HA connectivity items: properties: authorizationKey: - description: Text field used to authorize connection on - the provider side. Value depends on a provider service - profile used for connection + description: Unique identifier authorizing Equinix to provision + a connection towards a cloud service provider. If not + specified primary authorization_key will be used. However, + some service providers may require different keys for + each connection. More information on Equinix Fabric how + to guide. Text field used to authorize connection on the + provider side. Value depends on a provider service profile + used for connection type: string deviceInterfaceId: - description: Identifier of network interface on a given - device, used for a connection. If not specified then first - available interface will be selected + description: Applicable with device_uuid, identifier of + network interface on a given device. If not specified + then first available interface will be selected. Identifier + of network interface on a given device, used for a connection. + If not specified then first available interface will be + selected type: number deviceUuid: - description: Unique identifier of the Network Edge virtual + description: Applicable with primary device_uuid. Identifier + of the Network Edge virtual device from which the secondary + connection would originate. If not specified primary device_uuid + will be used. Unique identifier of the Network Edge virtual device from which the connection would originate type: string name: - description: Connection name. An alpha-numeric 24 characters - string which can include only hyphens and underscores + description: secondary connection name Connection name. + An alpha-numeric 24 characters string which can include + only hyphens and underscores type: string portUuid: - description: Unique identifier of the buyer's port from - which the connection would originate + description: Applicable with primary port_uuid. Identifier + of the Equinix Fabric Port from which the secondary connection + would originate. If not specified primary port_uuid will + be used. Unique identifier of the buyer's port from which + the connection would originate type: string profileUuid: description: Unique identifier of the service provider's - service profile + profile. Unique identifier of the service provider's service + profile type: string sellerMetroCode: - description: The metro code that denotes the connection's - remote side (z-side) + description: The metro code that denotes the secondary connection’s + destination (Z side). . The metro code that denotes the + connection's remote side (z-side) type: string sellerRegion: - description: The region in which the seller port resides + description: The region in which the seller port resides. + If not specified primary seller_region will be used. The + region in which the seller port resides type: string serviceToken: - description: Unique Equinix Fabric key given by a provider + description: Required with primary service_token. Unique + Equinix Fabric key given by a provider that grants you + authorization to enable connectivity from an Equinix Fabric + Port or virtual device. Each connection (primary and secondary) + requires a separate token. More details in Fabric Service + Tokens. Unique Equinix Fabric key given by a provider that grants you authorization to enable connectivity from a shared multi-tenant port (a-side) type: string speed: - description: Speed/Bandwidth to be allocated to the connection + description: Speed/Bandwidth to be allocated to the secondary + connection. If not specified primary speed will be used. + Speed/Bandwidth to be allocated to the connection type: number speedUnit: description: Unit of the speed/bandwidth to be allocated - to the connection + to the secondary connection. If not specified primary + speed_unit will be used. Unit of the speed/bandwidth to + be allocated to the connection type: string vlanCtag: - description: C-Tag/Inner-Tag of the connection, a numeric + description: Applicable with port_uuid. C-Tag/Inner-Tag + of the secondary connection, a numeric character ranging + from 2 - 4094. C-Tag/Inner-Tag of the connection, a numeric character ranging from 2 - 4094 type: number vlanStag: - description: S-Tag/Outer-Tag of the connection, a numeric - character ranging from 2 - 4094 + description: S-Tag/Outer-Tag of the secondary connection, + a numeric character ranging from 2 - 4094. S-Tag/Outer-Tag + of the connection, a numeric character ranging from 2 + - 4094 type: number required: - name type: object type: array sellerMetroCode: - description: The metro code that denotes the connection's remote - side (z-side) + description: The metro code that denotes the connection’s remote/destination + side (z-side). The metro code that denotes the connection's + remote side (z-side) type: string sellerRegion: - description: The region in which the seller port resides + description: The region in which the seller port resides. The + region in which the seller port resides type: string serviceToken: - description: Unique Equinix Fabric key given by a provider that - grants you authorization to enable connectivity from a shared - multi-tenant port (a-side) + description: '- A-side service tokens authorize you to create + a connection from a customer port, which created the token for + you, to a service profile or your own port. More details in + A-Side Fabric Service Tokens. Unique Equinix Fabric key given + by a provider that grants you authorization to enable connectivity + from a shared multi-tenant port (a-side)' type: string speed: - description: Speed/Bandwidth to be allocated to the connection + description: Speed/Bandwidth to be allocated to the connection. + Speed/Bandwidth to be allocated to the connection type: number speedUnit: description: Unit of the speed/bandwidth to be allocated to the + connection. Unit of the speed/bandwidth to be allocated to the connection type: string vlanCtag: - description: C-Tag/Inner-Tag of the connection, a numeric character - ranging from 2 - 4094 + description: C-Tag/Inner-Tag of the connection - a numeric character + ranging from 2 - 4094. C-Tag/Inner-Tag of the connection, a + numeric character ranging from 2 - 4094 type: number vlanStag: - description: S-Tag/Outer-Tag of the connection, a numeric character - ranging from 2 - 4094 + description: S-Tag/Outer-Tag of the connection - a numeric character + ranging from 2 - 4094. S-Tag/Outer-Tag of the connection, a + numeric character ranging from 2 - 4094 type: number zsidePortUuid: - description: Unique identifier of the port on the remote side - (z-side) + description: Unique identifier of the port on the remote/destination + side (z-side). Allows you to connect between your own ports + or virtual devices across your company's Equinix Fabric deployment, + with no need for a private service profile. Unique identifier + of the port on the remote side (z-side) type: string zsideServiceToken: - description: Unique Equinix Fabric key given by a provider that - grants you authorization to enable connectivity to a shared - multi-tenant port (z-side) + description: '- Z-side service tokens authorize you to create + a connection from your port or virtual device to a customer + port which created the token for you. zside_service_token cannot + be used with secondary_connection. More details in Z-Side Fabric + Service Tokens. Unique Equinix Fabric key given by a provider + that grants you authorization to enable connectivity to a shared + multi-tenant port (z-side)' type: string zsideVlanCtag: - description: C-Tag/Inner-Tag of the connection on the remote side - (z-side) + description: C-Tag/Inner-Tag of the connection on the remote/destination + side (z-side) - a numeric character ranging from 2 - 4094. secondary_connection + is defined it will internally use same zside_vlan_ctag for the + secondary connection. C-Tag/Inner-Tag of the connection on the + remote side (z-side) type: number zsideVlanStag: - description: S-Tag/Outer-Tag of the connection on the remote side - (z-side) + description: S-Tag/Outer-Tag of the connection on the remote/destination + side (z-side) - a numeric character ranging from 2 - 4094. S-Tag/Outer-Tag + of the connection on the remote side (z-side) type: number required: - name @@ -264,6 +388,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -275,6 +424,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -294,6 +468,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -356,6 +555,9 @@ spec: atProvider: properties: actions: + description: One or more pending actions to complete connection + provisioning. One or more pending actions to complete connection + provisioning items: properties: message: @@ -374,6 +576,7 @@ spec: validationPattern: type: string value: + description: additional information value type: string type: object type: array @@ -384,17 +587,34 @@ spec: id: type: string providerStatus: + description: Connection provisioning status on service provider's + side. Connection provisioning status on service provider's side type: string redundancyGroup: + description: Unique identifier of group containing a primary and + secondary connection. Unique identifier of group containing + a primary and secondary connection type: string redundancyType: + description: Connection redundancy type, applicable for HA connections. + Valid values are PRIMARY, SECONDARY. Connection redundancy type, + applicable for HA connections. Either primary or secondary type: string redundantUuid: + description: Unique identifier of the redundant connection, applicable + for HA connections. Unique identifier of the redundant connection, + applicable for HA connections type: string secondaryConnection: + description: Definition of secondary connection for redundant, + HA connectivity. See Secondary Connection below for more details. + Definition of secondary connection for redundant, HA connectivity items: properties: actions: + description: One or more pending actions to complete connection + provisioning. One or more pending actions to complete + connection provisioning items: properties: message: @@ -413,6 +633,7 @@ spec: validationPattern: type: string value: + description: additional information value type: string type: object type: array @@ -421,32 +642,80 @@ spec: type: object type: array providerStatus: + description: Connection provisioning status on service provider's + side. Connection provisioning status on service provider's + side type: string redundancyGroup: + description: Unique identifier of group containing a primary + and secondary connection. Unique identifier of group containing + a primary and secondary connection type: string redundancyType: + description: Connection redundancy type, applicable for + HA connections. Valid values are PRIMARY, SECONDARY. Connection + redundancy type, applicable for HA connections. Either + primary or secondary type: string redundantUuid: + description: Unique identifier of the redundant connection, + applicable for HA connections. Unique identifier of the + redundant connection, applicable for HA connections type: string status: + description: Connection provisioning status on Equinix Fabric + side. Connection provisioning status on Equinix Fabric + side type: string uuid: + description: Unique identifier of the connection. Unique + identifier of the connection type: string vendorToken: + description: The Equinix Fabric Token the connection was + created with. Applicable if the connection was created + with a service_token (a-side) or zside_service_token (z-side). + The Equinix Fabric Token the connection was created with. + Applicable if the connection was created with a ServiceToken + (a-side) or ZSideServiceToken (z-side) type: string zsidePortUuid: + description: Unique identifier of the port on the remote/destination + side (z-side). Allows you to connect between your own + ports or virtual devices across your company's Equinix + Fabric deployment, with no need for a private service + profile. Unique identifier of the port on the remote side + (z-side) type: string zsideVlanCtag: + description: C-Tag/Inner-Tag of the connection on the remote/destination + side (z-side) - a numeric character ranging from 2 - 4094. + secondary_connection is defined it will internally use + same zside_vlan_ctag for the secondary connection. C-Tag/Inner-Tag + of the connection on the remote side (z-side) type: number zsideVlanStag: + description: S-Tag/Outer-Tag of the connection on the remote/destination + side (z-side) - a numeric character ranging from 2 - 4094. + S-Tag/Outer-Tag of the connection on the remote side (z-side) type: number type: object type: array status: + description: Connection provisioning status on Equinix Fabric + side. Connection provisioning status on Equinix Fabric side type: string uuid: + description: Unique identifier of the connection. Unique identifier + of the connection type: string vendorToken: + description: The Equinix Fabric Token the connection was created + with. Applicable if the connection was created with a service_token + (a-side) or zside_service_token (z-side). The Equinix Fabric + Token the connection was created with. Applicable if the connection + was created with a ServiceToken (a-side) or ZSideServiceToken + (z-side) type: string type: object conditions: diff --git a/package/crds/ecx.equinix.jet.crossplane.io_l2serviceprofiles.yaml b/package/crds/ecx.equinix.jet.crossplane.io_l2serviceprofiles.yaml index 3df1b29..ccaabe9 100644 --- a/package/crds/ecx.equinix.jet.crossplane.io_l2serviceprofiles.yaml +++ b/package/crds/ecx.equinix.jet.crossplane.io_l2serviceprofiles.yaml @@ -12,7 +12,7 @@ spec: categories: - crossplane - managed - - equinixjet + - equinix kind: L2Serviceprofile listKind: L2ServiceprofileList plural: l2serviceprofiles @@ -35,7 +35,7 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: L2Serviceprofile is the Schema for the L2Serviceprofiles API + description: L2Serviceprofile is the Schema for the L2Serviceprofiles API. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -64,49 +64,69 @@ spec: forProvider: properties: apiIntegration: - description: Specifies the API integration ID that was provided + description: Boolean value that determines if API integration + is enabled. It allows you to complete connection provisioning + in less than five minutes. Without API Integration, additional + manual steps will be required and the provisioning will likely + take longer. Specifies the API integration ID that was provided to the customer during onboarding type: boolean authkeyLabel: description: Name of the authentication key label to be used by - the Authentication Key service + the Authentication Key service. It allows Service Providers + with QinQ ports to accept groups of connections or VLANs from + Dot1q customers. This is similar to S-Tag/C-Tag capabilities. + Name of the authentication key label to be used by the Authentication + Key service type: string bandwidthAlertThreshold: description: Specifies the port bandwidth threshold percentage. + If the bandwidth limit is met or exceeded, an alert is sent + to the seller. Specifies the port bandwidth threshold percentage. If the bandwidth limit is met or exceeded, an alert is sent to the seller type: number bandwidthThresholdNotifications: description: A list of email addresses that will receive notifications - about bandwidth thresholds + about bandwidth thresholds. A list of email addresses that will + receive notifications about bandwidth thresholds items: type: string type: array connectionNameLabel: - description: Custom name used for calling a connections i.e. circuit. - Defaults to Connection + description: Custom name used for calling a connections e.g. circuit. + Defaults to Connection. Custom name used for calling a connections + i.e. circuit. Defaults to Connection type: string ctagLabel: - description: C-Tag/Inner-Tag label name for the connections + description: C-Tag/Inner-Tag label name for the connections. C-Tag/Inner-Tag + label name for the connections type: string description: - description: Description of the service profile + description: Description of the service profile. Description of + the service profile type: string equinixManagedPortVlan: - description: Boolean value that indicates whether the port and - VLAN details are managed by Equinix + description: Applicable when api_integration is set to true. It + indicates whether the port and VLAN details are managed by Equinix. + Boolean value that indicates whether the port and VLAN details + are managed by Equinix type: boolean features: - description: Block of profile features configuration + description: Block of profile features configuration. See Features + below for more details. Block of profile features configuration items: properties: allowRemoteConnections: description: Indicates whether or not connections to this - profile can be created from remote metro locations + profile can be created from remote metro locations. Indicates + whether or not connections to this profile can be created + from remote metro locations type: boolean testProfile: - description: Indicates whether or not this profile can be - used for test connections + description: (Deprecated) Indicates whether or not this + profile can be used for test connections. Indicates whether + or not this profile can be used for test connections type: boolean required: - allowRemoteConnections @@ -114,31 +134,49 @@ spec: type: array integrationId: description: Specifies the API integration ID that was provided - to the customer during onboarding + to the customer during onboarding. You can validate your API + integration ID using the validateIntegrationId API. Specifies + the API integration ID that was provided to the customer during + onboarding type: string name: description: Name of the service profile. An alpha-numeric 50 - characters string which can include only hyphens and underscores + characters string which can include only hyphens and underscores. + Name of the service profile. An alpha-numeric 50 characters + string which can include only hyphens and underscores type: string oversubscription: - description: Oversubscription limit that will cause alerting. + description: You can set an alert for when a percentage of your + profile has been sold. Service providers like to use this functionality + to alert them when they need to add more ports or when they + need to create a new service profile. Required with oversubscription_allowed, + defaults to 1x. Oversubscription limit that will cause alerting. Default is 1x type: string oversubscriptionAllowed: description: Boolean value that determines if, regardless of the utilization, Equinix Fabric will continue to add connections - to your links until we reach the oversubscription limit + to your links until we reach the oversubscription limit. By + selecting this service, you acknowledge that you will manage + decisions on when to increase capacity on these link. Boolean + value that determines if, regardless of the utilization, Equinix + Fabric will continue to add connections to your links until + we reach the oversubscription limit type: boolean port: - description: One or more definitions of ports associated with - the profile + description: One or more definitions of ports residing in locations, + from which your customers will be able to access services using + this service profile. See Port below for more details. One or + more definitions of ports associated with the profile items: properties: metroCode: - description: Port location metro code + description: The metro code of location where the port resides. + Port location metro code type: string uuid: - description: Unique identifier of the port + description: Unique identifier of the port. Unique identifier + of the port type: string required: - metroCode @@ -147,45 +185,61 @@ spec: type: array private: description: Boolean value that indicates whether or not this - is a private profile. + is a private profile, i.e. not public like AWS/Azure/Oracle/Google, + etc. If private, it can only be available for creating connections + if correct permissions are granted. Boolean value that indicates + whether or not this is a private profile. type: boolean privateUserEmails: - description: A list of email addresses associated to users that - will be allowed to access this service profile. Applicable for - private profiles + description: An array of users email ids who have permission to + access this service profile. Argument is required when profile + is set as private. A list of email addresses associated to users + that will be allowed to access this service profile. Applicable + for private profiles items: type: string type: array profileStatuschangeNotifications: description: A list of email addresses that will receive notifications - about profile status changes + about profile status changes. A list of email addresses that + will receive notifications about profile status changes items: type: string type: array redundancyRequired: - description: Boolean value that determines if yourconnections - will require redundancy + description: Boolean value that determines if your connections + will require redundancy. if yes, then users need to create a + secondary redundant connection. Boolean value that determines + if yourconnections will require redundancy type: boolean secondaryVlanFromPrimary: - description: Indicates whether the VLAN ID of the secondary connection - is the same as the primary connection + description: Indicates whether the VLAN ID of. the secondary connection + is the same as the primary connection. Indicates whether the + VLAN ID of the secondary connection is the same as the primary + connection type: boolean servicekeyAutogenerated: description: Boolean value that indicates whether multiple connections - can be created with the same authorization key + can be created with the same authorization key to connect to + this service profile after the first connection has been approved + by the seller. Boolean value that indicates whether multiple + connections can be created with the same authorization key type: boolean speedBand: - description: One or more definitions of supported speed/bandwidth - configurations + description: One or more definitions of supported speed/bandwidth. + Argument is required when speed_from_api is set to false. See + Speed Band below for more details. One or more definitions of + supported speed/bandwidth configurations items: properties: speed: - description: Speed/bandwidth supported by given service - profile + description: Speed/bandwidth supported by this service profile. + Speed/bandwidth supported by given service profile type: number speedUnit: - description: Unit of the speed/bandwidth supported by given - service profile + description: Unit of the speed/bandwidth supported by this + service profile. One of MB, GB. Unit of the speed/bandwidth + supported by given service profile type: string required: - speed @@ -194,19 +248,27 @@ spec: type: array speedCustomizationAllowed: description: Boolean value that determines if customer is allowed - to enter a custom connection speed + to enter a custom connection speed. Boolean value that determines + if customer is allowed to enter a custom connection speed type: boolean speedFromApi: description: Boolean valuta that determines if connection speed - will be derived from an API call + will be derived from an API call. Argument has to be specified + when api_integration is enabled. Boolean valuta that determines + if connection speed will be derived from an API call type: boolean tagType: - description: Specifies additional tagging information required - by the seller profile for Dot1Q to QinQ translation + description: 'Specifies additional tagging information required + by the seller profile for Dot1Q to QinQ translation. See Enhance + Dot1q to QinQ translation support for additional information. + Valid values are: Specifies additional tagging information required + by the seller profile for Dot1Q to QinQ translation' type: string vcStatuschangeNotifications: description: A list of email addresses that will receive notifications - about connections approvals and rejections + about connections approvals and rejections. A list of email + addresses that will receive notifications about connections + approvals and rejections items: type: string type: array @@ -228,6 +290,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -239,6 +326,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -258,6 +370,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -322,8 +459,12 @@ spec: id: type: string state: + description: Service profile provisioning status. Service profile + provisioning status type: string uuid: + description: Unique identifier of the service profile. Unique + identifier of the service profile type: string type: object conditions: diff --git a/package/crds/equinix.jet.crossplane.io_providerconfigusages.yaml b/package/crds/equinix.jet.crossplane.io_providerconfigusages.yaml index 5d4acc1..6122d77 100644 --- a/package/crds/equinix.jet.crossplane.io_providerconfigusages.yaml +++ b/package/crds/equinix.jet.crossplane.io_providerconfigusages.yaml @@ -55,6 +55,29 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this reference + is required. The default is 'Required', which means the reconcile + will fail if the reference cannot be resolved. 'Optional' means + this reference will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should be resolved. + The default is 'IfNotPresent', which will attempt to resolve + the reference only when the corresponding field is not present. + Use 'Always' to resolve the reference on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object diff --git a/package/crds/fabric.equinix.jet.crossplane.io_connections.yaml b/package/crds/fabric.equinix.jet.crossplane.io_connections.yaml index 6fe1bbf..a88b67e 100644 --- a/package/crds/fabric.equinix.jet.crossplane.io_connections.yaml +++ b/package/crds/fabric.equinix.jet.crossplane.io_connections.yaml @@ -12,7 +12,7 @@ spec: categories: - crossplane - managed - - equinixjet + - equinix kind: Connection listKind: ConnectionList plural: connections @@ -35,7 +35,7 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: Connection is the Schema for the Connections API + description: Connection is the Schema for the Connections API. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -504,6 +504,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -515,6 +540,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -534,6 +584,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -596,12 +671,16 @@ spec: atProvider: properties: aSide: + description: Requester or Customer side connection configuration + object of the multi-segment connection items: properties: accessPoint: + description: Point of access details items: properties: account: + description: Account items: properties: accountName: @@ -621,27 +700,35 @@ spec: type: object type: array gateway: + description: Gateway access point information items: properties: href: + description: Unique Resource Identifier type: string type: object type: array interface: + description: Virtual device interface items: properties: id: + description: id type: string type: object type: array port: + description: Port access point information items: properties: href: + description: Unique Resource Identifier type: string name: + description: Port name type: string redundancy: + description: Redundancy Information items: properties: priority: @@ -651,9 +738,11 @@ spec: type: object type: array profile: + description: Service Profile items: properties: accessPointTypeConfigs: + description: Access point config information items: properties: type: @@ -663,34 +752,50 @@ spec: type: object type: array description: + description: User-provided service description type: string href: + description: Service Profile URI response attribute type: string name: + description: Customer-assigned service profile + name type: string type: object type: array virtualDevice: + description: Virtual device items: properties: href: + description: Unique Resource Identifier type: string type: object type: array type: object type: array serviceToken: + description: For service token based connections, Service + tokens authorize users to access protected resources and + services. Resource owners can distribute the tokens to + trusted partners and vendors, allowing selected third + parties to work directly with Equinix network assets items: properties: description: + description: Service token description type: string href: + description: An absolute URL that is the subject of + the link's context type: string type: object type: array type: object type: array account: + description: Customer account information that is associated with + this connection items: properties: accountName: @@ -710,6 +815,7 @@ spec: type: object type: array changeLog: + description: Captures connection lifecycle change information items: properties: createdBy: @@ -739,14 +845,19 @@ spec: type: object type: array direction: + description: Connection directionality from the requester point + of view type: string href: + description: Connection URI information type: string id: type: string isRemote: + description: Connection property derived from access point locations type: boolean operation: + description: Connection type-specific operational data items: properties: equinixStatus: @@ -780,39 +891,52 @@ spec: type: object type: array order: + description: Order related to this connection information items: properties: orderId: + description: Order Identification type: string orderNumber: + description: Order Reference Number type: string type: object type: array project: + description: Project information items: properties: href: + description: Unique Resource URL type: string projectId: + description: Project Id type: string type: object type: array redundancy: + description: Redundancy Information items: properties: group: + description: Redundancy group identifier type: string type: object type: array state: + description: Connection overall state type: string zSide: + description: Destination or Provider side connection configuration + object of the multi-segment connection items: properties: accessPoint: + description: Point of access details items: properties: account: + description: Account items: properties: accountName: @@ -832,27 +956,35 @@ spec: type: object type: array gateway: + description: Gateway access point information items: properties: href: + description: Unique Resource Identifier type: string type: object type: array interface: + description: Virtual device interface items: properties: id: + description: id type: string type: object type: array port: + description: Port access point information items: properties: href: + description: Unique Resource Identifier type: string name: + description: Port name type: string redundancy: + description: Redundancy Information items: properties: priority: @@ -862,9 +994,11 @@ spec: type: object type: array profile: + description: Service Profile items: properties: accessPointTypeConfigs: + description: Access point config information items: properties: type: @@ -874,28 +1008,42 @@ spec: type: object type: array description: + description: User-provided service description type: string href: + description: Service Profile URI response attribute type: string name: + description: Customer-assigned service profile + name type: string type: object type: array virtualDevice: + description: Virtual device items: properties: href: + description: Unique Resource Identifier type: string type: object type: array type: object type: array serviceToken: + description: For service token based connections, Service + tokens authorize users to access protected resources and + services. Resource owners can distribute the tokens to + trusted partners and vendors, allowing selected third + parties to work directly with Equinix network assets items: properties: description: + description: Service token description type: string href: + description: An absolute URL that is the subject of + the link's context type: string type: object type: array diff --git a/package/crds/fabric.equinix.jet.crossplane.io_serviceprofiles.yaml b/package/crds/fabric.equinix.jet.crossplane.io_serviceprofiles.yaml index dc7fa08..a619edd 100644 --- a/package/crds/fabric.equinix.jet.crossplane.io_serviceprofiles.yaml +++ b/package/crds/fabric.equinix.jet.crossplane.io_serviceprofiles.yaml @@ -12,7 +12,7 @@ spec: categories: - crossplane - managed - - equinixjet + - equinix kind: ServiceProfile listKind: ServiceProfileList plural: serviceprofiles @@ -35,7 +35,8 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: ServiceProfile is the Schema for the ServiceProfiles API + description: ServiceProfile is the Schema for the ServiceProfiles API. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -437,6 +438,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -448,6 +474,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -467,6 +518,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -529,13 +605,16 @@ spec: atProvider: properties: accessPointTypeConfigs: + description: Access point config information items: properties: uuid: + description: Colo/Port Uuid type: string type: object type: array changeLog: + description: Captures connection lifecycle change information items: properties: createdBy: @@ -565,19 +644,24 @@ spec: type: object type: array href: + description: Service Profile URI response attribute type: string id: type: string project: + description: Project information items: properties: href: + description: Unique Resource URL type: string projectId: + description: Project Id type: string type: object type: array uuid: + description: Equinix assigned service profile identifier type: string type: object conditions: diff --git a/package/crds/metal.equinix.jet.crossplane.io_bgpsessions.yaml b/package/crds/metal.equinix.jet.crossplane.io_bgpsessions.yaml index db6069d..e06a757 100644 --- a/package/crds/metal.equinix.jet.crossplane.io_bgpsessions.yaml +++ b/package/crds/metal.equinix.jet.crossplane.io_bgpsessions.yaml @@ -12,7 +12,7 @@ spec: categories: - crossplane - managed - - equinixjet + - equinix kind: BGPSession listKind: BGPSessionList plural: bgpsessions @@ -35,7 +35,7 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: BGPSession is the Schema for the BGPSessions API + description: BGPSession is the Schema for the BGPSessions API. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -74,16 +74,41 @@ spec: description: ID of device type: string deviceIdRef: - description: A Reference to a named object. + description: Reference to a Device to populate deviceId. properties: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object deviceIdSelector: - description: A Selector selects an object. + description: Selector for a Device to populate deviceId. properties: matchControllerRef: description: MatchControllerRef ensures an object with the @@ -95,6 +120,31 @@ spec: 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 required: - addressFamily @@ -109,6 +159,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -120,6 +195,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -139,6 +239,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -203,6 +328,7 @@ spec: id: type: string status: + description: Status of the session - up or down type: string type: object conditions: diff --git a/package/crds/metal.equinix.jet.crossplane.io_connections.yaml b/package/crds/metal.equinix.jet.crossplane.io_connections.yaml index ea5b64f..659bba2 100644 --- a/package/crds/metal.equinix.jet.crossplane.io_connections.yaml +++ b/package/crds/metal.equinix.jet.crossplane.io_connections.yaml @@ -12,7 +12,7 @@ spec: categories: - crossplane - managed - - equinixjet + - equinix kind: Connection listKind: ConnectionList plural: connections @@ -35,7 +35,7 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: Connection is the Schema for the Connections API + description: Connection is the Schema for the Connections API. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -64,36 +64,67 @@ spec: forProvider: properties: description: - description: Description of the connection resource + description: Description for the connection resource. Description + of the connection resource type: string facility: - description: Facility where the connection will be created + description: Facility where the connection will be created. Facility + where the connection will be created type: string metro: - description: Metro where the connection will be created + description: Metro where the connection will be created. Metro + where the connection will be created type: string mode: description: Mode for connections in IBX facilities with the dedicated - type - standard or tunnel + type - standard or tunnel. Default is standard. Mode for connections + in IBX facilities with the dedicated type - standard or tunnel type: string name: - description: Name of the connection resource + description: Name of the connection resource Name of the connection + resource type: string organizationId: - description: ID of the organization responsible for the connection. - Applicable with type "dedicated" + description: ID of the organization where the connection is scoped + to. ID of the organization responsible for the connection. Applicable + with type "dedicated" type: string organizationIdRef: - description: A Reference to a named object. + description: Reference to a Organization to populate organizationId. properties: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object organizationIdSelector: - description: A Selector selects an object. + description: Selector for a Organization to populate organizationId. properties: matchControllerRef: description: MatchControllerRef ensures an object with the @@ -105,22 +136,73 @@ spec: description: MatchLabels ensures an object with matching labels is selected. type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object type: object projectId: description: ID of the project where the connection is scoped - to. Required with type "shared" + to, must be set for. ID of the project where the connection + is scoped to. Required with type "shared" type: string projectIdRef: - description: A Reference to a named object. + description: Reference to a Project 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: A Selector selects an object. + description: Selector for a Project to populate projectId. properties: matchControllerRef: description: MatchControllerRef ensures an object with the @@ -132,30 +214,61 @@ spec: 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 redundancy: - description: Connection redundancy - redundant or primary + description: Connection redundancy - redundant or primary. Connection + redundancy - redundant or primary type: string serviceTokenType: description: Only used with shared connection. Type of service + token to use for the connection, a_side or z_side. Type of service token to use for the connection, a_side or z_side type: string speed: - description: Port speed. Allowed values are 50Mbps, 200Mbps, 500Mbps, - 1Gbps, 2Gbps, 5Gbps, 10Gbps + description: Connection speed - one of 50Mbps, 200Mbps, 500Mbps, + 1Gbps, 2Gbps, 5Gbps, 10Gbps. Port speed. Allowed values are + 50Mbps, 200Mbps, 500Mbps, 1Gbps, 2Gbps, 5Gbps, 10Gbps type: string tags: - description: Tags attached to the connection + description: String list of tags. Tags attached to the connection items: type: string type: array type: - description: Connection type - dedicated or shared + description: Connection type - dedicated or shared. Connection + type - dedicated or shared type: string vlans: - description: Only used with shared connection. VLANs to attach. + description: Only used with shared connection. Vlans to attach. Pass one vlan for Primary/Single connection and two vlans for - Redundant connection + Redundant connection. Only used with shared connection. VLANs + to attach. Pass one vlan for Primary/Single connection and two + vlans for Redundant connection items: type: number type: array @@ -175,6 +288,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -186,6 +324,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -205,6 +368,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -269,19 +457,28 @@ spec: id: type: string ports: + description: List of connection ports - primary (ports[0]) and + secondary (ports[1]). Schema of port is described in documentation + of the equinix_metal_connection datasource. List of connection + ports - primary (`ports[0]`) and secondary (`ports[1]`) items: properties: id: type: string linkStatus: + description: Status of the connection resource. type: string name: + description: Name of the connection resource type: string role: type: string speed: + description: Connection speed - one of 50Mbps, 200Mbps, + 500Mbps, 1Gbps, 2Gbps, 5Gbps, 10Gbps. type: number status: + description: Status of the connection resource. type: string virtualCircuitIds: items: @@ -290,6 +487,14 @@ spec: type: object type: array serviceTokens: + description: List of connection service tokens with attributes + required to configure the connection in Equinix Fabric with + the equinix_ecx_l2_connection resource or from the Equinix Fabric + Portal. Scehma of service_token is described in documentation + of the equinix_metal_connection datasource. Only used with shared + connection. List of service tokens required to continue the + setup process with [equinix_ecx_l2_connection](https://registry.io/providers/equinix/equinix/latest/docs/resources/equinix_ecx_l2_connection) + or from the [Equinix Fabric Portal](https://ecxfabric.equinix.com/dashboard) items: properties: expiresAt: @@ -297,18 +502,30 @@ spec: id: type: string maxAllowedSpeed: + description: Connection speed - one of 50Mbps, 200Mbps, + 500Mbps, 1Gbps, 2Gbps, 5Gbps, 10Gbps. type: string role: type: string state: type: string type: + description: Connection type - dedicated or shared. type: string type: object type: array status: + description: Status of the connection resource. Status of the + connection resource type: string token: + description: (Deprecated) Fabric Token required to configure the + connection in Equinix Fabric with the equinix_ecx_l2_connection + resource or from the Equinix Fabric Portal. If your organization + already has connection service tokens enabled, use service_tokens + instead. Only used with shared connection. Fabric Token required + to continue the setup process with [equinix_ecx_l2_connection](https://registry.io/providers/equinix/equinix/latest/docs/resources/equinix_ecx_l2_connection) + or from the [Equinix Fabric Portal](https://ecxfabric.equinix.com/dashboard) type: string type: object conditions: diff --git a/package/crds/metal.equinix.jet.crossplane.io_devicenetworktypes.yaml b/package/crds/metal.equinix.jet.crossplane.io_devicenetworktypes.yaml index 40df7b0..cff8b26 100644 --- a/package/crds/metal.equinix.jet.crossplane.io_devicenetworktypes.yaml +++ b/package/crds/metal.equinix.jet.crossplane.io_devicenetworktypes.yaml @@ -12,7 +12,7 @@ spec: categories: - crossplane - managed - - equinixjet + - equinix kind: DeviceNetworkType listKind: DeviceNetworkTypeList plural: devicenetworktypes @@ -35,7 +35,8 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: DeviceNetworkType is the Schema for the DeviceNetworkTypes API + description: DeviceNetworkType is the Schema for the DeviceNetworkTypes API. + properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -68,16 +69,41 @@ spec: be set type: string deviceIdRef: - description: A Reference to a named object. + description: Reference to a Device to populate deviceId. properties: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object deviceIdSelector: - description: A Selector selects an object. + description: Selector for a Device to populate deviceId. properties: matchControllerRef: description: MatchControllerRef ensures an object with the @@ -89,6 +115,31 @@ spec: description: MatchLabels ensures an object with matching labels is selected. type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object type: object type: description: Network type to set. Must be one of layer3, hybrid, @@ -107,6 +158,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -118,6 +194,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -137,6 +238,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object diff --git a/package/crds/metal.equinix.jet.crossplane.io_devices.yaml b/package/crds/metal.equinix.jet.crossplane.io_devices.yaml index 56e1027..707dbe9 100644 --- a/package/crds/metal.equinix.jet.crossplane.io_devices.yaml +++ b/package/crds/metal.equinix.jet.crossplane.io_devices.yaml @@ -12,7 +12,7 @@ spec: categories: - crossplane - managed - - equinixjet + - equinix kind: Device listKind: DeviceList plural: devices @@ -35,7 +35,7 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: Device is the Schema for the Devices API + description: Device is the Schema for the Devices API. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -64,13 +64,16 @@ spec: forProvider: properties: alwaysPxe: - description: If true, a device with OS custom_ipxe will + description: If true, a device with OS custom_ipxe will continue + to boot via iPXE on reboots. If true, a device with OS custom_ipxe + will type: boolean billingCycle: - description: monthly or hourly + description: monthly or hourly monthly or hourly type: string customDataSecretRef: - description: A string of the desired Custom Data for the device + description: A string of the desired Custom Data for the device. + A string of the desired Custom Data for the device properties: key: description: The key to select. @@ -87,10 +90,17 @@ spec: - namespace type: object description: - description: Description string for the device + description: The device description. Description string for the + device type: string facilities: description: List of facility codes with deployment preferences. + Equinix Metal API will go through the list and will deploy your + device to first facility with free capacity. List items must + be facility codes or any (a wildcard). To find the facility + code, visit Facilities API docs, set your API auth token in + the top of the page and see JSON from the API response. Conflicts + with metro. List of facility codes with deployment preferences. Equinix Metal API will go through the list and will deploy your device to first facility with free capacity. List items must be facility codes or any (a wildcard). To find the facility @@ -102,69 +112,127 @@ spec: type: array forceDetachVolumes: description: Delete device even if it has volumes attached. Only - applies for destroy action + applies for destroy action. Delete device even if it has volumes + attached. Only applies for destroy action type: boolean hardwareReservationId: - description: The UUID of the hardware reservation where you want + description: 'The UUID of the hardware reservation where you want this device deployed, or next-available if you want to pick - your next available reservation automatically + your next available reservation automatically. Changing this + from a reservation UUID to next-available will re-create the + device in another reservation. Please be careful when using + hardware reservation UUID and next-available together for the + same pool of reservations. It might happen that the reservation + which Equinix Metal API will pick as next-available is the reservation + which you refer with UUID in another equinix_metal_device resource. + If that happens, and the equinix_metal_device with the UUID + is created later, resource creation will fail because the reservation + is already in use (by the resource created with next-available). + To workaround this, have the next-available resource explicitly + depend_on the resource with hardware reservation UUID, so that + the latter is created first. For more details, see issue #176. + The UUID of the hardware reservation where you want this device + deployed, or next-available if you want to pick your next available + reservation automatically' type: string hostname: description: The device hostname used in deployments taking advantage - of Layer3 DHCP or metadata service configuration. + of Layer3 DHCP or metadata service configuration. The device + hostname used in deployments taking advantage of Layer3 DHCP + or metadata service configuration. type: string ipAddress: - description: A list of IP address types for the device (structure - is documented below) + description: A list of IP address types for the device. See IP + address below for more details. A list of IP address types for + the device (structure is documented below) items: properties: cidr: - description: CIDR suffix for IP block assigned to this device + description: CIDR suffix for IP address block to be assigned, + i.e. amount of addresses. CIDR suffix for IP block assigned + to this device type: number reservationIds: - description: IDs of reservations to pick the blocks from + description: List of UUIDs of IP block reservations from + which the public IPv4 address should be taken. IDs of + reservations to pick the blocks from items: type: string type: array type: - description: one of public_ipv4,private_ipv4,public_ipv6 + description: One of private_ipv4, public_ipv4, public_ipv6. + one of public_ipv4,private_ipv4,public_ipv6 type: string required: - type type: object type: array ipxeScriptUrl: - description: URL pointing to a hosted iPXE script. More + description: URL pointing to a hosted iPXE script. More information + is in the Custom iPXE doc. URL pointing to a hosted iPXE script. + More type: string metro: - description: Metro area for the new device. Conflicts with facilities + description: Metro area for the new device. Conflicts with facilities. + Metro area for the new device. Conflicts with facilities type: string operatingSystem: description: The operating system slug. To find the slug, or visit - [Operating Systems API docs](https://metal.equinix.com/developers/api/operatingsystems), + Operating Systems API docs, set your API auth token in the top + of the page and see JSON from the API response. The operating + system slug. To find the slug, or visit [Operating Systems API + docs](https://metal.equinix.com/developers/api/operatingsystems), set your API auth token in the top of the page and see JSON from the API response type: string plan: description: The device plan slug. To find the plan slug, visit - [Device plans API docs](https://metal.equinix.com/developers/api/plans), + Device plans API docs, set your auth token in the top of the + page and see JSON from the API response. The device plan slug. + To find the plan slug, visit [Device plans API docs](https://metal.equinix.com/developers/api/plans), set your auth token in the top of the page and see JSON from the API response type: string projectId: description: The ID of the project in which to create the device + The ID of the project in which to create the device type: string projectIdRef: - description: A Reference to a named object. + description: Reference to a Project 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: A Selector selects an object. + description: Selector for a Project to populate projectId. properties: matchControllerRef: description: MatchControllerRef ensures an object with the @@ -176,9 +244,39 @@ spec: 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 projectSshKeyIds: description: Array of IDs of the project SSH keys which should + be added to the device. If you omit this, SSH keys of all the + members of the parent project will be added to the device. If + you specify this array, only the listed project SSH keys will + be added. Project SSH keys can be created with the equinix_metal_project_ssh_key + resource. Array of IDs of the project SSH keys which should be added to the device. If you omit this, SSH keys of all the members of the parent project will be added to the device. If you specify this array, only the listed project SSH keys (and @@ -189,40 +287,55 @@ spec: type: string type: array reinstall: + description: Whether the device should be reinstalled instead + of destroyed when modifying user_data, custom_data, or operating + system. See Reinstall below for more details. items: properties: deprovisionFast: - description: Whether the OS disk should be filled with `00h` - bytes before reinstall + description: Whether the OS disk should be filled with 00h + bytes before reinstall. Defaults to false. Whether the + OS disk should be filled with `00h` bytes before reinstall type: boolean enabled: - description: Whether the device should be reinstalled instead - of destroyed + description: Whether the provider should favour reinstall + over destroy and create. Defaults to false. Whether the + device should be reinstalled instead of destroyed type: boolean preserveData: description: Whether the non-OS disks should be kept or - wiped during reinstall + wiped during reinstall. Defaults to false. Whether the + non-OS disks should be kept or wiped during reinstall type: boolean type: object type: array storage: description: JSON for custom partitioning. Only usable on reserved + hardware. More information in in the Custom Partitioning and + RAID doc. Please note that the disks.partitions.size attribute + must be a string, not an integer. It can be a number string, + or size notation string, e.g. "4G" or "8M" (for gigabytes and + megabytes). JSON for custom partitioning. Only usable on reserved hardware. More information in in the [Custom Partitioning and RAID](https://metal.equinix.com/developers/docs/servers/custom-partitioning-raid/) doc type: string tags: - description: Tags attached to the device + description: Tags attached to the device. Tags attached to the + device items: type: string type: array terminationTime: - description: Timestamp for device termination. For example "2021-09-03T16:32:00+03:00". + description: Timestamp for device termination. For example 2021-09-03T16:32:00+03:00. + If you don't supply timezone info, timestamp is assumed to be + in UTC. Timestamp for device termination. For example "2021-09-03T16:32:00+03:00". If you don't supply timezone info, timestamp is assumed to be in UTC. type: string userDataSecretRef: - description: A string of the desired User Data for the device + description: A string of the desired User Data for the device. + A string of the desired User Data for the device properties: key: description: The key to select. @@ -243,6 +356,11 @@ spec: added to the device. If you omit this, SSH keys of all the members of the parent project will be added to the device. If you specify this array, only the listed user SSH keys (and any project_ssh_key_ids) + will be added. User SSH keys can be created with the equinix_metal_ssh_key + resource Array of IDs of the user SSH keys which should be added + to the device. If you omit this, SSH keys of all the members + of the parent project will be added to the device. If you specify + this array, only the listed user SSH keys (and any project_ssh_key_ids) will be added. User SSH keys can be created with the [equinix_metal_ssh_key](equinix_metal_ssh_key.md) resource items: @@ -251,7 +369,10 @@ spec: waitForReservationDeprovision: description: Only used for devices in reserved hardware. If set, the deletion of this device will block until the hardware reservation - is marked provisionable (about 4 minutes in August 2019) + is marked provisionable (about 4 minutes in August 2019). Only + used for devices in reserved hardware. If set, the deletion + of this device will block until the hardware reservation is + marked provisionable (about 4 minutes in August 2019) type: boolean required: - operatingSystem @@ -267,6 +388,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -278,6 +424,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -297,6 +468,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -359,60 +555,111 @@ spec: atProvider: properties: accessPrivateIpv4: + description: The ipv4 private IP assigned to the device. The ipv4 + private IP assigned to the device type: string accessPublicIpv4: + description: The ipv4 maintenance IP assigned to the device. The + ipv4 maintenance IP assigned to the device type: string accessPublicIpv6: + description: The ipv6 maintenance IP assigned to the device. The + ipv6 maintenance IP assigned to the device type: string created: + description: The timestamp for when the device was created. The + timestamp for when the device was created type: string deployedFacility: + description: The facility where the device is deployed. The facility + where the device is deployed type: string deployedHardwareReservationId: + description: ID of hardware reservation where this device was + deployed. It is useful when using the next-available hardware + reservation. ID of hardware reservation where this device was + deployed. It is useful when using the next-available hardware + reservation type: string id: + description: The ID of the device. type: string locked: + description: Whether the device is locked. Whether the device + is locked type: boolean network: + description: 'The device''s private and public IP (v4 and v6) + network details. See Network Attribute below for more details. + The device''s private and public IP (v4 and v6) network details. + When a device is run without any special network configuration, + it will have 3 addresses: public ipv4, private ipv4 and ipv6' items: properties: address: + description: IPv4 or IPv6 address string. type: string cidr: + description: CIDR suffix for IP address block to be assigned, + i.e. amount of addresses. type: number family: + description: IP version. One of 4, 6. type: number gateway: + description: Address of router. type: string public: + description: Whether the address is routable from the Internet. type: boolean type: object type: array networkType: + description: (Deprecated) Network type of a device, used in Layer + 2 networking. Since this attribute is deprecated you should + handle Network Type with one of equinix_metal_port, equinix_metal_device_network_type + resources or equinix_metal_port datasource. See network_types + guide for more info. Network type of a device, used in [Layer + 2 networking](https://metal.equinix.com/developers/docs/networking/layer2/). + Will be one of layer3, hybrid, hybrid-bonded, layer2-individual, + layer2-bonded type: string ports: + description: List of ports assigned to the device. See Ports Attribute + below for more details. Ports assigned to the device items: properties: bonded: + description: Whether this port is part of a bond in bonded + network setup. type: boolean id: + description: The ID of the device. type: string mac: + description: MAC address assigned to the port. type: string name: + description: Name of the port (e.g. eth0, or bond0). type: string type: + description: Type of the port (e.g. NetworkPort or NetworkBondPort). type: string type: object type: array sshKeyIds: + description: List of IDs of SSH keys deployed in the device, can + be both user and project SSH keys. List of IDs of SSH keys deployed + in the device, can be both user and project SSH keys items: type: string type: array state: + description: The status of the device. The status of the device type: string updated: + description: The timestamp for the last time the device was updated. + The timestamp for the last time the device was updated type: string type: object conditions: diff --git a/package/crds/metal.equinix.jet.crossplane.io_gateways.yaml b/package/crds/metal.equinix.jet.crossplane.io_gateways.yaml index 7330400..f42260f 100644 --- a/package/crds/metal.equinix.jet.crossplane.io_gateways.yaml +++ b/package/crds/metal.equinix.jet.crossplane.io_gateways.yaml @@ -12,7 +12,7 @@ spec: categories: - crossplane - managed - - equinixjet + - equinix kind: Gateway listKind: GatewayList plural: gateways @@ -35,7 +35,7 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: Gateway is the Schema for the Gateways API + description: Gateway is the Schema for the Gateways API. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -68,16 +68,41 @@ spec: must be in the same metro as the VLAN type: string ipReservationIdRef: - description: A Reference to a named object. + description: Reference to a ReservedIPBlock to populate ipReservationId. properties: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object ipReservationIdSelector: - description: A Selector selects an object. + description: Selector for a ReservedIPBlock to populate ipReservationId. properties: matchControllerRef: description: MatchControllerRef ensures an object with the @@ -89,6 +114,31 @@ spec: 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 privateIpv4SubnetSize: description: Size of the private IPv4 subnet to create for this @@ -98,16 +148,41 @@ spec: description: UUID of the Project where the Gateway is scoped to type: string projectIdRef: - description: A Reference to a named object. + description: Reference to a Project 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: A Selector selects an object. + description: Selector for a Project to populate projectId. properties: matchControllerRef: description: MatchControllerRef ensures an object with the @@ -119,21 +194,71 @@ spec: 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 vlanId: description: UUID of the VLAN to associate type: string vlanIdRef: - description: A Reference to a named object. + description: Reference to a Vlan to populate vlanId. properties: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object vlanIdSelector: - description: A Selector selects an object. + description: Selector for a Vlan to populate vlanId. properties: matchControllerRef: description: MatchControllerRef ensures an object with the @@ -145,6 +270,31 @@ spec: 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 providerConfigRef: @@ -157,6 +307,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -168,6 +343,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -187,6 +387,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -251,8 +476,10 @@ spec: id: type: string state: + description: Status of the gateway resource type: string vrfId: + description: UUID of the VRF associated with the IP Reservation type: string type: object conditions: diff --git a/package/crds/metal.equinix.jet.crossplane.io_ipattachments.yaml b/package/crds/metal.equinix.jet.crossplane.io_ipattachments.yaml index 3946994..bb9f760 100644 --- a/package/crds/metal.equinix.jet.crossplane.io_ipattachments.yaml +++ b/package/crds/metal.equinix.jet.crossplane.io_ipattachments.yaml @@ -12,7 +12,7 @@ spec: categories: - crossplane - managed - - equinixjet + - equinix kind: IPAttachment listKind: IPAttachmentList plural: ipattachments @@ -35,7 +35,7 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: IPAttachment is the Schema for the IPAttachments API + description: IPAttachment is the Schema for the IPAttachments API. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -68,16 +68,41 @@ spec: deviceId: type: string deviceIdRef: - description: A Reference to a named object. + description: Reference to a Device to populate deviceId. properties: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object deviceIdSelector: - description: A Selector selects an object. + description: Selector for a Device to populate deviceId. properties: matchControllerRef: description: MatchControllerRef ensures an object with the @@ -89,6 +114,31 @@ spec: 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 required: - cidrNotation @@ -103,6 +153,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -114,6 +189,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -133,6 +233,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -197,12 +322,16 @@ spec: address: type: string addressFamily: + description: Address family as integer (4 or 6) type: number cidr: + description: Length of CIDR prefix of the block as integer type: number gateway: type: string global: + description: Flag indicating whether IP block is global, i.e. + assignable in any location type: boolean id: type: string @@ -211,10 +340,14 @@ spec: management: type: boolean netmask: + description: Mask in decimal notation, e.g. 255.255.255.0 type: string network: + description: Network IP address portion of the block specification type: string public: + description: Flag indicating whether IP block is addressable from + the Internet type: boolean vrfId: type: string diff --git a/package/crds/metal.equinix.jet.crossplane.io_organizationmembers.yaml b/package/crds/metal.equinix.jet.crossplane.io_organizationmembers.yaml index 9a3f680..055f6dc 100644 --- a/package/crds/metal.equinix.jet.crossplane.io_organizationmembers.yaml +++ b/package/crds/metal.equinix.jet.crossplane.io_organizationmembers.yaml @@ -12,7 +12,7 @@ spec: categories: - crossplane - managed - - equinixjet + - equinix kind: OrganizationMember listKind: OrganizationMemberList plural: organizationmembers @@ -36,7 +36,7 @@ spec: schema: openAPIV3Schema: description: OrganizationMember is the Schema for the OrganizationMembers - API + API. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -65,26 +65,53 @@ spec: forProvider: properties: invitee: - description: The email address of the user to invite + description: The email address of the user to invite The email + address of the user to invite type: string message: - description: A message to the invitee (only used during the invitation - stage) + description: A message to include in the emailed invitation. A + message to the invitee (only used during the invitation stage) type: string organizationId: - description: The organization to invite the user to + description: The organization to invite the user to The organization + to invite the user to type: string organizationIdRef: - description: A Reference to a named object. + description: Reference to a Organization to populate organizationId. properties: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object organizationIdSelector: - description: A Selector selects an object. + description: Selector for a Organization to populate organizationId. properties: matchControllerRef: description: MatchControllerRef ensures an object with the @@ -96,15 +123,43 @@ spec: 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 projectsIds: description: Project IDs the member has access to within the organization. + If the member is an 'admin', the projects list should be empty. + Project IDs the member has access to within the organization. If the member is an 'owner', the projects list should be empty. items: type: string type: array roles: - description: Organization roles (owner, collaborator, limited_collaborator, + description: Organization roles (admin, collaborator, limited_collaborator, + billing) Organization roles (owner, collaborator, limited_collaborator, billing) items: type: string @@ -124,6 +179,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -135,6 +215,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -154,6 +259,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -216,16 +346,33 @@ spec: atProvider: properties: created: + description: When the invitation was created (only known in the + invitation stage) When the invitation was created (only known + in the invitation stage) type: string id: + description: The unique ID of the membership. type: string invitedBy: + description: The user_id of the user that sent the invitation + (only known in the invitation stage) The user id of the user + that sent the invitation (only known in the invitation stage) type: string nonce: + description: The nonce for the invitation (only known in the invitation + stage) The nonce for the invitation (only known in the invitation + stage) type: string state: + description: The state of the membership ('invited' when an invitation + is open, 'active' when the user is an organization member) The + state of the membership ('invited' when an invitation is open, + 'active' when the user is an organization member) type: string updated: + description: When the invitation was updated (only known in the + invitation stage) When the invitation was updated (only known + in the invitation stage) type: string type: object conditions: diff --git a/package/crds/metal.equinix.jet.crossplane.io_organizations.yaml b/package/crds/metal.equinix.jet.crossplane.io_organizations.yaml index ab3dd56..d04d461 100644 --- a/package/crds/metal.equinix.jet.crossplane.io_organizations.yaml +++ b/package/crds/metal.equinix.jet.crossplane.io_organizations.yaml @@ -12,7 +12,7 @@ spec: categories: - crossplane - managed - - equinixjet + - equinix kind: Organization listKind: OrganizationList plural: organizations @@ -35,7 +35,7 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: Organization is the Schema for the Organizations API + description: Organization is the Schema for the Organizations API. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -64,24 +64,26 @@ spec: forProvider: properties: address: - description: Address information block + description: An object that has the address information. See Address + below for more details. Address information block items: properties: address: - description: Postal address + description: Postal address. Postal address type: string city: - description: City name + description: City name. City name type: string country: description: Two letter country code (ISO 3166-1 alpha-2), + e.g. US. Two letter country code (ISO 3166-1 alpha-2), e.g. US type: string state: - description: State name + description: State name. State name type: string zipCode: - description: Zip Code + description: Zip Code. Zip Code type: string required: - address @@ -91,19 +93,19 @@ spec: type: object type: array description: - description: Description string + description: Description string. Description string type: string logo: - description: Logo URL + description: Logo URL. Logo URL type: string name: - description: The name of the Organization + description: The name of the Organization. The name of the Organization type: string twitter: - description: Twitter handle + description: Twitter handle. Twitter handle type: string website: - description: Website link + description: Website link. Website link type: string required: - address @@ -119,6 +121,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -130,6 +157,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -149,6 +201,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -211,10 +288,14 @@ spec: atProvider: properties: created: + description: The timestamp for when the organization was created. type: string id: + description: The unique ID of the organization. type: string updated: + description: The timestamp for the last time the organization + was updated. type: string type: object conditions: diff --git a/package/crds/metal.equinix.jet.crossplane.io_ports.yaml b/package/crds/metal.equinix.jet.crossplane.io_ports.yaml index ac8986a..e41b6a5 100644 --- a/package/crds/metal.equinix.jet.crossplane.io_ports.yaml +++ b/package/crds/metal.equinix.jet.crossplane.io_ports.yaml @@ -12,7 +12,7 @@ spec: categories: - crossplane - managed - - equinixjet + - equinix kind: Port listKind: PortList plural: ports @@ -35,7 +35,7 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: Port is the Schema for the Ports API + description: Port is the Schema for the Ports API. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -74,16 +74,41 @@ spec: description: UUID of native VLAN of the port type: string nativeVlanIdRef: - description: A Reference to a named object. + description: Reference to a Vlan to populate nativeVlanId. properties: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object nativeVlanIdSelector: - description: A Selector selects an object. + description: Selector for a Vlan to populate nativeVlanId. properties: matchControllerRef: description: MatchControllerRef ensures an object with the @@ -95,6 +120,31 @@ spec: 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 portId: description: UUID of the port to lookup @@ -128,6 +178,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -139,6 +214,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -158,6 +258,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -220,20 +345,30 @@ spec: atProvider: properties: bondId: + description: UUID of the bond port type: string bondName: + description: Name of the bond port type: string disbondSupported: + description: Flag indicating whether the port can be removed from + a bond type: boolean id: type: string mac: + description: MAC address of the port type: string name: + description: Name of the port to look up, e.g. bond0, eth1 type: string networkType: + description: One of layer2-bonded, layer2-individual, layer3, + hybrid and hybrid-bonded. This attribute is only set on bond + ports. type: string type: + description: Port type type: string type: object conditions: diff --git a/package/crds/metal.equinix.jet.crossplane.io_portvlanattachments.yaml b/package/crds/metal.equinix.jet.crossplane.io_portvlanattachments.yaml index b12bb90..4882e2d 100644 --- a/package/crds/metal.equinix.jet.crossplane.io_portvlanattachments.yaml +++ b/package/crds/metal.equinix.jet.crossplane.io_portvlanattachments.yaml @@ -12,7 +12,7 @@ spec: categories: - crossplane - managed - - equinixjet + - equinix kind: PortVlanAttachment listKind: PortVlanAttachmentList plural: portvlanattachments @@ -36,7 +36,7 @@ spec: schema: openAPIV3Schema: description: PortVlanAttachment is the Schema for the PortVlanAttachments - API + API. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -68,16 +68,41 @@ spec: description: ID of device to be assigned to the VLAN type: string deviceIdRef: - description: A Reference to a named object. + description: Reference to a Device to populate deviceId. properties: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object deviceIdSelector: - description: A Selector selects an object. + description: Selector for a Device to populate deviceId. properties: matchControllerRef: description: MatchControllerRef ensures an object with the @@ -89,6 +114,31 @@ spec: 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 forceBond: description: Add port back to the bond when this resource is removed. @@ -121,6 +171,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -132,6 +207,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -151,6 +251,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -215,8 +340,10 @@ spec: id: type: string portId: + description: UUID of device port type: string vlanId: + description: UUID of VLAN API resource type: string type: object conditions: diff --git a/package/crds/metal.equinix.jet.crossplane.io_projectapikeys.yaml b/package/crds/metal.equinix.jet.crossplane.io_projectapikeys.yaml index 924dc4a..7a7e3c5 100644 --- a/package/crds/metal.equinix.jet.crossplane.io_projectapikeys.yaml +++ b/package/crds/metal.equinix.jet.crossplane.io_projectapikeys.yaml @@ -12,7 +12,7 @@ spec: categories: - crossplane - managed - - equinixjet + - equinix kind: ProjectAPIKey listKind: ProjectAPIKeyList plural: projectapikeys @@ -35,7 +35,7 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: ProjectAPIKey is the Schema for the ProjectAPIKeys API + description: ProjectAPIKey is the Schema for the ProjectAPIKeys API. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -64,22 +64,49 @@ spec: forProvider: properties: description: - description: Description string for the API key + description: Description string for the Project API Key resource. + Description string for the API key type: string projectId: - description: UUID of project which the new API key is scoped to + description: UUID of the project where the API key is scoped to. + UUID of project which the new API key is scoped to type: string projectIdRef: - description: A Reference to a named object. + description: Reference to a Project 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: A Selector selects an object. + description: Selector for a Project to populate projectId. properties: matchControllerRef: description: MatchControllerRef ensures an object with the @@ -91,6 +118,31 @@ spec: 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 readOnly: description: Flag indicating whether the API key shoud be read-only @@ -109,6 +161,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -120,6 +197,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -139,6 +241,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object diff --git a/package/crds/metal.equinix.jet.crossplane.io_projects.yaml b/package/crds/metal.equinix.jet.crossplane.io_projects.yaml index 440083c..d3a9482 100644 --- a/package/crds/metal.equinix.jet.crossplane.io_projects.yaml +++ b/package/crds/metal.equinix.jet.crossplane.io_projects.yaml @@ -12,7 +12,7 @@ spec: categories: - crossplane - managed - - equinixjet + - equinix kind: Project listKind: ProjectList plural: projects @@ -35,7 +35,7 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: Project is the Schema for the Projects API + description: Project is the Schema for the Projects API. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -104,7 +104,8 @@ spec: type: object type: array name: - description: The name of the project + description: User-supplied name of the VRF, unique to the project + The name of the project type: string organizationId: description: The UUID of organization under which you want to @@ -112,16 +113,41 @@ spec: create under your the default organization of your account type: string organizationIdRef: - description: A Reference to a named object. + description: Reference to a Organization to populate organizationId. properties: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object organizationIdSelector: - description: A Selector selects an object. + description: Selector for a Organization to populate organizationId. properties: matchControllerRef: description: MatchControllerRef ensures an object with the @@ -133,6 +159,31 @@ spec: 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 paymentMethodId: description: The UUID of payment method for this project. The @@ -152,6 +203,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -163,6 +239,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -182,6 +283,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -244,19 +370,26 @@ spec: atProvider: properties: bgpConfig: + description: Optional BGP settings. Refer to [Equinix Metal guide + for BGP](https://metal.equinix.com/developers/docs/networking/local-global-bgp/) items: properties: maxPrefix: + description: The maximum number of route filters allowed + per server type: number status: + description: Status of BGP configuration in the project type: string type: object type: array created: + description: The timestamp for when the project was created type: string id: type: string updated: + description: The timestamp for the last time the project was updated type: string type: object conditions: diff --git a/package/crds/metal.equinix.jet.crossplane.io_projectsshkeys.yaml b/package/crds/metal.equinix.jet.crossplane.io_projectsshkeys.yaml index 3ef85f9..3dbc5da 100644 --- a/package/crds/metal.equinix.jet.crossplane.io_projectsshkeys.yaml +++ b/package/crds/metal.equinix.jet.crossplane.io_projectsshkeys.yaml @@ -12,7 +12,7 @@ spec: categories: - crossplane - managed - - equinixjet + - equinix kind: ProjectSSHKey listKind: ProjectSSHKeyList plural: projectsshkeys @@ -35,7 +35,7 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: ProjectSSHKey is the Schema for the ProjectSSHKeys API + description: ProjectSSHKey is the Schema for the ProjectSSHKeys API. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -64,22 +64,48 @@ spec: forProvider: properties: name: - description: The name of the SSH key for identification + description: The name of the SSH key for identification. The name + of the SSH key for identification type: string projectId: - description: The ID of parent project + description: The ID of parent project. The ID of parent project type: string projectIdRef: - description: A Reference to a named object. + description: Reference to a Project 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: A Selector selects an object. + description: Selector for a Project to populate projectId. properties: matchControllerRef: description: MatchControllerRef ensures an object with the @@ -91,9 +117,36 @@ spec: 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 publicKey: - description: The public key. If this is a file, it + description: The public key. If this is a file, it can be read + using the file interpolation function. The public key. If this + is a file, it type: string required: - name @@ -109,6 +162,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -120,6 +198,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -139,6 +242,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -201,14 +329,23 @@ spec: atProvider: properties: created: + description: The timestamp for when the SSH key was created. The + timestamp for when the SSH key was created type: string fingerprint: + description: The fingerprint of the SSH key. The fingerprint of + the SSH key type: string id: + description: The unique ID of the key. type: string ownerId: + description: The ID of parent project (same as project_id). The + UUID of the Equinix Metal API User who owns this key type: string updated: + description: The timestamp for the last time the SSH key was updated. + The timestamp for the last time the SSH key was updated type: string type: object conditions: diff --git a/package/crds/metal.equinix.jet.crossplane.io_reservedipblocks.yaml b/package/crds/metal.equinix.jet.crossplane.io_reservedipblocks.yaml index b72aeb0..869ed8f 100644 --- a/package/crds/metal.equinix.jet.crossplane.io_reservedipblocks.yaml +++ b/package/crds/metal.equinix.jet.crossplane.io_reservedipblocks.yaml @@ -12,7 +12,7 @@ spec: categories: - crossplane - managed - - equinixjet + - equinix kind: ReservedIPBlock listKind: ReservedIPBlockList plural: reservedipblocks @@ -35,7 +35,7 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: ReservedIPBlock is the Schema for the ReservedIPBlocks API + description: ReservedIPBlock is the Schema for the ReservedIPBlocks API. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -64,48 +64,85 @@ spec: forProvider: properties: cidr: - description: the size of the network to reserve from an existing - vrf ip_range. `cidr` can only be specified with `vrf_id`. Minimum - range is 22-29, with 30-31 supported and necessary for virtual-circuits + description: Only valid as an argument and required when type + is vrf. The size of the network to reserve from an existing + VRF ip_range. cidr can only be specified with vrf_id. Range + is 22-31. Virtual Circuits require 30-31. Other VRF resources + must use a CIDR in the 22-29 range. the size of the network + to reserve from an existing vrf ip_range. `cidr` can only be + specified with `vrf_id`. Minimum range is 22-29, with 30-31 + supported and necessary for virtual-circuits type: number customData: - description: Custom Data is an arbitrary object (submitted in - Terraform as serialized JSON) to assign to the IP Reservation. - This may be helpful for self-managed IPAM. The object must be - valid JSON. + description: This may be helpful for self-managed IPAM. The object + must be valid JSON. This may be helpful for self-managed IPAM. + The object must be valid JSON. type: string description: - description: Arbitrary description + description: Arbitrary description. Arbitrary description type: string facility: description: Facility where to allocate the public IP address - block, makes sense only for type==public_ipv4, must be empty - for type==global_ipv4, conflicts with metro + block, makes sense only if type is public_ipv4 and must be empty + if type is global_ipv4. Conflicts with metro. Facility where + to allocate the public IP address block, makes sense only for + type==public_ipv4, must be empty for type==global_ipv4, conflicts + with metro type: string metro: description: Metro where to allocate the public IP address block, - makes sense only for type==public_ipv4, must be empty for type==global_ipv4, - conflicts with facility + makes sense only if type is public_ipv4 and must be empty if + type is global_ipv4. Conflicts with facility. Metro where to + allocate the public IP address block, makes sense only for type==public_ipv4, + must be empty for type==global_ipv4, conflicts with facility type: string network: - description: an unreserved network address from an existing vrf - ip_range. `network` can only be specified with vrf_id + description: Only valid as an argument and required when type + is vrf. An unreserved network address from an existing ip_range + in the specified VRF. an unreserved network address from an + existing vrf ip_range. `network` can only be specified with + vrf_id type: string projectId: description: The metal project ID where to allocate the address - block + block. The metal project ID where to allocate the address block type: string projectIdRef: - description: A Reference to a named object. + description: Reference to a Project 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: A Selector selects an object. + description: Selector for a Project to populate projectId. properties: matchControllerRef: description: MatchControllerRef ensures an object with the @@ -117,34 +154,88 @@ spec: 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 quantity: description: The number of allocated /32 addresses, a power of - 2 + 2. Required when type is not vrf. The number of allocated /32 + addresses, a power of 2 type: number tags: - description: Tags attached to the reserved block + description: String list of tags. Tags attached to the reserved + block items: type: string type: array type: - description: Either global_ipv4, public_ipv4, or vrf. Defaults - to public_ipv4. + description: One of global_ipv4, public_ipv4, or vrf. Defaults + to public_ipv4 for backward compatibility. Either global_ipv4, + public_ipv4, or vrf. Defaults to public_ipv4. type: string vrfId: - description: VRF ID for type=vrf reservations + description: Only valid and required when type is vrf. VRF ID + for type=vrf reservations. VRF ID for type=vrf reservations type: string vrfIdRef: - description: A Reference to a named object. + description: Reference to a Vrf to populate vrfId. properties: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object vrfIdSelector: - description: A Selector selects an object. + description: Selector for a Vrf to populate vrfId. properties: matchControllerRef: description: MatchControllerRef ensures an object with the @@ -156,13 +247,42 @@ spec: 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 waitForState: description: 'Wait for the IP reservation block to reach a desired - state on resource creation. One of: `pending`, `created`. The - `created` state is default and recommended if the addresses - are needed within the configuration. An error will be returned - if a timeout or the `denied` state is encountered.' + state on resource creation. One of: pending, created. The created + state is default and recommended if the addresses are needed + within the configuration. An error will be returned if a timeout + or the denied state is encountered. Wait for the IP reservation + block to reach a desired state on resource creation. One of: + `pending`, `created`. The `created` state is default and recommended + if the addresses are needed within the configuration. An error + will be returned if a timeout or the `denied` state is encountered.' type: string type: object providerConfigRef: @@ -175,6 +295,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -186,6 +331,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -205,6 +375,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -269,22 +464,33 @@ spec: address: type: string addressFamily: + description: Address family as integer. One of 4 or 6. Address + family as integer (4 or 6) type: number cidrNotation: + description: Address and mask in CIDR notation, e.g. 147.229.15.30/31. type: string gateway: type: string global: + description: Boolean flag whether addresses from a block are global + (i.e. can be assigned in any facility). Flag indicating whether + IP block is global, i.e. assignable in any location type: boolean id: + description: The unique ID of the block. type: string manageable: type: boolean management: type: boolean netmask: + description: Mask in decimal notation, e.g. 255.255.255.0. Mask + in decimal notation, e.g. 255.255.255.0 type: string public: + description: Boolean flag whether addresses from a block are public. + Flag indicating whether IP block is addressable from the Internet type: boolean type: object conditions: diff --git a/package/crds/metal.equinix.jet.crossplane.io_spotmarketrequests.yaml b/package/crds/metal.equinix.jet.crossplane.io_spotmarketrequests.yaml index cbf9f6b..433a2e2 100644 --- a/package/crds/metal.equinix.jet.crossplane.io_spotmarketrequests.yaml +++ b/package/crds/metal.equinix.jet.crossplane.io_spotmarketrequests.yaml @@ -12,7 +12,7 @@ spec: categories: - crossplane - managed - - equinixjet + - equinix kind: SpotMarketRequest listKind: SpotMarketRequestList plural: spotmarketrequests @@ -35,7 +35,7 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: SpotMarketRequest is the Schema for the SpotMarketRequests API + description: SpotMarketRequest is the Schema for the SpotMarketRequests API. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -64,20 +64,28 @@ spec: forProvider: properties: devicesMax: - description: Maximum number devices to be created + description: Maximum number devices to be created. Maximum number + devices to be created type: number devicesMin: - description: Miniumum number devices to be created + description: Miniumum number devices to be created. Miniumum number + devices to be created type: number facilities: - description: Facility IDs where devices should be created + description: Facility IDs where devices should be created. Facility + IDs where devices should be created items: type: string type: array instanceParameters: - description: Parameters for devices provisioned from this request. - You can find the parameter description from the [equinix_metal_device - doc](device.md) + description: 'Key/Value pairs of parameters for devices provisioned + from this request. Valid keys are: billing_cycle, plan, operating_system, + hostname, termintation_time, always_pxe, description, features, + locked, project_ssh_keys, user_ssh_keys, userdata, customdata, + ipxe_script_url, tags. You can find each parameter description + in equinix_metal_device docs. Parameters for devices provisioned + from this request. You can find the parameter description from + the [equinix_metal_device doc](device.md)' items: properties: alwaysPxe: @@ -97,6 +105,8 @@ spec: ipxeScriptUrl: type: string locked: + description: Blocks deletion of the SpotMarketRequest device + until the lock is disabled. type: boolean operatingSystem: type: string @@ -125,25 +135,51 @@ spec: type: array maxBidPrice: description: Maximum price user is willing to pay per hour per - device + device. Maximum price user is willing to pay per hour per device type: number metro: - description: Metro where devices should be created + description: Metro where devices should be created. Metro where + devices should be created type: string projectId: - description: Project ID + description: Project ID. Project ID type: string projectIdRef: - description: A Reference to a named object. + description: Reference to a Project 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: A Selector selects an object. + description: Selector for a Project to populate projectId. properties: matchControllerRef: description: MatchControllerRef ensures an object with the @@ -155,11 +191,37 @@ spec: 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 waitForDevices: - description: On resource creation - wait until all desired devices - are active, on resource destruction - wait until devices are - removed + description: On resource creation wait until all desired devices + are active. On resource destruction wait until devices are removed. + On resource creation - wait until all desired devices are active, + on resource destruction - wait until devices are removed type: boolean required: - devicesMax @@ -177,6 +239,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -188,6 +275,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -207,6 +319,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -269,8 +406,17 @@ spec: atProvider: properties: id: + description: The ID of the Spot Market Request. type: string instanceParameters: + description: 'Key/Value pairs of parameters for devices provisioned + from this request. Valid keys are: billing_cycle, plan, operating_system, + hostname, termintation_time, always_pxe, description, features, + locked, project_ssh_keys, user_ssh_keys, userdata, customdata, + ipxe_script_url, tags. You can find each parameter description + in equinix_metal_device docs. Parameters for devices provisioned + from this request. You can find the parameter description from + the [equinix_metal_device doc](device.md)' items: properties: termintationTime: diff --git a/package/crds/metal.equinix.jet.crossplane.io_sshkeys.yaml b/package/crds/metal.equinix.jet.crossplane.io_sshkeys.yaml index a5b8ca8..8fe83c5 100644 --- a/package/crds/metal.equinix.jet.crossplane.io_sshkeys.yaml +++ b/package/crds/metal.equinix.jet.crossplane.io_sshkeys.yaml @@ -12,7 +12,7 @@ spec: categories: - crossplane - managed - - equinixjet + - equinix kind: SSHKey listKind: SSHKeyList plural: sshkeys @@ -35,7 +35,7 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: SSHKey is the Schema for the SSHKeys API + description: SSHKey is the Schema for the SSHKeys API. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -64,10 +64,13 @@ spec: forProvider: properties: name: - description: The name of the SSH key for identification + description: The name of the SSH key for identification The name + of the SSH key for identification type: string publicKey: - description: The public key. If this is a file, it + description: The public key. If this is a file, it can be read + using the file interpolation function The public key. If this + is a file, it type: string required: - name @@ -83,6 +86,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -94,6 +122,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -113,6 +166,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -175,14 +253,23 @@ spec: atProvider: properties: created: + description: The timestamp for when the SSH key was created. The + timestamp for when the SSH key was created type: string fingerprint: + description: The fingerprint of the SSH key. The fingerprint of + the SSH key type: string id: + description: The unique ID of the key. type: string ownerId: + description: The UUID of the Equinix Metal API User who owns this + key. The UUID of the Equinix Metal API User who owns this key type: string updated: + description: The timestamp for the last time the SSH key was updated. + The timestamp for the last time the SSH key was updated type: string type: object conditions: diff --git a/package/crds/metal.equinix.jet.crossplane.io_userapikeys.yaml b/package/crds/metal.equinix.jet.crossplane.io_userapikeys.yaml index 344223c..a7ec488 100644 --- a/package/crds/metal.equinix.jet.crossplane.io_userapikeys.yaml +++ b/package/crds/metal.equinix.jet.crossplane.io_userapikeys.yaml @@ -12,7 +12,7 @@ spec: categories: - crossplane - managed - - equinixjet + - equinix kind: UserAPIKey listKind: UserAPIKeyList plural: userapikeys @@ -35,7 +35,7 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: UserAPIKey is the Schema for the UserAPIKeys API + description: UserAPIKey is the Schema for the UserAPIKeys API. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -64,7 +64,8 @@ spec: forProvider: properties: description: - description: Description string for the API key + description: Description string for the User API Key resource. + Description string for the API key type: string readOnly: description: Flag indicating whether the API key shoud be read-only @@ -83,6 +84,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -94,6 +120,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -113,6 +164,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -177,6 +253,8 @@ spec: id: type: string userId: + description: UUID of the owner of the API key. UUID of user owning + this key type: string type: object conditions: diff --git a/package/crds/metal.equinix.jet.crossplane.io_virtualcircuits.yaml b/package/crds/metal.equinix.jet.crossplane.io_virtualcircuits.yaml index 5ca8c6f..0469c00 100644 --- a/package/crds/metal.equinix.jet.crossplane.io_virtualcircuits.yaml +++ b/package/crds/metal.equinix.jet.crossplane.io_virtualcircuits.yaml @@ -12,7 +12,7 @@ spec: categories: - crossplane - managed - - equinixjet + - equinix kind: VirtualCircuit listKind: VirtualCircuitList plural: virtualcircuits @@ -35,7 +35,8 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: VirtualCircuit is the Schema for the VirtualCircuits API + description: VirtualCircuit is the Schema for the VirtualCircuits API. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -67,16 +68,41 @@ spec: description: UUID of Connection where the VC is scoped to type: string connectionIdRef: - description: A Reference to a named object. + description: Reference to a Connection to populate connectionId. properties: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object connectionIdSelector: - description: A Selector selects an object. + description: Selector for a Connection to populate connectionId. properties: matchControllerRef: description: MatchControllerRef ensures an object with the @@ -88,6 +114,31 @@ spec: 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 customerIp: description: The Customer IP address which the CSR switch will @@ -138,16 +189,41 @@ spec: description: UUID of the Project where the VC is scoped to type: string projectIdRef: - description: A Reference to a named object. + description: Reference to a Project 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: A Selector selects an object. + description: Selector for a Project to populate projectId. properties: matchControllerRef: description: MatchControllerRef ensures an object with the @@ -159,6 +235,31 @@ spec: 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 speed: description: Description of the Virtual Circuit speed. This is @@ -183,16 +284,41 @@ spec: description: UUID of the VLAN to associate type: string vlanIdRef: - description: A Reference to a named object. + description: Reference to a Vlan to populate vlanId. properties: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object vlanIdSelector: - description: A Selector selects an object. + description: Selector for a Vlan to populate vlanId. properties: matchControllerRef: description: MatchControllerRef ensures an object with the @@ -204,21 +330,71 @@ spec: 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 vrfId: description: UUID of the VRF to associate type: string vrfIdRef: - description: A Reference to a named object. + description: Reference to a Vrf to populate vrfId. properties: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object vrfIdSelector: - description: A Selector selects an object. + description: Selector for a Vrf to populate vrfId. properties: matchControllerRef: description: MatchControllerRef ensures an object with the @@ -230,6 +406,31 @@ spec: 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 required: - portId @@ -244,6 +445,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -255,6 +481,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -274,6 +525,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -338,10 +614,13 @@ spec: id: type: string nniVnid: + description: Nni VLAN ID parameter, see https://metal.equinix.com/developers/docs/networking/fabric/ type: number status: + description: Status of the virtual circuit resource type: string vnid: + description: VNID VLAN parameter, see https://metal.equinix.com/developers/docs/networking/fabric/ type: number type: object conditions: diff --git a/package/crds/metal.equinix.jet.crossplane.io_vlans.yaml b/package/crds/metal.equinix.jet.crossplane.io_vlans.yaml index fff56ea..da47316 100644 --- a/package/crds/metal.equinix.jet.crossplane.io_vlans.yaml +++ b/package/crds/metal.equinix.jet.crossplane.io_vlans.yaml @@ -12,7 +12,7 @@ spec: categories: - crossplane - managed - - equinixjet + - equinix kind: Vlan listKind: VlanList plural: vlans @@ -35,7 +35,7 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: Vlan is the Schema for the Vlans API + description: Vlan is the Schema for the Vlans API. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -64,27 +64,53 @@ spec: forProvider: properties: description: - description: Description string + description: Description string. Description string type: string facility: - description: Facility where to create the VLAN + description: Facility where to create the VLAN. Facility where + to create the VLAN type: string metro: type: string projectId: - description: ID of parent project + description: ID of parent project. ID of parent project type: string projectIdRef: - description: A Reference to a named object. + description: Reference to a Project 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: A Selector selects an object. + description: Selector for a Project to populate projectId. properties: matchControllerRef: description: MatchControllerRef ensures an object with the @@ -96,9 +122,35 @@ spec: 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 vxlan: - description: VLAN ID, must be unique in metro + description: VLAN ID, must be unique in metro. VLAN ID, must be + unique in metro type: number type: object providerConfigRef: @@ -111,6 +163,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -122,6 +199,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -141,6 +243,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -203,6 +330,7 @@ spec: atProvider: properties: id: + description: ID of the virtual network. type: string type: object conditions: diff --git a/package/crds/metal.equinix.jet.crossplane.io_vrves.yaml b/package/crds/metal.equinix.jet.crossplane.io_vrves.yaml index 638886a..6b59205 100644 --- a/package/crds/metal.equinix.jet.crossplane.io_vrves.yaml +++ b/package/crds/metal.equinix.jet.crossplane.io_vrves.yaml @@ -12,7 +12,7 @@ spec: categories: - crossplane - managed - - equinixjet + - equinix kind: Vrf listKind: VrfList plural: vrves @@ -35,7 +35,7 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: Vrf is the Schema for the Vrfs API + description: Vrf is the Schema for the Vrfs API. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -87,16 +87,41 @@ spec: description: Project ID type: string projectIdRef: - description: A Reference to a named object. + description: Reference to a Project 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: A Selector selects an object. + description: Selector for a Project to populate projectId. properties: matchControllerRef: description: MatchControllerRef ensures an object with the @@ -108,6 +133,31 @@ spec: 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 required: - metro @@ -123,6 +173,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -134,6 +209,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -153,6 +253,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object diff --git a/package/crds/network.equinix.jet.crossplane.io_acltemplates.yaml b/package/crds/network.equinix.jet.crossplane.io_acltemplates.yaml index 74b7283..39d4fc3 100644 --- a/package/crds/network.equinix.jet.crossplane.io_acltemplates.yaml +++ b/package/crds/network.equinix.jet.crossplane.io_acltemplates.yaml @@ -12,7 +12,7 @@ spec: categories: - crossplane - managed - - equinixjet + - equinix kind: ACLTemplate listKind: ACLTemplateList plural: acltemplates @@ -35,7 +35,7 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: ACLTemplate is the Schema for the ACLTemplates API + description: ACLTemplate is the Schema for the ACLTemplates API. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -64,34 +64,47 @@ spec: forProvider: properties: description: - description: ACL template description, up to 200 characters + description: ACL template description, up to 200 characters. ACL + template description, up to 200 characters type: string inboundRule: description: One or more rules to specify allowed inbound traffic. + Rules are ordered, matching traffic rule stops processing subsequent + ones. One or more rules to specify allowed inbound traffic. Rules are ordered, matching traffic rule stops processing subsequent ones. items: properties: description: - description: Inbound rule description, up to 200 characters + description: Inbound rule description, up to 200 characters. + Inbound rule description, up to 200 characters type: string dstPort: - description: Inbound traffic destination ports. Either up - to 10, comma separated ports or port range or any word + description: Inbound traffic destination ports. Allowed + values are a comma separated list of ports, e.g., 20,22,23, + port range, e.g., 1023-1040 or word any. Inbound traffic + destination ports. Either up to 10, comma separated ports + or port range or any word type: string protocol: - description: 'Inbound traffic protocol. One of: `IP`, `TCP`, - `UDP`' + description: 'Inbound traffic protocol. One of IP, TCP, + UDP. Inbound traffic protocol. One of: `IP`, `TCP`, `UDP`' type: string srcPort: - description: Inbound traffic source ports. Either up to - 10, comma separated ports or port range or any word + description: Inbound traffic source ports. Allowed values + are a comma separated list of ports, e.g., 20,22,23, port + range, e.g., 1023-1040 or word any. Inbound traffic source + ports. Either up to 10, comma separated ports or port + range or any word type: string subnet: - description: Inbound traffic source IP subnet in CIDR format + description: Inbound traffic source IP subnet in CIDR format. + Inbound traffic source IP subnet in CIDR format type: string subnets: - description: Inbound traffic source IP subnets in CIDR format + description: (Deprecated) Inbound traffic source IP subnets + in CIDR format. Inbound traffic source IP subnets in CIDR + format items: type: string type: array @@ -102,10 +115,11 @@ spec: type: object type: array metroCode: - description: ACL template location metro code + description: (Deprecated) ACL template location metro code. ACL + template location metro code type: string name: - description: ACL template name + description: ACL template name. ACL template name type: string required: - inboundRule @@ -121,6 +135,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -132,6 +171,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -151,6 +215,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -213,32 +302,55 @@ spec: atProvider: properties: deviceAclStatus: + description: Status of ACL template provisioning process, where + template was applied. One of PROVISIONING, PROVISIONED. Status + of ACL template provisioning process on a device, where template + was applied type: string deviceDetails: + description: List of the devices where the ACL template is applied. + Device Details to which ACL template is assigned to. items: properties: aclStatus: + description: Device ACL provisioning status where template + was applied. One of PROVISIONING, PROVISIONED. type: string name: + description: Device name. type: string uuid: + description: Device uuid. type: string type: object type: array deviceId: + description: (Deprecated) Identifier of a network device where + template was applied. Identifier of a network device where template + was applied type: string id: type: string inboundRule: + description: One or more rules to specify allowed inbound traffic. + Rules are ordered, matching traffic rule stops processing subsequent + ones. One or more rules to specify allowed inbound traffic. + Rules are ordered, matching traffic rule stops processing subsequent + ones. items: properties: sequenceNumber: + description: Inbound rule sequence number type: number sourceType: + description: Type of traffic source used in a given inbound + rule type: string type: object type: array uuid: + description: Unique identifier of ACL template resource. Unique + identifier of ACL template resource type: string type: object conditions: diff --git a/package/crds/network.equinix.jet.crossplane.io_bgps.yaml b/package/crds/network.equinix.jet.crossplane.io_bgps.yaml index 65091e2..73f726a 100644 --- a/package/crds/network.equinix.jet.crossplane.io_bgps.yaml +++ b/package/crds/network.equinix.jet.crossplane.io_bgps.yaml @@ -12,7 +12,7 @@ spec: categories: - crossplane - managed - - equinixjet + - equinix kind: BGP listKind: BGPList plural: bgps @@ -35,7 +35,7 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: BGP is the Schema for the BGPs API + description: BGP is the Schema for the BGPs API. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -64,7 +64,8 @@ spec: forProvider: properties: authenticationKeySecretRef: - description: Shared key used for BGP peer authentication + description: shared key used for BGP peer authentication. Shared + key used for BGP peer authentication properties: key: description: The key to select. @@ -81,20 +82,23 @@ spec: - namespace type: object connectionId: - description: Identifier of a connection established between network - device and remote service provider that will be used for peering + description: identifier of a connection established between. network + device and remote service provider that will be used for peering. + Identifier of a connection established between network device + and remote service provider that will be used for peering type: string localAsn: - description: Local ASN number + description: Local ASN number. Local ASN number type: number localIpAddress: - description: IP address in CIDR format of a local device + description: IP address in CIDR format of a local device. IP address + in CIDR format of a local device type: string remoteAsn: - description: Remote ASN number + description: Remote ASN number. Remote ASN number type: number remoteIpAddress: - description: IP address of remote peer + description: IP address of remote peer. IP address of remote peer type: string required: - connectionId @@ -113,6 +117,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -124,6 +153,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -143,6 +197,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -205,14 +284,25 @@ spec: atProvider: properties: deviceId: + description: unique identifier of a network device that is a local + peer in a given BGP peering configuration. Unique identifier + of a network device that is a local peer in a given BGP peering + configuration type: string id: type: string provisioningStatus: + description: BGP peering configuration provisioning status, one + of PROVISIONING, PENDING_UPDATE, PROVISIONED, FAILED. BGP peering + configuration provisioning status type: string state: + description: BGP peer state, one of Idle, Connect, Active, OpenSent, + OpenConfirm, Established. BGP peer state type: string uuid: + description: BGP peering configuration unique identifier. BGP + peering configuration unique identifier type: string type: object conditions: diff --git a/package/crds/network.equinix.jet.crossplane.io_devicelinks.yaml b/package/crds/network.equinix.jet.crossplane.io_devicelinks.yaml index bc97e19..269e164 100644 --- a/package/crds/network.equinix.jet.crossplane.io_devicelinks.yaml +++ b/package/crds/network.equinix.jet.crossplane.io_devicelinks.yaml @@ -12,7 +12,7 @@ spec: categories: - crossplane - managed - - equinixjet + - equinix kind: DeviceLink listKind: DeviceLinkList plural: devicelinks @@ -35,7 +35,7 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: DeviceLink is the Schema for the DeviceLinks API + description: DeviceLink is the Schema for the DeviceLinks API. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -64,47 +64,59 @@ spec: forProvider: properties: device: + description: definition of one or more devices belonging to the + device link. See Device section below for more details. items: properties: asn: - description: Device ASN number + description: Device ASN number. Not required for self configured + devices. Device ASN number type: number id: - description: Device identifier + description: Device identifier. Device identifier type: string interfaceId: description: Device network interface identifier to use - for device link connection + for device link connection. Device network interface identifier + to use for device link connection type: number required: - id type: object type: array link: - description: link + description: definition of one or more, inter metro, connections + belonging to the device link. See Link section below for more + details. link items: properties: accountNumber: - description: Billing account number to be used for connection + description: billing account number to be used for connection + charges Billing account number to be used for connection charges type: string dstMetroCode: - description: Connection destination metro code + description: connection destination metro code. Connection + destination metro code type: string dstZoneCode: - description: Connection destination zone code + description: (Deprecated) connection destination zone code + is not required. Connection destination zone code type: string srcMetroCode: - description: Connection source metro code + description: connection source metro code. Connection source + metro code type: string srcZoneCode: - description: Connection source zone code + description: (Deprecated) connection source zone code is + not required. Connection source zone code type: string throughput: - description: Connection throughput + description: connection throughput. Connection throughput type: string throughputUnit: - description: Connection throughput unit + description: connection throughput unit (Mbps or Gbps). + Connection throughput unit type: string required: - accountNumber @@ -115,10 +127,11 @@ spec: type: object type: array name: - description: name + description: device link name. name type: string subnet: - description: subnet + description: device link subnet in CIDR format. Not required for + link between self configured devices. subnet type: string required: - device @@ -134,6 +147,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -145,6 +183,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -164,6 +227,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -226,19 +314,34 @@ spec: atProvider: properties: device: + description: definition of one or more devices belonging to the + device link. See Device section below for more details. items: properties: ipAddress: + description: IP address from device link subnet that was + assigned to the device Assigned IP address from device + link subnet type: string status: + description: device link provisioning status on a given + device. One of PROVISIONING, PROVISIONED, DEPROVISIONING, + DEPROVISIONED, FAILED. Device link connection provisioning + status type: string type: object type: array id: + description: Device identifier. type: string status: + description: Device link provisioning status. One of PROVISIONING, + PROVISIONED, DEPROVISIONING, DEPROVISIONED, FAILED. Device link + provisioning status type: string uuid: + description: Device link unique identifier. Device link unique + identifier type: string type: object conditions: diff --git a/package/crds/network.equinix.jet.crossplane.io_devices.yaml b/package/crds/network.equinix.jet.crossplane.io_devices.yaml index 08cbd9d..3977dfe 100644 --- a/package/crds/network.equinix.jet.crossplane.io_devices.yaml +++ b/package/crds/network.equinix.jet.crossplane.io_devices.yaml @@ -12,7 +12,7 @@ spec: categories: - crossplane - managed - - equinixjet + - equinix kind: Device listKind: DeviceList plural: devices @@ -35,7 +35,7 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: Device is the Schema for the Devices API + description: Device is the Schema for the Devices API. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -64,33 +64,45 @@ spec: forProvider: properties: accountNumber: - description: Device billing account number + description: Billing account number for a device. Device billing + account number type: string aclTemplateId: - description: Unique identifier of applied ACL template + description: Identifier of an ACL template that will be applied + on the device. Unique identifier of applied ACL template type: string additionalBandwidth: description: Additional Internet bandwidth, in Mbps, that will - be allocated to the device + be allocated to the device (in addition to default 15Mbps). + Additional Internet bandwidth, in Mbps, that will be allocated + to the device type: number byol: - description: 'Boolean value that determines device licensing mode: - bring your own license or subscription (default)' + description: 'Boolean value that determines device licensing mode, + i.e., bring your own license or subscription (default). Boolean + value that determines device licensing mode: bring your own + license or subscription (default)' type: boolean clusterDetails: - description: An object that has the cluster details + description: An object that has the cluster details. See Cluster + Details below for more details. An object that has the cluster + details items: properties: clusterName: - description: The name of the cluster device + description: The name of the cluster device The name of + the cluster device type: string node0: - description: An object that has node0 details + description: An object that has node0 configuration. See + Cluster Details - Nodes below for more details. An object + that has node0 details items: properties: licenseFileIdSecretRef: description: License file id. This is necessary for - Fortinet and Juniper clusters + Fortinet and Juniper clusters. License file id. + This is necessary for Fortinet and Juniper clusters properties: key: description: The key to select. @@ -108,7 +120,8 @@ spec: type: object licenseTokenSecretRef: description: License token. This is necessary for - Palo Alto clusters + Palo Alto clusters. License token. This is necessary + for Palo Alto clusters properties: key: description: The key to select. @@ -126,12 +139,16 @@ spec: type: object vendorConfiguration: description: An object that has fields relevant to - the vendor of the cluster device + the vendor of the cluster device. See Cluster Details + - Nodes - Vendor Configuration below for more details. + An object that has fields relevant to the vendor + of the cluster device items: properties: activationKeySecretRef: description: Activation key. This is required - for Velocloud clusters + for Velocloud clusters. Activation key. This + is required for Velocloud clusters properties: key: description: The key to select. @@ -151,7 +168,10 @@ spec: description: The administrative password of the device. You can use it to log in to the console. This field is not available for all - device types + device types. The administrative password + of the device. You can use it to log in to + the console. This field is not available for + all device types properties: key: description: The key to select. @@ -169,18 +189,25 @@ spec: type: object controller1: description: System IP Address. Mandatory for - the Fortinet SDWAN cluster device + the Fortinet SDWAN cluster device. System + IP Address. Mandatory for the Fortinet SDWAN + cluster device type: string controllerFqdn: description: Controller fqdn. This is required - for Velocloud clusters + for Velocloud clusters. Controller fqdn. This + is required for Velocloud clusters type: string hostname: description: Hostname. This is necessary for - Palo Alto, Juniper, and Fortinet clusters + Palo Alto, Juniper, and Fortinet clusters. + Hostname. This is necessary for Palo Alto, + Juniper, and Fortinet clusters type: string rootPasswordSecretRef: description: The CLI password of the device. + This field is relevant only for the Velocloud + SDWAN cluster. The CLI password of the device. This field is relevant only for the Velocloud SDWAN cluster properties: @@ -203,12 +230,15 @@ spec: type: object type: array node1: - description: An object that has node1 details + description: An object that has node1 configuration. See + Cluster Details - Nodes below for more details. An object + that has node1 details items: properties: licenseFileIdSecretRef: - description: License file id. This is necessary for - Fortinet and Juniper clusters + description: Unique identifier of applied license + file. License file id. This is necessary for Fortinet + and Juniper clusters properties: key: description: The key to select. @@ -225,8 +255,9 @@ spec: - namespace type: object licenseTokenSecretRef: - description: License token. This is necessary for - Palo Alto clusters + description: License Token can be provided for some + device types o the device. License token. This is + necessary for Palo Alto clusters properties: key: description: The key to select. @@ -243,13 +274,17 @@ spec: - namespace type: object vendorConfiguration: - description: An object that has fields relevant to - the vendor of the cluster device + description: Map of vendor specific configuration + parameters for a device (controller1, activationKey, + managementType, siteId, systemIpAddress) An object + that has fields relevant to the vendor of the cluster + device items: properties: activationKeySecretRef: description: Activation key. This is required - for Velocloud clusters + for Velocloud clusters. Activation key. This + is required for Velocloud clusters properties: key: description: The key to select. @@ -269,7 +304,10 @@ spec: description: The administrative password of the device. You can use it to log in to the console. This field is not available for all - device types + device types. The administrative password + of the device. You can use it to log in to + the console. This field is not available for + all device types properties: key: description: The key to select. @@ -287,18 +325,24 @@ spec: type: object controller1: description: System IP Address. Mandatory for - the Fortinet SDWAN cluster device + the Fortinet SDWAN cluster device. System + IP Address. Mandatory for the Fortinet SDWAN + cluster device type: string controllerFqdn: description: Controller fqdn. This is required - for Velocloud clusters + for Velocloud clusters. Controller fqdn. This + is required for Velocloud clusters type: string hostname: - description: Hostname. This is necessary for - Palo Alto, Juniper, and Fortinet clusters + description: Secondary device hostname. Hostname. + This is necessary for Palo Alto, Juniper, + and Fortinet clusters type: string rootPasswordSecretRef: description: The CLI password of the device. + This field is relevant only for the Velocloud + SDWAN cluster. The CLI password of the device. This field is relevant only for the Velocloud SDWAN cluster properties: @@ -327,88 +371,113 @@ spec: type: object type: array coreCount: - description: Number of CPU cores used by device + description: Number of CPU cores used by device. Number of CPU + cores used by device type: number hostname: - description: Device hostname prefix + description: Device hostname prefix. Device hostname prefix type: string interfaceCount: description: Number of network interfaces on a device. If not - specified, default number for a given device type will be used + specified, default number for a given device type will be used. + Number of network interfaces on a device. If not specified, + default number for a given device type will be used type: number licenseFile: description: Path to the license file that will be uploaded and - applied on a device, applicable for some device types in BYOL - licensing mode + applied on a device. Applicable for some devices types in BYOL + licensing mode. Path to the license file that will be uploaded + and applied on a device, applicable for some device types in + BYOL licensing mode type: string licenseToken: description: License Token applicable for some device types in - BYOL licensing mode + BYOL licensing mode. License Token applicable for some device + types in BYOL licensing mode type: string metroCode: - description: Device location metro code + description: Device location metro code. Device location metro + code type: string mgmtAclTemplateUuid: - description: Unique identifier of applied MGMT ACL template + description: Identifier of an MGMT interface ACL template that + will be applied on the device. Unique identifier of applied + MGMT ACL template type: string name: - description: Device name + description: Device name. Device name type: string notifications: description: List of email addresses that will receive device - status notifications + status notifications. List of email addresses that will receive + device status notifications items: type: string type: array orderReference: description: Name/number used to identify device order on the - invoice + invoice. Name/number used to identify device order on the invoice type: string packageCode: - description: Device software package code + description: Device software package code. Device software package + code type: string purchaseOrderNumber: - description: Purchase order number associated with a device order + description: Purchase order number associated with a device order. + Purchase order number associated with a device order type: string secondaryDevice: - description: Definition of secondary device applicable for HA - setup + description: Definition of secondary device for redundant device + configurations. See Secondary Device below for more details. + Definition of secondary device applicable for HA setup items: properties: accountNumber: - description: Device billing account number + description: Billing account number for secondary device. + Device billing account number type: string aclTemplateId: - description: Unique identifier of applied ACL template + description: Identifier of a WAN interface ACL template + that will be applied on a secondary device. Unique identifier + of applied ACL template type: string additionalBandwidth: - description: Additional Internet bandwidth, in Mbps, that - will be allocated to the device + description: Additional Internet bandwidth, in Mbps, for + a secondary device. Additional Internet bandwidth, in + Mbps, that will be allocated to the device type: number hostname: - description: Device hostname prefix + description: Secondary device hostname. Device hostname + prefix type: string licenseFile: description: Path to the license file that will be uploaded - and applied on a device, applicable for some device types - in BYOL licensing mode + and applied on a secondary device. Applicable for some + devices types in BYOL licensing mode. Path to the license + file that will be uploaded and applied on a device, applicable + for some device types in BYOL licensing mode type: string licenseToken: - description: License Token applicable for some device types - in BYOL licensing mode + description: License Token can be provided for some device + types o the device. License Token applicable for some + device types in BYOL licensing mode type: string metroCode: - description: Device location metro code + description: Metro location of a secondary device. Device + location metro code type: string mgmtAclTemplateUuid: - description: Unique identifier of applied MGMT ACL template + description: Identifier of an MGMT interface ACL template + that will be applied on the device. Unique identifier + of applied MGMT ACL template type: string name: - description: Device name + description: Secondary device name. Device name type: string notifications: - description: List of email addresses that will receive device - status notifications + description: List of email addresses that will receive notifications + about secondary device. List of email addresses that will + receive device status notifications items: type: string type: array @@ -418,11 +487,12 @@ spec: items: properties: keyName: - description: Reference by name to previously provisioned - public SSH key + description: Device name. Reference by name to previously + provisioned public SSH key type: string username: - description: Username associated with given key + description: username associated with given key. Username + associated with given key type: string required: - keyName @@ -432,12 +502,16 @@ spec: vendorConfiguration: additionalProperties: type: string - description: Map of vendor specific configuration parameters - for a device (controller1, activationKey, managementType, - siteId, systemIpAddress) + description: Key/Value pairs of vendor specific configuration + parameters for a secondary device. Key values are controller1, + activationKey, managementType, siteId, systemIpAddress. + Map of vendor specific configuration parameters for a + device (controller1, activationKey, managementType, siteId, + systemIpAddress) type: object wanInterfaceId: - description: device interface id picked for WAN + description: interface identifier. device interface id picked + for WAN type: string required: - accountNumber @@ -448,7 +522,9 @@ spec: type: array selfManaged: description: 'Boolean value that determines device management - mode: self-managed or subscription (default)' + mode, i.e., self-managed or Equinix managed (default). Boolean + value that determines device management mode: self-managed or + subscription (default)' type: boolean sshKey: description: Definition of SSH key that will be provisioned on @@ -456,11 +532,12 @@ spec: items: properties: keyName: - description: Reference by name to previously provisioned - public SSH key + description: Device name. Reference by name to previously + provisioned public SSH key type: string username: - description: Username associated with given key + description: username associated with given key. Username + associated with given key type: string required: - keyName @@ -468,29 +545,34 @@ spec: type: object type: array termLength: - description: Device term length + description: Device term length. Device term length type: number throughput: - description: Device license throughput + description: Device license throughput. Device license throughput type: number throughputUnit: - description: Device license throughput unit (Mbps or Gbps) + description: License throughput unit. One of Mbps or Gbps. Device + license throughput unit (Mbps or Gbps) type: string typeCode: - description: Device type code + description: Device type code. Device type code type: string vendorConfiguration: additionalProperties: type: string description: Map of vendor specific configuration parameters for a device (controller1, activationKey, managementType, siteId, + systemIpAddress) Map of vendor specific configuration parameters + for a device (controller1, activationKey, managementType, siteId, systemIpAddress) type: object version: - description: Device software software version + description: Device software software version. Device software + software version type: string wanInterfaceId: - description: device interface id picked for WAN + description: interface identifier. device interface id picked + for WAN type: string required: - accountNumber @@ -513,6 +595,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -524,6 +631,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -543,6 +675,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -605,128 +762,238 @@ spec: atProvider: properties: asn: + description: (Autonomous System Number) Unique identifier for + a network on the internet. Autonomous system number type: number clusterDetails: + description: An object that has the cluster details. See Cluster + Details below for more details. An object that has the cluster + details items: properties: clusterId: + description: The ID of the cluster. The id of the cluster type: string node0: + description: An object that has node0 configuration. See + Cluster Details - Nodes below for more details. An object + that has node0 details items: properties: name: + description: reference by name to previously provisioned + public SSH key. The name of the node type: string uuid: + description: Device unique identifier. The unique + id of the node type: string type: object type: array node1: + description: An object that has node1 configuration. See + Cluster Details - Nodes below for more details. An object + that has node1 details items: properties: name: + description: reference by name to previously provisioned + public SSH key. The name of the node type: string uuid: + description: Device unique identifier. The unique + id of the node type: string type: object type: array numOfNodes: + description: The number of nodes in the cluster. The number + of nodes in the cluster type: number type: object type: array ibx: + description: Device location Equinix Business Exchange name. Device + location Equinix Business Exchange name type: string id: + description: interface identifier. type: string interface: + description: List of device interfaces. See Interface Attribute + below for more details. List of device interfaces items: properties: assignedType: + description: interface management type (Equinix Managed + or empty). type: string id: + description: interface identifier. type: number ipAddress: + description: interface IP address. type: string macAddress: + description: interface MAC address. type: string name: + description: reference by name to previously provisioned + public SSH key. type: string operationalStatus: + description: interface operational status. One of up, down. type: string status: + description: Device provisioning status. Possible values + are INITIALIZING, PROVISIONING, WAITING_FOR_PRIMARY, WAITING_FOR_SECONDARY, + WAITING_FOR_REPLICA_CLUSTER_NODES, CLUSTER_SETUP_IN_PROGRESS, + FAILED, PROVISIONED, DEPROVISIONING, DEPROVISIONED. type: string type: + description: interface type. type: string type: object type: array licenseFileId: + description: Unique identifier of applied license file. Unique + identifier of applied license file type: string licenseStatus: + description: Device license registration status. Possible values + are APPLYING_LICENSE, REGISTERED, APPLIED, WAITING_FOR_CLUSTER_SETUP, + REGISTRATION_FAILED. Device license registration status type: string redundancyType: + description: Device redundancy type applicable for HA devices, + either primary or secondary. Device redundancy type applicable + for HA devices, either primary or secondary type: string redundantId: + description: Unique identifier for a redundant device applicable + for HA devices. Unique identifier for a redundant device, applicable + for HA device type: string region: + description: Device location region. Device location region type: string secondaryDevice: + description: Definition of secondary device for redundant device + configurations. See Secondary Device below for more details. + Definition of secondary device applicable for HA setup items: properties: asn: + description: (Autonomous System Number) Unique identifier + for a network on the internet. Autonomous system number type: number ibx: + description: Device location Equinix Business Exchange name. + Device location Equinix Business Exchange name type: string interface: + description: List of device interfaces. See Interface Attribute + below for more details. List of device interfaces items: properties: assignedType: + description: interface management type (Equinix Managed + or empty). type: string id: + description: interface identifier. type: number ipAddress: + description: interface IP address. type: string macAddress: + description: interface MAC address. type: string name: + description: reference by name to previously provisioned + public SSH key. type: string operationalStatus: + description: interface operational status. One of + up, down. type: string status: + description: Device provisioning status. Possible + values are INITIALIZING, PROVISIONING, WAITING_FOR_PRIMARY, + WAITING_FOR_SECONDARY, WAITING_FOR_REPLICA_CLUSTER_NODES, + CLUSTER_SETUP_IN_PROGRESS, FAILED, PROVISIONED, + DEPROVISIONING, DEPROVISIONED. type: string type: + description: interface type. type: string type: object type: array licenseFileId: + description: Unique identifier of applied license file. + Unique identifier of applied license file type: string licenseStatus: + description: Device license registration status. Possible + values are APPLYING_LICENSE, REGISTERED, APPLIED, WAITING_FOR_CLUSTER_SETUP, + REGISTRATION_FAILED. Device license registration status type: string redundancyType: + description: Device redundancy type applicable for HA devices, + either primary or secondary. Device redundancy type applicable + for HA devices, either primary or secondary type: string redundantId: + description: Unique identifier for a redundant device applicable + for HA devices. Unique identifier for a redundant device, + applicable for HA device type: string region: + description: Device location region. Device location region type: string sshIpAddress: + description: IP address of SSH enabled interface on the + device. IP address of SSH enabled interface on the device type: string sshIpFqdn: + description: FQDN of SSH enabled interface on the device. + FQDN of SSH enabled interface on the device type: string status: + description: Device provisioning status. Possible values + are INITIALIZING, PROVISIONING, WAITING_FOR_PRIMARY, WAITING_FOR_SECONDARY, + WAITING_FOR_REPLICA_CLUSTER_NODES, CLUSTER_SETUP_IN_PROGRESS, + FAILED, PROVISIONED, DEPROVISIONING, DEPROVISIONED. Device + provisioning status type: string uuid: + description: Device unique identifier. Device unique identifier type: string zoneCode: + description: Device location zone code. Device location + zone code type: string type: object type: array sshIpAddress: + description: IP address of SSH enabled interface on the device. + IP address of SSH enabled interface on the device type: string sshIpFqdn: + description: FQDN of SSH enabled interface on the device. FQDN + of SSH enabled interface on the device type: string status: + description: Device provisioning status. Possible values are INITIALIZING, + PROVISIONING, WAITING_FOR_PRIMARY, WAITING_FOR_SECONDARY, WAITING_FOR_REPLICA_CLUSTER_NODES, + CLUSTER_SETUP_IN_PROGRESS, FAILED, PROVISIONED, DEPROVISIONING, + DEPROVISIONED. Device provisioning status type: string uuid: + description: Device unique identifier. Device unique identifier type: string zoneCode: + description: Device location zone code. Device location zone code type: string type: object conditions: diff --git a/package/crds/network.equinix.jet.crossplane.io_sshkeys.yaml b/package/crds/network.equinix.jet.crossplane.io_sshkeys.yaml index 60e7b60..5734ca6 100644 --- a/package/crds/network.equinix.jet.crossplane.io_sshkeys.yaml +++ b/package/crds/network.equinix.jet.crossplane.io_sshkeys.yaml @@ -12,7 +12,7 @@ spec: categories: - crossplane - managed - - equinixjet + - equinix kind: SSHKey listKind: SSHKeyList plural: sshkeys @@ -35,7 +35,7 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: SSHKey is the Schema for the SSHKeys API + description: SSHKey is the Schema for the SSHKeys API. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -64,11 +64,14 @@ spec: forProvider: properties: name: - description: The name of SSH key used for identification + description: The name of SSH key used for identification. The + name of SSH key used for identification type: string publicKey: description: The SSH public key. If this is a file, it can be - read using the file interpolation function + read using the file interpolation function. The SSH public key. + If this is a file, it can be read using the file interpolation + function type: string required: - name @@ -84,6 +87,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -95,6 +123,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -114,6 +167,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -178,6 +256,8 @@ spec: id: type: string uuid: + description: The unique identifier of the key The unique identifier + of the key type: string type: object conditions: diff --git a/package/crds/network.equinix.jet.crossplane.io_sshusers.yaml b/package/crds/network.equinix.jet.crossplane.io_sshusers.yaml index 4cd707f..dd09e8a 100644 --- a/package/crds/network.equinix.jet.crossplane.io_sshusers.yaml +++ b/package/crds/network.equinix.jet.crossplane.io_sshusers.yaml @@ -12,7 +12,7 @@ spec: categories: - crossplane - managed - - equinixjet + - equinix kind: SSHUser listKind: SSHUserList plural: sshusers @@ -35,7 +35,7 @@ spec: name: v1alpha1 schema: openAPIV3Schema: - description: SSHUser is the Schema for the SSHUsers API + description: SSHUser is the Schema for the SSHUsers API. properties: apiVersion: description: 'APIVersion defines the versioned schema of this representation @@ -65,12 +65,12 @@ spec: properties: deviceIds: description: list of device identifiers to which user will have - access + access. list of device identifiers to which user will have access items: type: string type: array passwordSecretRef: - description: SSH user password + description: SSH user password. SSH user password properties: key: description: The key to select. @@ -87,7 +87,7 @@ spec: - namespace type: object username: - description: SSH user login name + description: SSH user login name. SSH user login name type: string required: - deviceIds @@ -104,6 +104,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -115,6 +140,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -134,6 +184,31 @@ spec: name: description: Name of the referenced object. type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object required: - name type: object @@ -198,6 +273,7 @@ spec: id: type: string uuid: + description: SSH user unique identifier. SSH user unique identifier type: string type: object conditions: