diff --git a/apis/sagemaker/v1beta1/zz_endpoint_types.go b/apis/sagemaker/v1beta1/zz_endpoint_types.go new file mode 100755 index 0000000000..b8ad14a2ef --- /dev/null +++ b/apis/sagemaker/v1beta1/zz_endpoint_types.go @@ -0,0 +1,353 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package v1beta1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + + v1 "github.com/crossplane/crossplane-runtime/apis/common/v1" +) + +type AlarmsInitParameters struct { + + // The name of a CloudWatch alarm in your account. + AlarmName *string `json:"alarmName,omitempty" tf:"alarm_name,omitempty"` +} + +type AlarmsObservation struct { + + // The name of a CloudWatch alarm in your account. + AlarmName *string `json:"alarmName,omitempty" tf:"alarm_name,omitempty"` +} + +type AlarmsParameters struct { + + // The name of a CloudWatch alarm in your account. + // +kubebuilder:validation:Optional + AlarmName *string `json:"alarmName" tf:"alarm_name,omitempty"` +} + +type AutoRollbackConfigurationInitParameters struct { + + // List of CloudWatch alarms in your account that are configured to monitor metrics on an endpoint. If any alarms are tripped during a deployment, SageMaker rolls back the deployment. See Alarms. + Alarms []AlarmsInitParameters `json:"alarms,omitempty" tf:"alarms,omitempty"` +} + +type AutoRollbackConfigurationObservation struct { + + // List of CloudWatch alarms in your account that are configured to monitor metrics on an endpoint. If any alarms are tripped during a deployment, SageMaker rolls back the deployment. See Alarms. + Alarms []AlarmsObservation `json:"alarms,omitempty" tf:"alarms,omitempty"` +} + +type AutoRollbackConfigurationParameters struct { + + // List of CloudWatch alarms in your account that are configured to monitor metrics on an endpoint. If any alarms are tripped during a deployment, SageMaker rolls back the deployment. See Alarms. + // +kubebuilder:validation:Optional + Alarms []AlarmsParameters `json:"alarms,omitempty" tf:"alarms,omitempty"` +} + +type BlueGreenUpdatePolicyInitParameters struct { + + // Maximum execution timeout for the deployment. Note that the timeout value should be larger than the total waiting time specified in termination_wait_in_seconds and wait_interval_in_seconds. Valid values are between 600 and 14400. + MaximumExecutionTimeoutInSeconds *float64 `json:"maximumExecutionTimeoutInSeconds,omitempty" tf:"maximum_execution_timeout_in_seconds,omitempty"` + + // Additional waiting time in seconds after the completion of an endpoint deployment before terminating the old endpoint fleet. Default is 0. Valid values are between 0 and 3600. + TerminationWaitInSeconds *float64 `json:"terminationWaitInSeconds,omitempty" tf:"termination_wait_in_seconds,omitempty"` + + // Defines the traffic routing strategy to shift traffic from the old fleet to the new fleet during an endpoint deployment. See Traffic Routing Configuration. + TrafficRoutingConfiguration []TrafficRoutingConfigurationInitParameters `json:"trafficRoutingConfiguration,omitempty" tf:"traffic_routing_configuration,omitempty"` +} + +type BlueGreenUpdatePolicyObservation struct { + + // Maximum execution timeout for the deployment. Note that the timeout value should be larger than the total waiting time specified in termination_wait_in_seconds and wait_interval_in_seconds. Valid values are between 600 and 14400. + MaximumExecutionTimeoutInSeconds *float64 `json:"maximumExecutionTimeoutInSeconds,omitempty" tf:"maximum_execution_timeout_in_seconds,omitempty"` + + // Additional waiting time in seconds after the completion of an endpoint deployment before terminating the old endpoint fleet. Default is 0. Valid values are between 0 and 3600. + TerminationWaitInSeconds *float64 `json:"terminationWaitInSeconds,omitempty" tf:"termination_wait_in_seconds,omitempty"` + + // Defines the traffic routing strategy to shift traffic from the old fleet to the new fleet during an endpoint deployment. See Traffic Routing Configuration. + TrafficRoutingConfiguration []TrafficRoutingConfigurationObservation `json:"trafficRoutingConfiguration,omitempty" tf:"traffic_routing_configuration,omitempty"` +} + +type BlueGreenUpdatePolicyParameters struct { + + // Maximum execution timeout for the deployment. Note that the timeout value should be larger than the total waiting time specified in termination_wait_in_seconds and wait_interval_in_seconds. Valid values are between 600 and 14400. + // +kubebuilder:validation:Optional + MaximumExecutionTimeoutInSeconds *float64 `json:"maximumExecutionTimeoutInSeconds,omitempty" tf:"maximum_execution_timeout_in_seconds,omitempty"` + + // Additional waiting time in seconds after the completion of an endpoint deployment before terminating the old endpoint fleet. Default is 0. Valid values are between 0 and 3600. + // +kubebuilder:validation:Optional + TerminationWaitInSeconds *float64 `json:"terminationWaitInSeconds,omitempty" tf:"termination_wait_in_seconds,omitempty"` + + // Defines the traffic routing strategy to shift traffic from the old fleet to the new fleet during an endpoint deployment. See Traffic Routing Configuration. + // +kubebuilder:validation:Optional + TrafficRoutingConfiguration []TrafficRoutingConfigurationParameters `json:"trafficRoutingConfiguration" tf:"traffic_routing_configuration,omitempty"` +} + +type CanarySizeInitParameters struct { + + // Traffic routing strategy type. Valid values are: ALL_AT_ONCE, CANARY, and LINEAR. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Defines the capacity size, either as a number of instances or a capacity percentage. + Value *float64 `json:"value,omitempty" tf:"value,omitempty"` +} + +type CanarySizeObservation struct { + + // Traffic routing strategy type. Valid values are: ALL_AT_ONCE, CANARY, and LINEAR. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Defines the capacity size, either as a number of instances or a capacity percentage. + Value *float64 `json:"value,omitempty" tf:"value,omitempty"` +} + +type CanarySizeParameters struct { + + // Traffic routing strategy type. Valid values are: ALL_AT_ONCE, CANARY, and LINEAR. + // +kubebuilder:validation:Optional + Type *string `json:"type" tf:"type,omitempty"` + + // Defines the capacity size, either as a number of instances or a capacity percentage. + // +kubebuilder:validation:Optional + Value *float64 `json:"value" tf:"value,omitempty"` +} + +type DeploymentConfigInitParameters struct { + + // Automatic rollback configuration for handling endpoint deployment failures and recovery. See Auto Rollback Configuration. + AutoRollbackConfiguration []AutoRollbackConfigurationInitParameters `json:"autoRollbackConfiguration,omitempty" tf:"auto_rollback_configuration,omitempty"` + + // Update policy for a blue/green deployment. If this update policy is specified, SageMaker creates a new fleet during the deployment while maintaining the old fleet. See Blue Green Update Config. + BlueGreenUpdatePolicy []BlueGreenUpdatePolicyInitParameters `json:"blueGreenUpdatePolicy,omitempty" tf:"blue_green_update_policy,omitempty"` +} + +type DeploymentConfigObservation struct { + + // Automatic rollback configuration for handling endpoint deployment failures and recovery. See Auto Rollback Configuration. + AutoRollbackConfiguration []AutoRollbackConfigurationObservation `json:"autoRollbackConfiguration,omitempty" tf:"auto_rollback_configuration,omitempty"` + + // Update policy for a blue/green deployment. If this update policy is specified, SageMaker creates a new fleet during the deployment while maintaining the old fleet. See Blue Green Update Config. + BlueGreenUpdatePolicy []BlueGreenUpdatePolicyObservation `json:"blueGreenUpdatePolicy,omitempty" tf:"blue_green_update_policy,omitempty"` +} + +type DeploymentConfigParameters struct { + + // Automatic rollback configuration for handling endpoint deployment failures and recovery. See Auto Rollback Configuration. + // +kubebuilder:validation:Optional + AutoRollbackConfiguration []AutoRollbackConfigurationParameters `json:"autoRollbackConfiguration,omitempty" tf:"auto_rollback_configuration,omitempty"` + + // Update policy for a blue/green deployment. If this update policy is specified, SageMaker creates a new fleet during the deployment while maintaining the old fleet. See Blue Green Update Config. + // +kubebuilder:validation:Optional + BlueGreenUpdatePolicy []BlueGreenUpdatePolicyParameters `json:"blueGreenUpdatePolicy" tf:"blue_green_update_policy,omitempty"` +} + +type EndpointInitParameters struct { + + // The deployment configuration for an endpoint, which contains the desired deployment strategy and rollback configurations. See Deployment Config. + DeploymentConfig []DeploymentConfigInitParameters `json:"deploymentConfig,omitempty" tf:"deployment_config,omitempty"` + + // Key-value map of resource tags. + // +mapType=granular + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +} + +type EndpointObservation struct { + + // The Amazon Resource Name (ARN) assigned by AWS to this endpoint. + Arn *string `json:"arn,omitempty" tf:"arn,omitempty"` + + // The deployment configuration for an endpoint, which contains the desired deployment strategy and rollback configurations. See Deployment Config. + DeploymentConfig []DeploymentConfigObservation `json:"deploymentConfig,omitempty" tf:"deployment_config,omitempty"` + + // The name of the endpoint configuration to use. + EndpointConfigName *string `json:"endpointConfigName,omitempty" tf:"endpoint_config_name,omitempty"` + + ID *string `json:"id,omitempty" tf:"id,omitempty"` + + // Key-value map of resource tags. + // +mapType=granular + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` + + // A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block. + // +mapType=granular + TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"` +} + +type EndpointParameters struct { + + // The deployment configuration for an endpoint, which contains the desired deployment strategy and rollback configurations. See Deployment Config. + // +kubebuilder:validation:Optional + DeploymentConfig []DeploymentConfigParameters `json:"deploymentConfig,omitempty" tf:"deployment_config,omitempty"` + + // The name of the endpoint configuration to use. + // +crossplane:generate:reference:type=github.com/upbound/provider-aws/apis/sagemaker/v1beta1.EndpointConfiguration + // +kubebuilder:validation:Optional + EndpointConfigName *string `json:"endpointConfigName,omitempty" tf:"endpoint_config_name,omitempty"` + + // Reference to a EndpointConfiguration in sagemaker to populate endpointConfigName. + // +kubebuilder:validation:Optional + EndpointConfigNameRef *v1.Reference `json:"endpointConfigNameRef,omitempty" tf:"-"` + + // Selector for a EndpointConfiguration in sagemaker to populate endpointConfigName. + // +kubebuilder:validation:Optional + EndpointConfigNameSelector *v1.Selector `json:"endpointConfigNameSelector,omitempty" tf:"-"` + + // Region is the region you'd like your resource to be created in. + // +upjet:crd:field:TFTag=- + // +kubebuilder:validation:Required + Region *string `json:"region" tf:"-"` + + // Key-value map of resource tags. + // +kubebuilder:validation:Optional + // +mapType=granular + Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"` +} + +type LinearStepSizeInitParameters struct { + + // Traffic routing strategy type. Valid values are: ALL_AT_ONCE, CANARY, and LINEAR. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Defines the capacity size, either as a number of instances or a capacity percentage. + Value *float64 `json:"value,omitempty" tf:"value,omitempty"` +} + +type LinearStepSizeObservation struct { + + // Traffic routing strategy type. Valid values are: ALL_AT_ONCE, CANARY, and LINEAR. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // Defines the capacity size, either as a number of instances or a capacity percentage. + Value *float64 `json:"value,omitempty" tf:"value,omitempty"` +} + +type LinearStepSizeParameters struct { + + // Traffic routing strategy type. Valid values are: ALL_AT_ONCE, CANARY, and LINEAR. + // +kubebuilder:validation:Optional + Type *string `json:"type" tf:"type,omitempty"` + + // Defines the capacity size, either as a number of instances or a capacity percentage. + // +kubebuilder:validation:Optional + Value *float64 `json:"value" tf:"value,omitempty"` +} + +type TrafficRoutingConfigurationInitParameters struct { + + // Batch size for the first step to turn on traffic on the new endpoint fleet. Value must be less than or equal to 50% of the variant's total instance count. See Canary Size. + CanarySize []CanarySizeInitParameters `json:"canarySize,omitempty" tf:"canary_size,omitempty"` + + // Batch size for each step to turn on traffic on the new endpoint fleet. Value must be 10-50% of the variant's total instance count. See Linear Step Size. + LinearStepSize []LinearStepSizeInitParameters `json:"linearStepSize,omitempty" tf:"linear_step_size,omitempty"` + + // Traffic routing strategy type. Valid values are: ALL_AT_ONCE, CANARY, and LINEAR. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // The waiting time (in seconds) between incremental steps to turn on traffic on the new endpoint fleet. Valid values are between 0 and 3600. + WaitIntervalInSeconds *float64 `json:"waitIntervalInSeconds,omitempty" tf:"wait_interval_in_seconds,omitempty"` +} + +type TrafficRoutingConfigurationObservation struct { + + // Batch size for the first step to turn on traffic on the new endpoint fleet. Value must be less than or equal to 50% of the variant's total instance count. See Canary Size. + CanarySize []CanarySizeObservation `json:"canarySize,omitempty" tf:"canary_size,omitempty"` + + // Batch size for each step to turn on traffic on the new endpoint fleet. Value must be 10-50% of the variant's total instance count. See Linear Step Size. + LinearStepSize []LinearStepSizeObservation `json:"linearStepSize,omitempty" tf:"linear_step_size,omitempty"` + + // Traffic routing strategy type. Valid values are: ALL_AT_ONCE, CANARY, and LINEAR. + Type *string `json:"type,omitempty" tf:"type,omitempty"` + + // The waiting time (in seconds) between incremental steps to turn on traffic on the new endpoint fleet. Valid values are between 0 and 3600. + WaitIntervalInSeconds *float64 `json:"waitIntervalInSeconds,omitempty" tf:"wait_interval_in_seconds,omitempty"` +} + +type TrafficRoutingConfigurationParameters struct { + + // Batch size for the first step to turn on traffic on the new endpoint fleet. Value must be less than or equal to 50% of the variant's total instance count. See Canary Size. + // +kubebuilder:validation:Optional + CanarySize []CanarySizeParameters `json:"canarySize,omitempty" tf:"canary_size,omitempty"` + + // Batch size for each step to turn on traffic on the new endpoint fleet. Value must be 10-50% of the variant's total instance count. See Linear Step Size. + // +kubebuilder:validation:Optional + LinearStepSize []LinearStepSizeParameters `json:"linearStepSize,omitempty" tf:"linear_step_size,omitempty"` + + // Traffic routing strategy type. Valid values are: ALL_AT_ONCE, CANARY, and LINEAR. + // +kubebuilder:validation:Optional + Type *string `json:"type" tf:"type,omitempty"` + + // The waiting time (in seconds) between incremental steps to turn on traffic on the new endpoint fleet. Valid values are between 0 and 3600. + // +kubebuilder:validation:Optional + WaitIntervalInSeconds *float64 `json:"waitIntervalInSeconds" tf:"wait_interval_in_seconds,omitempty"` +} + +// EndpointSpec defines the desired state of Endpoint +type EndpointSpec struct { + v1.ResourceSpec `json:",inline"` + ForProvider EndpointParameters `json:"forProvider"` + // THIS IS A BETA FIELD. It will be honored + // unless the Management Policies feature flag is disabled. + // InitProvider holds the same fields as ForProvider, with the exception + // of Identifier and other resource reference fields. The fields that are + // in InitProvider are merged into ForProvider when the resource is created. + // The same fields are also added to the terraform ignore_changes hook, to + // avoid updating them after creation. This is useful for fields that are + // required on creation, but we do not desire to update them after creation, + // for example because of an external controller is managing them, like an + // autoscaler. + InitProvider EndpointInitParameters `json:"initProvider,omitempty"` +} + +// EndpointStatus defines the observed state of Endpoint. +type EndpointStatus struct { + v1.ResourceStatus `json:",inline"` + AtProvider EndpointObservation `json:"atProvider,omitempty"` +} + +// +kubebuilder:object:root=true + +// Endpoint is the Schema for the Endpoints API. Provides a SageMaker Endpoint resource. +// +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,aws} +type Endpoint struct { + metav1.TypeMeta `json:",inline"` + metav1.ObjectMeta `json:"metadata,omitempty"` + Spec EndpointSpec `json:"spec"` + Status EndpointStatus `json:"status,omitempty"` +} + +// +kubebuilder:object:root=true + +// EndpointList contains a list of Endpoints +type EndpointList struct { + metav1.TypeMeta `json:",inline"` + metav1.ListMeta `json:"metadata,omitempty"` + Items []Endpoint `json:"items"` +} + +// Repository type metadata. +var ( + Endpoint_Kind = "Endpoint" + Endpoint_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: Endpoint_Kind}.String() + Endpoint_KindAPIVersion = Endpoint_Kind + "." + CRDGroupVersion.String() + Endpoint_GroupVersionKind = CRDGroupVersion.WithKind(Endpoint_Kind) +) + +func init() { + SchemeBuilder.Register(&Endpoint{}, &EndpointList{}) +} diff --git a/apis/sagemaker/v1beta1/zz_generated.deepcopy.go b/apis/sagemaker/v1beta1/zz_generated.deepcopy.go index 11f2a7b3e9..67f3e13c07 100644 --- a/apis/sagemaker/v1beta1/zz_generated.deepcopy.go +++ b/apis/sagemaker/v1beta1/zz_generated.deepcopy.go @@ -13,6 +13,66 @@ import ( runtime "k8s.io/apimachinery/pkg/runtime" ) +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AlarmsInitParameters) DeepCopyInto(out *AlarmsInitParameters) { + *out = *in + if in.AlarmName != nil { + in, out := &in.AlarmName, &out.AlarmName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AlarmsInitParameters. +func (in *AlarmsInitParameters) DeepCopy() *AlarmsInitParameters { + if in == nil { + return nil + } + out := new(AlarmsInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AlarmsObservation) DeepCopyInto(out *AlarmsObservation) { + *out = *in + if in.AlarmName != nil { + in, out := &in.AlarmName, &out.AlarmName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AlarmsObservation. +func (in *AlarmsObservation) DeepCopy() *AlarmsObservation { + if in == nil { + return nil + } + out := new(AlarmsObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AlarmsParameters) DeepCopyInto(out *AlarmsParameters) { + *out = *in + if in.AlarmName != nil { + in, out := &in.AlarmName, &out.AlarmName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AlarmsParameters. +func (in *AlarmsParameters) DeepCopy() *AlarmsParameters { + if in == nil { + return nil + } + out := new(AlarmsParameters) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *App) DeepCopyInto(out *App) { *out = *in @@ -774,6 +834,243 @@ func (in *AsyncInferenceConfigParameters) DeepCopy() *AsyncInferenceConfigParame return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AutoRollbackConfigurationInitParameters) DeepCopyInto(out *AutoRollbackConfigurationInitParameters) { + *out = *in + if in.Alarms != nil { + in, out := &in.Alarms, &out.Alarms + *out = make([]AlarmsInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AutoRollbackConfigurationInitParameters. +func (in *AutoRollbackConfigurationInitParameters) DeepCopy() *AutoRollbackConfigurationInitParameters { + if in == nil { + return nil + } + out := new(AutoRollbackConfigurationInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AutoRollbackConfigurationObservation) DeepCopyInto(out *AutoRollbackConfigurationObservation) { + *out = *in + if in.Alarms != nil { + in, out := &in.Alarms, &out.Alarms + *out = make([]AlarmsObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AutoRollbackConfigurationObservation. +func (in *AutoRollbackConfigurationObservation) DeepCopy() *AutoRollbackConfigurationObservation { + if in == nil { + return nil + } + out := new(AutoRollbackConfigurationObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *AutoRollbackConfigurationParameters) DeepCopyInto(out *AutoRollbackConfigurationParameters) { + *out = *in + if in.Alarms != nil { + in, out := &in.Alarms, &out.Alarms + *out = make([]AlarmsParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new AutoRollbackConfigurationParameters. +func (in *AutoRollbackConfigurationParameters) DeepCopy() *AutoRollbackConfigurationParameters { + if in == nil { + return nil + } + out := new(AutoRollbackConfigurationParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BlueGreenUpdatePolicyInitParameters) DeepCopyInto(out *BlueGreenUpdatePolicyInitParameters) { + *out = *in + if in.MaximumExecutionTimeoutInSeconds != nil { + in, out := &in.MaximumExecutionTimeoutInSeconds, &out.MaximumExecutionTimeoutInSeconds + *out = new(float64) + **out = **in + } + if in.TerminationWaitInSeconds != nil { + in, out := &in.TerminationWaitInSeconds, &out.TerminationWaitInSeconds + *out = new(float64) + **out = **in + } + if in.TrafficRoutingConfiguration != nil { + in, out := &in.TrafficRoutingConfiguration, &out.TrafficRoutingConfiguration + *out = make([]TrafficRoutingConfigurationInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BlueGreenUpdatePolicyInitParameters. +func (in *BlueGreenUpdatePolicyInitParameters) DeepCopy() *BlueGreenUpdatePolicyInitParameters { + if in == nil { + return nil + } + out := new(BlueGreenUpdatePolicyInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BlueGreenUpdatePolicyObservation) DeepCopyInto(out *BlueGreenUpdatePolicyObservation) { + *out = *in + if in.MaximumExecutionTimeoutInSeconds != nil { + in, out := &in.MaximumExecutionTimeoutInSeconds, &out.MaximumExecutionTimeoutInSeconds + *out = new(float64) + **out = **in + } + if in.TerminationWaitInSeconds != nil { + in, out := &in.TerminationWaitInSeconds, &out.TerminationWaitInSeconds + *out = new(float64) + **out = **in + } + if in.TrafficRoutingConfiguration != nil { + in, out := &in.TrafficRoutingConfiguration, &out.TrafficRoutingConfiguration + *out = make([]TrafficRoutingConfigurationObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BlueGreenUpdatePolicyObservation. +func (in *BlueGreenUpdatePolicyObservation) DeepCopy() *BlueGreenUpdatePolicyObservation { + if in == nil { + return nil + } + out := new(BlueGreenUpdatePolicyObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *BlueGreenUpdatePolicyParameters) DeepCopyInto(out *BlueGreenUpdatePolicyParameters) { + *out = *in + if in.MaximumExecutionTimeoutInSeconds != nil { + in, out := &in.MaximumExecutionTimeoutInSeconds, &out.MaximumExecutionTimeoutInSeconds + *out = new(float64) + **out = **in + } + if in.TerminationWaitInSeconds != nil { + in, out := &in.TerminationWaitInSeconds, &out.TerminationWaitInSeconds + *out = new(float64) + **out = **in + } + if in.TrafficRoutingConfiguration != nil { + in, out := &in.TrafficRoutingConfiguration, &out.TrafficRoutingConfiguration + *out = make([]TrafficRoutingConfigurationParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new BlueGreenUpdatePolicyParameters. +func (in *BlueGreenUpdatePolicyParameters) DeepCopy() *BlueGreenUpdatePolicyParameters { + if in == nil { + return nil + } + out := new(BlueGreenUpdatePolicyParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CanarySizeInitParameters) DeepCopyInto(out *CanarySizeInitParameters) { + *out = *in + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.Value != nil { + in, out := &in.Value, &out.Value + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CanarySizeInitParameters. +func (in *CanarySizeInitParameters) DeepCopy() *CanarySizeInitParameters { + if in == nil { + return nil + } + out := new(CanarySizeInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CanarySizeObservation) DeepCopyInto(out *CanarySizeObservation) { + *out = *in + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.Value != nil { + in, out := &in.Value, &out.Value + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CanarySizeObservation. +func (in *CanarySizeObservation) DeepCopy() *CanarySizeObservation { + if in == nil { + return nil + } + out := new(CanarySizeObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *CanarySizeParameters) DeepCopyInto(out *CanarySizeParameters) { + *out = *in + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.Value != nil { + in, out := &in.Value, &out.Value + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new CanarySizeParameters. +func (in *CanarySizeParameters) DeepCopy() *CanarySizeParameters { + if in == nil { + return nil + } + out := new(CanarySizeParameters) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *CanvasAppSettingsInitParameters) DeepCopyInto(out *CanvasAppSettingsInitParameters) { *out = *in @@ -3138,69 +3435,156 @@ func (in *DefaultUserSettingsParameters) DeepCopy() *DefaultUserSettingsParamete } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *Device) DeepCopyInto(out *Device) { +func (in *DeploymentConfigInitParameters) DeepCopyInto(out *DeploymentConfigInitParameters) { *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) + if in.AutoRollbackConfiguration != nil { + in, out := &in.AutoRollbackConfiguration, &out.AutoRollbackConfiguration + *out = make([]AutoRollbackConfigurationInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.BlueGreenUpdatePolicy != nil { + in, out := &in.BlueGreenUpdatePolicy, &out.BlueGreenUpdatePolicy + *out = make([]BlueGreenUpdatePolicyInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Device. -func (in *Device) DeepCopy() *Device { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentConfigInitParameters. +func (in *DeploymentConfigInitParameters) DeepCopy() *DeploymentConfigInitParameters { if in == nil { return nil } - out := new(Device) + out := new(DeploymentConfigInitParameters) in.DeepCopyInto(out) return out } -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *Device) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DeviceDeviceInitParameters) DeepCopyInto(out *DeviceDeviceInitParameters) { +func (in *DeploymentConfigObservation) DeepCopyInto(out *DeploymentConfigObservation) { *out = *in - if in.Description != nil { - in, out := &in.Description, &out.Description - *out = new(string) - **out = **in - } - if in.DeviceName != nil { - in, out := &in.DeviceName, &out.DeviceName - *out = new(string) - **out = **in + if in.AutoRollbackConfiguration != nil { + in, out := &in.AutoRollbackConfiguration, &out.AutoRollbackConfiguration + *out = make([]AutoRollbackConfigurationObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } } - if in.IotThingName != nil { - in, out := &in.IotThingName, &out.IotThingName - *out = new(string) - **out = **in + if in.BlueGreenUpdatePolicy != nil { + in, out := &in.BlueGreenUpdatePolicy, &out.BlueGreenUpdatePolicy + *out = make([]BlueGreenUpdatePolicyObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceDeviceInitParameters. -func (in *DeviceDeviceInitParameters) DeepCopy() *DeviceDeviceInitParameters { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentConfigObservation. +func (in *DeploymentConfigObservation) DeepCopy() *DeploymentConfigObservation { if in == nil { return nil } - out := new(DeviceDeviceInitParameters) + out := new(DeploymentConfigObservation) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *DeviceDeviceObservation) DeepCopyInto(out *DeviceDeviceObservation) { +func (in *DeploymentConfigParameters) DeepCopyInto(out *DeploymentConfigParameters) { *out = *in - if in.Description != nil { - in, out := &in.Description, &out.Description - *out = new(string) - **out = **in + if in.AutoRollbackConfiguration != nil { + in, out := &in.AutoRollbackConfiguration, &out.AutoRollbackConfiguration + *out = make([]AutoRollbackConfigurationParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.BlueGreenUpdatePolicy != nil { + in, out := &in.BlueGreenUpdatePolicy, &out.BlueGreenUpdatePolicy + *out = make([]BlueGreenUpdatePolicyParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeploymentConfigParameters. +func (in *DeploymentConfigParameters) DeepCopy() *DeploymentConfigParameters { + if in == nil { + return nil + } + out := new(DeploymentConfigParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Device) DeepCopyInto(out *Device) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Device. +func (in *Device) DeepCopy() *Device { + if in == nil { + return nil + } + out := new(Device) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Device) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DeviceDeviceInitParameters) DeepCopyInto(out *DeviceDeviceInitParameters) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in + } + if in.DeviceName != nil { + in, out := &in.DeviceName, &out.DeviceName + *out = new(string) + **out = **in + } + if in.IotThingName != nil { + in, out := &in.IotThingName, &out.IotThingName + *out = new(string) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new DeviceDeviceInitParameters. +func (in *DeviceDeviceInitParameters) DeepCopy() *DeviceDeviceInitParameters { + if in == nil { + return nil + } + out := new(DeviceDeviceInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *DeviceDeviceObservation) DeepCopyInto(out *DeviceDeviceObservation) { + *out = *in + if in.Description != nil { + in, out := &in.Description, &out.Description + *out = new(string) + **out = **in } if in.DeviceName != nil { in, out := &in.DeviceName, &out.DeviceName @@ -4291,60 +4675,361 @@ func (in *DomainStatus) DeepCopy() *DomainStatus { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Endpoint) DeepCopyInto(out *Endpoint) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Endpoint. +func (in *Endpoint) DeepCopy() *Endpoint { + if in == nil { + return nil + } + out := new(Endpoint) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Endpoint) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *EndpointConfiguration) DeepCopyInto(out *EndpointConfiguration) { *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + in.Spec.DeepCopyInto(&out.Spec) + in.Status.DeepCopyInto(&out.Status) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointConfiguration. +func (in *EndpointConfiguration) DeepCopy() *EndpointConfiguration { + if in == nil { + return nil + } + out := new(EndpointConfiguration) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *EndpointConfiguration) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EndpointConfigurationInitParameters) DeepCopyInto(out *EndpointConfigurationInitParameters) { + *out = *in + if in.AsyncInferenceConfig != nil { + in, out := &in.AsyncInferenceConfig, &out.AsyncInferenceConfig + *out = make([]AsyncInferenceConfigInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.DataCaptureConfig != nil { + in, out := &in.DataCaptureConfig, &out.DataCaptureConfig + *out = make([]DataCaptureConfigInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ProductionVariants != nil { + in, out := &in.ProductionVariants, &out.ProductionVariants + *out = make([]ProductionVariantsInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ShadowProductionVariants != nil { + in, out := &in.ShadowProductionVariants, &out.ShadowProductionVariants + *out = make([]ShadowProductionVariantsInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make(map[string]*string, len(*in)) + for key, val := range *in { + var outVal *string + if val == nil { + (*out)[key] = nil + } else { + inVal := (*in)[key] + in, out := &inVal, &outVal + *out = new(string) + **out = **in + } + (*out)[key] = outVal + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointConfigurationInitParameters. +func (in *EndpointConfigurationInitParameters) DeepCopy() *EndpointConfigurationInitParameters { + if in == nil { + return nil + } + out := new(EndpointConfigurationInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EndpointConfigurationList) DeepCopyInto(out *EndpointConfigurationList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]EndpointConfiguration, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointConfigurationList. +func (in *EndpointConfigurationList) DeepCopy() *EndpointConfigurationList { + if in == nil { + return nil + } + out := new(EndpointConfigurationList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *EndpointConfigurationList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EndpointConfigurationObservation) DeepCopyInto(out *EndpointConfigurationObservation) { + *out = *in + if in.Arn != nil { + in, out := &in.Arn, &out.Arn + *out = new(string) + **out = **in + } + if in.AsyncInferenceConfig != nil { + in, out := &in.AsyncInferenceConfig, &out.AsyncInferenceConfig + *out = make([]AsyncInferenceConfigObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.DataCaptureConfig != nil { + in, out := &in.DataCaptureConfig, &out.DataCaptureConfig + *out = make([]DataCaptureConfigObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ID != nil { + in, out := &in.ID, &out.ID + *out = new(string) + **out = **in + } + if in.KMSKeyArn != nil { + in, out := &in.KMSKeyArn, &out.KMSKeyArn + *out = new(string) + **out = **in + } + if in.ProductionVariants != nil { + in, out := &in.ProductionVariants, &out.ProductionVariants + *out = make([]ProductionVariantsObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.ShadowProductionVariants != nil { + in, out := &in.ShadowProductionVariants, &out.ShadowProductionVariants + *out = make([]ShadowProductionVariantsObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make(map[string]*string, len(*in)) + for key, val := range *in { + var outVal *string + if val == nil { + (*out)[key] = nil + } else { + inVal := (*in)[key] + in, out := &inVal, &outVal + *out = new(string) + **out = **in + } + (*out)[key] = outVal + } + } + if in.TagsAll != nil { + in, out := &in.TagsAll, &out.TagsAll + *out = make(map[string]*string, len(*in)) + for key, val := range *in { + var outVal *string + if val == nil { + (*out)[key] = nil + } else { + inVal := (*in)[key] + in, out := &inVal, &outVal + *out = new(string) + **out = **in + } + (*out)[key] = outVal + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointConfigurationObservation. +func (in *EndpointConfigurationObservation) DeepCopy() *EndpointConfigurationObservation { + if in == nil { + return nil + } + out := new(EndpointConfigurationObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EndpointConfigurationParameters) DeepCopyInto(out *EndpointConfigurationParameters) { + *out = *in + if in.AsyncInferenceConfig != nil { + in, out := &in.AsyncInferenceConfig, &out.AsyncInferenceConfig + *out = make([]AsyncInferenceConfigParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.DataCaptureConfig != nil { + in, out := &in.DataCaptureConfig, &out.DataCaptureConfig + *out = make([]DataCaptureConfigParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.KMSKeyArn != nil { + in, out := &in.KMSKeyArn, &out.KMSKeyArn + *out = new(string) + **out = **in + } + if in.KMSKeyArnRef != nil { + in, out := &in.KMSKeyArnRef, &out.KMSKeyArnRef + *out = new(v1.Reference) + (*in).DeepCopyInto(*out) + } + if in.KMSKeyArnSelector != nil { + in, out := &in.KMSKeyArnSelector, &out.KMSKeyArnSelector + *out = new(v1.Selector) + (*in).DeepCopyInto(*out) + } + if in.ProductionVariants != nil { + in, out := &in.ProductionVariants, &out.ProductionVariants + *out = make([]ProductionVariantsParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Region != nil { + in, out := &in.Region, &out.Region + *out = new(string) + **out = **in + } + if in.ShadowProductionVariants != nil { + in, out := &in.ShadowProductionVariants, &out.ShadowProductionVariants + *out = make([]ShadowProductionVariantsParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Tags != nil { + in, out := &in.Tags, &out.Tags + *out = make(map[string]*string, len(*in)) + for key, val := range *in { + var outVal *string + if val == nil { + (*out)[key] = nil + } else { + inVal := (*in)[key] + in, out := &inVal, &outVal + *out = new(string) + **out = **in + } + (*out)[key] = outVal + } + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointConfigurationParameters. +func (in *EndpointConfigurationParameters) DeepCopy() *EndpointConfigurationParameters { + if in == nil { + return nil + } + out := new(EndpointConfigurationParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EndpointConfigurationSpec) DeepCopyInto(out *EndpointConfigurationSpec) { + *out = *in + in.ResourceSpec.DeepCopyInto(&out.ResourceSpec) + in.ForProvider.DeepCopyInto(&out.ForProvider) + in.InitProvider.DeepCopyInto(&out.InitProvider) +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointConfigurationSpec. +func (in *EndpointConfigurationSpec) DeepCopy() *EndpointConfigurationSpec { + if in == nil { + return nil + } + out := new(EndpointConfigurationSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *EndpointConfigurationStatus) DeepCopyInto(out *EndpointConfigurationStatus) { + *out = *in + in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) + in.AtProvider.DeepCopyInto(&out.AtProvider) } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointConfiguration. -func (in *EndpointConfiguration) DeepCopy() *EndpointConfiguration { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointConfigurationStatus. +func (in *EndpointConfigurationStatus) DeepCopy() *EndpointConfigurationStatus { if in == nil { return nil } - out := new(EndpointConfiguration) + out := new(EndpointConfigurationStatus) in.DeepCopyInto(out) return out } -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *EndpointConfiguration) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *EndpointConfigurationInitParameters) DeepCopyInto(out *EndpointConfigurationInitParameters) { +func (in *EndpointInitParameters) DeepCopyInto(out *EndpointInitParameters) { *out = *in - if in.AsyncInferenceConfig != nil { - in, out := &in.AsyncInferenceConfig, &out.AsyncInferenceConfig - *out = make([]AsyncInferenceConfigInitParameters, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.DataCaptureConfig != nil { - in, out := &in.DataCaptureConfig, &out.DataCaptureConfig - *out = make([]DataCaptureConfigInitParameters, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.ProductionVariants != nil { - in, out := &in.ProductionVariants, &out.ProductionVariants - *out = make([]ProductionVariantsInitParameters, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.ShadowProductionVariants != nil { - in, out := &in.ShadowProductionVariants, &out.ShadowProductionVariants - *out = make([]ShadowProductionVariantsInitParameters, len(*in)) + if in.DeploymentConfig != nil { + in, out := &in.DeploymentConfig, &out.DeploymentConfig + *out = make([]DeploymentConfigInitParameters, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } @@ -4367,42 +5052,42 @@ func (in *EndpointConfigurationInitParameters) DeepCopyInto(out *EndpointConfigu } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointConfigurationInitParameters. -func (in *EndpointConfigurationInitParameters) DeepCopy() *EndpointConfigurationInitParameters { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointInitParameters. +func (in *EndpointInitParameters) DeepCopy() *EndpointInitParameters { if in == nil { return nil } - out := new(EndpointConfigurationInitParameters) + out := new(EndpointInitParameters) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *EndpointConfigurationList) DeepCopyInto(out *EndpointConfigurationList) { +func (in *EndpointList) DeepCopyInto(out *EndpointList) { *out = *in out.TypeMeta = in.TypeMeta in.ListMeta.DeepCopyInto(&out.ListMeta) if in.Items != nil { in, out := &in.Items, &out.Items - *out = make([]EndpointConfiguration, len(*in)) + *out = make([]Endpoint, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointConfigurationList. -func (in *EndpointConfigurationList) DeepCopy() *EndpointConfigurationList { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointList. +func (in *EndpointList) DeepCopy() *EndpointList { if in == nil { return nil } - out := new(EndpointConfigurationList) + out := new(EndpointList) in.DeepCopyInto(out) return out } // DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *EndpointConfigurationList) DeepCopyObject() runtime.Object { +func (in *EndpointList) DeepCopyObject() runtime.Object { if c := in.DeepCopy(); c != nil { return c } @@ -4410,51 +5095,30 @@ func (in *EndpointConfigurationList) DeepCopyObject() runtime.Object { } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *EndpointConfigurationObservation) DeepCopyInto(out *EndpointConfigurationObservation) { +func (in *EndpointObservation) DeepCopyInto(out *EndpointObservation) { *out = *in if in.Arn != nil { in, out := &in.Arn, &out.Arn *out = new(string) **out = **in } - if in.AsyncInferenceConfig != nil { - in, out := &in.AsyncInferenceConfig, &out.AsyncInferenceConfig - *out = make([]AsyncInferenceConfigObservation, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.DataCaptureConfig != nil { - in, out := &in.DataCaptureConfig, &out.DataCaptureConfig - *out = make([]DataCaptureConfigObservation, len(*in)) + if in.DeploymentConfig != nil { + in, out := &in.DeploymentConfig, &out.DeploymentConfig + *out = make([]DeploymentConfigObservation, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } } - if in.ID != nil { - in, out := &in.ID, &out.ID + if in.EndpointConfigName != nil { + in, out := &in.EndpointConfigName, &out.EndpointConfigName *out = new(string) **out = **in } - if in.KMSKeyArn != nil { - in, out := &in.KMSKeyArn, &out.KMSKeyArn + if in.ID != nil { + in, out := &in.ID, &out.ID *out = new(string) **out = **in } - if in.ProductionVariants != nil { - in, out := &in.ProductionVariants, &out.ProductionVariants - *out = make([]ProductionVariantsObservation, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.ShadowProductionVariants != nil { - in, out := &in.ShadowProductionVariants, &out.ShadowProductionVariants - *out = make([]ShadowProductionVariantsObservation, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } if in.Tags != nil { in, out := &in.Tags, &out.Tags *out = make(map[string]*string, len(*in)) @@ -4489,67 +5153,46 @@ func (in *EndpointConfigurationObservation) DeepCopyInto(out *EndpointConfigurat } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointConfigurationObservation. -func (in *EndpointConfigurationObservation) DeepCopy() *EndpointConfigurationObservation { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointObservation. +func (in *EndpointObservation) DeepCopy() *EndpointObservation { if in == nil { return nil } - out := new(EndpointConfigurationObservation) + out := new(EndpointObservation) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *EndpointConfigurationParameters) DeepCopyInto(out *EndpointConfigurationParameters) { +func (in *EndpointParameters) DeepCopyInto(out *EndpointParameters) { *out = *in - if in.AsyncInferenceConfig != nil { - in, out := &in.AsyncInferenceConfig, &out.AsyncInferenceConfig - *out = make([]AsyncInferenceConfigParameters, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.DataCaptureConfig != nil { - in, out := &in.DataCaptureConfig, &out.DataCaptureConfig - *out = make([]DataCaptureConfigParameters, len(*in)) + if in.DeploymentConfig != nil { + in, out := &in.DeploymentConfig, &out.DeploymentConfig + *out = make([]DeploymentConfigParameters, len(*in)) for i := range *in { (*in)[i].DeepCopyInto(&(*out)[i]) } } - if in.KMSKeyArn != nil { - in, out := &in.KMSKeyArn, &out.KMSKeyArn + if in.EndpointConfigName != nil { + in, out := &in.EndpointConfigName, &out.EndpointConfigName *out = new(string) **out = **in } - if in.KMSKeyArnRef != nil { - in, out := &in.KMSKeyArnRef, &out.KMSKeyArnRef + if in.EndpointConfigNameRef != nil { + in, out := &in.EndpointConfigNameRef, &out.EndpointConfigNameRef *out = new(v1.Reference) (*in).DeepCopyInto(*out) } - if in.KMSKeyArnSelector != nil { - in, out := &in.KMSKeyArnSelector, &out.KMSKeyArnSelector + if in.EndpointConfigNameSelector != nil { + in, out := &in.EndpointConfigNameSelector, &out.EndpointConfigNameSelector *out = new(v1.Selector) (*in).DeepCopyInto(*out) } - if in.ProductionVariants != nil { - in, out := &in.ProductionVariants, &out.ProductionVariants - *out = make([]ProductionVariantsParameters, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } if in.Region != nil { in, out := &in.Region, &out.Region *out = new(string) **out = **in } - if in.ShadowProductionVariants != nil { - in, out := &in.ShadowProductionVariants, &out.ShadowProductionVariants - *out = make([]ShadowProductionVariantsParameters, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } if in.Tags != nil { in, out := &in.Tags, &out.Tags *out = make(map[string]*string, len(*in)) @@ -4568,47 +5211,47 @@ func (in *EndpointConfigurationParameters) DeepCopyInto(out *EndpointConfigurati } } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointConfigurationParameters. -func (in *EndpointConfigurationParameters) DeepCopy() *EndpointConfigurationParameters { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointParameters. +func (in *EndpointParameters) DeepCopy() *EndpointParameters { if in == nil { return nil } - out := new(EndpointConfigurationParameters) + out := new(EndpointParameters) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *EndpointConfigurationSpec) DeepCopyInto(out *EndpointConfigurationSpec) { +func (in *EndpointSpec) DeepCopyInto(out *EndpointSpec) { *out = *in in.ResourceSpec.DeepCopyInto(&out.ResourceSpec) in.ForProvider.DeepCopyInto(&out.ForProvider) in.InitProvider.DeepCopyInto(&out.InitProvider) } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointConfigurationSpec. -func (in *EndpointConfigurationSpec) DeepCopy() *EndpointConfigurationSpec { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointSpec. +func (in *EndpointSpec) DeepCopy() *EndpointSpec { if in == nil { return nil } - out := new(EndpointConfigurationSpec) + out := new(EndpointSpec) in.DeepCopyInto(out) return out } // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *EndpointConfigurationStatus) DeepCopyInto(out *EndpointConfigurationStatus) { +func (in *EndpointStatus) DeepCopyInto(out *EndpointStatus) { *out = *in in.ResourceStatus.DeepCopyInto(&out.ResourceStatus) in.AtProvider.DeepCopyInto(&out.AtProvider) } -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointConfigurationStatus. -func (in *EndpointConfigurationStatus) DeepCopy() *EndpointConfigurationStatus { +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new EndpointStatus. +func (in *EndpointStatus) DeepCopy() *EndpointStatus { if in == nil { return nil } - out := new(EndpointConfigurationStatus) + out := new(EndpointStatus) in.DeepCopyInto(out) return out } @@ -6724,6 +7367,81 @@ func (in *KernelSpecParameters) DeepCopy() *KernelSpecParameters { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LinearStepSizeInitParameters) DeepCopyInto(out *LinearStepSizeInitParameters) { + *out = *in + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.Value != nil { + in, out := &in.Value, &out.Value + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LinearStepSizeInitParameters. +func (in *LinearStepSizeInitParameters) DeepCopy() *LinearStepSizeInitParameters { + if in == nil { + return nil + } + out := new(LinearStepSizeInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LinearStepSizeObservation) DeepCopyInto(out *LinearStepSizeObservation) { + *out = *in + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.Value != nil { + in, out := &in.Value, &out.Value + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LinearStepSizeObservation. +func (in *LinearStepSizeObservation) DeepCopy() *LinearStepSizeObservation { + if in == nil { + return nil + } + out := new(LinearStepSizeObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *LinearStepSizeParameters) DeepCopyInto(out *LinearStepSizeParameters) { + *out = *in + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.Value != nil { + in, out := &in.Value, &out.Value + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new LinearStepSizeParameters. +func (in *LinearStepSizeParameters) DeepCopy() *LinearStepSizeParameters { + if in == nil { + return nil + } + out := new(LinearStepSizeParameters) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *MemberDefinitionInitParameters) DeepCopyInto(out *MemberDefinitionInitParameters) { *out = *in @@ -12694,6 +13412,123 @@ func (in *TimeSeriesForecastingSettingsParameters) DeepCopy() *TimeSeriesForecas return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TrafficRoutingConfigurationInitParameters) DeepCopyInto(out *TrafficRoutingConfigurationInitParameters) { + *out = *in + if in.CanarySize != nil { + in, out := &in.CanarySize, &out.CanarySize + *out = make([]CanarySizeInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.LinearStepSize != nil { + in, out := &in.LinearStepSize, &out.LinearStepSize + *out = make([]LinearStepSizeInitParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.WaitIntervalInSeconds != nil { + in, out := &in.WaitIntervalInSeconds, &out.WaitIntervalInSeconds + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TrafficRoutingConfigurationInitParameters. +func (in *TrafficRoutingConfigurationInitParameters) DeepCopy() *TrafficRoutingConfigurationInitParameters { + if in == nil { + return nil + } + out := new(TrafficRoutingConfigurationInitParameters) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TrafficRoutingConfigurationObservation) DeepCopyInto(out *TrafficRoutingConfigurationObservation) { + *out = *in + if in.CanarySize != nil { + in, out := &in.CanarySize, &out.CanarySize + *out = make([]CanarySizeObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.LinearStepSize != nil { + in, out := &in.LinearStepSize, &out.LinearStepSize + *out = make([]LinearStepSizeObservation, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.WaitIntervalInSeconds != nil { + in, out := &in.WaitIntervalInSeconds, &out.WaitIntervalInSeconds + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TrafficRoutingConfigurationObservation. +func (in *TrafficRoutingConfigurationObservation) DeepCopy() *TrafficRoutingConfigurationObservation { + if in == nil { + return nil + } + out := new(TrafficRoutingConfigurationObservation) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *TrafficRoutingConfigurationParameters) DeepCopyInto(out *TrafficRoutingConfigurationParameters) { + *out = *in + if in.CanarySize != nil { + in, out := &in.CanarySize, &out.CanarySize + *out = make([]CanarySizeParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.LinearStepSize != nil { + in, out := &in.LinearStepSize, &out.LinearStepSize + *out = make([]LinearStepSizeParameters, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + if in.Type != nil { + in, out := &in.Type, &out.Type + *out = new(string) + **out = **in + } + if in.WaitIntervalInSeconds != nil { + in, out := &in.WaitIntervalInSeconds, &out.WaitIntervalInSeconds + *out = new(float64) + **out = **in + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new TrafficRoutingConfigurationParameters. +func (in *TrafficRoutingConfigurationParameters) DeepCopy() *TrafficRoutingConfigurationParameters { + if in == nil { + return nil + } + out := new(TrafficRoutingConfigurationParameters) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *UserProfile) DeepCopyInto(out *UserProfile) { *out = *in diff --git a/apis/sagemaker/v1beta1/zz_generated.managed.go b/apis/sagemaker/v1beta1/zz_generated.managed.go index 4e3a39ffb9..d0cc76ddbf 100644 --- a/apis/sagemaker/v1beta1/zz_generated.managed.go +++ b/apis/sagemaker/v1beta1/zz_generated.managed.go @@ -367,6 +367,66 @@ func (mg *Domain) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { mg.Spec.WriteConnectionSecretToReference = r } +// GetCondition of this Endpoint. +func (mg *Endpoint) GetCondition(ct xpv1.ConditionType) xpv1.Condition { + return mg.Status.GetCondition(ct) +} + +// GetDeletionPolicy of this Endpoint. +func (mg *Endpoint) GetDeletionPolicy() xpv1.DeletionPolicy { + return mg.Spec.DeletionPolicy +} + +// GetManagementPolicies of this Endpoint. +func (mg *Endpoint) GetManagementPolicies() xpv1.ManagementPolicies { + return mg.Spec.ManagementPolicies +} + +// GetProviderConfigReference of this Endpoint. +func (mg *Endpoint) GetProviderConfigReference() *xpv1.Reference { + return mg.Spec.ProviderConfigReference +} + +// GetPublishConnectionDetailsTo of this Endpoint. +func (mg *Endpoint) GetPublishConnectionDetailsTo() *xpv1.PublishConnectionDetailsTo { + return mg.Spec.PublishConnectionDetailsTo +} + +// GetWriteConnectionSecretToReference of this Endpoint. +func (mg *Endpoint) GetWriteConnectionSecretToReference() *xpv1.SecretReference { + return mg.Spec.WriteConnectionSecretToReference +} + +// SetConditions of this Endpoint. +func (mg *Endpoint) SetConditions(c ...xpv1.Condition) { + mg.Status.SetConditions(c...) +} + +// SetDeletionPolicy of this Endpoint. +func (mg *Endpoint) SetDeletionPolicy(r xpv1.DeletionPolicy) { + mg.Spec.DeletionPolicy = r +} + +// SetManagementPolicies of this Endpoint. +func (mg *Endpoint) SetManagementPolicies(r xpv1.ManagementPolicies) { + mg.Spec.ManagementPolicies = r +} + +// SetProviderConfigReference of this Endpoint. +func (mg *Endpoint) SetProviderConfigReference(r *xpv1.Reference) { + mg.Spec.ProviderConfigReference = r +} + +// SetPublishConnectionDetailsTo of this Endpoint. +func (mg *Endpoint) SetPublishConnectionDetailsTo(r *xpv1.PublishConnectionDetailsTo) { + mg.Spec.PublishConnectionDetailsTo = r +} + +// SetWriteConnectionSecretToReference of this Endpoint. +func (mg *Endpoint) SetWriteConnectionSecretToReference(r *xpv1.SecretReference) { + mg.Spec.WriteConnectionSecretToReference = r +} + // GetCondition of this EndpointConfiguration. func (mg *EndpointConfiguration) GetCondition(ct xpv1.ConditionType) xpv1.Condition { return mg.Status.GetCondition(ct) diff --git a/apis/sagemaker/v1beta1/zz_generated.managedlist.go b/apis/sagemaker/v1beta1/zz_generated.managedlist.go index 147ee1099e..018920375d 100644 --- a/apis/sagemaker/v1beta1/zz_generated.managedlist.go +++ b/apis/sagemaker/v1beta1/zz_generated.managedlist.go @@ -70,6 +70,15 @@ func (l *EndpointConfigurationList) GetItems() []resource.Managed { return items } +// GetItems of this EndpointList. +func (l *EndpointList) GetItems() []resource.Managed { + items := make([]resource.Managed, len(l.Items)) + for i := range l.Items { + items[i] = &l.Items[i] + } + return items +} + // GetItems of this FeatureGroupList. func (l *FeatureGroupList) GetItems() []resource.Managed { items := make([]resource.Managed, len(l.Items)) diff --git a/apis/sagemaker/v1beta1/zz_generated.resolvers.go b/apis/sagemaker/v1beta1/zz_generated.resolvers.go index 1684b66c23..1ac2ea7f52 100644 --- a/apis/sagemaker/v1beta1/zz_generated.resolvers.go +++ b/apis/sagemaker/v1beta1/zz_generated.resolvers.go @@ -263,6 +263,32 @@ func (mg *Domain) ResolveReferences(ctx context.Context, c client.Reader) error return nil } +// ResolveReferences of this Endpoint. +func (mg *Endpoint) ResolveReferences(ctx context.Context, c client.Reader) error { + r := reference.NewAPIResolver(c, mg) + + var rsp reference.ResolutionResponse + var err error + + rsp, err = r.Resolve(ctx, reference.ResolutionRequest{ + CurrentValue: reference.FromPtrValue(mg.Spec.ForProvider.EndpointConfigName), + Extract: reference.ExternalName(), + Reference: mg.Spec.ForProvider.EndpointConfigNameRef, + Selector: mg.Spec.ForProvider.EndpointConfigNameSelector, + To: reference.To{ + List: &EndpointConfigurationList{}, + Managed: &EndpointConfiguration{}, + }, + }) + if err != nil { + return errors.Wrap(err, "mg.Spec.ForProvider.EndpointConfigName") + } + mg.Spec.ForProvider.EndpointConfigName = reference.ToPtrValue(rsp.ResolvedValue) + mg.Spec.ForProvider.EndpointConfigNameRef = rsp.ResolvedReference + + return nil +} + // ResolveReferences of this EndpointConfiguration. func (mg *EndpointConfiguration) ResolveReferences(ctx context.Context, c client.Reader) error { r := reference.NewAPIResolver(c, mg) diff --git a/apis/sagemaker/v1beta1/zz_generated_terraformed.go b/apis/sagemaker/v1beta1/zz_generated_terraformed.go index 5630994dcd..2aed4d2c53 100755 --- a/apis/sagemaker/v1beta1/zz_generated_terraformed.go +++ b/apis/sagemaker/v1beta1/zz_generated_terraformed.go @@ -702,6 +702,120 @@ func (tr *Domain) GetTerraformSchemaVersion() int { return 0 } +// GetTerraformResourceType returns Terraform resource type for this Endpoint +func (mg *Endpoint) GetTerraformResourceType() string { + return "aws_sagemaker_endpoint" +} + +// GetConnectionDetailsMapping for this Endpoint +func (tr *Endpoint) GetConnectionDetailsMapping() map[string]string { + return nil +} + +// GetObservation of this Endpoint +func (tr *Endpoint) GetObservation() (map[string]any, error) { + o, err := json.TFParser.Marshal(tr.Status.AtProvider) + if err != nil { + return nil, err + } + base := map[string]any{} + return base, json.TFParser.Unmarshal(o, &base) +} + +// SetObservation for this Endpoint +func (tr *Endpoint) SetObservation(obs map[string]any) error { + p, err := json.TFParser.Marshal(obs) + if err != nil { + return err + } + return json.TFParser.Unmarshal(p, &tr.Status.AtProvider) +} + +// GetID returns ID of underlying Terraform resource of this Endpoint +func (tr *Endpoint) GetID() string { + if tr.Status.AtProvider.ID == nil { + return "" + } + return *tr.Status.AtProvider.ID +} + +// GetParameters of this Endpoint +func (tr *Endpoint) GetParameters() (map[string]any, error) { + p, err := json.TFParser.Marshal(tr.Spec.ForProvider) + if err != nil { + return nil, err + } + base := map[string]any{} + return base, json.TFParser.Unmarshal(p, &base) +} + +// SetParameters for this Endpoint +func (tr *Endpoint) SetParameters(params map[string]any) error { + p, err := json.TFParser.Marshal(params) + if err != nil { + return err + } + return json.TFParser.Unmarshal(p, &tr.Spec.ForProvider) +} + +// GetInitParameters of this Endpoint +func (tr *Endpoint) GetInitParameters() (map[string]any, error) { + p, err := json.TFParser.Marshal(tr.Spec.InitProvider) + if err != nil { + return nil, err + } + base := map[string]any{} + return base, json.TFParser.Unmarshal(p, &base) +} + +// GetInitParameters of this Endpoint +func (tr *Endpoint) GetMergedParameters(shouldMergeInitProvider bool) (map[string]any, error) { + params, err := tr.GetParameters() + if err != nil { + return nil, errors.Wrapf(err, "cannot get parameters for resource '%q'", tr.GetName()) + } + if !shouldMergeInitProvider { + return params, nil + } + + initParams, err := tr.GetInitParameters() + if err != nil { + return nil, errors.Wrapf(err, "cannot get init parameters for resource '%q'", tr.GetName()) + } + + // Note(lsviben): mergo.WithSliceDeepCopy is needed to merge the + // slices from the initProvider to forProvider. As it also sets + // overwrite to true, we need to set it back to false, we don't + // want to overwrite the forProvider fields with the initProvider + // fields. + err = mergo.Merge(¶ms, initParams, mergo.WithSliceDeepCopy, func(c *mergo.Config) { + c.Overwrite = false + }) + if err != nil { + return nil, errors.Wrapf(err, "cannot merge spec.initProvider and spec.forProvider parameters for resource '%q'", tr.GetName()) + } + + return params, nil +} + +// LateInitialize this Endpoint using its observed tfState. +// returns True if there are any spec changes for the resource. +func (tr *Endpoint) LateInitialize(attrs []byte) (bool, error) { + params := &EndpointParameters{} + if err := json.TFParser.Unmarshal(attrs, params); err != nil { + return false, errors.Wrap(err, "failed to unmarshal Terraform state parameters for late-initialization") + } + opts := []resource.GenericLateInitializerOption{resource.WithZeroValueJSONOmitEmptyFilter(resource.CNameWildcard)} + + li := resource.NewGenericLateInitializer(opts...) + return li.LateInitialize(&tr.Spec.ForProvider, params) +} + +// GetTerraformSchemaVersion returns the associated Terraform schema version +func (tr *Endpoint) GetTerraformSchemaVersion() int { + return 0 +} + // GetTerraformResourceType returns Terraform resource type for this EndpointConfiguration func (mg *EndpointConfiguration) GetTerraformResourceType() string { return "aws_sagemaker_endpoint_configuration" diff --git a/config/externalname.go b/config/externalname.go index f6940b5a5d..f7cd8feb04 100644 --- a/config/externalname.go +++ b/config/externalname.go @@ -2122,6 +2122,8 @@ var NoForkExternalNameConfigs = map[string]config.ExternalName{ "aws_sagemaker_workforce": config.ParameterAsIdentifier("workforce_name"), // SageMaker Workteams can be imported using the workteam_name "aws_sagemaker_workteam": config.ParameterAsIdentifier("workteam_name"), + // Endpoints can be imported using the name + "aws_sagemaker_endpoint": config.NameAsIdentifier, // Endpoint configurations can be imported using the name "aws_sagemaker_endpoint_configuration": config.NameAsIdentifier, // SageMaker Code Images can be imported using the name diff --git a/config/externalnamenottested.go b/config/externalnamenottested.go index c5b155866f..001879c011 100644 --- a/config/externalnamenottested.go +++ b/config/externalnamenottested.go @@ -381,8 +381,6 @@ var ExternalNameNotTestedConfigs = map[string]config.ExternalName{ // sagemaker // - // Endpoints can be imported using the name - "aws_sagemaker_endpoint": config.NameAsIdentifier, // SageMaker Flow Definitions can be imported using the flow_definition_name "aws_sagemaker_flow_definition": config.ParameterAsIdentifier("flow_definition_name"), // SageMaker Human Task UIs can be imported using the human_task_ui_name @@ -739,9 +737,6 @@ var ExternalNameNotTestedConfigs = map[string]config.ExternalName{ // SESv2 (Simple Email V2) Dedicated IP Assignment can be imported using the id, which is a comma-separated string made up of ip and destination_pool_name "aws_sesv2_dedicated_ip_assignment": config.IdentifierFromProvider, - // ssoadmin - // - // transcribe // // Transcribe MedicalVocabulary can be imported using the vocabulary_name diff --git a/config/generated.lst b/config/generated.lst index 051b801e29..a99844c327 100644 --- a/config/generated.lst +++ b/config/generated.lst @@ -1 +1 @@ -["aws_accessanalyzer_analyzer","aws_accessanalyzer_archive_rule","aws_account_alternate_contact","aws_acm_certificate","aws_acm_certificate_validation","aws_acmpca_certificate","aws_acmpca_certificate_authority","aws_acmpca_certificate_authority_certificate","aws_acmpca_permission","aws_acmpca_policy","aws_ami","aws_ami_copy","aws_ami_launch_permission","aws_amplify_app","aws_amplify_backend_environment","aws_amplify_branch","aws_amplify_webhook","aws_api_gateway_account","aws_api_gateway_api_key","aws_api_gateway_authorizer","aws_api_gateway_base_path_mapping","aws_api_gateway_client_certificate","aws_api_gateway_deployment","aws_api_gateway_documentation_part","aws_api_gateway_documentation_version","aws_api_gateway_domain_name","aws_api_gateway_gateway_response","aws_api_gateway_integration","aws_api_gateway_integration_response","aws_api_gateway_method","aws_api_gateway_method_response","aws_api_gateway_method_settings","aws_api_gateway_model","aws_api_gateway_request_validator","aws_api_gateway_resource","aws_api_gateway_rest_api","aws_api_gateway_rest_api_policy","aws_api_gateway_stage","aws_api_gateway_usage_plan","aws_api_gateway_usage_plan_key","aws_api_gateway_vpc_link","aws_apigatewayv2_api","aws_apigatewayv2_api_mapping","aws_apigatewayv2_authorizer","aws_apigatewayv2_deployment","aws_apigatewayv2_domain_name","aws_apigatewayv2_integration","aws_apigatewayv2_integration_response","aws_apigatewayv2_model","aws_apigatewayv2_route","aws_apigatewayv2_route_response","aws_apigatewayv2_stage","aws_apigatewayv2_vpc_link","aws_app_cookie_stickiness_policy","aws_appautoscaling_policy","aws_appautoscaling_scheduled_action","aws_appautoscaling_target","aws_appconfig_application","aws_appconfig_configuration_profile","aws_appconfig_deployment","aws_appconfig_deployment_strategy","aws_appconfig_environment","aws_appconfig_extension","aws_appconfig_extension_association","aws_appconfig_hosted_configuration_version","aws_appflow_flow","aws_appintegrations_event_integration","aws_applicationinsights_application","aws_appmesh_gateway_route","aws_appmesh_mesh","aws_appmesh_route","aws_appmesh_virtual_gateway","aws_appmesh_virtual_node","aws_appmesh_virtual_router","aws_appmesh_virtual_service","aws_apprunner_auto_scaling_configuration_version","aws_apprunner_connection","aws_apprunner_observability_configuration","aws_apprunner_service","aws_apprunner_vpc_connector","aws_appstream_directory_config","aws_appstream_fleet","aws_appstream_fleet_stack_association","aws_appstream_image_builder","aws_appstream_stack","aws_appstream_user","aws_appstream_user_stack_association","aws_appsync_api_cache","aws_appsync_api_key","aws_appsync_datasource","aws_appsync_function","aws_appsync_graphql_api","aws_appsync_resolver","aws_athena_data_catalog","aws_athena_database","aws_athena_named_query","aws_athena_workgroup","aws_autoscaling_attachment","aws_autoscaling_group","aws_autoscaling_group_tag","aws_autoscaling_lifecycle_hook","aws_autoscaling_notification","aws_autoscaling_policy","aws_autoscaling_schedule","aws_autoscalingplans_scaling_plan","aws_backup_framework","aws_backup_global_settings","aws_backup_plan","aws_backup_region_settings","aws_backup_report_plan","aws_backup_selection","aws_backup_vault","aws_backup_vault_lock_configuration","aws_backup_vault_notifications","aws_backup_vault_policy","aws_batch_job_definition","aws_batch_scheduling_policy","aws_budgets_budget","aws_budgets_budget_action","aws_ce_anomaly_monitor","aws_chime_voice_connector","aws_chime_voice_connector_group","aws_chime_voice_connector_logging","aws_chime_voice_connector_origination","aws_chime_voice_connector_streaming","aws_chime_voice_connector_termination","aws_chime_voice_connector_termination_credentials","aws_cloud9_environment_ec2","aws_cloud9_environment_membership","aws_cloudcontrolapi_resource","aws_cloudformation_stack","aws_cloudformation_stack_set","aws_cloudfront_cache_policy","aws_cloudfront_distribution","aws_cloudfront_field_level_encryption_config","aws_cloudfront_field_level_encryption_profile","aws_cloudfront_function","aws_cloudfront_key_group","aws_cloudfront_monitoring_subscription","aws_cloudfront_origin_access_control","aws_cloudfront_origin_access_identity","aws_cloudfront_origin_request_policy","aws_cloudfront_public_key","aws_cloudfront_realtime_log_config","aws_cloudfront_response_headers_policy","aws_cloudsearch_domain","aws_cloudsearch_domain_service_access_policy","aws_cloudtrail","aws_cloudtrail_event_data_store","aws_cloudwatch_composite_alarm","aws_cloudwatch_dashboard","aws_cloudwatch_event_api_destination","aws_cloudwatch_event_archive","aws_cloudwatch_event_bus","aws_cloudwatch_event_bus_policy","aws_cloudwatch_event_connection","aws_cloudwatch_event_permission","aws_cloudwatch_event_rule","aws_cloudwatch_event_target","aws_cloudwatch_log_destination","aws_cloudwatch_log_destination_policy","aws_cloudwatch_log_group","aws_cloudwatch_log_metric_filter","aws_cloudwatch_log_resource_policy","aws_cloudwatch_log_stream","aws_cloudwatch_log_subscription_filter","aws_cloudwatch_metric_alarm","aws_cloudwatch_metric_stream","aws_cloudwatch_query_definition","aws_codecommit_approval_rule_template","aws_codecommit_approval_rule_template_association","aws_codecommit_repository","aws_codecommit_trigger","aws_codedeploy_app","aws_codedeploy_deployment_config","aws_codedeploy_deployment_group","aws_codepipeline","aws_codepipeline_custom_action_type","aws_codepipeline_webhook","aws_codestarconnections_connection","aws_codestarconnections_host","aws_codestarnotifications_notification_rule","aws_cognito_identity_pool","aws_cognito_identity_pool_provider_principal_tag","aws_cognito_identity_pool_roles_attachment","aws_cognito_identity_provider","aws_cognito_resource_server","aws_cognito_risk_configuration","aws_cognito_user","aws_cognito_user_group","aws_cognito_user_in_group","aws_cognito_user_pool","aws_cognito_user_pool_client","aws_cognito_user_pool_domain","aws_cognito_user_pool_ui_customization","aws_config_config_rule","aws_config_configuration_aggregator","aws_config_configuration_recorder","aws_config_configuration_recorder_status","aws_config_conformance_pack","aws_config_delivery_channel","aws_config_remediation_configuration","aws_connect_bot_association","aws_connect_contact_flow","aws_connect_contact_flow_module","aws_connect_hours_of_operation","aws_connect_instance","aws_connect_instance_storage_config","aws_connect_lambda_function_association","aws_connect_phone_number","aws_connect_queue","aws_connect_quick_connect","aws_connect_routing_profile","aws_connect_security_profile","aws_connect_user","aws_connect_user_hierarchy_structure","aws_connect_vocabulary","aws_cur_report_definition","aws_customer_gateway","aws_dataexchange_data_set","aws_dataexchange_revision","aws_datapipeline_pipeline","aws_datasync_location_s3","aws_datasync_task","aws_dax_cluster","aws_dax_parameter_group","aws_dax_subnet_group","aws_db_cluster_snapshot","aws_db_event_subscription","aws_db_instance","aws_db_instance_automated_backups_replication","aws_db_instance_role_association","aws_db_option_group","aws_db_parameter_group","aws_db_proxy","aws_db_proxy_default_target_group","aws_db_proxy_endpoint","aws_db_proxy_target","aws_db_snapshot","aws_db_snapshot_copy","aws_db_subnet_group","aws_default_network_acl","aws_default_route_table","aws_default_security_group","aws_default_subnet","aws_default_vpc","aws_default_vpc_dhcp_options","aws_detective_graph","aws_detective_invitation_accepter","aws_detective_member","aws_devicefarm_device_pool","aws_devicefarm_instance_profile","aws_devicefarm_network_profile","aws_devicefarm_project","aws_devicefarm_test_grid_project","aws_devicefarm_upload","aws_directory_service_conditional_forwarder","aws_directory_service_directory","aws_directory_service_shared_directory","aws_dlm_lifecycle_policy","aws_dms_certificate","aws_dms_endpoint","aws_dms_event_subscription","aws_dms_replication_instance","aws_dms_replication_subnet_group","aws_dms_replication_task","aws_dms_s3_endpoint","aws_docdb_cluster","aws_docdb_cluster_instance","aws_docdb_cluster_parameter_group","aws_docdb_cluster_snapshot","aws_docdb_event_subscription","aws_docdb_global_cluster","aws_docdb_subnet_group","aws_dx_bgp_peer","aws_dx_connection","aws_dx_connection_association","aws_dx_gateway","aws_dx_gateway_association","aws_dx_gateway_association_proposal","aws_dx_hosted_private_virtual_interface","aws_dx_hosted_private_virtual_interface_accepter","aws_dx_hosted_public_virtual_interface","aws_dx_hosted_public_virtual_interface_accepter","aws_dx_hosted_transit_virtual_interface","aws_dx_hosted_transit_virtual_interface_accepter","aws_dx_lag","aws_dx_private_virtual_interface","aws_dx_public_virtual_interface","aws_dx_transit_virtual_interface","aws_dynamodb_contributor_insights","aws_dynamodb_global_table","aws_dynamodb_kinesis_streaming_destination","aws_dynamodb_table","aws_dynamodb_table_item","aws_dynamodb_table_replica","aws_dynamodb_tag","aws_ebs_default_kms_key","aws_ebs_encryption_by_default","aws_ebs_snapshot","aws_ebs_snapshot_copy","aws_ebs_snapshot_import","aws_ebs_volume","aws_ec2_availability_zone_group","aws_ec2_capacity_reservation","aws_ec2_carrier_gateway","aws_ec2_host","aws_ec2_instance_state","aws_ec2_managed_prefix_list","aws_ec2_managed_prefix_list_entry","aws_ec2_network_insights_analysis","aws_ec2_network_insights_path","aws_ec2_serial_console_access","aws_ec2_subnet_cidr_reservation","aws_ec2_tag","aws_ec2_traffic_mirror_filter","aws_ec2_traffic_mirror_filter_rule","aws_ec2_transit_gateway","aws_ec2_transit_gateway_connect","aws_ec2_transit_gateway_connect_peer","aws_ec2_transit_gateway_multicast_domain","aws_ec2_transit_gateway_multicast_domain_association","aws_ec2_transit_gateway_multicast_group_member","aws_ec2_transit_gateway_multicast_group_source","aws_ec2_transit_gateway_peering_attachment","aws_ec2_transit_gateway_peering_attachment_accepter","aws_ec2_transit_gateway_policy_table","aws_ec2_transit_gateway_prefix_list_reference","aws_ec2_transit_gateway_route","aws_ec2_transit_gateway_route_table","aws_ec2_transit_gateway_route_table_association","aws_ec2_transit_gateway_route_table_propagation","aws_ec2_transit_gateway_vpc_attachment","aws_ec2_transit_gateway_vpc_attachment_accepter","aws_ecr_lifecycle_policy","aws_ecr_pull_through_cache_rule","aws_ecr_registry_policy","aws_ecr_registry_scanning_configuration","aws_ecr_replication_configuration","aws_ecr_repository","aws_ecr_repository_policy","aws_ecrpublic_repository","aws_ecrpublic_repository_policy","aws_ecs_account_setting_default","aws_ecs_capacity_provider","aws_ecs_cluster","aws_ecs_cluster_capacity_providers","aws_ecs_service","aws_ecs_task_definition","aws_efs_access_point","aws_efs_backup_policy","aws_efs_file_system","aws_efs_file_system_policy","aws_efs_mount_target","aws_efs_replication_configuration","aws_egress_only_internet_gateway","aws_eip","aws_eip_association","aws_eks_addon","aws_eks_cluster","aws_eks_fargate_profile","aws_eks_identity_provider_config","aws_eks_node_group","aws_elastic_beanstalk_application","aws_elastic_beanstalk_application_version","aws_elastic_beanstalk_configuration_template","aws_elasticache_cluster","aws_elasticache_parameter_group","aws_elasticache_replication_group","aws_elasticache_subnet_group","aws_elasticache_user","aws_elasticache_user_group","aws_elasticsearch_domain","aws_elasticsearch_domain_policy","aws_elasticsearch_domain_saml_options","aws_elastictranscoder_pipeline","aws_elastictranscoder_preset","aws_elb","aws_elb_attachment","aws_emr_security_configuration","aws_emrserverless_application","aws_evidently_feature","aws_evidently_project","aws_evidently_segment","aws_fis_experiment_template","aws_flow_log","aws_fsx_backup","aws_fsx_data_repository_association","aws_fsx_lustre_file_system","aws_fsx_ontap_file_system","aws_fsx_ontap_storage_virtual_machine","aws_fsx_windows_file_system","aws_gamelift_alias","aws_gamelift_build","aws_gamelift_fleet","aws_gamelift_game_session_queue","aws_gamelift_script","aws_glacier_vault","aws_glacier_vault_lock","aws_globalaccelerator_accelerator","aws_globalaccelerator_endpoint_group","aws_globalaccelerator_listener","aws_glue_catalog_database","aws_glue_catalog_table","aws_glue_classifier","aws_glue_connection","aws_glue_crawler","aws_glue_data_catalog_encryption_settings","aws_glue_job","aws_glue_registry","aws_glue_resource_policy","aws_glue_schema","aws_glue_security_configuration","aws_glue_trigger","aws_glue_user_defined_function","aws_glue_workflow","aws_grafana_license_association","aws_grafana_role_association","aws_grafana_workspace","aws_grafana_workspace_api_key","aws_grafana_workspace_saml_configuration","aws_guardduty_detector","aws_guardduty_filter","aws_guardduty_member","aws_iam_access_key","aws_iam_account_alias","aws_iam_account_password_policy","aws_iam_group","aws_iam_group_membership","aws_iam_group_policy_attachment","aws_iam_instance_profile","aws_iam_openid_connect_provider","aws_iam_policy","aws_iam_role","aws_iam_role_policy","aws_iam_role_policy_attachment","aws_iam_saml_provider","aws_iam_server_certificate","aws_iam_service_linked_role","aws_iam_service_specific_credential","aws_iam_signing_certificate","aws_iam_user","aws_iam_user_group_membership","aws_iam_user_login_profile","aws_iam_user_policy_attachment","aws_iam_user_ssh_key","aws_iam_virtual_mfa_device","aws_identitystore_group","aws_identitystore_group_membership","aws_identitystore_user","aws_imagebuilder_component","aws_imagebuilder_container_recipe","aws_imagebuilder_distribution_configuration","aws_imagebuilder_image","aws_imagebuilder_image_pipeline","aws_imagebuilder_image_recipe","aws_imagebuilder_infrastructure_configuration","aws_inspector2_enabler","aws_inspector_assessment_target","aws_inspector_assessment_template","aws_inspector_resource_group","aws_instance","aws_internet_gateway","aws_iot_certificate","aws_iot_indexing_configuration","aws_iot_logging_options","aws_iot_policy","aws_iot_policy_attachment","aws_iot_provisioning_template","aws_iot_role_alias","aws_iot_thing","aws_iot_thing_group","aws_iot_thing_group_membership","aws_iot_thing_principal_attachment","aws_iot_thing_type","aws_iot_topic_rule","aws_iot_topic_rule_destination","aws_ivs_channel","aws_ivs_recording_configuration","aws_kendra_data_source","aws_kendra_experience","aws_kendra_index","aws_kendra_query_suggestions_block_list","aws_kendra_thesaurus","aws_key_pair","aws_keyspaces_keyspace","aws_keyspaces_table","aws_kinesis_analytics_application","aws_kinesis_firehose_delivery_stream","aws_kinesis_stream","aws_kinesis_stream_consumer","aws_kinesis_video_stream","aws_kinesisanalyticsv2_application","aws_kinesisanalyticsv2_application_snapshot","aws_kms_alias","aws_kms_ciphertext","aws_kms_external_key","aws_kms_grant","aws_kms_key","aws_kms_replica_external_key","aws_kms_replica_key","aws_lakeformation_data_lake_settings","aws_lakeformation_permissions","aws_lakeformation_resource","aws_lambda_alias","aws_lambda_code_signing_config","aws_lambda_event_source_mapping","aws_lambda_function","aws_lambda_function_event_invoke_config","aws_lambda_function_url","aws_lambda_invocation","aws_lambda_layer_version","aws_lambda_layer_version_permission","aws_lambda_permission","aws_lambda_provisioned_concurrency_config","aws_launch_configuration","aws_launch_template","aws_lb","aws_lb_cookie_stickiness_policy","aws_lb_listener","aws_lb_listener_certificate","aws_lb_listener_rule","aws_lb_ssl_negotiation_policy","aws_lb_target_group","aws_lb_target_group_attachment","aws_lex_bot","aws_lex_bot_alias","aws_lex_intent","aws_lex_slot_type","aws_licensemanager_association","aws_licensemanager_license_configuration","aws_lightsail_bucket","aws_lightsail_certificate","aws_lightsail_container_service","aws_lightsail_disk","aws_lightsail_disk_attachment","aws_lightsail_domain","aws_lightsail_domain_entry","aws_lightsail_instance","aws_lightsail_instance_public_ports","aws_lightsail_key_pair","aws_lightsail_lb","aws_lightsail_lb_attachment","aws_lightsail_lb_certificate","aws_lightsail_lb_stickiness_policy","aws_lightsail_static_ip","aws_lightsail_static_ip_attachment","aws_load_balancer_backend_server_policy","aws_load_balancer_listener_policy","aws_load_balancer_policy","aws_location_geofence_collection","aws_location_place_index","aws_location_route_calculator","aws_location_tracker","aws_location_tracker_association","aws_macie2_account","aws_macie2_classification_job","aws_macie2_custom_data_identifier","aws_macie2_findings_filter","aws_macie2_invitation_accepter","aws_macie2_member","aws_main_route_table_association","aws_media_convert_queue","aws_media_package_channel","aws_media_store_container","aws_media_store_container_policy","aws_medialive_channel","aws_medialive_input","aws_medialive_input_security_group","aws_medialive_multiplex","aws_memorydb_acl","aws_memorydb_cluster","aws_memorydb_parameter_group","aws_memorydb_snapshot","aws_memorydb_subnet_group","aws_mq_broker","aws_mq_configuration","aws_msk_cluster","aws_msk_configuration","aws_msk_scram_secret_association","aws_msk_serverless_cluster","aws_nat_gateway","aws_neptune_cluster","aws_neptune_cluster_endpoint","aws_neptune_cluster_instance","aws_neptune_cluster_parameter_group","aws_neptune_cluster_snapshot","aws_neptune_event_subscription","aws_neptune_global_cluster","aws_neptune_parameter_group","aws_neptune_subnet_group","aws_network_acl","aws_network_acl_rule","aws_network_interface","aws_network_interface_attachment","aws_network_interface_sg_attachment","aws_networkfirewall_firewall","aws_networkfirewall_firewall_policy","aws_networkfirewall_logging_configuration","aws_networkfirewall_rule_group","aws_networkmanager_attachment_accepter","aws_networkmanager_connect_attachment","aws_networkmanager_connection","aws_networkmanager_core_network","aws_networkmanager_customer_gateway_association","aws_networkmanager_device","aws_networkmanager_global_network","aws_networkmanager_link","aws_networkmanager_link_association","aws_networkmanager_site","aws_networkmanager_transit_gateway_connect_peer_association","aws_networkmanager_transit_gateway_registration","aws_networkmanager_vpc_attachment","aws_opensearch_domain","aws_opensearch_domain_policy","aws_opensearch_domain_saml_options","aws_opsworks_application","aws_opsworks_custom_layer","aws_opsworks_ecs_cluster_layer","aws_opsworks_ganglia_layer","aws_opsworks_haproxy_layer","aws_opsworks_instance","aws_opsworks_java_app_layer","aws_opsworks_memcached_layer","aws_opsworks_mysql_layer","aws_opsworks_nodejs_app_layer","aws_opsworks_permission","aws_opsworks_php_app_layer","aws_opsworks_rails_app_layer","aws_opsworks_rds_db_instance","aws_opsworks_stack","aws_opsworks_static_web_layer","aws_opsworks_user_profile","aws_organizations_account","aws_organizations_delegated_administrator","aws_organizations_organization","aws_organizations_organizational_unit","aws_organizations_policy","aws_organizations_policy_attachment","aws_pinpoint_app","aws_pinpoint_sms_channel","aws_placement_group","aws_prometheus_alert_manager_definition","aws_prometheus_rule_group_namespace","aws_prometheus_workspace","aws_proxy_protocol_policy","aws_qldb_ledger","aws_qldb_stream","aws_quicksight_group","aws_quicksight_user","aws_ram_principal_association","aws_ram_resource_association","aws_ram_resource_share","aws_ram_resource_share_accepter","aws_rds_cluster","aws_rds_cluster_activity_stream","aws_rds_cluster_endpoint","aws_rds_cluster_instance","aws_rds_cluster_parameter_group","aws_rds_cluster_role_association","aws_rds_global_cluster","aws_redshift_authentication_profile","aws_redshift_cluster","aws_redshift_event_subscription","aws_redshift_hsm_client_certificate","aws_redshift_hsm_configuration","aws_redshift_parameter_group","aws_redshift_scheduled_action","aws_redshift_snapshot_copy_grant","aws_redshift_snapshot_schedule","aws_redshift_snapshot_schedule_association","aws_redshift_subnet_group","aws_redshift_usage_limit","aws_redshiftserverless_endpoint_access","aws_redshiftserverless_namespace","aws_redshiftserverless_resource_policy","aws_redshiftserverless_snapshot","aws_redshiftserverless_usage_limit","aws_redshiftserverless_workgroup","aws_resourcegroups_group","aws_rolesanywhere_profile","aws_route","aws_route53_delegation_set","aws_route53_health_check","aws_route53_hosted_zone_dnssec","aws_route53_record","aws_route53_resolver_config","aws_route53_resolver_endpoint","aws_route53_resolver_rule","aws_route53_resolver_rule_association","aws_route53_traffic_policy","aws_route53_traffic_policy_instance","aws_route53_vpc_association_authorization","aws_route53_zone","aws_route53_zone_association","aws_route53recoverycontrolconfig_cluster","aws_route53recoverycontrolconfig_control_panel","aws_route53recoverycontrolconfig_routing_control","aws_route53recoverycontrolconfig_safety_rule","aws_route53recoveryreadiness_cell","aws_route53recoveryreadiness_readiness_check","aws_route53recoveryreadiness_recovery_group","aws_route53recoveryreadiness_resource_set","aws_route_table","aws_route_table_association","aws_rum_app_monitor","aws_rum_metrics_destination","aws_s3_access_point","aws_s3_account_public_access_block","aws_s3_bucket","aws_s3_bucket_accelerate_configuration","aws_s3_bucket_acl","aws_s3_bucket_analytics_configuration","aws_s3_bucket_cors_configuration","aws_s3_bucket_intelligent_tiering_configuration","aws_s3_bucket_inventory","aws_s3_bucket_lifecycle_configuration","aws_s3_bucket_logging","aws_s3_bucket_metric","aws_s3_bucket_notification","aws_s3_bucket_object","aws_s3_bucket_object_lock_configuration","aws_s3_bucket_ownership_controls","aws_s3_bucket_policy","aws_s3_bucket_public_access_block","aws_s3_bucket_replication_configuration","aws_s3_bucket_request_payment_configuration","aws_s3_bucket_server_side_encryption_configuration","aws_s3_bucket_versioning","aws_s3_bucket_website_configuration","aws_s3_object","aws_s3_object_copy","aws_s3control_access_point_policy","aws_s3control_multi_region_access_point","aws_s3control_multi_region_access_point_policy","aws_s3control_object_lambda_access_point","aws_s3control_object_lambda_access_point_policy","aws_s3control_storage_lens_configuration","aws_sagemaker_app","aws_sagemaker_app_image_config","aws_sagemaker_code_repository","aws_sagemaker_device","aws_sagemaker_device_fleet","aws_sagemaker_domain","aws_sagemaker_endpoint_configuration","aws_sagemaker_feature_group","aws_sagemaker_image","aws_sagemaker_image_version","aws_sagemaker_model","aws_sagemaker_model_package_group","aws_sagemaker_model_package_group_policy","aws_sagemaker_notebook_instance","aws_sagemaker_notebook_instance_lifecycle_configuration","aws_sagemaker_servicecatalog_portfolio_status","aws_sagemaker_space","aws_sagemaker_studio_lifecycle_config","aws_sagemaker_user_profile","aws_sagemaker_workforce","aws_sagemaker_workteam","aws_scheduler_schedule","aws_scheduler_schedule_group","aws_schemas_discoverer","aws_schemas_registry","aws_schemas_schema","aws_secretsmanager_secret","aws_secretsmanager_secret_policy","aws_secretsmanager_secret_rotation","aws_secretsmanager_secret_version","aws_security_group","aws_security_group_rule","aws_securityhub_account","aws_securityhub_action_target","aws_securityhub_finding_aggregator","aws_securityhub_insight","aws_securityhub_invite_accepter","aws_securityhub_member","aws_securityhub_product_subscription","aws_securityhub_standards_subscription","aws_serverlessapplicationrepository_cloudformation_stack","aws_service_discovery_http_namespace","aws_service_discovery_private_dns_namespace","aws_service_discovery_public_dns_namespace","aws_service_discovery_service","aws_servicecatalog_budget_resource_association","aws_servicecatalog_constraint","aws_servicecatalog_portfolio","aws_servicecatalog_portfolio_share","aws_servicecatalog_principal_portfolio_association","aws_servicecatalog_product","aws_servicecatalog_product_portfolio_association","aws_servicecatalog_provisioning_artifact","aws_servicecatalog_service_action","aws_servicecatalog_tag_option","aws_servicecatalog_tag_option_resource_association","aws_servicequotas_service_quota","aws_ses_active_receipt_rule_set","aws_ses_configuration_set","aws_ses_domain_dkim","aws_ses_domain_identity","aws_ses_domain_mail_from","aws_ses_email_identity","aws_ses_event_destination","aws_ses_identity_notification_topic","aws_ses_identity_policy","aws_ses_receipt_filter","aws_ses_receipt_rule","aws_ses_receipt_rule_set","aws_ses_template","aws_sesv2_configuration_set","aws_sesv2_configuration_set_event_destination","aws_sesv2_dedicated_ip_pool","aws_sesv2_email_identity","aws_sesv2_email_identity_feedback_attributes","aws_sesv2_email_identity_mail_from_attributes","aws_sfn_activity","aws_sfn_state_machine","aws_signer_signing_job","aws_signer_signing_profile","aws_signer_signing_profile_permission","aws_simpledb_domain","aws_snapshot_create_volume_permission","aws_sns_platform_application","aws_sns_sms_preferences","aws_sns_topic","aws_sns_topic_policy","aws_sns_topic_subscription","aws_spot_datafeed_subscription","aws_spot_fleet_request","aws_spot_instance_request","aws_sqs_queue","aws_sqs_queue_policy","aws_sqs_queue_redrive_allow_policy","aws_sqs_queue_redrive_policy","aws_ssm_activation","aws_ssm_association","aws_ssm_default_patch_baseline","aws_ssm_document","aws_ssm_maintenance_window","aws_ssm_maintenance_window_target","aws_ssm_maintenance_window_task","aws_ssm_parameter","aws_ssm_patch_baseline","aws_ssm_patch_group","aws_ssm_resource_data_sync","aws_ssm_service_setting","aws_ssoadmin_account_assignment","aws_ssoadmin_customer_managed_policy_attachment","aws_ssoadmin_instance_access_control_attributes","aws_ssoadmin_managed_policy_attachment","aws_ssoadmin_permission_set","aws_ssoadmin_permission_set_inline_policy","aws_ssoadmin_permissions_boundary_attachment","aws_subnet","aws_swf_domain","aws_timestreamwrite_database","aws_timestreamwrite_table","aws_transcribe_language_model","aws_transcribe_vocabulary","aws_transcribe_vocabulary_filter","aws_transfer_server","aws_transfer_ssh_key","aws_transfer_tag","aws_transfer_user","aws_transfer_workflow","aws_volume_attachment","aws_vpc","aws_vpc_dhcp_options","aws_vpc_dhcp_options_association","aws_vpc_endpoint","aws_vpc_endpoint_connection_notification","aws_vpc_endpoint_route_table_association","aws_vpc_endpoint_security_group_association","aws_vpc_endpoint_service","aws_vpc_endpoint_service_allowed_principal","aws_vpc_endpoint_subnet_association","aws_vpc_ipam","aws_vpc_ipam_pool","aws_vpc_ipam_pool_cidr","aws_vpc_ipam_pool_cidr_allocation","aws_vpc_ipam_scope","aws_vpc_ipv4_cidr_block_association","aws_vpc_network_performance_metric_subscription","aws_vpc_peering_connection","aws_vpc_peering_connection_accepter","aws_vpc_peering_connection_options","aws_vpc_security_group_egress_rule","aws_vpc_security_group_ingress_rule","aws_vpn_connection","aws_vpn_connection_route","aws_vpn_gateway","aws_vpn_gateway_attachment","aws_vpn_gateway_route_propagation","aws_waf_byte_match_set","aws_waf_geo_match_set","aws_waf_ipset","aws_waf_rate_based_rule","aws_waf_regex_match_set","aws_waf_regex_pattern_set","aws_waf_rule","aws_waf_size_constraint_set","aws_waf_sql_injection_match_set","aws_waf_web_acl","aws_waf_xss_match_set","aws_wafregional_byte_match_set","aws_wafregional_geo_match_set","aws_wafregional_ipset","aws_wafregional_rate_based_rule","aws_wafregional_regex_match_set","aws_wafregional_regex_pattern_set","aws_wafregional_rule","aws_wafregional_size_constraint_set","aws_wafregional_sql_injection_match_set","aws_wafregional_web_acl","aws_wafregional_xss_match_set","aws_wafv2_ip_set","aws_wafv2_regex_pattern_set","aws_workspaces_directory","aws_workspaces_ip_group","aws_xray_encryption_config","aws_xray_group","aws_xray_sampling_rule"] \ No newline at end of file +["aws_accessanalyzer_analyzer","aws_accessanalyzer_archive_rule","aws_account_alternate_contact","aws_acm_certificate","aws_acm_certificate_validation","aws_acmpca_certificate","aws_acmpca_certificate_authority","aws_acmpca_certificate_authority_certificate","aws_acmpca_permission","aws_acmpca_policy","aws_ami","aws_ami_copy","aws_ami_launch_permission","aws_amplify_app","aws_amplify_backend_environment","aws_amplify_branch","aws_amplify_webhook","aws_api_gateway_account","aws_api_gateway_api_key","aws_api_gateway_authorizer","aws_api_gateway_base_path_mapping","aws_api_gateway_client_certificate","aws_api_gateway_deployment","aws_api_gateway_documentation_part","aws_api_gateway_documentation_version","aws_api_gateway_domain_name","aws_api_gateway_gateway_response","aws_api_gateway_integration","aws_api_gateway_integration_response","aws_api_gateway_method","aws_api_gateway_method_response","aws_api_gateway_method_settings","aws_api_gateway_model","aws_api_gateway_request_validator","aws_api_gateway_resource","aws_api_gateway_rest_api","aws_api_gateway_rest_api_policy","aws_api_gateway_stage","aws_api_gateway_usage_plan","aws_api_gateway_usage_plan_key","aws_api_gateway_vpc_link","aws_apigatewayv2_api","aws_apigatewayv2_api_mapping","aws_apigatewayv2_authorizer","aws_apigatewayv2_deployment","aws_apigatewayv2_domain_name","aws_apigatewayv2_integration","aws_apigatewayv2_integration_response","aws_apigatewayv2_model","aws_apigatewayv2_route","aws_apigatewayv2_route_response","aws_apigatewayv2_stage","aws_apigatewayv2_vpc_link","aws_app_cookie_stickiness_policy","aws_appautoscaling_policy","aws_appautoscaling_scheduled_action","aws_appautoscaling_target","aws_appconfig_application","aws_appconfig_configuration_profile","aws_appconfig_deployment","aws_appconfig_deployment_strategy","aws_appconfig_environment","aws_appconfig_extension","aws_appconfig_extension_association","aws_appconfig_hosted_configuration_version","aws_appflow_flow","aws_appintegrations_event_integration","aws_applicationinsights_application","aws_appmesh_gateway_route","aws_appmesh_mesh","aws_appmesh_route","aws_appmesh_virtual_gateway","aws_appmesh_virtual_node","aws_appmesh_virtual_router","aws_appmesh_virtual_service","aws_apprunner_auto_scaling_configuration_version","aws_apprunner_connection","aws_apprunner_observability_configuration","aws_apprunner_service","aws_apprunner_vpc_connector","aws_appstream_directory_config","aws_appstream_fleet","aws_appstream_fleet_stack_association","aws_appstream_image_builder","aws_appstream_stack","aws_appstream_user","aws_appstream_user_stack_association","aws_appsync_api_cache","aws_appsync_api_key","aws_appsync_datasource","aws_appsync_function","aws_appsync_graphql_api","aws_appsync_resolver","aws_athena_data_catalog","aws_athena_database","aws_athena_named_query","aws_athena_workgroup","aws_autoscaling_attachment","aws_autoscaling_group","aws_autoscaling_group_tag","aws_autoscaling_lifecycle_hook","aws_autoscaling_notification","aws_autoscaling_policy","aws_autoscaling_schedule","aws_autoscalingplans_scaling_plan","aws_backup_framework","aws_backup_global_settings","aws_backup_plan","aws_backup_region_settings","aws_backup_report_plan","aws_backup_selection","aws_backup_vault","aws_backup_vault_lock_configuration","aws_backup_vault_notifications","aws_backup_vault_policy","aws_batch_job_definition","aws_batch_scheduling_policy","aws_budgets_budget","aws_budgets_budget_action","aws_ce_anomaly_monitor","aws_chime_voice_connector","aws_chime_voice_connector_group","aws_chime_voice_connector_logging","aws_chime_voice_connector_origination","aws_chime_voice_connector_streaming","aws_chime_voice_connector_termination","aws_chime_voice_connector_termination_credentials","aws_cloud9_environment_ec2","aws_cloud9_environment_membership","aws_cloudcontrolapi_resource","aws_cloudformation_stack","aws_cloudformation_stack_set","aws_cloudfront_cache_policy","aws_cloudfront_distribution","aws_cloudfront_field_level_encryption_config","aws_cloudfront_field_level_encryption_profile","aws_cloudfront_function","aws_cloudfront_key_group","aws_cloudfront_monitoring_subscription","aws_cloudfront_origin_access_control","aws_cloudfront_origin_access_identity","aws_cloudfront_origin_request_policy","aws_cloudfront_public_key","aws_cloudfront_realtime_log_config","aws_cloudfront_response_headers_policy","aws_cloudsearch_domain","aws_cloudsearch_domain_service_access_policy","aws_cloudtrail","aws_cloudtrail_event_data_store","aws_cloudwatch_composite_alarm","aws_cloudwatch_dashboard","aws_cloudwatch_event_api_destination","aws_cloudwatch_event_archive","aws_cloudwatch_event_bus","aws_cloudwatch_event_bus_policy","aws_cloudwatch_event_connection","aws_cloudwatch_event_permission","aws_cloudwatch_event_rule","aws_cloudwatch_event_target","aws_cloudwatch_log_destination","aws_cloudwatch_log_destination_policy","aws_cloudwatch_log_group","aws_cloudwatch_log_metric_filter","aws_cloudwatch_log_resource_policy","aws_cloudwatch_log_stream","aws_cloudwatch_log_subscription_filter","aws_cloudwatch_metric_alarm","aws_cloudwatch_metric_stream","aws_cloudwatch_query_definition","aws_codecommit_approval_rule_template","aws_codecommit_approval_rule_template_association","aws_codecommit_repository","aws_codecommit_trigger","aws_codedeploy_app","aws_codedeploy_deployment_config","aws_codedeploy_deployment_group","aws_codepipeline","aws_codepipeline_custom_action_type","aws_codepipeline_webhook","aws_codestarconnections_connection","aws_codestarconnections_host","aws_codestarnotifications_notification_rule","aws_cognito_identity_pool","aws_cognito_identity_pool_provider_principal_tag","aws_cognito_identity_pool_roles_attachment","aws_cognito_identity_provider","aws_cognito_resource_server","aws_cognito_risk_configuration","aws_cognito_user","aws_cognito_user_group","aws_cognito_user_in_group","aws_cognito_user_pool","aws_cognito_user_pool_client","aws_cognito_user_pool_domain","aws_cognito_user_pool_ui_customization","aws_config_config_rule","aws_config_configuration_aggregator","aws_config_configuration_recorder","aws_config_configuration_recorder_status","aws_config_conformance_pack","aws_config_delivery_channel","aws_config_remediation_configuration","aws_connect_bot_association","aws_connect_contact_flow","aws_connect_contact_flow_module","aws_connect_hours_of_operation","aws_connect_instance","aws_connect_instance_storage_config","aws_connect_lambda_function_association","aws_connect_phone_number","aws_connect_queue","aws_connect_quick_connect","aws_connect_routing_profile","aws_connect_security_profile","aws_connect_user","aws_connect_user_hierarchy_structure","aws_connect_vocabulary","aws_cur_report_definition","aws_customer_gateway","aws_dataexchange_data_set","aws_dataexchange_revision","aws_datapipeline_pipeline","aws_datasync_location_s3","aws_datasync_task","aws_dax_cluster","aws_dax_parameter_group","aws_dax_subnet_group","aws_db_cluster_snapshot","aws_db_event_subscription","aws_db_instance","aws_db_instance_automated_backups_replication","aws_db_instance_role_association","aws_db_option_group","aws_db_parameter_group","aws_db_proxy","aws_db_proxy_default_target_group","aws_db_proxy_endpoint","aws_db_proxy_target","aws_db_snapshot","aws_db_snapshot_copy","aws_db_subnet_group","aws_default_network_acl","aws_default_route_table","aws_default_security_group","aws_default_subnet","aws_default_vpc","aws_default_vpc_dhcp_options","aws_detective_graph","aws_detective_invitation_accepter","aws_detective_member","aws_devicefarm_device_pool","aws_devicefarm_instance_profile","aws_devicefarm_network_profile","aws_devicefarm_project","aws_devicefarm_test_grid_project","aws_devicefarm_upload","aws_directory_service_conditional_forwarder","aws_directory_service_directory","aws_directory_service_shared_directory","aws_dlm_lifecycle_policy","aws_dms_certificate","aws_dms_endpoint","aws_dms_event_subscription","aws_dms_replication_instance","aws_dms_replication_subnet_group","aws_dms_replication_task","aws_dms_s3_endpoint","aws_docdb_cluster","aws_docdb_cluster_instance","aws_docdb_cluster_parameter_group","aws_docdb_cluster_snapshot","aws_docdb_event_subscription","aws_docdb_global_cluster","aws_docdb_subnet_group","aws_dx_bgp_peer","aws_dx_connection","aws_dx_connection_association","aws_dx_gateway","aws_dx_gateway_association","aws_dx_gateway_association_proposal","aws_dx_hosted_private_virtual_interface","aws_dx_hosted_private_virtual_interface_accepter","aws_dx_hosted_public_virtual_interface","aws_dx_hosted_public_virtual_interface_accepter","aws_dx_hosted_transit_virtual_interface","aws_dx_hosted_transit_virtual_interface_accepter","aws_dx_lag","aws_dx_private_virtual_interface","aws_dx_public_virtual_interface","aws_dx_transit_virtual_interface","aws_dynamodb_contributor_insights","aws_dynamodb_global_table","aws_dynamodb_kinesis_streaming_destination","aws_dynamodb_table","aws_dynamodb_table_item","aws_dynamodb_table_replica","aws_dynamodb_tag","aws_ebs_default_kms_key","aws_ebs_encryption_by_default","aws_ebs_snapshot","aws_ebs_snapshot_copy","aws_ebs_snapshot_import","aws_ebs_volume","aws_ec2_availability_zone_group","aws_ec2_capacity_reservation","aws_ec2_carrier_gateway","aws_ec2_host","aws_ec2_instance_state","aws_ec2_managed_prefix_list","aws_ec2_managed_prefix_list_entry","aws_ec2_network_insights_analysis","aws_ec2_network_insights_path","aws_ec2_serial_console_access","aws_ec2_subnet_cidr_reservation","aws_ec2_tag","aws_ec2_traffic_mirror_filter","aws_ec2_traffic_mirror_filter_rule","aws_ec2_transit_gateway","aws_ec2_transit_gateway_connect","aws_ec2_transit_gateway_connect_peer","aws_ec2_transit_gateway_multicast_domain","aws_ec2_transit_gateway_multicast_domain_association","aws_ec2_transit_gateway_multicast_group_member","aws_ec2_transit_gateway_multicast_group_source","aws_ec2_transit_gateway_peering_attachment","aws_ec2_transit_gateway_peering_attachment_accepter","aws_ec2_transit_gateway_policy_table","aws_ec2_transit_gateway_prefix_list_reference","aws_ec2_transit_gateway_route","aws_ec2_transit_gateway_route_table","aws_ec2_transit_gateway_route_table_association","aws_ec2_transit_gateway_route_table_propagation","aws_ec2_transit_gateway_vpc_attachment","aws_ec2_transit_gateway_vpc_attachment_accepter","aws_ecr_lifecycle_policy","aws_ecr_pull_through_cache_rule","aws_ecr_registry_policy","aws_ecr_registry_scanning_configuration","aws_ecr_replication_configuration","aws_ecr_repository","aws_ecr_repository_policy","aws_ecrpublic_repository","aws_ecrpublic_repository_policy","aws_ecs_account_setting_default","aws_ecs_capacity_provider","aws_ecs_cluster","aws_ecs_cluster_capacity_providers","aws_ecs_service","aws_ecs_task_definition","aws_efs_access_point","aws_efs_backup_policy","aws_efs_file_system","aws_efs_file_system_policy","aws_efs_mount_target","aws_efs_replication_configuration","aws_egress_only_internet_gateway","aws_eip","aws_eip_association","aws_eks_addon","aws_eks_cluster","aws_eks_fargate_profile","aws_eks_identity_provider_config","aws_eks_node_group","aws_elastic_beanstalk_application","aws_elastic_beanstalk_application_version","aws_elastic_beanstalk_configuration_template","aws_elasticache_cluster","aws_elasticache_parameter_group","aws_elasticache_replication_group","aws_elasticache_subnet_group","aws_elasticache_user","aws_elasticache_user_group","aws_elasticsearch_domain","aws_elasticsearch_domain_policy","aws_elasticsearch_domain_saml_options","aws_elastictranscoder_pipeline","aws_elastictranscoder_preset","aws_elb","aws_elb_attachment","aws_emr_security_configuration","aws_emrserverless_application","aws_evidently_feature","aws_evidently_project","aws_evidently_segment","aws_fis_experiment_template","aws_flow_log","aws_fsx_backup","aws_fsx_data_repository_association","aws_fsx_lustre_file_system","aws_fsx_ontap_file_system","aws_fsx_ontap_storage_virtual_machine","aws_fsx_windows_file_system","aws_gamelift_alias","aws_gamelift_build","aws_gamelift_fleet","aws_gamelift_game_session_queue","aws_gamelift_script","aws_glacier_vault","aws_glacier_vault_lock","aws_globalaccelerator_accelerator","aws_globalaccelerator_endpoint_group","aws_globalaccelerator_listener","aws_glue_catalog_database","aws_glue_catalog_table","aws_glue_classifier","aws_glue_connection","aws_glue_crawler","aws_glue_data_catalog_encryption_settings","aws_glue_job","aws_glue_registry","aws_glue_resource_policy","aws_glue_schema","aws_glue_security_configuration","aws_glue_trigger","aws_glue_user_defined_function","aws_glue_workflow","aws_grafana_license_association","aws_grafana_role_association","aws_grafana_workspace","aws_grafana_workspace_api_key","aws_grafana_workspace_saml_configuration","aws_guardduty_detector","aws_guardduty_filter","aws_guardduty_member","aws_iam_access_key","aws_iam_account_alias","aws_iam_account_password_policy","aws_iam_group","aws_iam_group_membership","aws_iam_group_policy_attachment","aws_iam_instance_profile","aws_iam_openid_connect_provider","aws_iam_policy","aws_iam_role","aws_iam_role_policy","aws_iam_role_policy_attachment","aws_iam_saml_provider","aws_iam_server_certificate","aws_iam_service_linked_role","aws_iam_service_specific_credential","aws_iam_signing_certificate","aws_iam_user","aws_iam_user_group_membership","aws_iam_user_login_profile","aws_iam_user_policy_attachment","aws_iam_user_ssh_key","aws_iam_virtual_mfa_device","aws_identitystore_group","aws_identitystore_group_membership","aws_identitystore_user","aws_imagebuilder_component","aws_imagebuilder_container_recipe","aws_imagebuilder_distribution_configuration","aws_imagebuilder_image","aws_imagebuilder_image_pipeline","aws_imagebuilder_image_recipe","aws_imagebuilder_infrastructure_configuration","aws_inspector2_enabler","aws_inspector_assessment_target","aws_inspector_assessment_template","aws_inspector_resource_group","aws_instance","aws_internet_gateway","aws_iot_certificate","aws_iot_indexing_configuration","aws_iot_logging_options","aws_iot_policy","aws_iot_policy_attachment","aws_iot_provisioning_template","aws_iot_role_alias","aws_iot_thing","aws_iot_thing_group","aws_iot_thing_group_membership","aws_iot_thing_principal_attachment","aws_iot_thing_type","aws_iot_topic_rule","aws_iot_topic_rule_destination","aws_ivs_channel","aws_ivs_recording_configuration","aws_kendra_data_source","aws_kendra_experience","aws_kendra_index","aws_kendra_query_suggestions_block_list","aws_kendra_thesaurus","aws_key_pair","aws_keyspaces_keyspace","aws_keyspaces_table","aws_kinesis_analytics_application","aws_kinesis_firehose_delivery_stream","aws_kinesis_stream","aws_kinesis_stream_consumer","aws_kinesis_video_stream","aws_kinesisanalyticsv2_application","aws_kinesisanalyticsv2_application_snapshot","aws_kms_alias","aws_kms_ciphertext","aws_kms_external_key","aws_kms_grant","aws_kms_key","aws_kms_replica_external_key","aws_kms_replica_key","aws_lakeformation_data_lake_settings","aws_lakeformation_permissions","aws_lakeformation_resource","aws_lambda_alias","aws_lambda_code_signing_config","aws_lambda_event_source_mapping","aws_lambda_function","aws_lambda_function_event_invoke_config","aws_lambda_function_url","aws_lambda_invocation","aws_lambda_layer_version","aws_lambda_layer_version_permission","aws_lambda_permission","aws_lambda_provisioned_concurrency_config","aws_launch_configuration","aws_launch_template","aws_lb","aws_lb_cookie_stickiness_policy","aws_lb_listener","aws_lb_listener_certificate","aws_lb_listener_rule","aws_lb_ssl_negotiation_policy","aws_lb_target_group","aws_lb_target_group_attachment","aws_lex_bot","aws_lex_bot_alias","aws_lex_intent","aws_lex_slot_type","aws_licensemanager_association","aws_licensemanager_license_configuration","aws_lightsail_bucket","aws_lightsail_certificate","aws_lightsail_container_service","aws_lightsail_disk","aws_lightsail_disk_attachment","aws_lightsail_domain","aws_lightsail_domain_entry","aws_lightsail_instance","aws_lightsail_instance_public_ports","aws_lightsail_key_pair","aws_lightsail_lb","aws_lightsail_lb_attachment","aws_lightsail_lb_certificate","aws_lightsail_lb_stickiness_policy","aws_lightsail_static_ip","aws_lightsail_static_ip_attachment","aws_load_balancer_backend_server_policy","aws_load_balancer_listener_policy","aws_load_balancer_policy","aws_location_geofence_collection","aws_location_place_index","aws_location_route_calculator","aws_location_tracker","aws_location_tracker_association","aws_macie2_account","aws_macie2_classification_job","aws_macie2_custom_data_identifier","aws_macie2_findings_filter","aws_macie2_invitation_accepter","aws_macie2_member","aws_main_route_table_association","aws_media_convert_queue","aws_media_package_channel","aws_media_store_container","aws_media_store_container_policy","aws_medialive_channel","aws_medialive_input","aws_medialive_input_security_group","aws_medialive_multiplex","aws_memorydb_acl","aws_memorydb_cluster","aws_memorydb_parameter_group","aws_memorydb_snapshot","aws_memorydb_subnet_group","aws_mq_broker","aws_mq_configuration","aws_msk_cluster","aws_msk_configuration","aws_msk_scram_secret_association","aws_msk_serverless_cluster","aws_nat_gateway","aws_neptune_cluster","aws_neptune_cluster_endpoint","aws_neptune_cluster_instance","aws_neptune_cluster_parameter_group","aws_neptune_cluster_snapshot","aws_neptune_event_subscription","aws_neptune_global_cluster","aws_neptune_parameter_group","aws_neptune_subnet_group","aws_network_acl","aws_network_acl_rule","aws_network_interface","aws_network_interface_attachment","aws_network_interface_sg_attachment","aws_networkfirewall_firewall","aws_networkfirewall_firewall_policy","aws_networkfirewall_logging_configuration","aws_networkfirewall_rule_group","aws_networkmanager_attachment_accepter","aws_networkmanager_connect_attachment","aws_networkmanager_connection","aws_networkmanager_core_network","aws_networkmanager_customer_gateway_association","aws_networkmanager_device","aws_networkmanager_global_network","aws_networkmanager_link","aws_networkmanager_link_association","aws_networkmanager_site","aws_networkmanager_transit_gateway_connect_peer_association","aws_networkmanager_transit_gateway_registration","aws_networkmanager_vpc_attachment","aws_opensearch_domain","aws_opensearch_domain_policy","aws_opensearch_domain_saml_options","aws_opsworks_application","aws_opsworks_custom_layer","aws_opsworks_ecs_cluster_layer","aws_opsworks_ganglia_layer","aws_opsworks_haproxy_layer","aws_opsworks_instance","aws_opsworks_java_app_layer","aws_opsworks_memcached_layer","aws_opsworks_mysql_layer","aws_opsworks_nodejs_app_layer","aws_opsworks_permission","aws_opsworks_php_app_layer","aws_opsworks_rails_app_layer","aws_opsworks_rds_db_instance","aws_opsworks_stack","aws_opsworks_static_web_layer","aws_opsworks_user_profile","aws_organizations_account","aws_organizations_delegated_administrator","aws_organizations_organization","aws_organizations_organizational_unit","aws_organizations_policy","aws_organizations_policy_attachment","aws_pinpoint_app","aws_pinpoint_sms_channel","aws_placement_group","aws_prometheus_alert_manager_definition","aws_prometheus_rule_group_namespace","aws_prometheus_workspace","aws_proxy_protocol_policy","aws_qldb_ledger","aws_qldb_stream","aws_quicksight_group","aws_quicksight_user","aws_ram_principal_association","aws_ram_resource_association","aws_ram_resource_share","aws_ram_resource_share_accepter","aws_rds_cluster","aws_rds_cluster_activity_stream","aws_rds_cluster_endpoint","aws_rds_cluster_instance","aws_rds_cluster_parameter_group","aws_rds_cluster_role_association","aws_rds_global_cluster","aws_redshift_authentication_profile","aws_redshift_cluster","aws_redshift_event_subscription","aws_redshift_hsm_client_certificate","aws_redshift_hsm_configuration","aws_redshift_parameter_group","aws_redshift_scheduled_action","aws_redshift_snapshot_copy_grant","aws_redshift_snapshot_schedule","aws_redshift_snapshot_schedule_association","aws_redshift_subnet_group","aws_redshift_usage_limit","aws_redshiftserverless_endpoint_access","aws_redshiftserverless_namespace","aws_redshiftserverless_resource_policy","aws_redshiftserverless_snapshot","aws_redshiftserverless_usage_limit","aws_redshiftserverless_workgroup","aws_resourcegroups_group","aws_rolesanywhere_profile","aws_route","aws_route53_delegation_set","aws_route53_health_check","aws_route53_hosted_zone_dnssec","aws_route53_record","aws_route53_resolver_config","aws_route53_resolver_endpoint","aws_route53_resolver_rule","aws_route53_resolver_rule_association","aws_route53_traffic_policy","aws_route53_traffic_policy_instance","aws_route53_vpc_association_authorization","aws_route53_zone","aws_route53_zone_association","aws_route53recoverycontrolconfig_cluster","aws_route53recoverycontrolconfig_control_panel","aws_route53recoverycontrolconfig_routing_control","aws_route53recoverycontrolconfig_safety_rule","aws_route53recoveryreadiness_cell","aws_route53recoveryreadiness_readiness_check","aws_route53recoveryreadiness_recovery_group","aws_route53recoveryreadiness_resource_set","aws_route_table","aws_route_table_association","aws_rum_app_monitor","aws_rum_metrics_destination","aws_s3_access_point","aws_s3_account_public_access_block","aws_s3_bucket","aws_s3_bucket_accelerate_configuration","aws_s3_bucket_acl","aws_s3_bucket_analytics_configuration","aws_s3_bucket_cors_configuration","aws_s3_bucket_intelligent_tiering_configuration","aws_s3_bucket_inventory","aws_s3_bucket_lifecycle_configuration","aws_s3_bucket_logging","aws_s3_bucket_metric","aws_s3_bucket_notification","aws_s3_bucket_object","aws_s3_bucket_object_lock_configuration","aws_s3_bucket_ownership_controls","aws_s3_bucket_policy","aws_s3_bucket_public_access_block","aws_s3_bucket_replication_configuration","aws_s3_bucket_request_payment_configuration","aws_s3_bucket_server_side_encryption_configuration","aws_s3_bucket_versioning","aws_s3_bucket_website_configuration","aws_s3_object","aws_s3_object_copy","aws_s3control_access_point_policy","aws_s3control_multi_region_access_point","aws_s3control_multi_region_access_point_policy","aws_s3control_object_lambda_access_point","aws_s3control_object_lambda_access_point_policy","aws_s3control_storage_lens_configuration","aws_sagemaker_app","aws_sagemaker_app_image_config","aws_sagemaker_code_repository","aws_sagemaker_device","aws_sagemaker_device_fleet","aws_sagemaker_domain","aws_sagemaker_endpoint","aws_sagemaker_endpoint_configuration","aws_sagemaker_feature_group","aws_sagemaker_image","aws_sagemaker_image_version","aws_sagemaker_model","aws_sagemaker_model_package_group","aws_sagemaker_model_package_group_policy","aws_sagemaker_notebook_instance","aws_sagemaker_notebook_instance_lifecycle_configuration","aws_sagemaker_servicecatalog_portfolio_status","aws_sagemaker_space","aws_sagemaker_studio_lifecycle_config","aws_sagemaker_user_profile","aws_sagemaker_workforce","aws_sagemaker_workteam","aws_scheduler_schedule","aws_scheduler_schedule_group","aws_schemas_discoverer","aws_schemas_registry","aws_schemas_schema","aws_secretsmanager_secret","aws_secretsmanager_secret_policy","aws_secretsmanager_secret_rotation","aws_secretsmanager_secret_version","aws_security_group","aws_security_group_rule","aws_securityhub_account","aws_securityhub_action_target","aws_securityhub_finding_aggregator","aws_securityhub_insight","aws_securityhub_invite_accepter","aws_securityhub_member","aws_securityhub_product_subscription","aws_securityhub_standards_subscription","aws_serverlessapplicationrepository_cloudformation_stack","aws_service_discovery_http_namespace","aws_service_discovery_private_dns_namespace","aws_service_discovery_public_dns_namespace","aws_service_discovery_service","aws_servicecatalog_budget_resource_association","aws_servicecatalog_constraint","aws_servicecatalog_portfolio","aws_servicecatalog_portfolio_share","aws_servicecatalog_principal_portfolio_association","aws_servicecatalog_product","aws_servicecatalog_product_portfolio_association","aws_servicecatalog_provisioning_artifact","aws_servicecatalog_service_action","aws_servicecatalog_tag_option","aws_servicecatalog_tag_option_resource_association","aws_servicequotas_service_quota","aws_ses_active_receipt_rule_set","aws_ses_configuration_set","aws_ses_domain_dkim","aws_ses_domain_identity","aws_ses_domain_mail_from","aws_ses_email_identity","aws_ses_event_destination","aws_ses_identity_notification_topic","aws_ses_identity_policy","aws_ses_receipt_filter","aws_ses_receipt_rule","aws_ses_receipt_rule_set","aws_ses_template","aws_sesv2_configuration_set","aws_sesv2_configuration_set_event_destination","aws_sesv2_dedicated_ip_pool","aws_sesv2_email_identity","aws_sesv2_email_identity_feedback_attributes","aws_sesv2_email_identity_mail_from_attributes","aws_sfn_activity","aws_sfn_state_machine","aws_signer_signing_job","aws_signer_signing_profile","aws_signer_signing_profile_permission","aws_simpledb_domain","aws_snapshot_create_volume_permission","aws_sns_platform_application","aws_sns_sms_preferences","aws_sns_topic","aws_sns_topic_policy","aws_sns_topic_subscription","aws_spot_datafeed_subscription","aws_spot_fleet_request","aws_spot_instance_request","aws_sqs_queue","aws_sqs_queue_policy","aws_sqs_queue_redrive_allow_policy","aws_sqs_queue_redrive_policy","aws_ssm_activation","aws_ssm_association","aws_ssm_default_patch_baseline","aws_ssm_document","aws_ssm_maintenance_window","aws_ssm_maintenance_window_target","aws_ssm_maintenance_window_task","aws_ssm_parameter","aws_ssm_patch_baseline","aws_ssm_patch_group","aws_ssm_resource_data_sync","aws_ssm_service_setting","aws_ssoadmin_account_assignment","aws_ssoadmin_customer_managed_policy_attachment","aws_ssoadmin_instance_access_control_attributes","aws_ssoadmin_managed_policy_attachment","aws_ssoadmin_permission_set","aws_ssoadmin_permission_set_inline_policy","aws_ssoadmin_permissions_boundary_attachment","aws_subnet","aws_swf_domain","aws_timestreamwrite_database","aws_timestreamwrite_table","aws_transcribe_language_model","aws_transcribe_vocabulary","aws_transcribe_vocabulary_filter","aws_transfer_server","aws_transfer_ssh_key","aws_transfer_tag","aws_transfer_user","aws_transfer_workflow","aws_volume_attachment","aws_vpc","aws_vpc_dhcp_options","aws_vpc_dhcp_options_association","aws_vpc_endpoint","aws_vpc_endpoint_connection_notification","aws_vpc_endpoint_route_table_association","aws_vpc_endpoint_security_group_association","aws_vpc_endpoint_service","aws_vpc_endpoint_service_allowed_principal","aws_vpc_endpoint_subnet_association","aws_vpc_ipam","aws_vpc_ipam_pool","aws_vpc_ipam_pool_cidr","aws_vpc_ipam_pool_cidr_allocation","aws_vpc_ipam_scope","aws_vpc_ipv4_cidr_block_association","aws_vpc_network_performance_metric_subscription","aws_vpc_peering_connection","aws_vpc_peering_connection_accepter","aws_vpc_peering_connection_options","aws_vpc_security_group_egress_rule","aws_vpc_security_group_ingress_rule","aws_vpn_connection","aws_vpn_connection_route","aws_vpn_gateway","aws_vpn_gateway_attachment","aws_vpn_gateway_route_propagation","aws_waf_byte_match_set","aws_waf_geo_match_set","aws_waf_ipset","aws_waf_rate_based_rule","aws_waf_regex_match_set","aws_waf_regex_pattern_set","aws_waf_rule","aws_waf_size_constraint_set","aws_waf_sql_injection_match_set","aws_waf_web_acl","aws_waf_xss_match_set","aws_wafregional_byte_match_set","aws_wafregional_geo_match_set","aws_wafregional_ipset","aws_wafregional_rate_based_rule","aws_wafregional_regex_match_set","aws_wafregional_regex_pattern_set","aws_wafregional_rule","aws_wafregional_size_constraint_set","aws_wafregional_sql_injection_match_set","aws_wafregional_web_acl","aws_wafregional_xss_match_set","aws_wafv2_ip_set","aws_wafv2_regex_pattern_set","aws_workspaces_directory","aws_workspaces_ip_group","aws_xray_encryption_config","aws_xray_group","aws_xray_sampling_rule"] \ No newline at end of file diff --git a/config/sagemaker/config.go b/config/sagemaker/config.go index 3f2d8f5030..23cdd35fe1 100644 --- a/config/sagemaker/config.go +++ b/config/sagemaker/config.go @@ -14,4 +14,10 @@ func Configure(p *config.Provider) { p.AddResourceConfigurator("aws_sagemaker_device_fleet", func(r *config.Resource) { r.Path = "devicefleet" }) + p.AddResourceConfigurator("aws_sagemaker_endpoint", func(r *config.Resource) { + r.References["endpoint_config_name"] = config.Reference{ + TerraformName: "aws_sagemaker_endpoint_configuration", + } + r.UseAsync = true + }) } diff --git a/examples-generated/sagemaker/endpoint.yaml b/examples-generated/sagemaker/endpoint.yaml new file mode 100644 index 0000000000..d123d4d144 --- /dev/null +++ b/examples-generated/sagemaker/endpoint.yaml @@ -0,0 +1,16 @@ +apiVersion: sagemaker.aws.upbound.io/v1beta1 +kind: Endpoint +metadata: + annotations: + meta.upbound.io/example-id: sagemaker/v1beta1/endpoint + labels: + testing.upbound.io/example-name: e + name: e +spec: + forProvider: + endpointConfigNameSelector: + matchLabels: + testing.upbound.io/example-name: ec + region: us-west-1 + tags: + Name: foo diff --git a/examples/sagemaker/endpoint.yaml b/examples/sagemaker/endpoint.yaml new file mode 100644 index 0000000000..3d2aba9614 --- /dev/null +++ b/examples/sagemaker/endpoint.yaml @@ -0,0 +1,99 @@ +apiVersion: sagemaker.aws.upbound.io/v1beta1 +kind: Endpoint +metadata: + annotations: + meta.upbound.io/example-id: sagemaker/v1beta1/endpoint + upjet.upbound.io/manual-intervention: "This resource is skipping because the EndpointConfiguration resource on which this resource depends was skipped." + labels: + testing.upbound.io/example-name: e + name: e +spec: + forProvider: + endpointConfigNameSelector: + matchLabels: + testing.upbound.io/example-name: ec + region: us-east-1 + tags: + Name: foo +--- +apiVersion: sagemaker.aws.upbound.io/v1beta1 +kind: EndpointConfiguration +metadata: + annotations: + meta.upbound.io/example-id: sagemaker/v1beta1/endpoint + upjet.upbound.io/manual-intervention: "It requires an image which can be create/deleted only using AWS CLI" + labels: + testing.upbound.io/example-name: ec + name: ec +spec: + forProvider: + productionVariants: + - initialInstanceCount: 1 + instanceType: ml.t2.medium + modelNameSelector: + matchLabels: + testing.upbound.io/example-name: example + variantName: variant-1 + region: us-east-1 + tags: + Name: foo +--- +apiVersion: sagemaker.aws.upbound.io/v1beta1 +kind: Model +metadata: + annotations: + meta.upbound.io/example-id: sagemaker/v1beta1/endpoint + upjet.upbound.io/manual-intervention: "It requires an image which can be create/deleted only using AWS CLI" + labels: + testing.upbound.io/example-name: example + name: example +spec: + forProvider: + executionRoleArnSelector: + matchLabels: + testing.upbound.io/example-name: example + primaryContainer: + - image: ${data.aws_account_id}.dkr.ecr.us-east-1.amazonaws.com/sagemaker-scikit-learn:latest + region: us-east-1 +--- +apiVersion: iam.aws.upbound.io/v1beta1 +kind: Role +metadata: + annotations: + meta.upbound.io/example-id: sagemaker/v1beta1/endpoint + upjet.upbound.io/manual-intervention: "It requires an image which can be create/deleted only using AWS CLI" + labels: + testing.upbound.io/example-name: example + name: example +spec: + forProvider: + assumeRolePolicy: | + { + "Version": "2012-10-17", + "Statement": [ + { + "Action": "sts:AssumeRole", + "Principal": { + "Service": "sagemaker.amazonaws.com" + }, + "Effect": "Allow", + "Sid": "" + } + ] + } +--- +apiVersion: iam.aws.upbound.io/v1beta1 +kind: RolePolicyAttachment +metadata: + annotations: + meta.upbound.io/example-id: sagemaker/v1beta1/endpoint + upjet.upbound.io/manual-intervention: "It requires an image which can be create/deleted only using AWS CLI" + labels: + testing.upbound.io/example-name: example + name: example +spec: + forProvider: + policyArn: "arn:aws:iam::aws:policy/AmazonSageMakerFullAccess" + roleSelector: + matchLabels: + testing.upbound.io/example-name: example \ No newline at end of file diff --git a/internal/controller/sagemaker/endpoint/zz_controller.go b/internal/controller/sagemaker/endpoint/zz_controller.go new file mode 100755 index 0000000000..eca9532458 --- /dev/null +++ b/internal/controller/sagemaker/endpoint/zz_controller.go @@ -0,0 +1,74 @@ +// SPDX-FileCopyrightText: 2023 The Crossplane Authors +// +// SPDX-License-Identifier: Apache-2.0 + +/* +Copyright 2022 Upbound Inc. +*/ + +// Code generated by upjet. DO NOT EDIT. + +package endpoint + +import ( + "time" + + "github.com/crossplane/crossplane-runtime/pkg/connection" + "github.com/crossplane/crossplane-runtime/pkg/event" + "github.com/crossplane/crossplane-runtime/pkg/ratelimiter" + "github.com/crossplane/crossplane-runtime/pkg/reconciler/managed" + xpresource "github.com/crossplane/crossplane-runtime/pkg/resource" + tjcontroller "github.com/crossplane/upjet/pkg/controller" + "github.com/crossplane/upjet/pkg/controller/handler" + "github.com/crossplane/upjet/pkg/metrics" + ctrl "sigs.k8s.io/controller-runtime" + + v1beta1 "github.com/upbound/provider-aws/apis/sagemaker/v1beta1" + features "github.com/upbound/provider-aws/internal/features" +) + +// Setup adds a controller that reconciles Endpoint managed resources. +func Setup(mgr ctrl.Manager, o tjcontroller.Options) error { + name := managed.ControllerName(v1beta1.Endpoint_GroupVersionKind.String()) + var initializers managed.InitializerChain + for _, i := range o.Provider.Resources["aws_sagemaker_endpoint"].InitializerFns { + initializers = append(initializers, i(mgr.GetClient())) + } + initializers = append(initializers, managed.NewNameAsExternalName(mgr.GetClient())) + cps := []managed.ConnectionPublisher{managed.NewAPISecretPublisher(mgr.GetClient(), mgr.GetScheme())} + if o.SecretStoreConfigGVK != nil { + cps = append(cps, connection.NewDetailsManager(mgr.GetClient(), *o.SecretStoreConfigGVK, connection.WithTLSConfig(o.ESSOptions.TLSConfig))) + } + eventHandler := handler.NewEventHandler(handler.WithLogger(o.Logger.WithValues("gvk", v1beta1.Endpoint_GroupVersionKind))) + ac := tjcontroller.NewAPICallbacks(mgr, xpresource.ManagedKind(v1beta1.Endpoint_GroupVersionKind), tjcontroller.WithEventHandler(eventHandler), tjcontroller.WithStatusUpdates(false)) + opts := []managed.ReconcilerOption{ + managed.WithExternalConnecter( + tjcontroller.NewNoForkAsyncConnector(mgr.GetClient(), o.OperationTrackerStore, o.SetupFn, o.Provider.Resources["aws_sagemaker_endpoint"], + tjcontroller.WithNoForkAsyncLogger(o.Logger), + tjcontroller.WithNoForkAsyncConnectorEventHandler(eventHandler), + tjcontroller.WithNoForkAsyncCallbackProvider(ac), + tjcontroller.WithNoForkAsyncMetricRecorder(metrics.NewMetricRecorder(v1beta1.Endpoint_GroupVersionKind, mgr, o.PollInterval)), + tjcontroller.WithNoForkAsyncManagementPolicies(o.Features.Enabled(features.EnableBetaManagementPolicies)))), + managed.WithLogger(o.Logger.WithValues("controller", name)), + managed.WithRecorder(event.NewAPIRecorder(mgr.GetEventRecorderFor(name))), + managed.WithFinalizer(tjcontroller.NewNoForkFinalizer(o.OperationTrackerStore, xpresource.NewAPIFinalizer(mgr.GetClient(), managed.FinalizerName))), + managed.WithTimeout(3 * time.Minute), + managed.WithInitializers(initializers), + managed.WithConnectionPublishers(cps...), + managed.WithPollInterval(o.PollInterval), + } + if o.PollJitter != 0 { + opts = append(opts, managed.WithPollJitterHook(o.PollJitter)) + } + if o.Features.Enabled(features.EnableBetaManagementPolicies) { + opts = append(opts, managed.WithManagementPolicies()) + } + r := managed.NewReconciler(mgr, xpresource.ManagedKind(v1beta1.Endpoint_GroupVersionKind), opts...) + + return ctrl.NewControllerManagedBy(mgr). + Named(name). + WithOptions(o.ForControllerRuntime()). + WithEventFilter(xpresource.DesiredStateChanged()). + Watches(&v1beta1.Endpoint{}, eventHandler). + Complete(ratelimiter.NewReconciler(name, r, o.GlobalRateLimiter)) +} diff --git a/internal/controller/zz_monolith_setup.go b/internal/controller/zz_monolith_setup.go index abab96afec..b776e8bd7b 100755 --- a/internal/controller/zz_monolith_setup.go +++ b/internal/controller/zz_monolith_setup.go @@ -789,6 +789,7 @@ import ( devicesagemaker "github.com/upbound/provider-aws/internal/controller/sagemaker/device" devicefleet "github.com/upbound/provider-aws/internal/controller/sagemaker/devicefleet" domainsagemaker "github.com/upbound/provider-aws/internal/controller/sagemaker/domain" + endpointsagemaker "github.com/upbound/provider-aws/internal/controller/sagemaker/endpoint" endpointconfiguration "github.com/upbound/provider-aws/internal/controller/sagemaker/endpointconfiguration" featuregroup "github.com/upbound/provider-aws/internal/controller/sagemaker/featuregroup" imagesagemaker "github.com/upbound/provider-aws/internal/controller/sagemaker/image" @@ -1718,6 +1719,7 @@ func Setup_monolith(mgr ctrl.Manager, o controller.Options) error { devicesagemaker.Setup, devicefleet.Setup, domainsagemaker.Setup, + endpointsagemaker.Setup, endpointconfiguration.Setup, featuregroup.Setup, imagesagemaker.Setup, diff --git a/internal/controller/zz_sagemaker_setup.go b/internal/controller/zz_sagemaker_setup.go index 86004a1e4a..f66de6fc0a 100755 --- a/internal/controller/zz_sagemaker_setup.go +++ b/internal/controller/zz_sagemaker_setup.go @@ -15,6 +15,7 @@ import ( device "github.com/upbound/provider-aws/internal/controller/sagemaker/device" devicefleet "github.com/upbound/provider-aws/internal/controller/sagemaker/devicefleet" domain "github.com/upbound/provider-aws/internal/controller/sagemaker/domain" + endpoint "github.com/upbound/provider-aws/internal/controller/sagemaker/endpoint" endpointconfiguration "github.com/upbound/provider-aws/internal/controller/sagemaker/endpointconfiguration" featuregroup "github.com/upbound/provider-aws/internal/controller/sagemaker/featuregroup" image "github.com/upbound/provider-aws/internal/controller/sagemaker/image" @@ -42,6 +43,7 @@ func Setup_sagemaker(mgr ctrl.Manager, o controller.Options) error { device.Setup, devicefleet.Setup, domain.Setup, + endpoint.Setup, endpointconfiguration.Setup, featuregroup.Setup, image.Setup, diff --git a/package/crds/sagemaker.aws.upbound.io_endpoints.yaml b/package/crds/sagemaker.aws.upbound.io_endpoints.yaml new file mode 100644 index 0000000000..b3ac07450d --- /dev/null +++ b/package/crds/sagemaker.aws.upbound.io_endpoints.yaml @@ -0,0 +1,742 @@ +--- +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + controller-gen.kubebuilder.io/version: v0.13.0 + name: endpoints.sagemaker.aws.upbound.io +spec: + group: sagemaker.aws.upbound.io + names: + categories: + - crossplane + - managed + - aws + kind: Endpoint + listKind: EndpointList + plural: endpoints + singular: endpoint + scope: Cluster + versions: + - additionalPrinterColumns: + - jsonPath: .status.conditions[?(@.type=='Ready')].status + name: READY + type: string + - jsonPath: .status.conditions[?(@.type=='Synced')].status + name: SYNCED + type: string + - jsonPath: .metadata.annotations.crossplane\.io/external-name + name: EXTERNAL-NAME + type: string + - jsonPath: .metadata.creationTimestamp + name: AGE + type: date + name: v1beta1 + schema: + openAPIV3Schema: + description: Endpoint is the Schema for the Endpoints API. Provides a SageMaker + Endpoint resource. + properties: + apiVersion: + description: 'APIVersion defines the versioned schema of this representation + of an object. Servers should convert recognized schemas to the latest + internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' + type: string + kind: + description: 'Kind is a string value representing the REST resource this + object represents. Servers may infer this from the endpoint the client + submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' + type: string + metadata: + type: object + spec: + description: EndpointSpec defines the desired state of Endpoint + properties: + deletionPolicy: + default: Delete + description: 'DeletionPolicy specifies what will happen to the underlying + external when this managed resource is deleted - either "Delete" + or "Orphan" the external resource. This field is planned to be deprecated + in favor of the ManagementPolicies field in a future release. Currently, + both could be set independently and non-default values would be + honored if the feature flag is enabled. See the design doc for more + information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223' + enum: + - Orphan + - Delete + type: string + forProvider: + properties: + deploymentConfig: + description: The deployment configuration for an endpoint, which + contains the desired deployment strategy and rollback configurations. + See Deployment Config. + items: + properties: + autoRollbackConfiguration: + description: Automatic rollback configuration for handling + endpoint deployment failures and recovery. See Auto Rollback + Configuration. + items: + properties: + alarms: + description: List of CloudWatch alarms in your account + that are configured to monitor metrics on an endpoint. + If any alarms are tripped during a deployment, SageMaker + rolls back the deployment. See Alarms. + items: + properties: + alarmName: + description: The name of a CloudWatch alarm + in your account. + type: string + type: object + type: array + type: object + type: array + blueGreenUpdatePolicy: + description: Update policy for a blue/green deployment. + If this update policy is specified, SageMaker creates + a new fleet during the deployment while maintaining the + old fleet. See Blue Green Update Config. + items: + properties: + maximumExecutionTimeoutInSeconds: + description: Maximum execution timeout for the deployment. + Note that the timeout value should be larger than + the total waiting time specified in termination_wait_in_seconds + and wait_interval_in_seconds. Valid values are between + 600 and 14400. + type: number + terminationWaitInSeconds: + description: Additional waiting time in seconds after + the completion of an endpoint deployment before + terminating the old endpoint fleet. Default is 0. + Valid values are between 0 and 3600. + type: number + trafficRoutingConfiguration: + description: Defines the traffic routing strategy + to shift traffic from the old fleet to the new fleet + during an endpoint deployment. See Traffic Routing + Configuration. + items: + properties: + canarySize: + description: Batch size for the first step to + turn on traffic on the new endpoint fleet. + Value must be less than or equal to 50% of + the variant's total instance count. See Canary + Size. + items: + properties: + type: + description: 'Traffic routing strategy + type. Valid values are: ALL_AT_ONCE, + CANARY, and LINEAR.' + type: string + value: + description: Defines the capacity size, + either as a number of instances or a + capacity percentage. + type: number + type: object + type: array + linearStepSize: + description: Batch size for each step to turn + on traffic on the new endpoint fleet. Value + must be 10-50% of the variant's total instance + count. See Linear Step Size. + items: + properties: + type: + description: 'Traffic routing strategy + type. Valid values are: ALL_AT_ONCE, + CANARY, and LINEAR.' + type: string + value: + description: Defines the capacity size, + either as a number of instances or a + capacity percentage. + type: number + type: object + type: array + type: + description: 'Traffic routing strategy type. + Valid values are: ALL_AT_ONCE, CANARY, and + LINEAR.' + type: string + waitIntervalInSeconds: + description: The waiting time (in seconds) between + incremental steps to turn on traffic on the + new endpoint fleet. Valid values are between + 0 and 3600. + type: number + type: object + type: array + type: object + type: array + type: object + type: array + endpointConfigName: + description: The name of the endpoint configuration to use. + type: string + endpointConfigNameRef: + description: Reference to a EndpointConfiguration in sagemaker + to populate endpointConfigName. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + endpointConfigNameSelector: + description: Selector for a EndpointConfiguration in sagemaker + to populate endpointConfigName. + properties: + matchControllerRef: + description: MatchControllerRef ensures an object with the + same controller reference as the selecting object is selected. + type: boolean + matchLabels: + additionalProperties: + type: string + description: MatchLabels ensures an object with matching labels + is selected. + type: object + policy: + description: Policies for selection. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + type: object + region: + description: Region is the region you'd like your resource to + be created in. + type: string + tags: + additionalProperties: + type: string + description: Key-value map of resource tags. + type: object + x-kubernetes-map-type: granular + required: + - region + type: object + initProvider: + description: THIS IS A BETA FIELD. It will be honored unless the Management + Policies feature flag is disabled. InitProvider holds the same fields + as ForProvider, with the exception of Identifier and other resource + reference fields. The fields that are in InitProvider are merged + into ForProvider when the resource is created. The same fields are + also added to the terraform ignore_changes hook, to avoid updating + them after creation. This is useful for fields that are required + on creation, but we do not desire to update them after creation, + for example because of an external controller is managing them, + like an autoscaler. + properties: + deploymentConfig: + description: The deployment configuration for an endpoint, which + contains the desired deployment strategy and rollback configurations. + See Deployment Config. + items: + properties: + autoRollbackConfiguration: + description: Automatic rollback configuration for handling + endpoint deployment failures and recovery. See Auto Rollback + Configuration. + items: + properties: + alarms: + description: List of CloudWatch alarms in your account + that are configured to monitor metrics on an endpoint. + If any alarms are tripped during a deployment, SageMaker + rolls back the deployment. See Alarms. + items: + properties: + alarmName: + description: The name of a CloudWatch alarm + in your account. + type: string + type: object + type: array + type: object + type: array + blueGreenUpdatePolicy: + description: Update policy for a blue/green deployment. + If this update policy is specified, SageMaker creates + a new fleet during the deployment while maintaining the + old fleet. See Blue Green Update Config. + items: + properties: + maximumExecutionTimeoutInSeconds: + description: Maximum execution timeout for the deployment. + Note that the timeout value should be larger than + the total waiting time specified in termination_wait_in_seconds + and wait_interval_in_seconds. Valid values are between + 600 and 14400. + type: number + terminationWaitInSeconds: + description: Additional waiting time in seconds after + the completion of an endpoint deployment before + terminating the old endpoint fleet. Default is 0. + Valid values are between 0 and 3600. + type: number + trafficRoutingConfiguration: + description: Defines the traffic routing strategy + to shift traffic from the old fleet to the new fleet + during an endpoint deployment. See Traffic Routing + Configuration. + items: + properties: + canarySize: + description: Batch size for the first step to + turn on traffic on the new endpoint fleet. + Value must be less than or equal to 50% of + the variant's total instance count. See Canary + Size. + items: + properties: + type: + description: 'Traffic routing strategy + type. Valid values are: ALL_AT_ONCE, + CANARY, and LINEAR.' + type: string + value: + description: Defines the capacity size, + either as a number of instances or a + capacity percentage. + type: number + type: object + type: array + linearStepSize: + description: Batch size for each step to turn + on traffic on the new endpoint fleet. Value + must be 10-50% of the variant's total instance + count. See Linear Step Size. + items: + properties: + type: + description: 'Traffic routing strategy + type. Valid values are: ALL_AT_ONCE, + CANARY, and LINEAR.' + type: string + value: + description: Defines the capacity size, + either as a number of instances or a + capacity percentage. + type: number + type: object + type: array + type: + description: 'Traffic routing strategy type. + Valid values are: ALL_AT_ONCE, CANARY, and + LINEAR.' + type: string + waitIntervalInSeconds: + description: The waiting time (in seconds) between + incremental steps to turn on traffic on the + new endpoint fleet. Valid values are between + 0 and 3600. + type: number + type: object + type: array + type: object + type: array + type: object + type: array + tags: + additionalProperties: + type: string + description: Key-value map of resource tags. + type: object + x-kubernetes-map-type: granular + type: object + managementPolicies: + default: + - '*' + description: 'THIS IS A BETA FIELD. It is on by default but can be + opted out through a Crossplane feature flag. ManagementPolicies + specify the array of actions Crossplane is allowed to take on the + managed and external resources. This field is planned to replace + the DeletionPolicy field in a future release. Currently, both could + be set independently and non-default values would be honored if + the feature flag is enabled. If both are custom, the DeletionPolicy + field will be ignored. See the design doc for more information: + https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 + and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md' + items: + description: A ManagementAction represents an action that the Crossplane + controllers can take on an external resource. + enum: + - Observe + - Create + - Update + - Delete + - LateInitialize + - '*' + type: string + type: array + providerConfigRef: + default: + name: default + description: ProviderConfigReference specifies how the provider that + will be used to create, observe, update, and delete this managed + resource should be configured. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of this + reference is required. The default is 'Required', which + means the reconcile will fail if the reference cannot be + resolved. 'Optional' means this reference will be a no-op + if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will attempt + to resolve the reference only when the corresponding field + is not present. Use 'Always' to resolve the reference on + every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + publishConnectionDetailsTo: + description: PublishConnectionDetailsTo specifies the connection secret + config which contains a name, metadata and a reference to secret + store config to which any connection details for this managed resource + should be written. Connection details frequently include the endpoint, + username, and password required to connect to the managed resource. + properties: + configRef: + default: + name: default + description: SecretStoreConfigRef specifies which secret store + config should be used for this ConnectionSecret. + properties: + name: + description: Name of the referenced object. + type: string + policy: + description: Policies for referencing. + properties: + resolution: + default: Required + description: Resolution specifies whether resolution of + this reference is required. The default is 'Required', + which means the reconcile will fail if the reference + cannot be resolved. 'Optional' means this reference + will be a no-op if it cannot be resolved. + enum: + - Required + - Optional + type: string + resolve: + description: Resolve specifies when this reference should + be resolved. The default is 'IfNotPresent', which will + attempt to resolve the reference only when the corresponding + field is not present. Use 'Always' to resolve the reference + on every reconcile. + enum: + - Always + - IfNotPresent + type: string + type: object + required: + - name + type: object + metadata: + description: Metadata is the metadata for connection secret. + properties: + annotations: + additionalProperties: + type: string + description: Annotations are the annotations to be added to + connection secret. - For Kubernetes secrets, this will be + used as "metadata.annotations". - It is up to Secret Store + implementation for others store types. + type: object + labels: + additionalProperties: + type: string + description: Labels are the labels/tags to be added to connection + secret. - For Kubernetes secrets, this will be used as "metadata.labels". + - It is up to Secret Store implementation for others store + types. + type: object + type: + description: Type is the SecretType for the connection secret. + - Only valid for Kubernetes Secret Stores. + type: string + type: object + name: + description: Name is the name of the connection secret. + type: string + required: + - name + type: object + writeConnectionSecretToRef: + description: WriteConnectionSecretToReference specifies the namespace + and name of a Secret to which any connection details for this managed + resource should be written. Connection details frequently include + the endpoint, username, and password required to connect to the + managed resource. This field is planned to be replaced in a future + release in favor of PublishConnectionDetailsTo. Currently, both + could be set independently and connection details would be published + to both without affecting each other. + properties: + name: + description: Name of the secret. + type: string + namespace: + description: Namespace of the secret. + type: string + required: + - name + - namespace + type: object + required: + - forProvider + type: object + status: + description: EndpointStatus defines the observed state of Endpoint. + properties: + atProvider: + properties: + arn: + description: The Amazon Resource Name (ARN) assigned by AWS to + this endpoint. + type: string + deploymentConfig: + description: The deployment configuration for an endpoint, which + contains the desired deployment strategy and rollback configurations. + See Deployment Config. + items: + properties: + autoRollbackConfiguration: + description: Automatic rollback configuration for handling + endpoint deployment failures and recovery. See Auto Rollback + Configuration. + items: + properties: + alarms: + description: List of CloudWatch alarms in your account + that are configured to monitor metrics on an endpoint. + If any alarms are tripped during a deployment, SageMaker + rolls back the deployment. See Alarms. + items: + properties: + alarmName: + description: The name of a CloudWatch alarm + in your account. + type: string + type: object + type: array + type: object + type: array + blueGreenUpdatePolicy: + description: Update policy for a blue/green deployment. + If this update policy is specified, SageMaker creates + a new fleet during the deployment while maintaining the + old fleet. See Blue Green Update Config. + items: + properties: + maximumExecutionTimeoutInSeconds: + description: Maximum execution timeout for the deployment. + Note that the timeout value should be larger than + the total waiting time specified in termination_wait_in_seconds + and wait_interval_in_seconds. Valid values are between + 600 and 14400. + type: number + terminationWaitInSeconds: + description: Additional waiting time in seconds after + the completion of an endpoint deployment before + terminating the old endpoint fleet. Default is 0. + Valid values are between 0 and 3600. + type: number + trafficRoutingConfiguration: + description: Defines the traffic routing strategy + to shift traffic from the old fleet to the new fleet + during an endpoint deployment. See Traffic Routing + Configuration. + items: + properties: + canarySize: + description: Batch size for the first step to + turn on traffic on the new endpoint fleet. + Value must be less than or equal to 50% of + the variant's total instance count. See Canary + Size. + items: + properties: + type: + description: 'Traffic routing strategy + type. Valid values are: ALL_AT_ONCE, + CANARY, and LINEAR.' + type: string + value: + description: Defines the capacity size, + either as a number of instances or a + capacity percentage. + type: number + type: object + type: array + linearStepSize: + description: Batch size for each step to turn + on traffic on the new endpoint fleet. Value + must be 10-50% of the variant's total instance + count. See Linear Step Size. + items: + properties: + type: + description: 'Traffic routing strategy + type. Valid values are: ALL_AT_ONCE, + CANARY, and LINEAR.' + type: string + value: + description: Defines the capacity size, + either as a number of instances or a + capacity percentage. + type: number + type: object + type: array + type: + description: 'Traffic routing strategy type. + Valid values are: ALL_AT_ONCE, CANARY, and + LINEAR.' + type: string + waitIntervalInSeconds: + description: The waiting time (in seconds) between + incremental steps to turn on traffic on the + new endpoint fleet. Valid values are between + 0 and 3600. + type: number + type: object + type: array + type: object + type: array + type: object + type: array + endpointConfigName: + description: The name of the endpoint configuration to use. + type: string + id: + type: string + tags: + additionalProperties: + type: string + description: Key-value map of resource tags. + type: object + x-kubernetes-map-type: granular + tagsAll: + additionalProperties: + type: string + description: A map of tags assigned to the resource, including + those inherited from the provider default_tags configuration + block. + type: object + x-kubernetes-map-type: granular + type: object + conditions: + description: Conditions of the resource. + items: + description: A Condition that may apply to a resource. + properties: + lastTransitionTime: + description: LastTransitionTime is the last time this condition + transitioned from one status to another. + format: date-time + type: string + message: + description: A Message containing details about this condition's + last transition from one status to another, if any. + type: string + reason: + description: A Reason for this condition's last transition from + one status to another. + type: string + status: + description: Status of this condition; is it currently True, + False, or Unknown? + type: string + type: + description: Type of this condition. At most one of each condition + type may apply to a resource at any point in time. + type: string + required: + - lastTransitionTime + - reason + - status + - type + type: object + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + served: true + storage: true + subresources: + status: {}