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 <[email protected]>
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 <[email protected]>
---
.../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 {