You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2024/10/22 15:05:21 UTC
(camel) branch main updated: CAMEL-21373 - Camel-AWS-Secrets-Manager: Delete operation add an header for forcing the deletion (#16052)
This is an automated email from the ASF dual-hosted git repository.
acosentino pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 6319cde47cb CAMEL-21373 - Camel-AWS-Secrets-Manager: Delete operation add an header for forcing the deletion (#16052)
6319cde47cb is described below
commit 6319cde47cba717f9c98c93a33fc2a8df7dec3e2
Author: Andrea Cosentino <an...@gmail.com>
AuthorDate: Tue Oct 22 17:05:14 2024 +0200
CAMEL-21373 - Camel-AWS-Secrets-Manager: Delete operation add an header for forcing the deletion (#16052)
Signed-off-by: Andrea Cosentino <an...@gmail.com>
---
.../camel/catalog/components/aws-secrets-manager.json | 3 ++-
.../component/aws/secretsmanager/aws-secrets-manager.json | 3 ++-
.../aws/secretsmanager/SecretsManagerConstants.java | 3 +++
.../aws/secretsmanager/SecretsManagerProducer.java | 7 +++++++
.../endpoint/dsl/SecretsManagerEndpointBuilderFactory.java | 14 ++++++++++++++
5 files changed, 28 insertions(+), 2 deletions(-)
diff --git a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws-secrets-manager.json b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws-secrets-manager.json
index 0e565b44391..2fd8f84cc85 100644
--- a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws-secrets-manager.json
+++ b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/aws-secrets-manager.json
@@ -59,7 +59,8 @@
"CamelAwsSecretsManagerLambdaRotationFunctionArn": { "index": 6, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The ARN of the Lambda rotation function that can rotate the secret.", "constantName": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConstants#LAMBDA_ROTATION_FUNCTION_ARN" },
"CamelAwsSecretsManagerSecretVersionId": { "index": 7, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The unique identifier of the version of the secret.", "constantName": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConstants#SECRET_VERSION_ID" },
"CamelAwsSecretsManagerSecretVersionIds": { "index": 8, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The unique identifier of the version of the secrets in batch operation.", "constantName": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConstants#SECRET_VERSION_IDS" },
- "CamelAwsSecretsManagerSecretReplicationRegions": { "index": 9, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "A comma separated list of Regions in which to replicate the secret.", "constantName": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConstants#SECRET_REPLICATION_REGIONS" }
+ "CamelAwsSecretsManagerSecretReplicationRegions": { "index": 9, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "A comma separated list of Regions in which to replicate the secret.", "constantName": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConstants#SECRET_REPLICATION_REGIONS" },
+ "CamelAwsSecretsManagerSecretForceDeletion": { "index": 10, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "If this header is set to true, the deleted secret won't have any retention period.", "constantName": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConstants#SECRET_FORCE_DELETION" }
},
"properties": {
"label": { "index": 0, "kind": "path", "displayName": "Label", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configuration", "description": "Logical name" },
diff --git a/components/camel-aws/camel-aws-secrets-manager/src/generated/resources/META-INF/org/apache/camel/component/aws/secretsmanager/aws-secrets-manager.json b/components/camel-aws/camel-aws-secrets-manager/src/generated/resources/META-INF/org/apache/camel/component/aws/secretsmanager/aws-secrets-manager.json
index 0e565b44391..2fd8f84cc85 100644
--- a/components/camel-aws/camel-aws-secrets-manager/src/generated/resources/META-INF/org/apache/camel/component/aws/secretsmanager/aws-secrets-manager.json
+++ b/components/camel-aws/camel-aws-secrets-manager/src/generated/resources/META-INF/org/apache/camel/component/aws/secretsmanager/aws-secrets-manager.json
@@ -59,7 +59,8 @@
"CamelAwsSecretsManagerLambdaRotationFunctionArn": { "index": 6, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The ARN of the Lambda rotation function that can rotate the secret.", "constantName": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConstants#LAMBDA_ROTATION_FUNCTION_ARN" },
"CamelAwsSecretsManagerSecretVersionId": { "index": 7, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The unique identifier of the version of the secret.", "constantName": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConstants#SECRET_VERSION_ID" },
"CamelAwsSecretsManagerSecretVersionIds": { "index": 8, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "The unique identifier of the version of the secrets in batch operation.", "constantName": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConstants#SECRET_VERSION_IDS" },
- "CamelAwsSecretsManagerSecretReplicationRegions": { "index": 9, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "A comma separated list of Regions in which to replicate the secret.", "constantName": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConstants#SECRET_REPLICATION_REGIONS" }
+ "CamelAwsSecretsManagerSecretReplicationRegions": { "index": 9, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "A comma separated list of Regions in which to replicate the secret.", "constantName": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConstants#SECRET_REPLICATION_REGIONS" },
+ "CamelAwsSecretsManagerSecretForceDeletion": { "index": 10, "kind": "header", "displayName": "", "group": "producer", "label": "", "required": false, "javaType": "Boolean", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "description": "If this header is set to true, the deleted secret won't have any retention period.", "constantName": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConstants#SECRET_FORCE_DELETION" }
},
"properties": {
"label": { "index": 0, "kind": "path", "displayName": "Label", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "configurationClass": "org.apache.camel.component.aws.secretsmanager.SecretsManagerConfiguration", "configurationField": "configuration", "description": "Logical name" },
diff --git a/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerConstants.java b/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerConstants.java
index 7862cc90c97..de5a8d759ca 100644
--- a/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerConstants.java
+++ b/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerConstants.java
@@ -42,4 +42,7 @@ public interface SecretsManagerConstants {
String SECRET_VERSION_IDS = "CamelAwsSecretsManagerSecretVersionIds";
@Metadata(description = "A comma separated list of Regions in which to replicate the secret.", javaType = "String")
String SECRET_REPLICATION_REGIONS = "CamelAwsSecretsManagerSecretReplicationRegions";
+ @Metadata(description = "If this header is set to true, the deleted secret won't have any retention period.",
+ javaType = "Boolean")
+ String SECRET_FORCE_DELETION = "CamelAwsSecretsManagerSecretForceDeletion";
}
diff --git a/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerProducer.java b/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerProducer.java
index b5db8dcc888..6b31f1e84d3 100644
--- a/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerProducer.java
+++ b/components/camel-aws/camel-aws-secrets-manager/src/main/java/org/apache/camel/component/aws/secretsmanager/SecretsManagerProducer.java
@@ -256,6 +256,13 @@ public class SecretsManagerProducer extends DefaultProducer {
} else {
throw new IllegalArgumentException("Secret Id must be specified");
}
+ if (ObjectHelper.isNotEmpty(exchange.getIn().getHeader(SecretsManagerConstants.SECRET_FORCE_DELETION))) {
+ Boolean secretForceDeletion
+ = exchange.getIn().getHeader(SecretsManagerConstants.SECRET_FORCE_DELETION, Boolean.class);
+ if (secretForceDeletion) {
+ builder.forceDeleteWithoutRecovery(true);
+ }
+ }
request = builder.build();
}
try {
diff --git a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/SecretsManagerEndpointBuilderFactory.java b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/SecretsManagerEndpointBuilderFactory.java
index 94b5630953b..9a11571274e 100644
--- a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/SecretsManagerEndpointBuilderFactory.java
+++ b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/SecretsManagerEndpointBuilderFactory.java
@@ -749,6 +749,20 @@ public interface SecretsManagerEndpointBuilderFactory {
public String awsSecretsManagerSecretReplicationRegions() {
return "CamelAwsSecretsManagerSecretReplicationRegions";
}
+ /**
+ * If this header is set to true, the deleted secret won't have any
+ * retention period.
+ *
+ * The option is a: {@code Boolean} type.
+ *
+ * Group: producer
+ *
+ * @return the name of the header {@code
+ * AwsSecretsManagerSecretForceDeletion}.
+ */
+ public String awsSecretsManagerSecretForceDeletion() {
+ return "CamelAwsSecretsManagerSecretForceDeletion";
+ }
}
static SecretsManagerEndpointBuilder endpointBuilder(String componentName, String path) {
class SecretsManagerEndpointBuilderImpl extends AbstractEndpointBuilder implements SecretsManagerEndpointBuilder, AdvancedSecretsManagerEndpointBuilder {