diff --git a/apis/v1alpha1/ack-generate-metadata.yaml b/apis/v1alpha1/ack-generate-metadata.yaml index 85507d0..9fff131 100644 --- a/apis/v1alpha1/ack-generate-metadata.yaml +++ b/apis/v1alpha1/ack-generate-metadata.yaml @@ -1,8 +1,8 @@ ack_generate_info: - build_date: "2025-09-19T16:50:09Z" - build_hash: 6b4211163dcc34776b01da9a18217bac0f4103fd - go_version: go1.24.6 - version: v0.52.0 + build_date: "2025-09-25T05:09:04Z" + build_hash: 9c388d9668ea19d0b1b65566d492c4f67c6e64c8 + go_version: go1.24.7 + version: 9c388d9 api_directory_checksum: d82f4d79382f6fe41728ddbdfb5ec025b658575f api_version: v1alpha1 aws_sdk_go_version: v1.32.6 diff --git a/config/crd/bases/apigateway.services.k8s.aws_apiintegrationresponses.yaml b/config/crd/bases/apigateway.services.k8s.aws_apiintegrationresponses.yaml index baa28a0..6859d4e 100644 --- a/config/crd/bases/apigateway.services.k8s.aws_apiintegrationresponses.yaml +++ b/config/crd/bases/apigateway.services.k8s.aws_apiintegrationresponses.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.2 + controller-gen.kubebuilder.io/version: v0.19.0 name: apiintegrationresponses.apigateway.services.k8s.aws spec: group: apigateway.services.k8s.aws diff --git a/config/crd/bases/apigateway.services.k8s.aws_apikeys.yaml b/config/crd/bases/apigateway.services.k8s.aws_apikeys.yaml index 8b3d61c..5b63362 100644 --- a/config/crd/bases/apigateway.services.k8s.aws_apikeys.yaml +++ b/config/crd/bases/apigateway.services.k8s.aws_apikeys.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.2 + controller-gen.kubebuilder.io/version: v0.19.0 name: apikeys.apigateway.services.k8s.aws spec: group: apigateway.services.k8s.aws diff --git a/config/crd/bases/apigateway.services.k8s.aws_apimethodresponses.yaml b/config/crd/bases/apigateway.services.k8s.aws_apimethodresponses.yaml index 9ca5858..0d0ab15 100644 --- a/config/crd/bases/apigateway.services.k8s.aws_apimethodresponses.yaml +++ b/config/crd/bases/apigateway.services.k8s.aws_apimethodresponses.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.2 + controller-gen.kubebuilder.io/version: v0.19.0 name: apimethodresponses.apigateway.services.k8s.aws spec: group: apigateway.services.k8s.aws diff --git a/config/crd/bases/apigateway.services.k8s.aws_authorizers.yaml b/config/crd/bases/apigateway.services.k8s.aws_authorizers.yaml index f1e612b..60cd9da 100644 --- a/config/crd/bases/apigateway.services.k8s.aws_authorizers.yaml +++ b/config/crd/bases/apigateway.services.k8s.aws_authorizers.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.2 + controller-gen.kubebuilder.io/version: v0.19.0 name: authorizers.apigateway.services.k8s.aws spec: group: apigateway.services.k8s.aws diff --git a/config/crd/bases/apigateway.services.k8s.aws_deployments.yaml b/config/crd/bases/apigateway.services.k8s.aws_deployments.yaml index dd957e1..4e21af2 100644 --- a/config/crd/bases/apigateway.services.k8s.aws_deployments.yaml +++ b/config/crd/bases/apigateway.services.k8s.aws_deployments.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.2 + controller-gen.kubebuilder.io/version: v0.19.0 name: deployments.apigateway.services.k8s.aws spec: group: apigateway.services.k8s.aws diff --git a/config/crd/bases/apigateway.services.k8s.aws_integrations.yaml b/config/crd/bases/apigateway.services.k8s.aws_integrations.yaml index d1f5d11..32dbc94 100644 --- a/config/crd/bases/apigateway.services.k8s.aws_integrations.yaml +++ b/config/crd/bases/apigateway.services.k8s.aws_integrations.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.2 + controller-gen.kubebuilder.io/version: v0.19.0 name: integrations.apigateway.services.k8s.aws spec: group: apigateway.services.k8s.aws diff --git a/config/crd/bases/apigateway.services.k8s.aws_methods.yaml b/config/crd/bases/apigateway.services.k8s.aws_methods.yaml index 261f2f6..5d4633d 100644 --- a/config/crd/bases/apigateway.services.k8s.aws_methods.yaml +++ b/config/crd/bases/apigateway.services.k8s.aws_methods.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.2 + controller-gen.kubebuilder.io/version: v0.19.0 name: methods.apigateway.services.k8s.aws spec: group: apigateway.services.k8s.aws diff --git a/config/crd/bases/apigateway.services.k8s.aws_resources.yaml b/config/crd/bases/apigateway.services.k8s.aws_resources.yaml index f60f756..c18d233 100644 --- a/config/crd/bases/apigateway.services.k8s.aws_resources.yaml +++ b/config/crd/bases/apigateway.services.k8s.aws_resources.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.2 + controller-gen.kubebuilder.io/version: v0.19.0 name: resources.apigateway.services.k8s.aws spec: group: apigateway.services.k8s.aws diff --git a/config/crd/bases/apigateway.services.k8s.aws_restapis.yaml b/config/crd/bases/apigateway.services.k8s.aws_restapis.yaml index 8be2bbe..576c8a0 100644 --- a/config/crd/bases/apigateway.services.k8s.aws_restapis.yaml +++ b/config/crd/bases/apigateway.services.k8s.aws_restapis.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.2 + controller-gen.kubebuilder.io/version: v0.19.0 name: restapis.apigateway.services.k8s.aws spec: group: apigateway.services.k8s.aws diff --git a/config/crd/bases/apigateway.services.k8s.aws_stages.yaml b/config/crd/bases/apigateway.services.k8s.aws_stages.yaml index c2a99cc..666d718 100644 --- a/config/crd/bases/apigateway.services.k8s.aws_stages.yaml +++ b/config/crd/bases/apigateway.services.k8s.aws_stages.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.2 + controller-gen.kubebuilder.io/version: v0.19.0 name: stages.apigateway.services.k8s.aws spec: group: apigateway.services.k8s.aws diff --git a/config/crd/bases/apigateway.services.k8s.aws_vpclinks.yaml b/config/crd/bases/apigateway.services.k8s.aws_vpclinks.yaml index e25a383..42ca364 100644 --- a/config/crd/bases/apigateway.services.k8s.aws_vpclinks.yaml +++ b/config/crd/bases/apigateway.services.k8s.aws_vpclinks.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.2 + controller-gen.kubebuilder.io/version: v0.19.0 name: vpclinks.apigateway.services.k8s.aws spec: group: apigateway.services.k8s.aws diff --git a/go.mod b/go.mod index 9668d29..509a974 100644 --- a/go.mod +++ b/go.mod @@ -92,3 +92,5 @@ require ( sigs.k8s.io/structured-merge-diff/v4 v4.4.2 // indirect sigs.k8s.io/yaml v1.4.0 // indirect ) + +replace github.com/aws-controllers-k8s/runtime => github.com/gustavodiaz7722/ack-runtime v0.57.0 diff --git a/go.sum b/go.sum index 0f7e198..4de7aae 100644 --- a/go.sum +++ b/go.sum @@ -1,7 +1,5 @@ github.com/aws-controllers-k8s/ec2-controller v1.2.15 h1:Cij1ho3w0NxCJZOLG3ggUp8DnP/fvj43f0DSIRnySpM= github.com/aws-controllers-k8s/ec2-controller v1.2.15/go.mod h1:G27V4zTX8qoNQBm5TlEn1IxJSzB8XdFEYJiXPVgjcvE= -github.com/aws-controllers-k8s/runtime v0.52.0 h1:Q5UIAn6SSBr60t/DiU/zr6NLBlUuK2AG3yy2ma/9gDU= -github.com/aws-controllers-k8s/runtime v0.52.0/go.mod h1:OkUJN+Ds799JLYZsMJrO2vDJ4snxUeHK2MgrQHbU+Qc= github.com/aws/aws-sdk-go v1.55.0 h1:hVALKPjXz33kP1R9nTyJpUK7qF59dO2mleQxUW9mCVE= github.com/aws/aws-sdk-go v1.55.0/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU= github.com/aws/aws-sdk-go-v2 v1.36.0 h1:b1wM5CcE65Ujwn565qcwgtOTT1aT4ADOHHgglKjG7fk= @@ -86,6 +84,8 @@ github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db h1:097atOisP2aRj7vFgY github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gustavodiaz7722/ack-runtime v0.57.0 h1:85zJyvdPpzOTaWE0icljJcMRf0qlP0oWdOT05hMZ6Z0= +github.com/gustavodiaz7722/ack-runtime v0.57.0/go.mod h1:OkUJN+Ds799JLYZsMJrO2vDJ4snxUeHK2MgrQHbU+Qc= github.com/itchyny/gojq v0.12.6 h1:VjaFn59Em2wTxDNGcrRkDK9ZHMNa8IksOgL13sLL4d0= github.com/itchyny/gojq v0.12.6/go.mod h1:ZHrkfu7A+RbZLy5J1/JKpS4poEqrzItSTGDItqsfP0A= github.com/itchyny/timefmt-go v0.1.3 h1:7M3LGVDsqcd0VZH2U+x393obrzZisp7C0uEe921iRkU= diff --git a/helm/crds/apigateway.services.k8s.aws_apiintegrationresponses.yaml b/helm/crds/apigateway.services.k8s.aws_apiintegrationresponses.yaml index baa28a0..6859d4e 100644 --- a/helm/crds/apigateway.services.k8s.aws_apiintegrationresponses.yaml +++ b/helm/crds/apigateway.services.k8s.aws_apiintegrationresponses.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.2 + controller-gen.kubebuilder.io/version: v0.19.0 name: apiintegrationresponses.apigateway.services.k8s.aws spec: group: apigateway.services.k8s.aws diff --git a/helm/crds/apigateway.services.k8s.aws_apikeys.yaml b/helm/crds/apigateway.services.k8s.aws_apikeys.yaml index 8b3d61c..5b63362 100644 --- a/helm/crds/apigateway.services.k8s.aws_apikeys.yaml +++ b/helm/crds/apigateway.services.k8s.aws_apikeys.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.2 + controller-gen.kubebuilder.io/version: v0.19.0 name: apikeys.apigateway.services.k8s.aws spec: group: apigateway.services.k8s.aws diff --git a/helm/crds/apigateway.services.k8s.aws_apimethodresponses.yaml b/helm/crds/apigateway.services.k8s.aws_apimethodresponses.yaml index 9ca5858..0d0ab15 100644 --- a/helm/crds/apigateway.services.k8s.aws_apimethodresponses.yaml +++ b/helm/crds/apigateway.services.k8s.aws_apimethodresponses.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.2 + controller-gen.kubebuilder.io/version: v0.19.0 name: apimethodresponses.apigateway.services.k8s.aws spec: group: apigateway.services.k8s.aws diff --git a/helm/crds/apigateway.services.k8s.aws_authorizers.yaml b/helm/crds/apigateway.services.k8s.aws_authorizers.yaml index f1e612b..60cd9da 100644 --- a/helm/crds/apigateway.services.k8s.aws_authorizers.yaml +++ b/helm/crds/apigateway.services.k8s.aws_authorizers.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.2 + controller-gen.kubebuilder.io/version: v0.19.0 name: authorizers.apigateway.services.k8s.aws spec: group: apigateway.services.k8s.aws diff --git a/helm/crds/apigateway.services.k8s.aws_deployments.yaml b/helm/crds/apigateway.services.k8s.aws_deployments.yaml index dd957e1..4e21af2 100644 --- a/helm/crds/apigateway.services.k8s.aws_deployments.yaml +++ b/helm/crds/apigateway.services.k8s.aws_deployments.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.2 + controller-gen.kubebuilder.io/version: v0.19.0 name: deployments.apigateway.services.k8s.aws spec: group: apigateway.services.k8s.aws diff --git a/helm/crds/apigateway.services.k8s.aws_integrations.yaml b/helm/crds/apigateway.services.k8s.aws_integrations.yaml index d1f5d11..32dbc94 100644 --- a/helm/crds/apigateway.services.k8s.aws_integrations.yaml +++ b/helm/crds/apigateway.services.k8s.aws_integrations.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.2 + controller-gen.kubebuilder.io/version: v0.19.0 name: integrations.apigateway.services.k8s.aws spec: group: apigateway.services.k8s.aws diff --git a/helm/crds/apigateway.services.k8s.aws_methods.yaml b/helm/crds/apigateway.services.k8s.aws_methods.yaml index 261f2f6..5d4633d 100644 --- a/helm/crds/apigateway.services.k8s.aws_methods.yaml +++ b/helm/crds/apigateway.services.k8s.aws_methods.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.2 + controller-gen.kubebuilder.io/version: v0.19.0 name: methods.apigateway.services.k8s.aws spec: group: apigateway.services.k8s.aws diff --git a/helm/crds/apigateway.services.k8s.aws_resources.yaml b/helm/crds/apigateway.services.k8s.aws_resources.yaml index f60f756..c18d233 100644 --- a/helm/crds/apigateway.services.k8s.aws_resources.yaml +++ b/helm/crds/apigateway.services.k8s.aws_resources.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.2 + controller-gen.kubebuilder.io/version: v0.19.0 name: resources.apigateway.services.k8s.aws spec: group: apigateway.services.k8s.aws diff --git a/helm/crds/apigateway.services.k8s.aws_restapis.yaml b/helm/crds/apigateway.services.k8s.aws_restapis.yaml index 8be2bbe..576c8a0 100644 --- a/helm/crds/apigateway.services.k8s.aws_restapis.yaml +++ b/helm/crds/apigateway.services.k8s.aws_restapis.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.2 + controller-gen.kubebuilder.io/version: v0.19.0 name: restapis.apigateway.services.k8s.aws spec: group: apigateway.services.k8s.aws diff --git a/helm/crds/apigateway.services.k8s.aws_stages.yaml b/helm/crds/apigateway.services.k8s.aws_stages.yaml index c2a99cc..666d718 100644 --- a/helm/crds/apigateway.services.k8s.aws_stages.yaml +++ b/helm/crds/apigateway.services.k8s.aws_stages.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.2 + controller-gen.kubebuilder.io/version: v0.19.0 name: stages.apigateway.services.k8s.aws spec: group: apigateway.services.k8s.aws diff --git a/helm/crds/apigateway.services.k8s.aws_vpclinks.yaml b/helm/crds/apigateway.services.k8s.aws_vpclinks.yaml index e25a383..42ca364 100644 --- a/helm/crds/apigateway.services.k8s.aws_vpclinks.yaml +++ b/helm/crds/apigateway.services.k8s.aws_vpclinks.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.2 + controller-gen.kubebuilder.io/version: v0.19.0 name: vpclinks.apigateway.services.k8s.aws spec: group: apigateway.services.k8s.aws diff --git a/helm/crds/services.k8s.aws_adoptedresources.yaml b/helm/crds/services.k8s.aws_adoptedresources.yaml index b7be322..d6cdd10 100644 --- a/helm/crds/services.k8s.aws_adoptedresources.yaml +++ b/helm/crds/services.k8s.aws_adoptedresources.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.2 + controller-gen.kubebuilder.io/version: v0.19.0 name: adoptedresources.services.k8s.aws spec: group: services.k8s.aws diff --git a/helm/crds/services.k8s.aws_fieldexports.yaml b/helm/crds/services.k8s.aws_fieldexports.yaml index 49b4f38..6e2c61e 100644 --- a/helm/crds/services.k8s.aws_fieldexports.yaml +++ b/helm/crds/services.k8s.aws_fieldexports.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.2 + controller-gen.kubebuilder.io/version: v0.19.0 name: fieldexports.services.k8s.aws spec: group: services.k8s.aws diff --git a/pkg/resource/api_integration_response/references.go b/pkg/resource/api_integration_response/references.go index 5d9fb80..0b92166 100644 --- a/pkg/resource/api_integration_response/references.go +++ b/pkg/resource/api_integration_response/references.go @@ -24,6 +24,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/client" ackv1alpha1 "github.com/aws-controllers-k8s/runtime/apis/core/v1alpha1" + ackcondition "github.com/aws-controllers-k8s/runtime/pkg/condition" ackerr "github.com/aws-controllers-k8s/runtime/pkg/errors" acktypes "github.com/aws-controllers-k8s/runtime/pkg/types" @@ -149,8 +150,9 @@ func getReferencedResourceState_Resource( } var refResourceTerminal bool for _, cond := range obj.Status.Conditions { - if cond.Type == ackv1alpha1.ConditionTypeTerminal && - cond.Status == corev1.ConditionTrue { + if cond.Type == ackv1alpha1.ConditionTypeReady && + cond.Status == corev1.ConditionFalse && + *cond.Reason == ackcondition.TerminalReason { return ackerr.ResourceReferenceTerminalFor( "Resource", namespace, name) @@ -161,14 +163,14 @@ func getReferencedResourceState_Resource( "Resource", namespace, name) } - var refResourceSynced bool + var refResourceReady bool for _, cond := range obj.Status.Conditions { - if cond.Type == ackv1alpha1.ConditionTypeResourceSynced && + if cond.Type == ackv1alpha1.ConditionTypeReady && cond.Status == corev1.ConditionTrue { - refResourceSynced = true + refResourceReady = true } } - if !refResourceSynced { + if !refResourceReady { return ackerr.ResourceReferenceNotSyncedFor( "Resource", namespace, name) @@ -232,8 +234,9 @@ func getReferencedResourceState_RestAPI( } var refResourceTerminal bool for _, cond := range obj.Status.Conditions { - if cond.Type == ackv1alpha1.ConditionTypeTerminal && - cond.Status == corev1.ConditionTrue { + if cond.Type == ackv1alpha1.ConditionTypeReady && + cond.Status == corev1.ConditionFalse && + *cond.Reason == ackcondition.TerminalReason { return ackerr.ResourceReferenceTerminalFor( "RestAPI", namespace, name) @@ -244,14 +247,14 @@ func getReferencedResourceState_RestAPI( "RestAPI", namespace, name) } - var refResourceSynced bool + var refResourceReady bool for _, cond := range obj.Status.Conditions { - if cond.Type == ackv1alpha1.ConditionTypeResourceSynced && + if cond.Type == ackv1alpha1.ConditionTypeReady && cond.Status == corev1.ConditionTrue { - refResourceSynced = true + refResourceReady = true } } - if !refResourceSynced { + if !refResourceReady { return ackerr.ResourceReferenceNotSyncedFor( "RestAPI", namespace, name) diff --git a/pkg/resource/api_method_response/references.go b/pkg/resource/api_method_response/references.go index 607ce30..95f168a 100644 --- a/pkg/resource/api_method_response/references.go +++ b/pkg/resource/api_method_response/references.go @@ -24,6 +24,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/client" ackv1alpha1 "github.com/aws-controllers-k8s/runtime/apis/core/v1alpha1" + ackcondition "github.com/aws-controllers-k8s/runtime/pkg/condition" ackerr "github.com/aws-controllers-k8s/runtime/pkg/errors" acktypes "github.com/aws-controllers-k8s/runtime/pkg/types" @@ -149,8 +150,9 @@ func getReferencedResourceState_Resource( } var refResourceTerminal bool for _, cond := range obj.Status.Conditions { - if cond.Type == ackv1alpha1.ConditionTypeTerminal && - cond.Status == corev1.ConditionTrue { + if cond.Type == ackv1alpha1.ConditionTypeReady && + cond.Status == corev1.ConditionFalse && + *cond.Reason == ackcondition.TerminalReason { return ackerr.ResourceReferenceTerminalFor( "Resource", namespace, name) @@ -161,14 +163,14 @@ func getReferencedResourceState_Resource( "Resource", namespace, name) } - var refResourceSynced bool + var refResourceReady bool for _, cond := range obj.Status.Conditions { - if cond.Type == ackv1alpha1.ConditionTypeResourceSynced && + if cond.Type == ackv1alpha1.ConditionTypeReady && cond.Status == corev1.ConditionTrue { - refResourceSynced = true + refResourceReady = true } } - if !refResourceSynced { + if !refResourceReady { return ackerr.ResourceReferenceNotSyncedFor( "Resource", namespace, name) @@ -232,8 +234,9 @@ func getReferencedResourceState_RestAPI( } var refResourceTerminal bool for _, cond := range obj.Status.Conditions { - if cond.Type == ackv1alpha1.ConditionTypeTerminal && - cond.Status == corev1.ConditionTrue { + if cond.Type == ackv1alpha1.ConditionTypeReady && + cond.Status == corev1.ConditionFalse && + *cond.Reason == ackcondition.TerminalReason { return ackerr.ResourceReferenceTerminalFor( "RestAPI", namespace, name) @@ -244,14 +247,14 @@ func getReferencedResourceState_RestAPI( "RestAPI", namespace, name) } - var refResourceSynced bool + var refResourceReady bool for _, cond := range obj.Status.Conditions { - if cond.Type == ackv1alpha1.ConditionTypeResourceSynced && + if cond.Type == ackv1alpha1.ConditionTypeReady && cond.Status == corev1.ConditionTrue { - refResourceSynced = true + refResourceReady = true } } - if !refResourceSynced { + if !refResourceReady { return ackerr.ResourceReferenceNotSyncedFor( "RestAPI", namespace, name) diff --git a/pkg/resource/authorizer/references.go b/pkg/resource/authorizer/references.go index f637672..7073475 100644 --- a/pkg/resource/authorizer/references.go +++ b/pkg/resource/authorizer/references.go @@ -24,6 +24,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/client" ackv1alpha1 "github.com/aws-controllers-k8s/runtime/apis/core/v1alpha1" + ackcondition "github.com/aws-controllers-k8s/runtime/pkg/condition" ackerr "github.com/aws-controllers-k8s/runtime/pkg/errors" acktypes "github.com/aws-controllers-k8s/runtime/pkg/types" @@ -132,8 +133,9 @@ func getReferencedResourceState_RestAPI( } var refResourceTerminal bool for _, cond := range obj.Status.Conditions { - if cond.Type == ackv1alpha1.ConditionTypeTerminal && - cond.Status == corev1.ConditionTrue { + if cond.Type == ackv1alpha1.ConditionTypeReady && + cond.Status == corev1.ConditionFalse && + *cond.Reason == ackcondition.TerminalReason { return ackerr.ResourceReferenceTerminalFor( "RestAPI", namespace, name) @@ -144,14 +146,14 @@ func getReferencedResourceState_RestAPI( "RestAPI", namespace, name) } - var refResourceSynced bool + var refResourceReady bool for _, cond := range obj.Status.Conditions { - if cond.Type == ackv1alpha1.ConditionTypeResourceSynced && + if cond.Type == ackv1alpha1.ConditionTypeReady && cond.Status == corev1.ConditionTrue { - refResourceSynced = true + refResourceReady = true } } - if !refResourceSynced { + if !refResourceReady { return ackerr.ResourceReferenceNotSyncedFor( "RestAPI", namespace, name) diff --git a/pkg/resource/deployment/references.go b/pkg/resource/deployment/references.go index 2dce6dd..96ed98d 100644 --- a/pkg/resource/deployment/references.go +++ b/pkg/resource/deployment/references.go @@ -24,6 +24,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/client" ackv1alpha1 "github.com/aws-controllers-k8s/runtime/apis/core/v1alpha1" + ackcondition "github.com/aws-controllers-k8s/runtime/pkg/condition" ackerr "github.com/aws-controllers-k8s/runtime/pkg/errors" acktypes "github.com/aws-controllers-k8s/runtime/pkg/types" @@ -132,8 +133,9 @@ func getReferencedResourceState_RestAPI( } var refResourceTerminal bool for _, cond := range obj.Status.Conditions { - if cond.Type == ackv1alpha1.ConditionTypeTerminal && - cond.Status == corev1.ConditionTrue { + if cond.Type == ackv1alpha1.ConditionTypeReady && + cond.Status == corev1.ConditionFalse && + *cond.Reason == ackcondition.TerminalReason { return ackerr.ResourceReferenceTerminalFor( "RestAPI", namespace, name) @@ -144,14 +146,14 @@ func getReferencedResourceState_RestAPI( "RestAPI", namespace, name) } - var refResourceSynced bool + var refResourceReady bool for _, cond := range obj.Status.Conditions { - if cond.Type == ackv1alpha1.ConditionTypeResourceSynced && + if cond.Type == ackv1alpha1.ConditionTypeReady && cond.Status == corev1.ConditionTrue { - refResourceSynced = true + refResourceReady = true } } - if !refResourceSynced { + if !refResourceReady { return ackerr.ResourceReferenceNotSyncedFor( "RestAPI", namespace, name) diff --git a/pkg/resource/integration/references.go b/pkg/resource/integration/references.go index 3e449f2..e967c02 100644 --- a/pkg/resource/integration/references.go +++ b/pkg/resource/integration/references.go @@ -24,6 +24,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/client" ackv1alpha1 "github.com/aws-controllers-k8s/runtime/apis/core/v1alpha1" + ackcondition "github.com/aws-controllers-k8s/runtime/pkg/condition" ackerr "github.com/aws-controllers-k8s/runtime/pkg/errors" acktypes "github.com/aws-controllers-k8s/runtime/pkg/types" @@ -163,8 +164,9 @@ func getReferencedResourceState_VPCLink( } var refResourceTerminal bool for _, cond := range obj.Status.Conditions { - if cond.Type == ackv1alpha1.ConditionTypeTerminal && - cond.Status == corev1.ConditionTrue { + if cond.Type == ackv1alpha1.ConditionTypeReady && + cond.Status == corev1.ConditionFalse && + *cond.Reason == ackcondition.TerminalReason { return ackerr.ResourceReferenceTerminalFor( "VPCLink", namespace, name) @@ -175,14 +177,14 @@ func getReferencedResourceState_VPCLink( "VPCLink", namespace, name) } - var refResourceSynced bool + var refResourceReady bool for _, cond := range obj.Status.Conditions { - if cond.Type == ackv1alpha1.ConditionTypeResourceSynced && + if cond.Type == ackv1alpha1.ConditionTypeReady && cond.Status == corev1.ConditionTrue { - refResourceSynced = true + refResourceReady = true } } - if !refResourceSynced { + if !refResourceReady { return ackerr.ResourceReferenceNotSyncedFor( "VPCLink", namespace, name) @@ -246,8 +248,9 @@ func getReferencedResourceState_Resource( } var refResourceTerminal bool for _, cond := range obj.Status.Conditions { - if cond.Type == ackv1alpha1.ConditionTypeTerminal && - cond.Status == corev1.ConditionTrue { + if cond.Type == ackv1alpha1.ConditionTypeReady && + cond.Status == corev1.ConditionFalse && + *cond.Reason == ackcondition.TerminalReason { return ackerr.ResourceReferenceTerminalFor( "Resource", namespace, name) @@ -258,14 +261,14 @@ func getReferencedResourceState_Resource( "Resource", namespace, name) } - var refResourceSynced bool + var refResourceReady bool for _, cond := range obj.Status.Conditions { - if cond.Type == ackv1alpha1.ConditionTypeResourceSynced && + if cond.Type == ackv1alpha1.ConditionTypeReady && cond.Status == corev1.ConditionTrue { - refResourceSynced = true + refResourceReady = true } } - if !refResourceSynced { + if !refResourceReady { return ackerr.ResourceReferenceNotSyncedFor( "Resource", namespace, name) @@ -329,8 +332,9 @@ func getReferencedResourceState_RestAPI( } var refResourceTerminal bool for _, cond := range obj.Status.Conditions { - if cond.Type == ackv1alpha1.ConditionTypeTerminal && - cond.Status == corev1.ConditionTrue { + if cond.Type == ackv1alpha1.ConditionTypeReady && + cond.Status == corev1.ConditionFalse && + *cond.Reason == ackcondition.TerminalReason { return ackerr.ResourceReferenceTerminalFor( "RestAPI", namespace, name) @@ -341,14 +345,14 @@ func getReferencedResourceState_RestAPI( "RestAPI", namespace, name) } - var refResourceSynced bool + var refResourceReady bool for _, cond := range obj.Status.Conditions { - if cond.Type == ackv1alpha1.ConditionTypeResourceSynced && + if cond.Type == ackv1alpha1.ConditionTypeReady && cond.Status == corev1.ConditionTrue { - refResourceSynced = true + refResourceReady = true } } - if !refResourceSynced { + if !refResourceReady { return ackerr.ResourceReferenceNotSyncedFor( "RestAPI", namespace, name) diff --git a/pkg/resource/method/references.go b/pkg/resource/method/references.go index b4ea2c3..c2b217c 100644 --- a/pkg/resource/method/references.go +++ b/pkg/resource/method/references.go @@ -24,6 +24,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/client" ackv1alpha1 "github.com/aws-controllers-k8s/runtime/apis/core/v1alpha1" + ackcondition "github.com/aws-controllers-k8s/runtime/pkg/condition" ackerr "github.com/aws-controllers-k8s/runtime/pkg/errors" acktypes "github.com/aws-controllers-k8s/runtime/pkg/types" @@ -149,8 +150,9 @@ func getReferencedResourceState_Resource( } var refResourceTerminal bool for _, cond := range obj.Status.Conditions { - if cond.Type == ackv1alpha1.ConditionTypeTerminal && - cond.Status == corev1.ConditionTrue { + if cond.Type == ackv1alpha1.ConditionTypeReady && + cond.Status == corev1.ConditionFalse && + *cond.Reason == ackcondition.TerminalReason { return ackerr.ResourceReferenceTerminalFor( "Resource", namespace, name) @@ -161,14 +163,14 @@ func getReferencedResourceState_Resource( "Resource", namespace, name) } - var refResourceSynced bool + var refResourceReady bool for _, cond := range obj.Status.Conditions { - if cond.Type == ackv1alpha1.ConditionTypeResourceSynced && + if cond.Type == ackv1alpha1.ConditionTypeReady && cond.Status == corev1.ConditionTrue { - refResourceSynced = true + refResourceReady = true } } - if !refResourceSynced { + if !refResourceReady { return ackerr.ResourceReferenceNotSyncedFor( "Resource", namespace, name) @@ -232,8 +234,9 @@ func getReferencedResourceState_RestAPI( } var refResourceTerminal bool for _, cond := range obj.Status.Conditions { - if cond.Type == ackv1alpha1.ConditionTypeTerminal && - cond.Status == corev1.ConditionTrue { + if cond.Type == ackv1alpha1.ConditionTypeReady && + cond.Status == corev1.ConditionFalse && + *cond.Reason == ackcondition.TerminalReason { return ackerr.ResourceReferenceTerminalFor( "RestAPI", namespace, name) @@ -244,14 +247,14 @@ func getReferencedResourceState_RestAPI( "RestAPI", namespace, name) } - var refResourceSynced bool + var refResourceReady bool for _, cond := range obj.Status.Conditions { - if cond.Type == ackv1alpha1.ConditionTypeResourceSynced && + if cond.Type == ackv1alpha1.ConditionTypeReady && cond.Status == corev1.ConditionTrue { - refResourceSynced = true + refResourceReady = true } } - if !refResourceSynced { + if !refResourceReady { return ackerr.ResourceReferenceNotSyncedFor( "RestAPI", namespace, name) diff --git a/pkg/resource/resource/references.go b/pkg/resource/resource/references.go index 0089a60..ae23d32 100644 --- a/pkg/resource/resource/references.go +++ b/pkg/resource/resource/references.go @@ -24,6 +24,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/client" ackv1alpha1 "github.com/aws-controllers-k8s/runtime/apis/core/v1alpha1" + ackcondition "github.com/aws-controllers-k8s/runtime/pkg/condition" ackerr "github.com/aws-controllers-k8s/runtime/pkg/errors" acktypes "github.com/aws-controllers-k8s/runtime/pkg/types" @@ -149,8 +150,9 @@ func getReferencedResourceState_Resource( } var refResourceTerminal bool for _, cond := range obj.Status.Conditions { - if cond.Type == ackv1alpha1.ConditionTypeTerminal && - cond.Status == corev1.ConditionTrue { + if cond.Type == ackv1alpha1.ConditionTypeReady && + cond.Status == corev1.ConditionFalse && + *cond.Reason == ackcondition.TerminalReason { return ackerr.ResourceReferenceTerminalFor( "Resource", namespace, name) @@ -161,14 +163,14 @@ func getReferencedResourceState_Resource( "Resource", namespace, name) } - var refResourceSynced bool + var refResourceReady bool for _, cond := range obj.Status.Conditions { - if cond.Type == ackv1alpha1.ConditionTypeResourceSynced && + if cond.Type == ackv1alpha1.ConditionTypeReady && cond.Status == corev1.ConditionTrue { - refResourceSynced = true + refResourceReady = true } } - if !refResourceSynced { + if !refResourceReady { return ackerr.ResourceReferenceNotSyncedFor( "Resource", namespace, name) @@ -232,8 +234,9 @@ func getReferencedResourceState_RestAPI( } var refResourceTerminal bool for _, cond := range obj.Status.Conditions { - if cond.Type == ackv1alpha1.ConditionTypeTerminal && - cond.Status == corev1.ConditionTrue { + if cond.Type == ackv1alpha1.ConditionTypeReady && + cond.Status == corev1.ConditionFalse && + *cond.Reason == ackcondition.TerminalReason { return ackerr.ResourceReferenceTerminalFor( "RestAPI", namespace, name) @@ -244,14 +247,14 @@ func getReferencedResourceState_RestAPI( "RestAPI", namespace, name) } - var refResourceSynced bool + var refResourceReady bool for _, cond := range obj.Status.Conditions { - if cond.Type == ackv1alpha1.ConditionTypeResourceSynced && + if cond.Type == ackv1alpha1.ConditionTypeReady && cond.Status == corev1.ConditionTrue { - refResourceSynced = true + refResourceReady = true } } - if !refResourceSynced { + if !refResourceReady { return ackerr.ResourceReferenceNotSyncedFor( "RestAPI", namespace, name) diff --git a/pkg/resource/rest_api/references.go b/pkg/resource/rest_api/references.go index 05ca542..81862fb 100644 --- a/pkg/resource/rest_api/references.go +++ b/pkg/resource/rest_api/references.go @@ -25,6 +25,7 @@ import ( ec2apitypes "github.com/aws-controllers-k8s/ec2-controller/apis/v1alpha1" ackv1alpha1 "github.com/aws-controllers-k8s/runtime/apis/core/v1alpha1" + ackcondition "github.com/aws-controllers-k8s/runtime/pkg/condition" ackerr "github.com/aws-controllers-k8s/runtime/pkg/errors" acktypes "github.com/aws-controllers-k8s/runtime/pkg/types" @@ -144,8 +145,9 @@ func getReferencedResourceState_VPCEndpoint( } var refResourceTerminal bool for _, cond := range obj.Status.Conditions { - if cond.Type == ackv1alpha1.ConditionTypeTerminal && - cond.Status == corev1.ConditionTrue { + if cond.Type == ackv1alpha1.ConditionTypeReady && + cond.Status == corev1.ConditionFalse && + *cond.Reason == ackcondition.TerminalReason { return ackerr.ResourceReferenceTerminalFor( "VPCEndpoint", namespace, name) @@ -156,14 +158,14 @@ func getReferencedResourceState_VPCEndpoint( "VPCEndpoint", namespace, name) } - var refResourceSynced bool + var refResourceReady bool for _, cond := range obj.Status.Conditions { - if cond.Type == ackv1alpha1.ConditionTypeResourceSynced && + if cond.Type == ackv1alpha1.ConditionTypeReady && cond.Status == corev1.ConditionTrue { - refResourceSynced = true + refResourceReady = true } } - if !refResourceSynced { + if !refResourceReady { return ackerr.ResourceReferenceNotSyncedFor( "VPCEndpoint", namespace, name) diff --git a/pkg/resource/rest_api/sdk.go b/pkg/resource/rest_api/sdk.go index 49fbed7..b037c91 100644 --- a/pkg/resource/rest_api/sdk.go +++ b/pkg/resource/rest_api/sdk.go @@ -355,7 +355,7 @@ func (rm *resourceManager) newCreateRequestPayload( if r.ko.Spec.MinimumCompressionSize != nil { minimumCompressionSizeCopy0 := *r.ko.Spec.MinimumCompressionSize if minimumCompressionSizeCopy0 > math.MaxInt32 || minimumCompressionSizeCopy0 < math.MinInt32 { - return nil, fmt.Errorf("error: field minimumCompressionSize is of type int32") + return nil, fmt.Errorf("error: field MinimumCompressionSize is of type int32") } minimumCompressionSizeCopy := int32(minimumCompressionSizeCopy0) res.MinimumCompressionSize = &minimumCompressionSizeCopy diff --git a/pkg/resource/stage/references.go b/pkg/resource/stage/references.go index 8520c45..ce983c4 100644 --- a/pkg/resource/stage/references.go +++ b/pkg/resource/stage/references.go @@ -24,6 +24,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/client" ackv1alpha1 "github.com/aws-controllers-k8s/runtime/apis/core/v1alpha1" + ackcondition "github.com/aws-controllers-k8s/runtime/pkg/condition" ackerr "github.com/aws-controllers-k8s/runtime/pkg/errors" acktypes "github.com/aws-controllers-k8s/runtime/pkg/types" @@ -132,8 +133,9 @@ func getReferencedResourceState_RestAPI( } var refResourceTerminal bool for _, cond := range obj.Status.Conditions { - if cond.Type == ackv1alpha1.ConditionTypeTerminal && - cond.Status == corev1.ConditionTrue { + if cond.Type == ackv1alpha1.ConditionTypeReady && + cond.Status == corev1.ConditionFalse && + *cond.Reason == ackcondition.TerminalReason { return ackerr.ResourceReferenceTerminalFor( "RestAPI", namespace, name) @@ -144,14 +146,14 @@ func getReferencedResourceState_RestAPI( "RestAPI", namespace, name) } - var refResourceSynced bool + var refResourceReady bool for _, cond := range obj.Status.Conditions { - if cond.Type == ackv1alpha1.ConditionTypeResourceSynced && + if cond.Type == ackv1alpha1.ConditionTypeReady && cond.Status == corev1.ConditionTrue { - refResourceSynced = true + refResourceReady = true } } - if !refResourceSynced { + if !refResourceReady { return ackerr.ResourceReferenceNotSyncedFor( "RestAPI", namespace, name) diff --git a/test/e2e/requirements.txt b/test/e2e/requirements.txt index 11f5a53..6e2ab16 100644 --- a/test/e2e/requirements.txt +++ b/test/e2e/requirements.txt @@ -1 +1 @@ -acktest @ git+https://github.com/aws-controllers-k8s/test-infra.git@55a6fdba4a637f0702cf164035f03c16c8d6b884 \ No newline at end of file +acktest @ git+https://github.com/gustavodiaz7722/ack-test-infra.git@4a5c296da0fe386eadf95c242591ae4724cd0428 diff --git a/test/e2e/service_bootstrap.py b/test/e2e/service_bootstrap.py index 8dae698..585ae91 100644 --- a/test/e2e/service_bootstrap.py +++ b/test/e2e/service_bootstrap.py @@ -30,7 +30,7 @@ def service_bootstrap() -> Resources: resources = BootstrapResources( NetworkLoadBalancer=NetworkLoadBalancer( - name_prefix='vpc-link-test', scheme='internal'), + name_prefix='vpc-link-test', scheme='internal', num_private_subnet=2), AuthorizerUserPool1=user_pool_1, AuthorizerUserPool2=user_pool_2, ) diff --git a/test/e2e/tests/deployment_test.py b/test/e2e/tests/deployment_test.py index 3c241b6..bfbadd5 100644 --- a/test/e2e/tests/deployment_test.py +++ b/test/e2e/tests/deployment_test.py @@ -73,7 +73,7 @@ def simple_deployment(apigateway_client, simple_integration): } k8s.wait_on_condition( ref, - condition.CONDITION_TYPE_RESOURCE_SYNCED, + condition.CONDITION_TYPE_READY, "True", wait_periods=60, ) diff --git a/test/e2e/tests/resource_test.py b/test/e2e/tests/resource_test.py index ea9e826..97404d2 100644 --- a/test/e2e/tests/resource_test.py +++ b/test/e2e/tests/resource_test.py @@ -73,7 +73,7 @@ def simple_resource(simple_rest_api, apigateway_client) -> Tuple[k8s.CustomResou } k8s.wait_on_condition( ref, - condition.CONDITION_TYPE_RESOURCE_SYNCED, + condition.CONDITION_TYPE_READY, "True", wait_periods=60, ) diff --git a/test/e2e/tests/rest_api_test.py b/test/e2e/tests/rest_api_test.py index 1bdfee5..6fde9d7 100644 --- a/test/e2e/tests/rest_api_test.py +++ b/test/e2e/tests/rest_api_test.py @@ -75,7 +75,7 @@ def simple_rest_api(apigateway_client) -> Tuple[k8s.CustomResourceReference, Dic assert k8s.get_resource_exists(ref) k8s.wait_on_condition( ref, - condition.CONDITION_TYPE_RESOURCE_SYNCED, + condition.CONDITION_TYPE_READY, "True", wait_periods=MAX_WAIT_FOR_SYNCED_MINUTES, ) @@ -106,10 +106,11 @@ def test_create_update_rest_api(self, simple_rest_api, apigateway_client): time.sleep(MODIFY_WAIT_AFTER_SECONDS) assert k8s.wait_on_condition( ref, - condition.CONDITION_TYPE_TERMINAL, - "True", + condition.CONDITION_TYPE_READY, + "False", wait_periods=MAX_WAIT_FOR_SYNCED_MINUTES, ) + condition.assert_terminal(ref) updates = { "spec": { @@ -132,14 +133,10 @@ def test_create_update_rest_api(self, simple_rest_api, apigateway_client): time.sleep(MODIFY_WAIT_AFTER_SECONDS) assert k8s.wait_on_condition( ref, - condition.CONDITION_TYPE_RESOURCE_SYNCED, + condition.CONDITION_TYPE_READY, "True", wait_periods=MAX_WAIT_FOR_SYNCED_MINUTES, ) - assert ( - k8s.get_resource_condition( - ref, condition.CONDITION_TYPE_TERMINAL) is None - ) aws_rest_api = apigateway_client.get_rest_api(restApiId=rest_api_id) expected_tags = updates["spec"].pop("tags") diff --git a/test/e2e/tests/stage_test.py b/test/e2e/tests/stage_test.py index 45e7ac5..30ec46c 100644 --- a/test/e2e/tests/stage_test.py +++ b/test/e2e/tests/stage_test.py @@ -116,7 +116,7 @@ def test_create_update_stage(self, simple_stage, apigateway_client): time.sleep(MODIFY_WAIT_AFTER_SECONDS) assert k8s.wait_on_condition( ref, - condition.CONDITION_TYPE_RESOURCE_SYNCED, + condition.CONDITION_TYPE_READY, 'True', wait_periods=MAX_WAIT_FOR_SYNCED_MINUTES, ) diff --git a/test/e2e/tests/vpc_link_test.py b/test/e2e/tests/vpc_link_test.py index 5713cce..3783bb6 100644 --- a/test/e2e/tests/vpc_link_test.py +++ b/test/e2e/tests/vpc_link_test.py @@ -81,7 +81,7 @@ def test_create_update_vpc_link(self, simple_vpc_link, apigateway_client): assert k8s.wait_on_condition( ref, - condition.CONDITION_TYPE_RESOURCE_SYNCED, + condition.CONDITION_TYPE_READY, 'True', wait_periods=MAX_WAIT_FOR_SYNCED_MINUTES, )