This is an automated email from the ASF dual-hosted git repository. acosentino pushed a commit to branch CAMEL-21373 in repository https://gitbox.apache.org/repos/asf/camel.git
commit 1d2d35b10ba5256a902b06b11089aca00d72226e Author: Andrea Cosentino <[email protected]> AuthorDate: Tue Oct 22 15:35:12 2024 +0200 CAMEL-21373 - Camel-AWS-Secrets-Manager: Delete operation add an header for forcing the deletion 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 {
