From cf9460e1e3dde716d6c699c42a11e8457cfd963a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Crocquesel?= <88554524+scrocquesel@users.noreply.github.com> Date: Wed, 19 Jun 2024 23:33:03 +0200 Subject: [PATCH] wip: introduce multiple clients --- .../AbstractAmazonServiceProcessor.java | 240 ++- .../AmazonServicesClientsProcessor.java | 7 + ...RequireAmazonClientInjectionBuildItem.java | 29 + .../quarkus/amazon/common/AmazonClient.java | 40 + .../amazon/common/AmazonClientBuilder.java | 40 + .../runtime/AmazonClientCommonRecorder.java | 29 +- .../common/runtime/AmazonClientConfig.java | 21 + .../common/runtime/AmazonClientRecorder.java | 2 + .../amazon/common/runtime/ClientUtil.java | 9 + .../runtime/HasAmazonClientRuntimeConfig.java | 20 + .../includes/quarkus-amazon-cloudwatch.adoc | 18 +- .../quarkus-amazon-cognitouserpools.adoc | 9 +- .../includes/quarkus-amazon-dynamodb.adoc | 9 +- .../includes/quarkus-amazon-eventbridge.adoc | 9 +- .../pages/includes/quarkus-amazon-iam.adoc | 9 +- .../includes/quarkus-amazon-kinesis.adoc | 9 +- .../pages/includes/quarkus-amazon-kms.adoc | 9 +- .../pages/includes/quarkus-amazon-lambda.adoc | 9 +- .../pages/includes/quarkus-amazon-s3.adoc | 9 +- .../quarkus-amazon-secretsmanager.adoc | 9 +- .../pages/includes/quarkus-amazon-ses.adoc | 9 +- .../pages/includes/quarkus-amazon-sfn.adoc | 9 +- .../pages/includes/quarkus-amazon-sns.adoc | 9 +- .../pages/includes/quarkus-amazon-sqs.adoc | 1313 +++++++++-------- .../pages/includes/quarkus-amazon-ssm.adoc | 9 +- .../pages/includes/quarkus-amazon-sts.adoc | 9 +- ...-stack-dev-services-build-time-config.adoc | 18 +- ...o-moto-dev-services-build-time-config.adoc | 9 +- .../DynamodbEnhancedDbTableProcessor.java | 2 +- .../amazon/s3/deployment/S3Processor.java | 8 +- ...CredentialsProviderMissedBeanNameTest.java | 7 + ...stomCredentialsProviderMissedBeanTest.java | 7 + .../s3/deployment/S3DevServicesTest.java | 7 + .../quarkus/amazon/s3/runtime/S3Config.java | 19 +- .../amazon/s3/runtime/S3CrtRecorder.java | 17 +- .../quarkus/amazon/s3/runtime/S3Recorder.java | 11 +- .../amazon/sqs/deployment/SqsProcessor.java | 8 +- .../SqsDevServicesWithoutQueueTest.java | 7 + .../quarkus/amazon/sqs/runtime/SqsConfig.java | 19 +- .../amazon/sqs/runtime/SqsRecorder.java | 11 +- 40 files changed, 1199 insertions(+), 845 deletions(-) create mode 100644 common/deployment/src/main/java/io/quarkus/amazon/common/deployment/RequireAmazonClientInjectionBuildItem.java create mode 100644 common/runtime/src/main/java/io/quarkus/amazon/common/AmazonClient.java create mode 100644 common/runtime/src/main/java/io/quarkus/amazon/common/AmazonClientBuilder.java create mode 100644 common/runtime/src/main/java/io/quarkus/amazon/common/runtime/AmazonClientConfig.java create mode 100644 common/runtime/src/main/java/io/quarkus/amazon/common/runtime/ClientUtil.java create mode 100644 common/runtime/src/main/java/io/quarkus/amazon/common/runtime/HasAmazonClientRuntimeConfig.java diff --git a/common/deployment/src/main/java/io/quarkus/amazon/common/deployment/AbstractAmazonServiceProcessor.java b/common/deployment/src/main/java/io/quarkus/amazon/common/deployment/AbstractAmazonServiceProcessor.java index 1ab242eb2..555caadcb 100644 --- a/common/deployment/src/main/java/io/quarkus/amazon/common/deployment/AbstractAmazonServiceProcessor.java +++ b/common/deployment/src/main/java/io/quarkus/amazon/common/deployment/AbstractAmazonServiceProcessor.java @@ -1,5 +1,8 @@ package io.quarkus.amazon.common.deployment; +import java.util.Collection; +import java.util.Collections; +import java.util.HashSet; import java.util.List; import java.util.Optional; import java.util.concurrent.ScheduledExecutorService; @@ -8,6 +11,7 @@ import jakarta.enterprise.context.ApplicationScoped; +import org.jboss.jandex.AnnotationInstance; import org.jboss.jandex.ClassType; import org.jboss.jandex.DotName; import org.jboss.jandex.ParameterizedType; @@ -15,6 +19,7 @@ import io.netty.channel.EventLoopGroup; import io.opentelemetry.instrumentation.awssdk.v2_2.AwsSdkTelemetry; +import io.quarkus.amazon.common.AmazonClient; import io.quarkus.amazon.common.runtime.AmazonClientApacheTransportRecorder; import io.quarkus.amazon.common.runtime.AmazonClientAwsCrtTransportRecorder; import io.quarkus.amazon.common.runtime.AmazonClientCommonRecorder; @@ -24,15 +29,16 @@ import io.quarkus.amazon.common.runtime.AmazonClientUrlConnectionTransportRecorder; import io.quarkus.amazon.common.runtime.AsyncHttpClientBuildTimeConfig; import io.quarkus.amazon.common.runtime.AsyncHttpClientConfig; -import io.quarkus.amazon.common.runtime.AwsConfig; +import io.quarkus.amazon.common.runtime.ClientUtil; +import io.quarkus.amazon.common.runtime.HasAmazonClientRuntimeConfig; import io.quarkus.amazon.common.runtime.HasSdkBuildTimeConfig; import io.quarkus.amazon.common.runtime.SdkAutoCloseableDestroyer; import io.quarkus.amazon.common.runtime.SdkBuildTimeConfig; -import io.quarkus.amazon.common.runtime.SdkConfig; import io.quarkus.amazon.common.runtime.SyncHttpClientBuildTimeConfig; import io.quarkus.amazon.common.runtime.SyncHttpClientConfig; import io.quarkus.arc.deployment.BeanRegistrationPhaseBuildItem; import io.quarkus.arc.deployment.SyntheticBeanBuildItem; +import io.quarkus.arc.deployment.SyntheticBeanBuildItem.ExtendedBeanConfigurator; import io.quarkus.arc.processor.DotNames; import io.quarkus.arc.processor.InjectionPointInfo; import io.quarkus.deployment.annotations.BuildProducer; @@ -48,6 +54,10 @@ abstract public class AbstractAmazonServiceProcessor { + private static final DotName AWS_CLIENT_NAME = DotName.createSimple(io.quarkus.amazon.common.AmazonClient.class.getName()); + private static final DotName AWS_CLIENT_BUILDER_NAME = DotName + .createSimple(io.quarkus.amazon.common.AmazonClientBuilder.class.getName()); + abstract protected String amazonServiceClientName(); abstract protected String configName(); @@ -62,10 +72,23 @@ protected DotName presignerClientName() { abstract protected String builtinInterceptorsPath(); + private void registerNamedClientInjection(HashSet set, InjectionPointInfo injectionPoint) { + var named = injectionPoint.getRequiredQualifier(AWS_CLIENT_NAME); + if (named != null) { + set.add(named.value("value").asString()); + } else { + set.add(ClientUtil.DEFAULT_CLIENT_NAME); + } + } + protected void discoverClient(BeanRegistrationPhaseBuildItem beanRegistrationPhase, - BuildProducer requireClientProducer) { + BuildProducer requireClientProducer, + BuildProducer requireClientInjectionProducer) { Optional syncClassName = Optional.empty(); Optional asyncClassName = Optional.empty(); + HashSet syncNamedSet = new HashSet<>(); + HashSet asyncNamedSet = new HashSet<>(); + HashSet presignerNamedSet = new HashSet<>(); // Discover all clients injections in order to determine if async or sync client // is required @@ -75,14 +98,32 @@ protected void discoverClient(BeanRegistrationPhaseBuildItem beanRegistrationPha if (syncClientName().equals(injectedType.name())) { syncClassName = Optional.of(syncClientName()); + registerNamedClientInjection(syncNamedSet, injectionPoint); } if (asyncClientName().equals(injectedType.name())) { asyncClassName = Optional.of(asyncClientName()); + registerNamedClientInjection(asyncNamedSet, injectionPoint); + } + if (presignerClientName() != null && presignerClientName().equals(injectedType.name())) { + registerNamedClientInjection(presignerNamedSet, injectionPoint); } } if (syncClassName.isPresent() || asyncClassName.isPresent()) { requireClientProducer.produce(new RequireAmazonClientBuildItem(syncClassName, asyncClassName)); } + + if (!syncNamedSet.isEmpty()) { + requireClientInjectionProducer + .produce(new RequireAmazonClientInjectionBuildItem(syncClientName(), syncNamedSet)); + } + if (!asyncNamedSet.isEmpty()) { + requireClientInjectionProducer + .produce(new RequireAmazonClientInjectionBuildItem(asyncClientName(), asyncNamedSet)); + } + if (!presignerNamedSet.isEmpty()) { + requireClientInjectionProducer + .produce(new RequireAmazonClientInjectionBuildItem(presignerClientName(), presignerNamedSet)); + } } protected void discoverTelemetry(BuildProducer telemetryProducer, @@ -263,6 +304,7 @@ protected void createClientBuilders( AmazonClientCommonRecorder commonRecorder, AmazonClientOpenTelemetryRecorder otelRecorder, HasSdkBuildTimeConfig sdkBuildConfig, + List amazonClientInjections, List amazonRequireTelemtryClients, List syncTransports, List asyncTransports, @@ -283,9 +325,9 @@ protected void createClientBuilders( createClientBuilders( commonRecorder, otelRecorder, - recorder.getAwsConfig(), - recorder.getSdkConfig(), + recorder.getAmazonClientsConfig(), sdkBuildConfig, + amazonClientInjections, amazonRequireTelemtryClients, syncTransports, asyncTransports, @@ -306,9 +348,9 @@ protected void createClientBuilders( private void createClientBuilders( AmazonClientCommonRecorder recorder, AmazonClientOpenTelemetryRecorder otelRecorder, - RuntimeValue awsConfigRuntime, - RuntimeValue sdkConfigRuntime, + RuntimeValue amazonClientConfigRuntime, HasSdkBuildTimeConfig sdkBuildConfig, + List amazonClientInjections, List amazonRequireTelemtryClients, List amazonClientSyncTransports, List amazonClientAsyncTransports, @@ -351,94 +393,148 @@ private void createClientBuilders( ? asyncClientBuilderFunction.apply(asyncSdkAsyncHttpClientBuilder.get()) : null; + Collection syncClientNames = amazonClientInjections.stream() + .filter(c -> syncClientName().equals(c.getClassName())) + .map(c -> c.getNames()) + .findFirst().orElse(Collections.emptyList()); + + Collection asyncClientNames = amazonClientInjections.stream() + .filter(c -> asyncClientName().equals(c.getClassName())) + .map(c -> c.getNames()) + .findFirst().orElse(Collections.emptyList()); + + Collection presignerClientNames = amazonClientInjections.stream() + .filter(c -> presignerClientName() != null && presignerClientName().equals(c.getClassName())) + .map(c -> c.getNames()) + .findFirst().orElse(Collections.emptyList()); + ScheduledExecutorService sharedExecutorService = executorBuildItem.getExecutorProxy(); - if (syncClientBuilder != null) { - syncClientBuilder = recorder.configure(syncClientBuilder, awsConfigRuntime, sdkConfigRuntime, - sdkBuildConfig, sharedExecutorService, configName()); - if (addOpenTelemetry) { - syntheticBeans.produce(SyntheticBeanBuildItem - .configure(syncClientBuilderClass) - .unremovable() - .defaultBean() - .setRuntimeInit() - .scope(ApplicationScoped.class) - .createWith(otelRecorder.configureSync(syncClientBuilder)) - .addInjectionPoint(ClassType.create(AwsSdkTelemetry.class)).done()); - } else { - syntheticBeans.produce(SyntheticBeanBuildItem.configure(syncClientBuilderClass) + if (syncClientBuilder != null && !syncClientNames.isEmpty()) { + for (String clientName : syncClientNames) { + syncClientBuilder = recorder.configure(syncClientBuilder, amazonClientConfigRuntime, + sdkBuildConfig, sharedExecutorService, configName(), clientName); + if (addOpenTelemetry) { + syntheticBeans.produce(named(SyntheticBeanBuildItem.configure(syncClientBuilderClass), + AWS_CLIENT_BUILDER_NAME, clientName) + .unremovable() + .defaultBean() + .setRuntimeInit() + .scope(ApplicationScoped.class) + .createWith(otelRecorder.configureSync(syncClientBuilder)) + .addInjectionPoint(ClassType.create(AwsSdkTelemetry.class)).done()); + } else { + syntheticBeans.produce(named(SyntheticBeanBuildItem.configure(syncClientBuilderClass), + AWS_CLIENT_BUILDER_NAME, clientName) + .unremovable() + .defaultBean() + .setRuntimeInit() + .scope(ApplicationScoped.class) + .runtimeValue(syncClientBuilder) + .done()); + } + syntheticBeans + .produce(named(SyntheticBeanBuildItem.configure(syncClientName()), AWS_CLIENT_NAME, clientName) + .unremovable() + .defaultBean() + .setRuntimeInit() + .scope(ApplicationScoped.class) + .createWith(recorder.build(syncClientBuilderClass, clientName)) + .addInjectionPoint(ClassType.create(syncClientBuilderClass), + injectionPointAnnotations(AWS_CLIENT_BUILDER_NAME, clientName)) + .destroyer(SdkAutoCloseableDestroyer.class) + .done()); + } + clientSync.produce(new AmazonClientSyncResultBuildItem(configName)); + } + if (asyncClientBuilder != null && !asyncClientNames.isEmpty()) { + for (String clientName : asyncClientNames) { + asyncClientBuilder = recorder.configure(asyncClientBuilder, amazonClientConfigRuntime, + sdkBuildConfig, sharedExecutorService, configName(), clientName); + if (addOpenTelemetry) { + syntheticBeans.produce(named(SyntheticBeanBuildItem + .configure(asyncClientBuilderClass), + AWS_CLIENT_BUILDER_NAME, clientName) + .unremovable() + .defaultBean() + .setRuntimeInit() + .scope(ApplicationScoped.class) + .createWith(otelRecorder.configureAsync(asyncClientBuilder)) + .addInjectionPoint(ClassType.create(AwsSdkTelemetry.class)).done()); + } else { + syntheticBeans.produce(named(SyntheticBeanBuildItem.configure(asyncClientBuilderClass), + AWS_CLIENT_BUILDER_NAME, clientName) + .unremovable() + .defaultBean() + .setRuntimeInit() + .scope(ApplicationScoped.class) + .runtimeValue(asyncClientBuilder) + .done()); + } + syntheticBeans.produce(named(SyntheticBeanBuildItem.configure(asyncClientName()), + AWS_CLIENT_NAME, clientName) .unremovable() .defaultBean() .setRuntimeInit() .scope(ApplicationScoped.class) - .runtimeValue(syncClientBuilder) + .createWith(recorder.build(asyncClientBuilderClass, clientName)) + .addInjectionPoint(ClassType.create(asyncClientBuilderClass), + injectionPointAnnotations(AWS_CLIENT_BUILDER_NAME, clientName)) + .destroyer(SdkAutoCloseableDestroyer.class) .done()); + clientAsync.produce(new AmazonClientAsyncResultBuildItem(configName)); } - syntheticBeans.produce(SyntheticBeanBuildItem.configure(syncClientName()) - .unremovable() - .defaultBean() - .setRuntimeInit() - .scope(ApplicationScoped.class) - .createWith(recorder.build(syncClientBuilderClass)) - .addInjectionPoint(ClassType.create(syncClientBuilderClass)) - .destroyer(SdkAutoCloseableDestroyer.class) - .done()); - clientSync.produce(new AmazonClientSyncResultBuildItem(configName)); } - if (asyncClientBuilder != null) { - asyncClientBuilder = recorder.configure(asyncClientBuilder, awsConfigRuntime, sdkConfigRuntime, - sdkBuildConfig, sharedExecutorService, configName()); - if (addOpenTelemetry) { - syntheticBeans.produce(SyntheticBeanBuildItem - .configure(asyncClientBuilderClass) + if (presignerBuilder != null && !presignerClientNames.isEmpty()) { + for (String clientName : presignerClientNames) { + presignerBuilder = recorder.configurePresigner(presignerBuilder, amazonClientConfigRuntime, + configName(), clientName); + syntheticBeans.produce(named(SyntheticBeanBuildItem.configure(presignerBuilderClass), + AWS_CLIENT_BUILDER_NAME, clientName) .unremovable() .defaultBean() .setRuntimeInit() .scope(ApplicationScoped.class) - .createWith(otelRecorder.configureAsync(asyncClientBuilder)) - .addInjectionPoint(ClassType.create(AwsSdkTelemetry.class)).done()); - } else { - syntheticBeans.produce(SyntheticBeanBuildItem.configure(asyncClientBuilderClass) + .runtimeValue(presignerBuilder) + .done()); + syntheticBeans.produce(named(SyntheticBeanBuildItem.configure(presignerClientName()), + AWS_CLIENT_NAME, clientName) .unremovable() .defaultBean() .setRuntimeInit() .scope(ApplicationScoped.class) - .runtimeValue(asyncClientBuilder) + .createWith(recorder.build(presignerBuilderClass, clientName)) + .addInjectionPoint(ClassType.create(presignerBuilderClass), + injectionPointAnnotations(AWS_CLIENT_BUILDER_NAME, clientName)) + .destroyer(SdkAutoCloseableDestroyer.class) .done()); } - syntheticBeans.produce(SyntheticBeanBuildItem.configure(asyncClientName()) - .unremovable() - .defaultBean() - .setRuntimeInit() - .scope(ApplicationScoped.class) - .createWith(recorder.build(asyncClientBuilderClass)) - .addInjectionPoint(ClassType.create(asyncClientBuilderClass)) - .destroyer(SdkAutoCloseableDestroyer.class) - .done()); - clientAsync.produce(new AmazonClientAsyncResultBuildItem(configName)); } - if (presignerBuilder != null) { - presignerBuilder = recorder.configurePresigner(presignerBuilder, awsConfigRuntime, sdkConfigRuntime, - configName()); - syntheticBeans.produce(SyntheticBeanBuildItem.configure(presignerBuilderClass) - .unremovable() - .defaultBean() - .setRuntimeInit() - .scope(ApplicationScoped.class) - .runtimeValue(presignerBuilder) - .done()); - syntheticBeans.produce(SyntheticBeanBuildItem.configure(presignerClientName()) - .unremovable() - .defaultBean() - .setRuntimeInit() - .scope(ApplicationScoped.class) - .createWith(recorder.build(presignerBuilderClass)) - .addInjectionPoint(ClassType.create(presignerBuilderClass)) - .destroyer(SdkAutoCloseableDestroyer.class) - .done()); + } + + private static final AnnotationInstance[] EMPTY_ANNOTATIONS = new AnnotationInstance[0]; + + private AnnotationInstance[] injectionPointAnnotations(DotName awsClientBuilderName, String clientName) { + if (ClientUtil.isDefaultClient(clientName)) { + return EMPTY_ANNOTATIONS; + } else { + return new AnnotationInstance[] { + AnnotationInstance.builder(awsClientBuilderName).add("value", clientName).build() + }; } } + private ExtendedBeanConfigurator named(ExtendedBeanConfigurator beanConfigurator, DotName annotationName, + String clientName) { + if (ClientUtil.isDefaultClient(clientName)) { + beanConfigurator.addQualifier(DotNames.DEFAULT); + } else { + beanConfigurator.addQualifier().annotation(annotationName).addValue("value", clientName).done(); + } + + return beanConfigurator; + } + private Type getInjectedType(InjectionPointInfo injectionPoint) { Type requiredType = injectionPoint.getRequiredType(); Type injectedType = requiredType; diff --git a/common/deployment/src/main/java/io/quarkus/amazon/common/deployment/AmazonServicesClientsProcessor.java b/common/deployment/src/main/java/io/quarkus/amazon/common/deployment/AmazonServicesClientsProcessor.java index f7e182d7a..0358ac691 100644 --- a/common/deployment/src/main/java/io/quarkus/amazon/common/deployment/AmazonServicesClientsProcessor.java +++ b/common/deployment/src/main/java/io/quarkus/amazon/common/deployment/AmazonServicesClientsProcessor.java @@ -10,6 +10,8 @@ import org.jboss.jandex.DotName; import org.jboss.jandex.Type; +import io.quarkus.amazon.common.AmazonClient; +import io.quarkus.amazon.common.AmazonClientBuilder; import io.quarkus.amazon.common.runtime.AsyncHttpClientBuildTimeConfig.AsyncClientType; import io.quarkus.amazon.common.runtime.AwsSdkTelemetryProducer; import io.quarkus.amazon.common.runtime.SdkBuildTimeConfig; @@ -39,6 +41,11 @@ public class AmazonServicesClientsProcessor { private static final DotName EXECUTION_INTERCEPTOR_NAME = DotName.createSimple(ExecutionInterceptor.class.getName()); + @BuildStep + AdditionalBeanBuildItem additionalBeans() { + return new AdditionalBeanBuildItem(AmazonClient.class, AmazonClientBuilder.class); + } + @BuildStep void globalInterceptors(BuildProducer producer) { producer.produce( diff --git a/common/deployment/src/main/java/io/quarkus/amazon/common/deployment/RequireAmazonClientInjectionBuildItem.java b/common/deployment/src/main/java/io/quarkus/amazon/common/deployment/RequireAmazonClientInjectionBuildItem.java new file mode 100644 index 000000000..2b878aac3 --- /dev/null +++ b/common/deployment/src/main/java/io/quarkus/amazon/common/deployment/RequireAmazonClientInjectionBuildItem.java @@ -0,0 +1,29 @@ +package io.quarkus.amazon.common.deployment; + +import java.util.Collection; + +import org.jboss.jandex.DotName; + +import io.quarkus.builder.item.MultiBuildItem; + +/** + * Describes what client names are required. + * + */ +public final class RequireAmazonClientInjectionBuildItem extends MultiBuildItem { + private final DotName className; + private final Collection names; + + public RequireAmazonClientInjectionBuildItem(DotName className, Collection names) { + this.className = className; + this.names = names; + } + + public DotName getClassName() { + return className; + } + + public Collection getNames() { + return names; + } +} diff --git a/common/runtime/src/main/java/io/quarkus/amazon/common/AmazonClient.java b/common/runtime/src/main/java/io/quarkus/amazon/common/AmazonClient.java new file mode 100644 index 000000000..1f104fd9c --- /dev/null +++ b/common/runtime/src/main/java/io/quarkus/amazon/common/AmazonClient.java @@ -0,0 +1,40 @@ +package io.quarkus.amazon.common; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.ElementType.PARAMETER; +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Documented; +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +import jakarta.enterprise.util.AnnotationLiteral; +import jakarta.inject.Qualifier; + +/** + * Qualifier used to specify which aws client will be injected. + */ +@Target({ METHOD, FIELD, PARAMETER, TYPE }) +@Retention(RUNTIME) +@Documented +@Qualifier +public @interface AmazonClient { + + String value(); + + public class AwsClientLiteral extends AnnotationLiteral implements AmazonClient { + + private String name; + + public AwsClientLiteral(String name) { + this.name = name; + } + + @Override + public String value() { + return name; + } + } +} \ No newline at end of file diff --git a/common/runtime/src/main/java/io/quarkus/amazon/common/AmazonClientBuilder.java b/common/runtime/src/main/java/io/quarkus/amazon/common/AmazonClientBuilder.java new file mode 100644 index 000000000..7715aa872 --- /dev/null +++ b/common/runtime/src/main/java/io/quarkus/amazon/common/AmazonClientBuilder.java @@ -0,0 +1,40 @@ +package io.quarkus.amazon.common; + +import static java.lang.annotation.ElementType.FIELD; +import static java.lang.annotation.ElementType.METHOD; +import static java.lang.annotation.ElementType.PARAMETER; +import static java.lang.annotation.ElementType.TYPE; +import static java.lang.annotation.RetentionPolicy.RUNTIME; + +import java.lang.annotation.Documented; +import java.lang.annotation.Retention; +import java.lang.annotation.Target; + +import jakarta.enterprise.util.AnnotationLiteral; +import jakarta.inject.Qualifier; + +/** + * Qualifier used to specify which aws client builder will be injected. + */ +@Target({ METHOD, FIELD, PARAMETER, TYPE }) +@Retention(RUNTIME) +@Documented +@Qualifier +public @interface AmazonClientBuilder { + + String value(); + + public class AwsClientBuilderLiteral extends AnnotationLiteral implements AmazonClientBuilder { + + private String name; + + public AwsClientBuilderLiteral(String name) { + this.name = name; + } + + @Override + public String value() { + return name; + } + } +} \ No newline at end of file diff --git a/common/runtime/src/main/java/io/quarkus/amazon/common/runtime/AmazonClientCommonRecorder.java b/common/runtime/src/main/java/io/quarkus/amazon/common/runtime/AmazonClientCommonRecorder.java index 2d22a5bfe..a50822651 100644 --- a/common/runtime/src/main/java/io/quarkus/amazon/common/runtime/AmazonClientCommonRecorder.java +++ b/common/runtime/src/main/java/io/quarkus/amazon/common/runtime/AmazonClientCommonRecorder.java @@ -30,12 +30,14 @@ public class AmazonClientCommonRecorder { private static final Log LOG = LogFactory.getLog(AmazonClientCommonRecorder.class); public RuntimeValue configure(RuntimeValue clientBuilder, - RuntimeValue awsConfig, RuntimeValue sdkConfig, HasSdkBuildTimeConfig sdkBuildTimeConfig, - ScheduledExecutorService scheduledExecutorService, String awsServiceName) { + RuntimeValue amazonClientConfigRuntime, HasSdkBuildTimeConfig sdkBuildTimeConfig, + ScheduledExecutorService scheduledExecutorService, String awsServiceName, String clientName) { AwsClientBuilder builder = clientBuilder.getValue(); - initAwsClient(builder, awsServiceName, awsConfig.getValue()); - initSdkClient(builder, awsServiceName, sdkConfig.getValue(), sdkBuildTimeConfig.sdk(), scheduledExecutorService); + AmazonClientConfig config = amazonClientConfigRuntime.getValue().clients().get(clientName); + + initAwsClient(builder, awsServiceName, config.aws()); + initSdkClient(builder, awsServiceName, config.sdk(), sdkBuildTimeConfig.sdk(), scheduledExecutorService); return new RuntimeValue<>(builder); } @@ -80,12 +82,14 @@ public void initSdkClient(SdkClientBuilder builder, String extension, SdkConfig public RuntimeValue configurePresigner( RuntimeValue clientBuilder, - RuntimeValue awsConfig, RuntimeValue sdkConfig, - String awsServiceName) { + RuntimeValue amazonClientConfigRuntime, + String awsServiceName, String clientName) { SdkPresigner.Builder builder = clientBuilder.getValue(); - initAwsPresigner(builder, awsServiceName, awsConfig.getValue()); - initSdkPresigner(builder, awsServiceName, sdkConfig.getValue()); + AmazonClientConfig config = amazonClientConfigRuntime.getValue().clients().get(clientName); + + initAwsPresigner(builder, awsServiceName, config.aws()); + initSdkPresigner(builder, awsServiceName, config.sdk()); return new RuntimeValue<>(builder); } @@ -127,12 +131,17 @@ private ExecutionInterceptor createInterceptor(String interceptorClassName) { } } - public Function, AwsClient> build(Class clazz) { + public Function, AwsClient> build(Class clazz, String clientName) { return new Function, AwsClient>() { @Override public AwsClient apply(SyntheticCreationalContext context) { - SdkBuilder builder = (SdkBuilder) context.getInjectedReference(clazz); + SdkBuilder builder; + if (ClientUtil.isDefaultClient(clientName)) + builder = (SdkBuilder) context.getInjectedReference(clazz); + else + builder = (SdkBuilder) context.getInjectedReference(clazz, + new io.quarkus.amazon.common.AmazonClientBuilder.AwsClientBuilderLiteral(clientName)); return (AwsClient) builder.build(); } diff --git a/common/runtime/src/main/java/io/quarkus/amazon/common/runtime/AmazonClientConfig.java b/common/runtime/src/main/java/io/quarkus/amazon/common/runtime/AmazonClientConfig.java new file mode 100644 index 000000000..cd1bea4f9 --- /dev/null +++ b/common/runtime/src/main/java/io/quarkus/amazon/common/runtime/AmazonClientConfig.java @@ -0,0 +1,21 @@ +package io.quarkus.amazon.common.runtime; + +import io.quarkus.runtime.annotations.ConfigDocSection; +import io.quarkus.runtime.annotations.ConfigGroup; +import io.smallrye.config.WithParentName; + +@ConfigGroup +public interface AmazonClientConfig { + /** + * AWS SDK client configurations + */ + @WithParentName + @ConfigDocSection + SdkConfig sdk(); + + /** + * AWS services configurations + */ + @ConfigDocSection + AwsConfig aws(); +} diff --git a/common/runtime/src/main/java/io/quarkus/amazon/common/runtime/AmazonClientRecorder.java b/common/runtime/src/main/java/io/quarkus/amazon/common/runtime/AmazonClientRecorder.java index 787d8bbd3..479faa2ea 100644 --- a/common/runtime/src/main/java/io/quarkus/amazon/common/runtime/AmazonClientRecorder.java +++ b/common/runtime/src/main/java/io/quarkus/amazon/common/runtime/AmazonClientRecorder.java @@ -14,6 +14,8 @@ public abstract class AmazonClientRecorder { + public abstract RuntimeValue getAmazonClientsConfig(); + public abstract RuntimeValue getAwsConfig(); public abstract RuntimeValue getSdkConfig(); diff --git a/common/runtime/src/main/java/io/quarkus/amazon/common/runtime/ClientUtil.java b/common/runtime/src/main/java/io/quarkus/amazon/common/runtime/ClientUtil.java new file mode 100644 index 000000000..c229c9751 --- /dev/null +++ b/common/runtime/src/main/java/io/quarkus/amazon/common/runtime/ClientUtil.java @@ -0,0 +1,9 @@ +package io.quarkus.amazon.common.runtime; + +public final class ClientUtil { + public static final String DEFAULT_CLIENT_NAME = ""; + + public static boolean isDefaultClient(String clientName) { + return DEFAULT_CLIENT_NAME.equalsIgnoreCase(clientName); + } +} diff --git a/common/runtime/src/main/java/io/quarkus/amazon/common/runtime/HasAmazonClientRuntimeConfig.java b/common/runtime/src/main/java/io/quarkus/amazon/common/runtime/HasAmazonClientRuntimeConfig.java new file mode 100644 index 000000000..064eb2bd0 --- /dev/null +++ b/common/runtime/src/main/java/io/quarkus/amazon/common/runtime/HasAmazonClientRuntimeConfig.java @@ -0,0 +1,20 @@ +package io.quarkus.amazon.common.runtime; + +import java.util.Map; + +import io.quarkus.runtime.annotations.ConfigDocMapKey; +import io.smallrye.config.WithDefaults; +import io.smallrye.config.WithParentName; +import io.smallrye.config.WithUnnamedKey; + +public interface HasAmazonClientRuntimeConfig { + + /** + * Clients + */ + @ConfigDocMapKey("client-name") + @WithParentName + @WithDefaults + @WithUnnamedKey(ClientUtil.DEFAULT_CLIENT_NAME) + Map clients(); +} diff --git a/docs/modules/ROOT/pages/includes/quarkus-amazon-cloudwatch.adoc b/docs/modules/ROOT/pages/includes/quarkus-amazon-cloudwatch.adoc index 8adf71b0b..3ca3c8c35 100644 --- a/docs/modules/ROOT/pages/includes/quarkus-amazon-cloudwatch.adoc +++ b/docs/modules/ROOT/pages/includes/quarkus-amazon-cloudwatch.adoc @@ -156,7 +156,7 @@ endif::add-copy-button-to-env-var[] |`localstack` -a|icon:lock[title=Fixed at build time] [[quarkus-amazon-cloudwatch_quarkus-cloudwatch-devservices-container-properties-container-properties]]`link:#quarkus-amazon-cloudwatch_quarkus-cloudwatch-devservices-container-properties-container-properties[quarkus.cloudwatch.devservices.container-properties]` +a|icon:lock[title=Fixed at build time] [[quarkus-amazon-cloudwatch_quarkus-cloudwatch-devservices-container-properties-container-properties]]`link:#quarkus-amazon-cloudwatch_quarkus-cloudwatch-devservices-container-properties-container-properties[quarkus.cloudwatch.devservices.container-properties."container-properties"]` [.description] @@ -164,12 +164,13 @@ a|icon:lock[title=Fixed at build time] [[quarkus-amazon-cloudwatch_quarkus-cloud Generic properties that are pass for additional container configuration. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_CLOUDWATCH_DEVSERVICES_CONTAINER_PROPERTIES+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_CLOUDWATCH_DEVSERVICES_CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_CLOUDWATCH_DEVSERVICES_CONTAINER_PROPERTIES+++` +Environment variable: `+++QUARKUS_CLOUDWATCH_DEVSERVICES_CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++` endif::add-copy-button-to-env-var[] ---|`Map` +--|link:https://docs.oracle.com/javase/8/docs/api/java/lang/String.html[String] + | @@ -319,7 +320,7 @@ endif::add-copy-button-to-env-var[] |`localstack` -a|icon:lock[title=Fixed at build time] [[quarkus-amazon-cloudwatch_quarkus-cloudwatchlogs-devservices-container-properties-container-properties]]`link:#quarkus-amazon-cloudwatch_quarkus-cloudwatchlogs-devservices-container-properties-container-properties[quarkus.cloudwatchlogs.devservices.container-properties]` +a|icon:lock[title=Fixed at build time] [[quarkus-amazon-cloudwatch_quarkus-cloudwatchlogs-devservices-container-properties-container-properties]]`link:#quarkus-amazon-cloudwatch_quarkus-cloudwatchlogs-devservices-container-properties-container-properties[quarkus.cloudwatchlogs.devservices.container-properties."container-properties"]` [.description] @@ -327,12 +328,13 @@ a|icon:lock[title=Fixed at build time] [[quarkus-amazon-cloudwatch_quarkus-cloud Generic properties that are pass for additional container configuration. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_CLOUDWATCHLOGS_DEVSERVICES_CONTAINER_PROPERTIES+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_CLOUDWATCHLOGS_DEVSERVICES_CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_CLOUDWATCHLOGS_DEVSERVICES_CONTAINER_PROPERTIES+++` +Environment variable: `+++QUARKUS_CLOUDWATCHLOGS_DEVSERVICES_CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++` endif::add-copy-button-to-env-var[] ---|`Map` +--|link:https://docs.oracle.com/javase/8/docs/api/java/lang/String.html[String] + | diff --git a/docs/modules/ROOT/pages/includes/quarkus-amazon-cognitouserpools.adoc b/docs/modules/ROOT/pages/includes/quarkus-amazon-cognitouserpools.adoc index 0944a9324..a4006b947 100644 --- a/docs/modules/ROOT/pages/includes/quarkus-amazon-cognitouserpools.adoc +++ b/docs/modules/ROOT/pages/includes/quarkus-amazon-cognitouserpools.adoc @@ -156,7 +156,7 @@ endif::add-copy-button-to-env-var[] |`localstack` -a|icon:lock[title=Fixed at build time] [[quarkus-amazon-cognitouserpools_quarkus-cognito-user-pools-devservices-container-properties-container-properties]]`link:#quarkus-amazon-cognitouserpools_quarkus-cognito-user-pools-devservices-container-properties-container-properties[quarkus.cognito-user-pools.devservices.container-properties]` +a|icon:lock[title=Fixed at build time] [[quarkus-amazon-cognitouserpools_quarkus-cognito-user-pools-devservices-container-properties-container-properties]]`link:#quarkus-amazon-cognitouserpools_quarkus-cognito-user-pools-devservices-container-properties-container-properties[quarkus.cognito-user-pools.devservices.container-properties."container-properties"]` [.description] @@ -164,12 +164,13 @@ a|icon:lock[title=Fixed at build time] [[quarkus-amazon-cognitouserpools_quarkus Generic properties that are pass for additional container configuration. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_COGNITO_USER_POOLS_DEVSERVICES_CONTAINER_PROPERTIES+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_COGNITO_USER_POOLS_DEVSERVICES_CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_COGNITO_USER_POOLS_DEVSERVICES_CONTAINER_PROPERTIES+++` +Environment variable: `+++QUARKUS_COGNITO_USER_POOLS_DEVSERVICES_CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++` endif::add-copy-button-to-env-var[] ---|`Map` +--|link:https://docs.oracle.com/javase/8/docs/api/java/lang/String.html[String] + | diff --git a/docs/modules/ROOT/pages/includes/quarkus-amazon-dynamodb.adoc b/docs/modules/ROOT/pages/includes/quarkus-amazon-dynamodb.adoc index 9f6557ce7..6888f707a 100644 --- a/docs/modules/ROOT/pages/includes/quarkus-amazon-dynamodb.adoc +++ b/docs/modules/ROOT/pages/includes/quarkus-amazon-dynamodb.adoc @@ -173,7 +173,7 @@ endif::add-copy-button-to-env-var[] |`false` -a|icon:lock[title=Fixed at build time] [[quarkus-amazon-dynamodb_quarkus-dynamodb-devservices-container-properties-container-properties]]`link:#quarkus-amazon-dynamodb_quarkus-dynamodb-devservices-container-properties-container-properties[quarkus.dynamodb.devservices.container-properties]` +a|icon:lock[title=Fixed at build time] [[quarkus-amazon-dynamodb_quarkus-dynamodb-devservices-container-properties-container-properties]]`link:#quarkus-amazon-dynamodb_quarkus-dynamodb-devservices-container-properties-container-properties[quarkus.dynamodb.devservices.container-properties."container-properties"]` [.description] @@ -181,12 +181,13 @@ a|icon:lock[title=Fixed at build time] [[quarkus-amazon-dynamodb_quarkus-dynamod Generic properties that are pass for additional container configuration. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_DYNAMODB_DEVSERVICES_CONTAINER_PROPERTIES+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_DYNAMODB_DEVSERVICES_CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_DYNAMODB_DEVSERVICES_CONTAINER_PROPERTIES+++` +Environment variable: `+++QUARKUS_DYNAMODB_DEVSERVICES_CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++` endif::add-copy-button-to-env-var[] ---|`Map` +--|link:https://docs.oracle.com/javase/8/docs/api/java/lang/String.html[String] + | diff --git a/docs/modules/ROOT/pages/includes/quarkus-amazon-eventbridge.adoc b/docs/modules/ROOT/pages/includes/quarkus-amazon-eventbridge.adoc index 5c365be3a..d434257a0 100644 --- a/docs/modules/ROOT/pages/includes/quarkus-amazon-eventbridge.adoc +++ b/docs/modules/ROOT/pages/includes/quarkus-amazon-eventbridge.adoc @@ -156,7 +156,7 @@ endif::add-copy-button-to-env-var[] |`localstack` -a|icon:lock[title=Fixed at build time] [[quarkus-amazon-eventbridge_quarkus-eventbridge-devservices-container-properties-container-properties]]`link:#quarkus-amazon-eventbridge_quarkus-eventbridge-devservices-container-properties-container-properties[quarkus.eventbridge.devservices.container-properties]` +a|icon:lock[title=Fixed at build time] [[quarkus-amazon-eventbridge_quarkus-eventbridge-devservices-container-properties-container-properties]]`link:#quarkus-amazon-eventbridge_quarkus-eventbridge-devservices-container-properties-container-properties[quarkus.eventbridge.devservices.container-properties."container-properties"]` [.description] @@ -164,12 +164,13 @@ a|icon:lock[title=Fixed at build time] [[quarkus-amazon-eventbridge_quarkus-even Generic properties that are pass for additional container configuration. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_EVENTBRIDGE_DEVSERVICES_CONTAINER_PROPERTIES+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_EVENTBRIDGE_DEVSERVICES_CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_EVENTBRIDGE_DEVSERVICES_CONTAINER_PROPERTIES+++` +Environment variable: `+++QUARKUS_EVENTBRIDGE_DEVSERVICES_CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++` endif::add-copy-button-to-env-var[] ---|`Map` +--|link:https://docs.oracle.com/javase/8/docs/api/java/lang/String.html[String] + | diff --git a/docs/modules/ROOT/pages/includes/quarkus-amazon-iam.adoc b/docs/modules/ROOT/pages/includes/quarkus-amazon-iam.adoc index c3595f342..3699cc6bd 100644 --- a/docs/modules/ROOT/pages/includes/quarkus-amazon-iam.adoc +++ b/docs/modules/ROOT/pages/includes/quarkus-amazon-iam.adoc @@ -156,7 +156,7 @@ endif::add-copy-button-to-env-var[] |`localstack` -a|icon:lock[title=Fixed at build time] [[quarkus-amazon-iam_quarkus-iam-devservices-container-properties-container-properties]]`link:#quarkus-amazon-iam_quarkus-iam-devservices-container-properties-container-properties[quarkus.iam.devservices.container-properties]` +a|icon:lock[title=Fixed at build time] [[quarkus-amazon-iam_quarkus-iam-devservices-container-properties-container-properties]]`link:#quarkus-amazon-iam_quarkus-iam-devservices-container-properties-container-properties[quarkus.iam.devservices.container-properties."container-properties"]` [.description] @@ -164,12 +164,13 @@ a|icon:lock[title=Fixed at build time] [[quarkus-amazon-iam_quarkus-iam-devservi Generic properties that are pass for additional container configuration. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_IAM_DEVSERVICES_CONTAINER_PROPERTIES+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_IAM_DEVSERVICES_CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_IAM_DEVSERVICES_CONTAINER_PROPERTIES+++` +Environment variable: `+++QUARKUS_IAM_DEVSERVICES_CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++` endif::add-copy-button-to-env-var[] ---|`Map` +--|link:https://docs.oracle.com/javase/8/docs/api/java/lang/String.html[String] + | diff --git a/docs/modules/ROOT/pages/includes/quarkus-amazon-kinesis.adoc b/docs/modules/ROOT/pages/includes/quarkus-amazon-kinesis.adoc index 951e84e40..d882f7a2c 100644 --- a/docs/modules/ROOT/pages/includes/quarkus-amazon-kinesis.adoc +++ b/docs/modules/ROOT/pages/includes/quarkus-amazon-kinesis.adoc @@ -156,7 +156,7 @@ endif::add-copy-button-to-env-var[] |`localstack` -a|icon:lock[title=Fixed at build time] [[quarkus-amazon-kinesis_quarkus-kinesis-devservices-container-properties-container-properties]]`link:#quarkus-amazon-kinesis_quarkus-kinesis-devservices-container-properties-container-properties[quarkus.kinesis.devservices.container-properties]` +a|icon:lock[title=Fixed at build time] [[quarkus-amazon-kinesis_quarkus-kinesis-devservices-container-properties-container-properties]]`link:#quarkus-amazon-kinesis_quarkus-kinesis-devservices-container-properties-container-properties[quarkus.kinesis.devservices.container-properties."container-properties"]` [.description] @@ -164,12 +164,13 @@ a|icon:lock[title=Fixed at build time] [[quarkus-amazon-kinesis_quarkus-kinesis- Generic properties that are pass for additional container configuration. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_KINESIS_DEVSERVICES_CONTAINER_PROPERTIES+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_KINESIS_DEVSERVICES_CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_KINESIS_DEVSERVICES_CONTAINER_PROPERTIES+++` +Environment variable: `+++QUARKUS_KINESIS_DEVSERVICES_CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++` endif::add-copy-button-to-env-var[] ---|`Map` +--|link:https://docs.oracle.com/javase/8/docs/api/java/lang/String.html[String] + | diff --git a/docs/modules/ROOT/pages/includes/quarkus-amazon-kms.adoc b/docs/modules/ROOT/pages/includes/quarkus-amazon-kms.adoc index 274c5081f..2f773f2f6 100644 --- a/docs/modules/ROOT/pages/includes/quarkus-amazon-kms.adoc +++ b/docs/modules/ROOT/pages/includes/quarkus-amazon-kms.adoc @@ -156,7 +156,7 @@ endif::add-copy-button-to-env-var[] |`localstack` -a|icon:lock[title=Fixed at build time] [[quarkus-amazon-kms_quarkus-kms-devservices-container-properties-container-properties]]`link:#quarkus-amazon-kms_quarkus-kms-devservices-container-properties-container-properties[quarkus.kms.devservices.container-properties]` +a|icon:lock[title=Fixed at build time] [[quarkus-amazon-kms_quarkus-kms-devservices-container-properties-container-properties]]`link:#quarkus-amazon-kms_quarkus-kms-devservices-container-properties-container-properties[quarkus.kms.devservices.container-properties."container-properties"]` [.description] @@ -164,12 +164,13 @@ a|icon:lock[title=Fixed at build time] [[quarkus-amazon-kms_quarkus-kms-devservi Generic properties that are pass for additional container configuration. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_KMS_DEVSERVICES_CONTAINER_PROPERTIES+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_KMS_DEVSERVICES_CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_KMS_DEVSERVICES_CONTAINER_PROPERTIES+++` +Environment variable: `+++QUARKUS_KMS_DEVSERVICES_CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++` endif::add-copy-button-to-env-var[] ---|`Map` +--|link:https://docs.oracle.com/javase/8/docs/api/java/lang/String.html[String] + | diff --git a/docs/modules/ROOT/pages/includes/quarkus-amazon-lambda.adoc b/docs/modules/ROOT/pages/includes/quarkus-amazon-lambda.adoc index 116bd0174..5c70809fc 100644 --- a/docs/modules/ROOT/pages/includes/quarkus-amazon-lambda.adoc +++ b/docs/modules/ROOT/pages/includes/quarkus-amazon-lambda.adoc @@ -156,7 +156,7 @@ endif::add-copy-button-to-env-var[] |`localstack` -a|icon:lock[title=Fixed at build time] [[quarkus-amazon-lambda_quarkus-lambda-devservices-container-properties-container-properties]]`link:#quarkus-amazon-lambda_quarkus-lambda-devservices-container-properties-container-properties[quarkus.lambda.devservices.container-properties]` +a|icon:lock[title=Fixed at build time] [[quarkus-amazon-lambda_quarkus-lambda-devservices-container-properties-container-properties]]`link:#quarkus-amazon-lambda_quarkus-lambda-devservices-container-properties-container-properties[quarkus.lambda.devservices.container-properties."container-properties"]` [.description] @@ -164,12 +164,13 @@ a|icon:lock[title=Fixed at build time] [[quarkus-amazon-lambda_quarkus-lambda-de Generic properties that are pass for additional container configuration. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_LAMBDA_DEVSERVICES_CONTAINER_PROPERTIES+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_LAMBDA_DEVSERVICES_CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_LAMBDA_DEVSERVICES_CONTAINER_PROPERTIES+++` +Environment variable: `+++QUARKUS_LAMBDA_DEVSERVICES_CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++` endif::add-copy-button-to-env-var[] ---|`Map` +--|link:https://docs.oracle.com/javase/8/docs/api/java/lang/String.html[String] + | diff --git a/docs/modules/ROOT/pages/includes/quarkus-amazon-s3.adoc b/docs/modules/ROOT/pages/includes/quarkus-amazon-s3.adoc index 1ef4cecec..f6681a7c6 100644 --- a/docs/modules/ROOT/pages/includes/quarkus-amazon-s3.adoc +++ b/docs/modules/ROOT/pages/includes/quarkus-amazon-s3.adoc @@ -296,7 +296,7 @@ endif::add-copy-button-to-env-var[] | -a|icon:lock[title=Fixed at build time] [[quarkus-amazon-s3_quarkus-s3-devservices-container-properties-container-properties]]`link:#quarkus-amazon-s3_quarkus-s3-devservices-container-properties-container-properties[quarkus.s3.devservices.container-properties]` +a|icon:lock[title=Fixed at build time] [[quarkus-amazon-s3_quarkus-s3-devservices-container-properties-container-properties]]`link:#quarkus-amazon-s3_quarkus-s3-devservices-container-properties-container-properties[quarkus.s3.devservices.container-properties."container-properties"]` [.description] @@ -304,12 +304,13 @@ a|icon:lock[title=Fixed at build time] [[quarkus-amazon-s3_quarkus-s3-devservice Generic properties that are pass for additional container configuration. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_S3_DEVSERVICES_CONTAINER_PROPERTIES+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_S3_DEVSERVICES_CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_S3_DEVSERVICES_CONTAINER_PROPERTIES+++` +Environment variable: `+++QUARKUS_S3_DEVSERVICES_CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++` endif::add-copy-button-to-env-var[] ---|`Map` +--|link:https://docs.oracle.com/javase/8/docs/api/java/lang/String.html[String] + | diff --git a/docs/modules/ROOT/pages/includes/quarkus-amazon-secretsmanager.adoc b/docs/modules/ROOT/pages/includes/quarkus-amazon-secretsmanager.adoc index 2b794484d..f308650dc 100644 --- a/docs/modules/ROOT/pages/includes/quarkus-amazon-secretsmanager.adoc +++ b/docs/modules/ROOT/pages/includes/quarkus-amazon-secretsmanager.adoc @@ -156,7 +156,7 @@ endif::add-copy-button-to-env-var[] |`localstack` -a|icon:lock[title=Fixed at build time] [[quarkus-amazon-secretsmanager_quarkus-secretsmanager-devservices-container-properties-container-properties]]`link:#quarkus-amazon-secretsmanager_quarkus-secretsmanager-devservices-container-properties-container-properties[quarkus.secretsmanager.devservices.container-properties]` +a|icon:lock[title=Fixed at build time] [[quarkus-amazon-secretsmanager_quarkus-secretsmanager-devservices-container-properties-container-properties]]`link:#quarkus-amazon-secretsmanager_quarkus-secretsmanager-devservices-container-properties-container-properties[quarkus.secretsmanager.devservices.container-properties."container-properties"]` [.description] @@ -164,12 +164,13 @@ a|icon:lock[title=Fixed at build time] [[quarkus-amazon-secretsmanager_quarkus-s Generic properties that are pass for additional container configuration. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SECRETSMANAGER_DEVSERVICES_CONTAINER_PROPERTIES+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SECRETSMANAGER_DEVSERVICES_CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SECRETSMANAGER_DEVSERVICES_CONTAINER_PROPERTIES+++` +Environment variable: `+++QUARKUS_SECRETSMANAGER_DEVSERVICES_CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++` endif::add-copy-button-to-env-var[] ---|`Map` +--|link:https://docs.oracle.com/javase/8/docs/api/java/lang/String.html[String] + | diff --git a/docs/modules/ROOT/pages/includes/quarkus-amazon-ses.adoc b/docs/modules/ROOT/pages/includes/quarkus-amazon-ses.adoc index 9557078a7..c6fcff6c3 100644 --- a/docs/modules/ROOT/pages/includes/quarkus-amazon-ses.adoc +++ b/docs/modules/ROOT/pages/includes/quarkus-amazon-ses.adoc @@ -156,7 +156,7 @@ endif::add-copy-button-to-env-var[] |`localstack` -a|icon:lock[title=Fixed at build time] [[quarkus-amazon-ses_quarkus-ses-devservices-container-properties-container-properties]]`link:#quarkus-amazon-ses_quarkus-ses-devservices-container-properties-container-properties[quarkus.ses.devservices.container-properties]` +a|icon:lock[title=Fixed at build time] [[quarkus-amazon-ses_quarkus-ses-devservices-container-properties-container-properties]]`link:#quarkus-amazon-ses_quarkus-ses-devservices-container-properties-container-properties[quarkus.ses.devservices.container-properties."container-properties"]` [.description] @@ -164,12 +164,13 @@ a|icon:lock[title=Fixed at build time] [[quarkus-amazon-ses_quarkus-ses-devservi Generic properties that are pass for additional container configuration. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SES_DEVSERVICES_CONTAINER_PROPERTIES+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SES_DEVSERVICES_CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SES_DEVSERVICES_CONTAINER_PROPERTIES+++` +Environment variable: `+++QUARKUS_SES_DEVSERVICES_CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++` endif::add-copy-button-to-env-var[] ---|`Map` +--|link:https://docs.oracle.com/javase/8/docs/api/java/lang/String.html[String] + | diff --git a/docs/modules/ROOT/pages/includes/quarkus-amazon-sfn.adoc b/docs/modules/ROOT/pages/includes/quarkus-amazon-sfn.adoc index d64050285..d1fa143ee 100644 --- a/docs/modules/ROOT/pages/includes/quarkus-amazon-sfn.adoc +++ b/docs/modules/ROOT/pages/includes/quarkus-amazon-sfn.adoc @@ -156,7 +156,7 @@ endif::add-copy-button-to-env-var[] |`localstack` -a|icon:lock[title=Fixed at build time] [[quarkus-amazon-sfn_quarkus-sfn-devservices-container-properties-container-properties]]`link:#quarkus-amazon-sfn_quarkus-sfn-devservices-container-properties-container-properties[quarkus.sfn.devservices.container-properties]` +a|icon:lock[title=Fixed at build time] [[quarkus-amazon-sfn_quarkus-sfn-devservices-container-properties-container-properties]]`link:#quarkus-amazon-sfn_quarkus-sfn-devservices-container-properties-container-properties[quarkus.sfn.devservices.container-properties."container-properties"]` [.description] @@ -164,12 +164,13 @@ a|icon:lock[title=Fixed at build time] [[quarkus-amazon-sfn_quarkus-sfn-devservi Generic properties that are pass for additional container configuration. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SFN_DEVSERVICES_CONTAINER_PROPERTIES+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SFN_DEVSERVICES_CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SFN_DEVSERVICES_CONTAINER_PROPERTIES+++` +Environment variable: `+++QUARKUS_SFN_DEVSERVICES_CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++` endif::add-copy-button-to-env-var[] ---|`Map` +--|link:https://docs.oracle.com/javase/8/docs/api/java/lang/String.html[String] + | diff --git a/docs/modules/ROOT/pages/includes/quarkus-amazon-sns.adoc b/docs/modules/ROOT/pages/includes/quarkus-amazon-sns.adoc index 81c71c112..e233d0110 100644 --- a/docs/modules/ROOT/pages/includes/quarkus-amazon-sns.adoc +++ b/docs/modules/ROOT/pages/includes/quarkus-amazon-sns.adoc @@ -156,7 +156,7 @@ endif::add-copy-button-to-env-var[] |`localstack` -a|icon:lock[title=Fixed at build time] [[quarkus-amazon-sns_quarkus-sns-devservices-container-properties-container-properties]]`link:#quarkus-amazon-sns_quarkus-sns-devservices-container-properties-container-properties[quarkus.sns.devservices.container-properties]` +a|icon:lock[title=Fixed at build time] [[quarkus-amazon-sns_quarkus-sns-devservices-container-properties-container-properties]]`link:#quarkus-amazon-sns_quarkus-sns-devservices-container-properties-container-properties[quarkus.sns.devservices.container-properties."container-properties"]` [.description] @@ -164,12 +164,13 @@ a|icon:lock[title=Fixed at build time] [[quarkus-amazon-sns_quarkus-sns-devservi Generic properties that are pass for additional container configuration. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SNS_DEVSERVICES_CONTAINER_PROPERTIES+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SNS_DEVSERVICES_CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SNS_DEVSERVICES_CONTAINER_PROPERTIES+++` +Environment variable: `+++QUARKUS_SNS_DEVSERVICES_CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++` endif::add-copy-button-to-env-var[] ---|`Map` +--|link:https://docs.oracle.com/javase/8/docs/api/java/lang/String.html[String] + | diff --git a/docs/modules/ROOT/pages/includes/quarkus-amazon-sqs.adoc b/docs/modules/ROOT/pages/includes/quarkus-amazon-sqs.adoc index c224dbdb9..2f4656047 100644 --- a/docs/modules/ROOT/pages/includes/quarkus-amazon-sqs.adoc +++ b/docs/modules/ROOT/pages/includes/quarkus-amazon-sqs.adoc @@ -173,7 +173,7 @@ endif::add-copy-button-to-env-var[] | -a|icon:lock[title=Fixed at build time] [[quarkus-amazon-sqs_quarkus-sqs-devservices-container-properties-container-properties]]`link:#quarkus-amazon-sqs_quarkus-sqs-devservices-container-properties-container-properties[quarkus.sqs.devservices.container-properties]` +a|icon:lock[title=Fixed at build time] [[quarkus-amazon-sqs_quarkus-sqs-devservices-container-properties-container-properties]]`link:#quarkus-amazon-sqs_quarkus-sqs-devservices-container-properties-container-properties[quarkus.sqs.devservices.container-properties."container-properties"]` [.description] @@ -181,1553 +181,1588 @@ a|icon:lock[title=Fixed at build time] [[quarkus-amazon-sqs_quarkus-sqs-devservi Generic properties that are pass for additional container configuration. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_DEVSERVICES_CONTAINER_PROPERTIES+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_DEVSERVICES_CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_DEVSERVICES_CONTAINER_PROPERTIES+++` +Environment variable: `+++QUARKUS_SQS_DEVSERVICES_CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++` endif::add-copy-button-to-env-var[] ---|`Map` +--|link:https://docs.oracle.com/javase/8/docs/api/java/lang/String.html[String] + | -h|[[quarkus-amazon-sqs_quarkus-sqs-sdk-aws-sdk-client-configurations]]link:#quarkus-amazon-sqs_quarkus-sqs-sdk-aws-sdk-client-configurations[AWS SDK client configurations] +h|[[quarkus-amazon-sqs_quarkus-sqs-sync-client-sync-http-transport-configurations]]link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-sync-http-transport-configurations[Sync HTTP transport configurations] h|Type h|Default -a| [[quarkus-amazon-sqs_quarkus-sqs-endpoint-override]]`link:#quarkus-amazon-sqs_quarkus-sqs-endpoint-override[quarkus.sqs.endpoint-override]` - - -[.description] --- -The endpoint URI with which the SDK should communicate. - -If not specified, an appropriate endpoint to be used for the given service and region. - -ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ENDPOINT_OVERRIDE+++[] -endif::add-copy-button-to-env-var[] -ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_ENDPOINT_OVERRIDE+++` -endif::add-copy-button-to-env-var[] ---|link:https://docs.oracle.com/javase/8/docs/api/java/net/URI.html[URI] - -| - - -a| [[quarkus-amazon-sqs_quarkus-sqs-api-call-timeout]]`link:#quarkus-amazon-sqs_quarkus-sqs-api-call-timeout[quarkus.sqs.api-call-timeout]` +a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-connection-timeout]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-connection-timeout[quarkus.sqs.sync-client.connection-timeout]` [.description] -- -The amount of time to allow the client to complete the execution of an API call. - -This timeout covers the entire client execution except for marshalling. This includes request handler execution, all HTTP requests including retries, unmarshalling, etc. - -This value should always be positive, if present. +The maximum amount of time to establish a connection before timing out. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_API_CALL_TIMEOUT+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_CONNECTION_TIMEOUT+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_API_CALL_TIMEOUT+++` +Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_CONNECTION_TIMEOUT+++` endif::add-copy-button-to-env-var[] --|link:https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html[Duration] link:#duration-note-anchor-{summaryTableId}[icon:question-circle[title=More information about the Duration format]] -| +|`2S` -a| [[quarkus-amazon-sqs_quarkus-sqs-api-call-attempt-timeout]]`link:#quarkus-amazon-sqs_quarkus-sqs-api-call-attempt-timeout[quarkus.sqs.api-call-attempt-timeout]` +a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-socket-timeout]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-socket-timeout[quarkus.sqs.sync-client.socket-timeout]` [.description] -- -The amount of time to wait for the HTTP request to complete before giving up and timing out. - -This value should always be positive, if present. +The amount of time to wait for data to be transferred over an established, open connection before the connection is timed out. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_API_CALL_ATTEMPT_TIMEOUT+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_SOCKET_TIMEOUT+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_API_CALL_ATTEMPT_TIMEOUT+++` +Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_SOCKET_TIMEOUT+++` endif::add-copy-button-to-env-var[] --|link:https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html[Duration] link:#duration-note-anchor-{summaryTableId}[icon:question-circle[title=More information about the Duration format]] -| +|`30S` -a| [[quarkus-amazon-sqs_quarkus-sqs-advanced-use-quarkus-scheduled-executor-service]]`link:#quarkus-amazon-sqs_quarkus-sqs-advanced-use-quarkus-scheduled-executor-service[quarkus.sqs.advanced.use-quarkus-scheduled-executor-service]` +a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-tls-key-managers-provider-type]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-tls-key-managers-provider-type[quarkus.sqs.sync-client.tls-key-managers-provider.type]` [.description] -- -Whether the Quarkus thread pool should be used for scheduling tasks such as async retry attempts and timeout task. +TLS key managers provider type. -When disabled, the default sdk behavior is to create a dedicated thread pool for each client, resulting in competition for CPU resources among these thread pools. +Available providers: + +* `none` - Use this provider if you don't want the client to present any certificates to the remote TLS host. +* `system-property` - Provider checks the standard `javax.net.ssl.keyStore`, `javax.net.ssl.keyStorePassword`, and + `javax.net.ssl.keyStoreType` properties defined by the + https://docs.oracle.com/javase/8/docs/technotes/guides/security/jsse/JSSERefGuide.html[JSSE]. +* `file-store` - Provider that loads the key store from a file. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ADVANCED_USE_QUARKUS_SCHEDULED_EXECUTOR_SERVICE+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_TLS_KEY_MANAGERS_PROVIDER_TYPE+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_ADVANCED_USE_QUARKUS_SCHEDULED_EXECUTOR_SERVICE+++` +Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_TLS_KEY_MANAGERS_PROVIDER_TYPE+++` endif::add-copy-button-to-env-var[] ---|boolean -|`true` - - -h|[[quarkus-amazon-sqs_quarkus-sqs-aws-aws-services-configurations]]link:#quarkus-amazon-sqs_quarkus-sqs-aws-aws-services-configurations[AWS services configurations] +-- a| +`none`, `system-property`, `file-store` +|`system-property` -h|Type -h|Default -a| [[quarkus-amazon-sqs_quarkus-sqs-aws-region]]`link:#quarkus-amazon-sqs_quarkus-sqs-aws-region[quarkus.sqs.aws.region]` +a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-tls-key-managers-provider-file-store-path]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-tls-key-managers-provider-file-store-path[quarkus.sqs.sync-client.tls-key-managers-provider.file-store.path]` [.description] -- -An Amazon Web Services region that hosts the given service. - -It overrides region provider chain with static value of -region with which the service client should communicate. - -If not set, region is retrieved via the default providers chain in the following order: - -* `aws.region` system property -* `region` property from the profile file -* Instance profile file - -See `software.amazon.awssdk.regions.Region` for available regions. +Path to the key store. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_AWS_REGION+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_TLS_KEY_MANAGERS_PROVIDER_FILE_STORE_PATH+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_AWS_REGION+++` +Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_TLS_KEY_MANAGERS_PROVIDER_FILE_STORE_PATH+++` endif::add-copy-button-to-env-var[] ---|Region +--|path | -a| [[quarkus-amazon-sqs_quarkus-sqs-aws-credentials-type]]`link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-type[quarkus.sqs.aws.credentials.type]` +a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-tls-key-managers-provider-file-store-type]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-tls-key-managers-provider-file-store-type[quarkus.sqs.sync-client.tls-key-managers-provider.file-store.type]` [.description] -- -Configure the credentials provider that should be used to authenticate with AWS. - -Available values: +Key store type. -* `default` - the provider will attempt to identify the credentials automatically using the following checks: -** Java System Properties - `aws.accessKeyId` and `aws.secretAccessKey` -** Environment Variables - `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` -** Credential profiles file at the default location (`~/.aws/credentials`) shared by all AWS SDKs and the AWS CLI -** Credentials delivered through the Amazon EC2 container service if `AWS_CONTAINER_CREDENTIALS_RELATIVE_URI` environment variable is set and security manager has permission to access the variable. -** Instance profile credentials delivered through the Amazon EC2 metadata service -* `static` - the provider that uses the access key and secret access key specified in the `static-provider` section of the config. -* `system-property` - it loads credentials from the `aws.accessKeyId`, `aws.secretAccessKey` and `aws.sessionToken` system properties. -* `env-variable` - it loads credentials from the `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` and `AWS_SESSION_TOKEN` environment variables. -* `profile` - credentials are based on AWS configuration profiles. This loads credentials from - a http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html[profile file], - allowing you to share multiple sets of AWS security credentials between different tools like the AWS SDK for Java and the AWS CLI. -* `container` - It loads credentials from a local metadata service. Containers currently supported by the AWS SDK are - **Amazon Elastic Container Service (ECS)** and **AWS Greengrass** -* `instance-profile` - It loads credentials from the Amazon EC2 Instance Metadata Service. -* `process` - Credentials are loaded from an external process. This is used to support the credential_process setting in the profile - credentials file. See https://docs.aws.amazon.com/cli/latest/topic/config-vars.html#sourcing-credentials-from-external-processes[Sourcing Credentials From External Processes] - for more information. -* `anonymous` - It always returns anonymous AWS credentials. Anonymous AWS credentials result in un-authenticated requests and will - fail unless the resource or API's policy has been configured to specifically allow anonymous access. +See the KeyStore section in the https://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html++#++KeyStore++[++Java Cryptography Architecture Standard Algorithm Name Documentation++]++ for information about standard keystore types. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_AWS_CREDENTIALS_TYPE+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_TLS_KEY_MANAGERS_PROVIDER_FILE_STORE_TYPE+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_AWS_CREDENTIALS_TYPE+++` +Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_TLS_KEY_MANAGERS_PROVIDER_FILE_STORE_TYPE+++` endif::add-copy-button-to-env-var[] --- a| -`default`, `static`, `system-property`, `env-variable`, `profile`, `container`, `instance-profile`, `process`, `custom`, `anonymous` -|`default` - - -h|[[quarkus-amazon-sqs_quarkus-sqs-aws-credentials-default-provider-default-credentials-provider-configuration]]link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-default-provider-default-credentials-provider-configuration[Default credentials provider configuration] +--|string +| -h|Type -h|Default -a| [[quarkus-amazon-sqs_quarkus-sqs-aws-credentials-default-provider-async-credential-update-enabled]]`link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-default-provider-async-credential-update-enabled[quarkus.sqs.aws.credentials.default-provider.async-credential-update-enabled]` +a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-tls-key-managers-provider-file-store-password]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-tls-key-managers-provider-file-store-password[quarkus.sqs.sync-client.tls-key-managers-provider.file-store.password]` [.description] -- -Whether this provider should fetch credentials asynchronously in the background. - -If this is `true`, threads are less likely to block, but additional resources are used to maintain the provider. +Key store password ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_AWS_CREDENTIALS_DEFAULT_PROVIDER_ASYNC_CREDENTIAL_UPDATE_ENABLED+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_TLS_KEY_MANAGERS_PROVIDER_FILE_STORE_PASSWORD+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_AWS_CREDENTIALS_DEFAULT_PROVIDER_ASYNC_CREDENTIAL_UPDATE_ENABLED+++` +Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_TLS_KEY_MANAGERS_PROVIDER_FILE_STORE_PASSWORD+++` endif::add-copy-button-to-env-var[] ---|boolean -|`false` +--|string +| -a| [[quarkus-amazon-sqs_quarkus-sqs-aws-credentials-default-provider-reuse-last-provider-enabled]]`link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-default-provider-reuse-last-provider-enabled[quarkus.sqs.aws.credentials.default-provider.reuse-last-provider-enabled]` +a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-tls-trust-managers-provider-type]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-tls-trust-managers-provider-type[quarkus.sqs.sync-client.tls-trust-managers-provider.type]` [.description] -- -Whether the provider should reuse the last successful credentials provider in the chain. +TLS trust managers provider type. -Reusing the last successful credentials provider will typically return credentials faster than searching through the chain. +Available providers: + +* `trust-all` - Use this provider to disable the validation of servers certificates and therefore trust all server certificates. +* `system-property` - Provider checks the standard `javax.net.ssl.keyStore`, `javax.net.ssl.keyStorePassword`, and + `javax.net.ssl.keyStoreType` properties defined by the + https://docs.oracle.com/javase/8/docs/technotes/guides/security/jsse/JSSERefGuide.html[JSSE]. +* `file-store` - Provider that loads the key store from a file. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_AWS_CREDENTIALS_DEFAULT_PROVIDER_REUSE_LAST_PROVIDER_ENABLED+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_TLS_TRUST_MANAGERS_PROVIDER_TYPE+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_AWS_CREDENTIALS_DEFAULT_PROVIDER_REUSE_LAST_PROVIDER_ENABLED+++` +Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_TLS_TRUST_MANAGERS_PROVIDER_TYPE+++` endif::add-copy-button-to-env-var[] ---|boolean -|`true` - - -h|[[quarkus-amazon-sqs_quarkus-sqs-aws-credentials-static-provider-static-credentials-provider-configuration]]link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-static-provider-static-credentials-provider-configuration[Static credentials provider configuration] +-- a| +`trust-all`, `system-property`, `file-store` +|`system-property` -h|Type -h|Default -a| [[quarkus-amazon-sqs_quarkus-sqs-aws-credentials-static-provider-access-key-id]]`link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-static-provider-access-key-id[quarkus.sqs.aws.credentials.static-provider.access-key-id]` +a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-tls-trust-managers-provider-file-store-path]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-tls-trust-managers-provider-file-store-path[quarkus.sqs.sync-client.tls-trust-managers-provider.file-store.path]` [.description] -- -AWS Access key id +Path to the key store. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_AWS_CREDENTIALS_STATIC_PROVIDER_ACCESS_KEY_ID+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_TLS_TRUST_MANAGERS_PROVIDER_FILE_STORE_PATH+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_AWS_CREDENTIALS_STATIC_PROVIDER_ACCESS_KEY_ID+++` +Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_TLS_TRUST_MANAGERS_PROVIDER_FILE_STORE_PATH+++` endif::add-copy-button-to-env-var[] ---|string +--|path | -a| [[quarkus-amazon-sqs_quarkus-sqs-aws-credentials-static-provider-secret-access-key]]`link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-static-provider-secret-access-key[quarkus.sqs.aws.credentials.static-provider.secret-access-key]` +a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-tls-trust-managers-provider-file-store-type]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-tls-trust-managers-provider-file-store-type[quarkus.sqs.sync-client.tls-trust-managers-provider.file-store.type]` [.description] -- -AWS Secret access key +Key store type. + +See the KeyStore section in the https://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html++#++KeyStore++[++Java Cryptography Architecture Standard Algorithm Name Documentation++]++ for information about standard keystore types. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_AWS_CREDENTIALS_STATIC_PROVIDER_SECRET_ACCESS_KEY+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_TLS_TRUST_MANAGERS_PROVIDER_FILE_STORE_TYPE+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_AWS_CREDENTIALS_STATIC_PROVIDER_SECRET_ACCESS_KEY+++` +Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_TLS_TRUST_MANAGERS_PROVIDER_FILE_STORE_TYPE+++` endif::add-copy-button-to-env-var[] --|string | -a| [[quarkus-amazon-sqs_quarkus-sqs-aws-credentials-static-provider-session-token]]`link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-static-provider-session-token[quarkus.sqs.aws.credentials.static-provider.session-token]` +a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-tls-trust-managers-provider-file-store-password]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-tls-trust-managers-provider-file-store-password[quarkus.sqs.sync-client.tls-trust-managers-provider.file-store.password]` [.description] -- -AWS Session token +Key store password ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_AWS_CREDENTIALS_STATIC_PROVIDER_SESSION_TOKEN+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_TLS_TRUST_MANAGERS_PROVIDER_FILE_STORE_PASSWORD+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_AWS_CREDENTIALS_STATIC_PROVIDER_SESSION_TOKEN+++` +Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_TLS_TRUST_MANAGERS_PROVIDER_FILE_STORE_PASSWORD+++` endif::add-copy-button-to-env-var[] --|string | -h|[[quarkus-amazon-sqs_quarkus-sqs-aws-credentials-profile-provider-aws-profile-credentials-provider-configuration]]link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-profile-provider-aws-profile-credentials-provider-configuration[AWS Profile credentials provider configuration] +h|[[quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-apache-http-client-specific-configurations]]link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-apache-http-client-specific-configurations[Apache HTTP client specific configurations] h|Type h|Default -a| [[quarkus-amazon-sqs_quarkus-sqs-aws-credentials-profile-provider-profile-name]]`link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-profile-provider-profile-name[quarkus.sqs.aws.credentials.profile-provider.profile-name]` +a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-connection-acquisition-timeout]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-connection-acquisition-timeout[quarkus.sqs.sync-client.apache.connection-acquisition-timeout]` [.description] -- -The name of the profile that should be used by this credentials provider. - -If not specified, the value in `AWS_PROFILE` environment variable or `aws.profile` system property is used and defaults to `default` name. +The amount of time to wait when acquiring a connection from the pool before giving up and timing out. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_AWS_CREDENTIALS_PROFILE_PROVIDER_PROFILE_NAME+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_APACHE_CONNECTION_ACQUISITION_TIMEOUT+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_AWS_CREDENTIALS_PROFILE_PROVIDER_PROFILE_NAME+++` +Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_APACHE_CONNECTION_ACQUISITION_TIMEOUT+++` endif::add-copy-button-to-env-var[] ---|string -| - - -h|[[quarkus-amazon-sqs_quarkus-sqs-aws-credentials-process-provider-process-credentials-provider-configuration]]link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-process-provider-process-credentials-provider-configuration[Process credentials provider configuration] +--|link:https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html[Duration] + link:#duration-note-anchor-{summaryTableId}[icon:question-circle[title=More information about the Duration format]] +|`10S` -h|Type -h|Default -a| [[quarkus-amazon-sqs_quarkus-sqs-aws-credentials-process-provider-async-credential-update-enabled]]`link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-process-provider-async-credential-update-enabled[quarkus.sqs.aws.credentials.process-provider.async-credential-update-enabled]` +a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-connection-max-idle-time]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-connection-max-idle-time[quarkus.sqs.sync-client.apache.connection-max-idle-time]` [.description] -- -Whether the provider should fetch credentials asynchronously in the background. - -If this is true, threads are less likely to block when credentials are loaded, but additional resources are used to maintain the provider. +The maximum amount of time that a connection should be allowed to remain open while idle. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_AWS_CREDENTIALS_PROCESS_PROVIDER_ASYNC_CREDENTIAL_UPDATE_ENABLED+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_APACHE_CONNECTION_MAX_IDLE_TIME+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_AWS_CREDENTIALS_PROCESS_PROVIDER_ASYNC_CREDENTIAL_UPDATE_ENABLED+++` +Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_APACHE_CONNECTION_MAX_IDLE_TIME+++` endif::add-copy-button-to-env-var[] ---|boolean -|`false` +--|link:https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html[Duration] + link:#duration-note-anchor-{summaryTableId}[icon:question-circle[title=More information about the Duration format]] +|`60S` -a| [[quarkus-amazon-sqs_quarkus-sqs-aws-credentials-process-provider-credential-refresh-threshold]]`link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-process-provider-credential-refresh-threshold[quarkus.sqs.aws.credentials.process-provider.credential-refresh-threshold]` +a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-connection-time-to-live]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-connection-time-to-live[quarkus.sqs.sync-client.apache.connection-time-to-live]` [.description] -- -The amount of time between when the credentials expire and when the credentials should start to be refreshed. - -This allows the credentials to be refreshed ++*++before++*++ they are reported to expire. +The maximum amount of time that a connection should be allowed to remain open, regardless of usage frequency. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_AWS_CREDENTIALS_PROCESS_PROVIDER_CREDENTIAL_REFRESH_THRESHOLD+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_APACHE_CONNECTION_TIME_TO_LIVE+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_AWS_CREDENTIALS_PROCESS_PROVIDER_CREDENTIAL_REFRESH_THRESHOLD+++` +Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_APACHE_CONNECTION_TIME_TO_LIVE+++` endif::add-copy-button-to-env-var[] --|link:https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html[Duration] link:#duration-note-anchor-{summaryTableId}[icon:question-circle[title=More information about the Duration format]] -|`15S` +| -a| [[quarkus-amazon-sqs_quarkus-sqs-aws-credentials-process-provider-process-output-limit]]`link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-process-provider-process-output-limit[quarkus.sqs.aws.credentials.process-provider.process-output-limit]` +a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-max-connections]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-max-connections[quarkus.sqs.sync-client.apache.max-connections]` [.description] -- -The maximum size of the output that can be returned by the external process before an exception is raised. - -ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_AWS_CREDENTIALS_PROCESS_PROVIDER_PROCESS_OUTPUT_LIMIT+++[] -endif::add-copy-button-to-env-var[] -ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_AWS_CREDENTIALS_PROCESS_PROVIDER_PROCESS_OUTPUT_LIMIT+++` -endif::add-copy-button-to-env-var[] ---|MemorySize link:#memory-size-note-anchor[icon:question-circle[title=More information about the MemorySize format]] -|`1024` - - -a| [[quarkus-amazon-sqs_quarkus-sqs-aws-credentials-process-provider-command]]`link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-process-provider-command[quarkus.sqs.aws.credentials.process-provider.command]` - +The maximum number of connections allowed in the connection pool. -[.description] --- -The command that should be executed to retrieve credentials. +Each built HTTP client has its own private connection pool. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_AWS_CREDENTIALS_PROCESS_PROVIDER_COMMAND+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_APACHE_MAX_CONNECTIONS+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_AWS_CREDENTIALS_PROCESS_PROVIDER_COMMAND+++` +Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_APACHE_MAX_CONNECTIONS+++` endif::add-copy-button-to-env-var[] ---|string -| - - -h|[[quarkus-amazon-sqs_quarkus-sqs-aws-credentials-custom-provider-custom-credentials-provider-configuration]]link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-custom-provider-custom-credentials-provider-configuration[Custom credentials provider configuration] +--|int +|`50` -h|Type -h|Default -a| [[quarkus-amazon-sqs_quarkus-sqs-aws-credentials-custom-provider-name]]`link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-custom-provider-name[quarkus.sqs.aws.credentials.custom-provider.name]` +a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-expect-continue-enabled]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-expect-continue-enabled[quarkus.sqs.sync-client.apache.expect-continue-enabled]` [.description] -- -The name of custom AwsCredentialsProvider bean. +Whether the client should send an HTTP expect-continue handshake before each request. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_AWS_CREDENTIALS_CUSTOM_PROVIDER_NAME+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_APACHE_EXPECT_CONTINUE_ENABLED+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_AWS_CREDENTIALS_CUSTOM_PROVIDER_NAME+++` +Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_APACHE_EXPECT_CONTINUE_ENABLED+++` endif::add-copy-button-to-env-var[] ---|string -| - - -h|[[quarkus-amazon-sqs_quarkus-sqs-sync-client-sync-http-transport-configurations]]link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-sync-http-transport-configurations[Sync HTTP transport configurations] +--|boolean +|`true` -h|Type -h|Default -a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-connection-timeout]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-connection-timeout[quarkus.sqs.sync-client.connection-timeout]` +a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-use-idle-connection-reaper]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-use-idle-connection-reaper[quarkus.sqs.sync-client.apache.use-idle-connection-reaper]` [.description] -- -The maximum amount of time to establish a connection before timing out. +Whether the idle connections in the connection pool should be closed asynchronously. + +When enabled, connections left idling for longer than `quarkus..sync-client.connection-max-idle-time` will be closed. This will not close connections currently in use. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_CONNECTION_TIMEOUT+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_APACHE_USE_IDLE_CONNECTION_REAPER+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_CONNECTION_TIMEOUT+++` +Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_APACHE_USE_IDLE_CONNECTION_REAPER+++` endif::add-copy-button-to-env-var[] ---|link:https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html[Duration] - link:#duration-note-anchor-{summaryTableId}[icon:question-circle[title=More information about the Duration format]] -|`2S` +--|boolean +|`true` -a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-socket-timeout]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-socket-timeout[quarkus.sqs.sync-client.socket-timeout]` +a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-tcp-keep-alive]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-tcp-keep-alive[quarkus.sqs.sync-client.apache.tcp-keep-alive]` [.description] -- -The amount of time to wait for data to be transferred over an established, open connection before the connection is timed out. +Configure whether to enable or disable TCP KeepAlive. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_SOCKET_TIMEOUT+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_APACHE_TCP_KEEP_ALIVE+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_SOCKET_TIMEOUT+++` +Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_APACHE_TCP_KEEP_ALIVE+++` endif::add-copy-button-to-env-var[] ---|link:https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html[Duration] - link:#duration-note-anchor-{summaryTableId}[icon:question-circle[title=More information about the Duration format]] -|`30S` +--|boolean +|`false` -a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-tls-key-managers-provider-type]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-tls-key-managers-provider-type[quarkus.sqs.sync-client.tls-key-managers-provider.type]` +a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-proxy-enabled]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-proxy-enabled[quarkus.sqs.sync-client.apache.proxy.enabled]` [.description] -- -TLS key managers provider type. - -Available providers: - -* `none` - Use this provider if you don't want the client to present any certificates to the remote TLS host. -* `system-property` - Provider checks the standard `javax.net.ssl.keyStore`, `javax.net.ssl.keyStorePassword`, and - `javax.net.ssl.keyStoreType` properties defined by the - https://docs.oracle.com/javase/8/docs/technotes/guides/security/jsse/JSSERefGuide.html[JSSE]. -* `file-store` - Provider that loads the key store from a file. +Enable HTTP proxy ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_TLS_KEY_MANAGERS_PROVIDER_TYPE+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_APACHE_PROXY_ENABLED+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_TLS_KEY_MANAGERS_PROVIDER_TYPE+++` +Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_APACHE_PROXY_ENABLED+++` endif::add-copy-button-to-env-var[] --- a| -`none`, `system-property`, `file-store` -|`system-property` +--|boolean +|`false` -a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-tls-key-managers-provider-file-store-path]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-tls-key-managers-provider-file-store-path[quarkus.sqs.sync-client.tls-key-managers-provider.file-store.path]` +a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-proxy-endpoint]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-proxy-endpoint[quarkus.sqs.sync-client.apache.proxy.endpoint]` [.description] -- -Path to the key store. +The endpoint of the proxy server that the SDK should connect through. + +Currently, the endpoint is limited to a host and port. Any other URI components will result in an exception being raised. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_TLS_KEY_MANAGERS_PROVIDER_FILE_STORE_PATH+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_APACHE_PROXY_ENDPOINT+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_TLS_KEY_MANAGERS_PROVIDER_FILE_STORE_PATH+++` +Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_APACHE_PROXY_ENDPOINT+++` endif::add-copy-button-to-env-var[] ---|path +--|link:https://docs.oracle.com/javase/8/docs/api/java/net/URI.html[URI] + | -a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-tls-key-managers-provider-file-store-type]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-tls-key-managers-provider-file-store-type[quarkus.sqs.sync-client.tls-key-managers-provider.file-store.type]` +a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-proxy-username]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-proxy-username[quarkus.sqs.sync-client.apache.proxy.username]` [.description] -- -Key store type. - -See the KeyStore section in the https://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html++#++KeyStore++[++Java Cryptography Architecture Standard Algorithm Name Documentation++]++ for information about standard keystore types. +The username to use when connecting through a proxy. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_TLS_KEY_MANAGERS_PROVIDER_FILE_STORE_TYPE+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_APACHE_PROXY_USERNAME+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_TLS_KEY_MANAGERS_PROVIDER_FILE_STORE_TYPE+++` +Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_APACHE_PROXY_USERNAME+++` endif::add-copy-button-to-env-var[] --|string | -a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-tls-key-managers-provider-file-store-password]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-tls-key-managers-provider-file-store-password[quarkus.sqs.sync-client.tls-key-managers-provider.file-store.password]` +a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-proxy-password]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-proxy-password[quarkus.sqs.sync-client.apache.proxy.password]` [.description] -- -Key store password +The password to use when connecting through a proxy. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_TLS_KEY_MANAGERS_PROVIDER_FILE_STORE_PASSWORD+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_APACHE_PROXY_PASSWORD+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_TLS_KEY_MANAGERS_PROVIDER_FILE_STORE_PASSWORD+++` +Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_APACHE_PROXY_PASSWORD+++` endif::add-copy-button-to-env-var[] --|string | -a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-tls-trust-managers-provider-type]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-tls-trust-managers-provider-type[quarkus.sqs.sync-client.tls-trust-managers-provider.type]` +a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-proxy-ntlm-domain]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-proxy-ntlm-domain[quarkus.sqs.sync-client.apache.proxy.ntlm-domain]` [.description] -- -TLS trust managers provider type. - -Available providers: - -* `trust-all` - Use this provider to disable the validation of servers certificates and therefore trust all server certificates. -* `system-property` - Provider checks the standard `javax.net.ssl.keyStore`, `javax.net.ssl.keyStorePassword`, and - `javax.net.ssl.keyStoreType` properties defined by the - https://docs.oracle.com/javase/8/docs/technotes/guides/security/jsse/JSSERefGuide.html[JSSE]. -* `file-store` - Provider that loads the key store from a file. +For NTLM proxies - the Windows domain name to use when authenticating with the proxy. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_TLS_TRUST_MANAGERS_PROVIDER_TYPE+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_APACHE_PROXY_NTLM_DOMAIN+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_TLS_TRUST_MANAGERS_PROVIDER_TYPE+++` +Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_APACHE_PROXY_NTLM_DOMAIN+++` endif::add-copy-button-to-env-var[] --- a| -`trust-all`, `system-property`, `file-store` -|`system-property` +--|string +| -a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-tls-trust-managers-provider-file-store-path]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-tls-trust-managers-provider-file-store-path[quarkus.sqs.sync-client.tls-trust-managers-provider.file-store.path]` +a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-proxy-ntlm-workstation]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-proxy-ntlm-workstation[quarkus.sqs.sync-client.apache.proxy.ntlm-workstation]` [.description] -- -Path to the key store. +For NTLM proxies - the Windows workstation name to use when authenticating with the proxy. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_TLS_TRUST_MANAGERS_PROVIDER_FILE_STORE_PATH+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_APACHE_PROXY_NTLM_WORKSTATION+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_TLS_TRUST_MANAGERS_PROVIDER_FILE_STORE_PATH+++` +Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_APACHE_PROXY_NTLM_WORKSTATION+++` endif::add-copy-button-to-env-var[] ---|path +--|string | -a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-tls-trust-managers-provider-file-store-type]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-tls-trust-managers-provider-file-store-type[quarkus.sqs.sync-client.tls-trust-managers-provider.file-store.type]` +a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-proxy-preemptive-basic-authentication-enabled]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-proxy-preemptive-basic-authentication-enabled[quarkus.sqs.sync-client.apache.proxy.preemptive-basic-authentication-enabled]` [.description] -- -Key store type. - -See the KeyStore section in the https://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html++#++KeyStore++[++Java Cryptography Architecture Standard Algorithm Name Documentation++]++ for information about standard keystore types. +Whether to attempt to authenticate preemptively against the proxy server using basic authentication. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_TLS_TRUST_MANAGERS_PROVIDER_FILE_STORE_TYPE+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_APACHE_PROXY_PREEMPTIVE_BASIC_AUTHENTICATION_ENABLED+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_TLS_TRUST_MANAGERS_PROVIDER_FILE_STORE_TYPE+++` +Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_APACHE_PROXY_PREEMPTIVE_BASIC_AUTHENTICATION_ENABLED+++` endif::add-copy-button-to-env-var[] ---|string +--|boolean | -a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-tls-trust-managers-provider-file-store-password]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-tls-trust-managers-provider-file-store-password[quarkus.sqs.sync-client.tls-trust-managers-provider.file-store.password]` +a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-proxy-non-proxy-hosts]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-proxy-non-proxy-hosts[quarkus.sqs.sync-client.apache.proxy.non-proxy-hosts]` [.description] -- -Key store password +The hosts that the client is allowed to access without going through the proxy. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_TLS_TRUST_MANAGERS_PROVIDER_FILE_STORE_PASSWORD+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_APACHE_PROXY_NON_PROXY_HOSTS+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_TLS_TRUST_MANAGERS_PROVIDER_FILE_STORE_PASSWORD+++` +Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_APACHE_PROXY_NON_PROXY_HOSTS+++` endif::add-copy-button-to-env-var[] ---|string +--|list of string | -h|[[quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-apache-http-client-specific-configurations]]link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-apache-http-client-specific-configurations[Apache HTTP client specific configurations] +h|[[quarkus-amazon-sqs_quarkus-sqs-sync-client-crt-aws-crt-based-http-client-specific-configurations]]link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-crt-aws-crt-based-http-client-specific-configurations[AWS CRT-based HTTP client specific configurations] h|Type h|Default -a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-connection-acquisition-timeout]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-connection-acquisition-timeout[quarkus.sqs.sync-client.apache.connection-acquisition-timeout]` +a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-crt-connection-max-idle-time]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-crt-connection-max-idle-time[quarkus.sqs.sync-client.crt.connection-max-idle-time]` [.description] -- -The amount of time to wait when acquiring a connection from the pool before giving up and timing out. +The maximum amount of time that a connection should be allowed to remain open while idle. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_APACHE_CONNECTION_ACQUISITION_TIMEOUT+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_CRT_CONNECTION_MAX_IDLE_TIME+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_APACHE_CONNECTION_ACQUISITION_TIMEOUT+++` +Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_CRT_CONNECTION_MAX_IDLE_TIME+++` endif::add-copy-button-to-env-var[] --|link:https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html[Duration] link:#duration-note-anchor-{summaryTableId}[icon:question-circle[title=More information about the Duration format]] -|`10S` +|`60S` -a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-connection-max-idle-time]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-connection-max-idle-time[quarkus.sqs.sync-client.apache.connection-max-idle-time]` +a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-crt-max-concurrency]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-crt-max-concurrency[quarkus.sqs.sync-client.crt.max-concurrency]` [.description] -- -The maximum amount of time that a connection should be allowed to remain open while idle. +The maximum number of allowed concurrent requests. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_APACHE_CONNECTION_MAX_IDLE_TIME+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_CRT_MAX_CONCURRENCY+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_APACHE_CONNECTION_MAX_IDLE_TIME+++` +Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_CRT_MAX_CONCURRENCY+++` endif::add-copy-button-to-env-var[] ---|link:https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html[Duration] - link:#duration-note-anchor-{summaryTableId}[icon:question-circle[title=More information about the Duration format]] -|`60S` +--|int +|`50` -a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-connection-time-to-live]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-connection-time-to-live[quarkus.sqs.sync-client.apache.connection-time-to-live]` +a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-crt-proxy-enabled]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-crt-proxy-enabled[quarkus.sqs.sync-client.crt.proxy.enabled]` [.description] -- -The maximum amount of time that a connection should be allowed to remain open, regardless of usage frequency. +Enable HTTP proxy ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_APACHE_CONNECTION_TIME_TO_LIVE+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_CRT_PROXY_ENABLED+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_APACHE_CONNECTION_TIME_TO_LIVE+++` +Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_CRT_PROXY_ENABLED+++` endif::add-copy-button-to-env-var[] ---|link:https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html[Duration] - link:#duration-note-anchor-{summaryTableId}[icon:question-circle[title=More information about the Duration format]] -| +--|boolean +|`false` -a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-max-connections]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-max-connections[quarkus.sqs.sync-client.apache.max-connections]` +a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-crt-proxy-endpoint]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-crt-proxy-endpoint[quarkus.sqs.sync-client.crt.proxy.endpoint]` [.description] -- -The maximum number of connections allowed in the connection pool. +The endpoint of the proxy server that the SDK should connect through. -Each built HTTP client has its own private connection pool. +Currently, the endpoint is limited to a host and port. Any other URI components will result in an exception being raised. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_APACHE_MAX_CONNECTIONS+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_CRT_PROXY_ENDPOINT+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_APACHE_MAX_CONNECTIONS+++` +Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_CRT_PROXY_ENDPOINT+++` endif::add-copy-button-to-env-var[] ---|int -|`50` +--|link:https://docs.oracle.com/javase/8/docs/api/java/net/URI.html[URI] + +| -a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-expect-continue-enabled]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-expect-continue-enabled[quarkus.sqs.sync-client.apache.expect-continue-enabled]` +a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-crt-proxy-username]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-crt-proxy-username[quarkus.sqs.sync-client.crt.proxy.username]` [.description] -- -Whether the client should send an HTTP expect-continue handshake before each request. +The username to use when connecting through a proxy. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_APACHE_EXPECT_CONTINUE_ENABLED+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_CRT_PROXY_USERNAME+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_APACHE_EXPECT_CONTINUE_ENABLED+++` +Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_CRT_PROXY_USERNAME+++` endif::add-copy-button-to-env-var[] ---|boolean -|`true` +--|string +| -a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-use-idle-connection-reaper]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-use-idle-connection-reaper[quarkus.sqs.sync-client.apache.use-idle-connection-reaper]` +a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-crt-proxy-password]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-crt-proxy-password[quarkus.sqs.sync-client.crt.proxy.password]` [.description] -- -Whether the idle connections in the connection pool should be closed asynchronously. - -When enabled, connections left idling for longer than `quarkus..sync-client.connection-max-idle-time` will be closed. This will not close connections currently in use. +The password to use when connecting through a proxy. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_APACHE_USE_IDLE_CONNECTION_REAPER+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_CRT_PROXY_PASSWORD+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_APACHE_USE_IDLE_CONNECTION_REAPER+++` +Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_CRT_PROXY_PASSWORD+++` endif::add-copy-button-to-env-var[] ---|boolean -|`true` +--|string +| -a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-tcp-keep-alive]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-tcp-keep-alive[quarkus.sqs.sync-client.apache.tcp-keep-alive]` +h|[[quarkus-amazon-sqs_quarkus-sqs-async-client-async-http-transport-configurations]]link:#quarkus-amazon-sqs_quarkus-sqs-async-client-async-http-transport-configurations[Async HTTP transport configurations] + +h|Type +h|Default + +a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-max-concurrency]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-max-concurrency[quarkus.sqs.async-client.max-concurrency]` [.description] -- -Configure whether to enable or disable TCP KeepAlive. +The maximum number of allowed concurrent requests. + +For HTTP/1.1 this is the same as max connections. For HTTP/2 the number of connections that will be used depends on the max streams allowed per connection. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_APACHE_TCP_KEEP_ALIVE+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_MAX_CONCURRENCY+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_APACHE_TCP_KEEP_ALIVE+++` +Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_MAX_CONCURRENCY+++` endif::add-copy-button-to-env-var[] ---|boolean -|`false` +--|int +|`50` -a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-proxy-enabled]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-proxy-enabled[quarkus.sqs.sync-client.apache.proxy.enabled]` +a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-max-pending-connection-acquires]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-max-pending-connection-acquires[quarkus.sqs.async-client.max-pending-connection-acquires]` [.description] -- -Enable HTTP proxy +The maximum number of pending acquires allowed. + +Once this exceeds, acquire tries will be failed. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_APACHE_PROXY_ENABLED+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_MAX_PENDING_CONNECTION_ACQUIRES+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_APACHE_PROXY_ENABLED+++` +Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_MAX_PENDING_CONNECTION_ACQUIRES+++` endif::add-copy-button-to-env-var[] ---|boolean -|`false` +--|int +|`10000` -a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-proxy-endpoint]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-proxy-endpoint[quarkus.sqs.sync-client.apache.proxy.endpoint]` +a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-read-timeout]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-read-timeout[quarkus.sqs.async-client.read-timeout]` [.description] -- -The endpoint of the proxy server that the SDK should connect through. +The amount of time to wait for a read on a socket before an exception is thrown. -Currently, the endpoint is limited to a host and port. Any other URI components will result in an exception being raised. +Specify `0` to disable. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_APACHE_PROXY_ENDPOINT+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_READ_TIMEOUT+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_APACHE_PROXY_ENDPOINT+++` +Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_READ_TIMEOUT+++` endif::add-copy-button-to-env-var[] ---|link:https://docs.oracle.com/javase/8/docs/api/java/net/URI.html[URI] - -| +--|link:https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html[Duration] + link:#duration-note-anchor-{summaryTableId}[icon:question-circle[title=More information about the Duration format]] +|`30S` -a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-proxy-username]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-proxy-username[quarkus.sqs.sync-client.apache.proxy.username]` +a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-write-timeout]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-write-timeout[quarkus.sqs.async-client.write-timeout]` [.description] -- -The username to use when connecting through a proxy. +The amount of time to wait for a write on a socket before an exception is thrown. + +Specify `0` to disable. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_APACHE_PROXY_USERNAME+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_WRITE_TIMEOUT+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_APACHE_PROXY_USERNAME+++` +Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_WRITE_TIMEOUT+++` endif::add-copy-button-to-env-var[] ---|string -| +--|link:https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html[Duration] + link:#duration-note-anchor-{summaryTableId}[icon:question-circle[title=More information about the Duration format]] +|`30S` -a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-proxy-password]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-proxy-password[quarkus.sqs.sync-client.apache.proxy.password]` +a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-connection-timeout]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-connection-timeout[quarkus.sqs.async-client.connection-timeout]` [.description] -- -The password to use when connecting through a proxy. +The amount of time to wait when initially establishing a connection before giving up and timing out. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_APACHE_PROXY_PASSWORD+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_CONNECTION_TIMEOUT+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_APACHE_PROXY_PASSWORD+++` +Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_CONNECTION_TIMEOUT+++` endif::add-copy-button-to-env-var[] ---|string -| +--|link:https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html[Duration] + link:#duration-note-anchor-{summaryTableId}[icon:question-circle[title=More information about the Duration format]] +|`10S` -a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-proxy-ntlm-domain]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-proxy-ntlm-domain[quarkus.sqs.sync-client.apache.proxy.ntlm-domain]` +a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-connection-acquisition-timeout]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-connection-acquisition-timeout[quarkus.sqs.async-client.connection-acquisition-timeout]` [.description] -- -For NTLM proxies - the Windows domain name to use when authenticating with the proxy. +The amount of time to wait when acquiring a connection from the pool before giving up and timing out. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_APACHE_PROXY_NTLM_DOMAIN+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_CONNECTION_ACQUISITION_TIMEOUT+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_APACHE_PROXY_NTLM_DOMAIN+++` +Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_CONNECTION_ACQUISITION_TIMEOUT+++` endif::add-copy-button-to-env-var[] ---|string -| +--|link:https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html[Duration] + link:#duration-note-anchor-{summaryTableId}[icon:question-circle[title=More information about the Duration format]] +|`2S` -a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-proxy-ntlm-workstation]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-proxy-ntlm-workstation[quarkus.sqs.sync-client.apache.proxy.ntlm-workstation]` +a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-connection-time-to-live]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-connection-time-to-live[quarkus.sqs.async-client.connection-time-to-live]` [.description] -- -For NTLM proxies - the Windows workstation name to use when authenticating with the proxy. +The maximum amount of time that a connection should be allowed to remain open, regardless of usage frequency. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_APACHE_PROXY_NTLM_WORKSTATION+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_CONNECTION_TIME_TO_LIVE+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_APACHE_PROXY_NTLM_WORKSTATION+++` +Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_CONNECTION_TIME_TO_LIVE+++` endif::add-copy-button-to-env-var[] ---|string +--|link:https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html[Duration] + link:#duration-note-anchor-{summaryTableId}[icon:question-circle[title=More information about the Duration format]] | -a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-proxy-preemptive-basic-authentication-enabled]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-proxy-preemptive-basic-authentication-enabled[quarkus.sqs.sync-client.apache.proxy.preemptive-basic-authentication-enabled]` +a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-connection-max-idle-time]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-connection-max-idle-time[quarkus.sqs.async-client.connection-max-idle-time]` [.description] -- -Whether to attempt to authenticate preemptively against the proxy server using basic authentication. +The maximum amount of time that a connection should be allowed to remain open while idle. + +Currently has no effect if `quarkus..async-client.use-idle-connection-reaper` is false. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_APACHE_PROXY_PREEMPTIVE_BASIC_AUTHENTICATION_ENABLED+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_CONNECTION_MAX_IDLE_TIME+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_APACHE_PROXY_PREEMPTIVE_BASIC_AUTHENTICATION_ENABLED+++` +Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_CONNECTION_MAX_IDLE_TIME+++` endif::add-copy-button-to-env-var[] ---|boolean -| +--|link:https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html[Duration] + link:#duration-note-anchor-{summaryTableId}[icon:question-circle[title=More information about the Duration format]] +|`5S` -a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-proxy-non-proxy-hosts]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-apache-proxy-non-proxy-hosts[quarkus.sqs.sync-client.apache.proxy.non-proxy-hosts]` +a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-use-idle-connection-reaper]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-use-idle-connection-reaper[quarkus.sqs.async-client.use-idle-connection-reaper]` [.description] -- -The hosts that the client is allowed to access without going through the proxy. +Whether the idle connections in the connection pool should be closed. + +When enabled, connections left idling for longer than `quarkus..async-client.connection-max-idle-time` will be closed. This will not close connections currently in use. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_APACHE_PROXY_NON_PROXY_HOSTS+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_USE_IDLE_CONNECTION_REAPER+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_APACHE_PROXY_NON_PROXY_HOSTS+++` +Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_USE_IDLE_CONNECTION_REAPER+++` endif::add-copy-button-to-env-var[] ---|list of string -| - - -h|[[quarkus-amazon-sqs_quarkus-sqs-sync-client-crt-aws-crt-based-http-client-specific-configurations]]link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-crt-aws-crt-based-http-client-specific-configurations[AWS CRT-based HTTP client specific configurations] +--|boolean +|`true` -h|Type -h|Default -a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-crt-connection-max-idle-time]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-crt-connection-max-idle-time[quarkus.sqs.sync-client.crt.connection-max-idle-time]` +a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-tcp-keep-alive]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-tcp-keep-alive[quarkus.sqs.async-client.tcp-keep-alive]` [.description] -- -The maximum amount of time that a connection should be allowed to remain open while idle. +Configure whether to enable or disable TCP KeepAlive. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_CRT_CONNECTION_MAX_IDLE_TIME+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_TCP_KEEP_ALIVE+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_CRT_CONNECTION_MAX_IDLE_TIME+++` +Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_TCP_KEEP_ALIVE+++` endif::add-copy-button-to-env-var[] ---|link:https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html[Duration] - link:#duration-note-anchor-{summaryTableId}[icon:question-circle[title=More information about the Duration format]] -|`60S` +--|boolean +|`false` -a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-crt-max-concurrency]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-crt-max-concurrency[quarkus.sqs.sync-client.crt.max-concurrency]` +a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-protocol]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-protocol[quarkus.sqs.async-client.protocol]` [.description] -- -The maximum number of allowed concurrent requests. +The HTTP protocol to use. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_CRT_MAX_CONCURRENCY+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_PROTOCOL+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_CRT_MAX_CONCURRENCY+++` +Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_PROTOCOL+++` endif::add-copy-button-to-env-var[] ---|int -|`50` +-- a| +`http1-1`, `http2` +|`http1-1` -a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-crt-proxy-enabled]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-crt-proxy-enabled[quarkus.sqs.sync-client.crt.proxy.enabled]` +a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-ssl-provider]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-ssl-provider[quarkus.sqs.async-client.ssl-provider]` [.description] -- -Enable HTTP proxy +The SSL Provider to be used in the Netty client. + +Default is `OPENSSL` if available, `JDK` otherwise. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_CRT_PROXY_ENABLED+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_SSL_PROVIDER+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_CRT_PROXY_ENABLED+++` +Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_SSL_PROVIDER+++` endif::add-copy-button-to-env-var[] ---|boolean -|`false` +-- a| +`jdk`, `openssl`, `openssl-refcnt` +| -a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-crt-proxy-endpoint]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-crt-proxy-endpoint[quarkus.sqs.sync-client.crt.proxy.endpoint]` +a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-http2-max-streams]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-http2-max-streams[quarkus.sqs.async-client.http2.max-streams]` [.description] -- -The endpoint of the proxy server that the SDK should connect through. +The maximum number of concurrent streams for an HTTP/2 connection. -Currently, the endpoint is limited to a host and port. Any other URI components will result in an exception being raised. +This setting is only respected when the HTTP/2 protocol is used. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_CRT_PROXY_ENDPOINT+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_HTTP2_MAX_STREAMS+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_CRT_PROXY_ENDPOINT+++` +Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_HTTP2_MAX_STREAMS+++` endif::add-copy-button-to-env-var[] ---|link:https://docs.oracle.com/javase/8/docs/api/java/net/URI.html[URI] - -| +--|long +|`4294967295` -a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-crt-proxy-username]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-crt-proxy-username[quarkus.sqs.sync-client.crt.proxy.username]` +a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-http2-initial-window-size]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-http2-initial-window-size[quarkus.sqs.async-client.http2.initial-window-size]` [.description] -- -The username to use when connecting through a proxy. +The initial window size for an HTTP/2 stream. + +This setting is only respected when the HTTP/2 protocol is used. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_CRT_PROXY_USERNAME+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_HTTP2_INITIAL_WINDOW_SIZE+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_CRT_PROXY_USERNAME+++` +Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_HTTP2_INITIAL_WINDOW_SIZE+++` endif::add-copy-button-to-env-var[] ---|string -| +--|int +|`1048576` -a| [[quarkus-amazon-sqs_quarkus-sqs-sync-client-crt-proxy-password]]`link:#quarkus-amazon-sqs_quarkus-sqs-sync-client-crt-proxy-password[quarkus.sqs.sync-client.crt.proxy.password]` +a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-http2-health-check-ping-period]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-http2-health-check-ping-period[quarkus.sqs.async-client.http2.health-check-ping-period]` [.description] -- -The password to use when connecting through a proxy. +Sets the period that the Netty client will send `PING` frames to the remote endpoint to check the health of the connection. To disable this feature, set a duration of 0. + +This setting is only respected when the HTTP/2 protocol is used. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_SYNC_CLIENT_CRT_PROXY_PASSWORD+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_HTTP2_HEALTH_CHECK_PING_PERIOD+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_SYNC_CLIENT_CRT_PROXY_PASSWORD+++` +Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_HTTP2_HEALTH_CHECK_PING_PERIOD+++` endif::add-copy-button-to-env-var[] ---|string -| - - -h|[[quarkus-amazon-sqs_quarkus-sqs-async-client-async-http-transport-configurations]]link:#quarkus-amazon-sqs_quarkus-sqs-async-client-async-http-transport-configurations[Async HTTP transport configurations] +--|link:https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html[Duration] + link:#duration-note-anchor-{summaryTableId}[icon:question-circle[title=More information about the Duration format]] +|`5` -h|Type -h|Default -a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-max-concurrency]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-max-concurrency[quarkus.sqs.async-client.max-concurrency]` +a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-proxy-enabled]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-proxy-enabled[quarkus.sqs.async-client.proxy.enabled]` [.description] -- -The maximum number of allowed concurrent requests. - -For HTTP/1.1 this is the same as max connections. For HTTP/2 the number of connections that will be used depends on the max streams allowed per connection. +Enable HTTP proxy. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_MAX_CONCURRENCY+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_PROXY_ENABLED+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_MAX_CONCURRENCY+++` +Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_PROXY_ENABLED+++` endif::add-copy-button-to-env-var[] ---|int -|`50` +--|boolean +|`false` -a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-max-pending-connection-acquires]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-max-pending-connection-acquires[quarkus.sqs.async-client.max-pending-connection-acquires]` +a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-proxy-endpoint]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-proxy-endpoint[quarkus.sqs.async-client.proxy.endpoint]` [.description] -- -The maximum number of pending acquires allowed. +The endpoint of the proxy server that the SDK should connect through. -Once this exceeds, acquire tries will be failed. +Currently, the endpoint is limited to a host and port. Any other URI components will result in an exception being raised. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_MAX_PENDING_CONNECTION_ACQUIRES+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_PROXY_ENDPOINT+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_MAX_PENDING_CONNECTION_ACQUIRES+++` +Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_PROXY_ENDPOINT+++` endif::add-copy-button-to-env-var[] ---|int -|`10000` +--|link:https://docs.oracle.com/javase/8/docs/api/java/net/URI.html[URI] + +| -a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-read-timeout]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-read-timeout[quarkus.sqs.async-client.read-timeout]` +a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-proxy-non-proxy-hosts]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-proxy-non-proxy-hosts[quarkus.sqs.async-client.proxy.non-proxy-hosts]` [.description] -- -The amount of time to wait for a read on a socket before an exception is thrown. - -Specify `0` to disable. +The hosts that the client is allowed to access without going through the proxy. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_READ_TIMEOUT+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_PROXY_NON_PROXY_HOSTS+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_READ_TIMEOUT+++` +Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_PROXY_NON_PROXY_HOSTS+++` endif::add-copy-button-to-env-var[] ---|link:https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html[Duration] - link:#duration-note-anchor-{summaryTableId}[icon:question-circle[title=More information about the Duration format]] -|`30S` +--|list of string +| -a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-write-timeout]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-write-timeout[quarkus.sqs.async-client.write-timeout]` +a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-tls-key-managers-provider-type]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-tls-key-managers-provider-type[quarkus.sqs.async-client.tls-key-managers-provider.type]` [.description] -- -The amount of time to wait for a write on a socket before an exception is thrown. +TLS key managers provider type. -Specify `0` to disable. +Available providers: + +* `none` - Use this provider if you don't want the client to present any certificates to the remote TLS host. +* `system-property` - Provider checks the standard `javax.net.ssl.keyStore`, `javax.net.ssl.keyStorePassword`, and + `javax.net.ssl.keyStoreType` properties defined by the + https://docs.oracle.com/javase/8/docs/technotes/guides/security/jsse/JSSERefGuide.html[JSSE]. +* `file-store` - Provider that loads the key store from a file. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_WRITE_TIMEOUT+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_TLS_KEY_MANAGERS_PROVIDER_TYPE+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_WRITE_TIMEOUT+++` +Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_TLS_KEY_MANAGERS_PROVIDER_TYPE+++` endif::add-copy-button-to-env-var[] ---|link:https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html[Duration] - link:#duration-note-anchor-{summaryTableId}[icon:question-circle[title=More information about the Duration format]] -|`30S` +-- a| +`none`, `system-property`, `file-store` +|`system-property` -a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-connection-timeout]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-connection-timeout[quarkus.sqs.async-client.connection-timeout]` +a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-tls-key-managers-provider-file-store-path]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-tls-key-managers-provider-file-store-path[quarkus.sqs.async-client.tls-key-managers-provider.file-store.path]` [.description] -- -The amount of time to wait when initially establishing a connection before giving up and timing out. +Path to the key store. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_CONNECTION_TIMEOUT+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_TLS_KEY_MANAGERS_PROVIDER_FILE_STORE_PATH+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_CONNECTION_TIMEOUT+++` +Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_TLS_KEY_MANAGERS_PROVIDER_FILE_STORE_PATH+++` endif::add-copy-button-to-env-var[] ---|link:https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html[Duration] - link:#duration-note-anchor-{summaryTableId}[icon:question-circle[title=More information about the Duration format]] -|`10S` +--|path +| -a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-connection-acquisition-timeout]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-connection-acquisition-timeout[quarkus.sqs.async-client.connection-acquisition-timeout]` +a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-tls-key-managers-provider-file-store-type]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-tls-key-managers-provider-file-store-type[quarkus.sqs.async-client.tls-key-managers-provider.file-store.type]` [.description] -- -The amount of time to wait when acquiring a connection from the pool before giving up and timing out. +Key store type. + +See the KeyStore section in the https://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html++#++KeyStore++[++Java Cryptography Architecture Standard Algorithm Name Documentation++]++ for information about standard keystore types. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_CONNECTION_ACQUISITION_TIMEOUT+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_TLS_KEY_MANAGERS_PROVIDER_FILE_STORE_TYPE+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_CONNECTION_ACQUISITION_TIMEOUT+++` +Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_TLS_KEY_MANAGERS_PROVIDER_FILE_STORE_TYPE+++` endif::add-copy-button-to-env-var[] ---|link:https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html[Duration] - link:#duration-note-anchor-{summaryTableId}[icon:question-circle[title=More information about the Duration format]] -|`2S` +--|string +| -a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-connection-time-to-live]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-connection-time-to-live[quarkus.sqs.async-client.connection-time-to-live]` +a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-tls-key-managers-provider-file-store-password]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-tls-key-managers-provider-file-store-password[quarkus.sqs.async-client.tls-key-managers-provider.file-store.password]` [.description] -- -The maximum amount of time that a connection should be allowed to remain open, regardless of usage frequency. +Key store password ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_CONNECTION_TIME_TO_LIVE+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_TLS_KEY_MANAGERS_PROVIDER_FILE_STORE_PASSWORD+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_CONNECTION_TIME_TO_LIVE+++` +Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_TLS_KEY_MANAGERS_PROVIDER_FILE_STORE_PASSWORD+++` endif::add-copy-button-to-env-var[] ---|link:https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html[Duration] - link:#duration-note-anchor-{summaryTableId}[icon:question-circle[title=More information about the Duration format]] +--|string | -a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-connection-max-idle-time]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-connection-max-idle-time[quarkus.sqs.async-client.connection-max-idle-time]` +a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-tls-trust-managers-provider-type]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-tls-trust-managers-provider-type[quarkus.sqs.async-client.tls-trust-managers-provider.type]` [.description] -- -The maximum amount of time that a connection should be allowed to remain open while idle. +TLS trust managers provider type. -Currently has no effect if `quarkus..async-client.use-idle-connection-reaper` is false. +Available providers: + +* `trust-all` - Use this provider to disable the validation of servers certificates and therefore trust all server certificates. +* `system-property` - Provider checks the standard `javax.net.ssl.keyStore`, `javax.net.ssl.keyStorePassword`, and + `javax.net.ssl.keyStoreType` properties defined by the + https://docs.oracle.com/javase/8/docs/technotes/guides/security/jsse/JSSERefGuide.html[JSSE]. +* `file-store` - Provider that loads the key store from a file. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_CONNECTION_MAX_IDLE_TIME+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_TLS_TRUST_MANAGERS_PROVIDER_TYPE+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_CONNECTION_MAX_IDLE_TIME+++` +Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_TLS_TRUST_MANAGERS_PROVIDER_TYPE+++` endif::add-copy-button-to-env-var[] ---|link:https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html[Duration] - link:#duration-note-anchor-{summaryTableId}[icon:question-circle[title=More information about the Duration format]] -|`5S` +-- a| +`trust-all`, `system-property`, `file-store` +|`system-property` -a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-use-idle-connection-reaper]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-use-idle-connection-reaper[quarkus.sqs.async-client.use-idle-connection-reaper]` +a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-tls-trust-managers-provider-file-store-path]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-tls-trust-managers-provider-file-store-path[quarkus.sqs.async-client.tls-trust-managers-provider.file-store.path]` [.description] -- -Whether the idle connections in the connection pool should be closed. - -When enabled, connections left idling for longer than `quarkus..async-client.connection-max-idle-time` will be closed. This will not close connections currently in use. +Path to the key store. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_USE_IDLE_CONNECTION_REAPER+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_TLS_TRUST_MANAGERS_PROVIDER_FILE_STORE_PATH+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_USE_IDLE_CONNECTION_REAPER+++` +Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_TLS_TRUST_MANAGERS_PROVIDER_FILE_STORE_PATH+++` endif::add-copy-button-to-env-var[] ---|boolean -|`true` +--|path +| -a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-tcp-keep-alive]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-tcp-keep-alive[quarkus.sqs.async-client.tcp-keep-alive]` +a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-tls-trust-managers-provider-file-store-type]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-tls-trust-managers-provider-file-store-type[quarkus.sqs.async-client.tls-trust-managers-provider.file-store.type]` [.description] -- -Configure whether to enable or disable TCP KeepAlive. +Key store type. + +See the KeyStore section in the https://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html++#++KeyStore++[++Java Cryptography Architecture Standard Algorithm Name Documentation++]++ for information about standard keystore types. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_TCP_KEEP_ALIVE+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_TLS_TRUST_MANAGERS_PROVIDER_FILE_STORE_TYPE+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_TCP_KEEP_ALIVE+++` +Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_TLS_TRUST_MANAGERS_PROVIDER_FILE_STORE_TYPE+++` endif::add-copy-button-to-env-var[] ---|boolean -|`false` +--|string +| -a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-protocol]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-protocol[quarkus.sqs.async-client.protocol]` +a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-tls-trust-managers-provider-file-store-password]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-tls-trust-managers-provider-file-store-password[quarkus.sqs.async-client.tls-trust-managers-provider.file-store.password]` [.description] -- -The HTTP protocol to use. +Key store password ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_PROTOCOL+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_TLS_TRUST_MANAGERS_PROVIDER_FILE_STORE_PASSWORD+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_PROTOCOL+++` +Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_TLS_TRUST_MANAGERS_PROVIDER_FILE_STORE_PASSWORD+++` endif::add-copy-button-to-env-var[] --- a| -`http1-1`, `http2` -|`http1-1` +--|string +| -a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-ssl-provider]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-ssl-provider[quarkus.sqs.async-client.ssl-provider]` +a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-event-loop-override]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-event-loop-override[quarkus.sqs.async-client.event-loop.override]` [.description] -- -The SSL Provider to be used in the Netty client. - -Default is `OPENSSL` if available, `JDK` otherwise. +Enable the custom configuration of the Netty event loop group. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_SSL_PROVIDER+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_EVENT_LOOP_OVERRIDE+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_SSL_PROVIDER+++` +Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_EVENT_LOOP_OVERRIDE+++` endif::add-copy-button-to-env-var[] --- a| -`jdk`, `openssl`, `openssl-refcnt` -| +--|boolean +|`false` -a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-http2-max-streams]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-http2-max-streams[quarkus.sqs.async-client.http2.max-streams]` +a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-event-loop-number-of-threads]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-event-loop-number-of-threads[quarkus.sqs.async-client.event-loop.number-of-threads]` [.description] -- -The maximum number of concurrent streams for an HTTP/2 connection. +Number of threads to use for the event loop group. -This setting is only respected when the HTTP/2 protocol is used. +If not set, the default Netty thread count is used (which is double the number of available processors unless the `io.netty.eventLoopThreads` system property is set. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_HTTP2_MAX_STREAMS+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_EVENT_LOOP_NUMBER_OF_THREADS+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_HTTP2_MAX_STREAMS+++` +Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_EVENT_LOOP_NUMBER_OF_THREADS+++` endif::add-copy-button-to-env-var[] ---|long -|`4294967295` +--|int +| -a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-http2-initial-window-size]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-http2-initial-window-size[quarkus.sqs.async-client.http2.initial-window-size]` +a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-event-loop-thread-name-prefix]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-event-loop-thread-name-prefix[quarkus.sqs.async-client.event-loop.thread-name-prefix]` [.description] -- -The initial window size for an HTTP/2 stream. +The thread name prefix for threads created by this thread factory used by event loop group. -This setting is only respected when the HTTP/2 protocol is used. +The prefix will be appended with a number unique to the thread factory and a number unique to the thread. + +If not specified it defaults to `aws-java-sdk-NettyEventLoop` ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_HTTP2_INITIAL_WINDOW_SIZE+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_EVENT_LOOP_THREAD_NAME_PREFIX+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_HTTP2_INITIAL_WINDOW_SIZE+++` +Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_EVENT_LOOP_THREAD_NAME_PREFIX+++` endif::add-copy-button-to-env-var[] ---|int -|`1048576` +--|string +| -a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-http2-health-check-ping-period]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-http2-health-check-ping-period[quarkus.sqs.async-client.http2.health-check-ping-period]` +a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-advanced-use-future-completion-thread-pool]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-advanced-use-future-completion-thread-pool[quarkus.sqs.async-client.advanced.use-future-completion-thread-pool]` [.description] -- -Sets the period that the Netty client will send `PING` frames to the remote endpoint to check the health of the connection. To disable this feature, set a duration of 0. +Whether the default thread pool should be used to complete the futures returned from the HTTP client request. -This setting is only respected when the HTTP/2 protocol is used. +When disabled, futures will be completed on the Netty event loop thread. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_HTTP2_HEALTH_CHECK_PING_PERIOD+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_ADVANCED_USE_FUTURE_COMPLETION_THREAD_POOL+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_HTTP2_HEALTH_CHECK_PING_PERIOD+++` +Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_ADVANCED_USE_FUTURE_COMPLETION_THREAD_POOL+++` endif::add-copy-button-to-env-var[] ---|link:https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html[Duration] - link:#duration-note-anchor-{summaryTableId}[icon:question-circle[title=More information about the Duration format]] -|`5` +--|boolean +|`true` -a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-proxy-enabled]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-proxy-enabled[quarkus.sqs.async-client.proxy.enabled]` +h|[[quarkus-amazon-sqs_quarkus-sqs-sdk-aws-sdk-client-configurations]]link:#quarkus-amazon-sqs_quarkus-sqs-sdk-aws-sdk-client-configurations[AWS SDK client configurations] + +h|Type +h|Default + +a| [[quarkus-amazon-sqs_quarkus-sqs-endpoint-override]]`link:#quarkus-amazon-sqs_quarkus-sqs-endpoint-override[quarkus.sqs.endpoint-override]` + +`link:#quarkus-amazon-sqs_quarkus-sqs-endpoint-override[quarkus.sqs."client-name".endpoint-override]` [.description] -- -Enable HTTP proxy. +The endpoint URI with which the SDK should communicate. + +If not specified, an appropriate endpoint to be used for the given service and region. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_PROXY_ENABLED+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ENDPOINT_OVERRIDE+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_PROXY_ENABLED+++` +Environment variable: `+++QUARKUS_SQS_ENDPOINT_OVERRIDE+++` endif::add-copy-button-to-env-var[] ---|boolean -|`false` +--|link:https://docs.oracle.com/javase/8/docs/api/java/net/URI.html[URI] + +| -a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-proxy-endpoint]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-proxy-endpoint[quarkus.sqs.async-client.proxy.endpoint]` +a| [[quarkus-amazon-sqs_quarkus-sqs-api-call-timeout]]`link:#quarkus-amazon-sqs_quarkus-sqs-api-call-timeout[quarkus.sqs.api-call-timeout]` + +`link:#quarkus-amazon-sqs_quarkus-sqs-api-call-timeout[quarkus.sqs."client-name".api-call-timeout]` [.description] -- -The endpoint of the proxy server that the SDK should connect through. +The amount of time to allow the client to complete the execution of an API call. -Currently, the endpoint is limited to a host and port. Any other URI components will result in an exception being raised. +This timeout covers the entire client execution except for marshalling. This includes request handler execution, all HTTP requests including retries, unmarshalling, etc. + +This value should always be positive, if present. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_PROXY_ENDPOINT+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_API_CALL_TIMEOUT+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_PROXY_ENDPOINT+++` +Environment variable: `+++QUARKUS_SQS_API_CALL_TIMEOUT+++` endif::add-copy-button-to-env-var[] ---|link:https://docs.oracle.com/javase/8/docs/api/java/net/URI.html[URI] - +--|link:https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html[Duration] + link:#duration-note-anchor-{summaryTableId}[icon:question-circle[title=More information about the Duration format]] | -a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-proxy-non-proxy-hosts]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-proxy-non-proxy-hosts[quarkus.sqs.async-client.proxy.non-proxy-hosts]` +a| [[quarkus-amazon-sqs_quarkus-sqs-api-call-attempt-timeout]]`link:#quarkus-amazon-sqs_quarkus-sqs-api-call-attempt-timeout[quarkus.sqs.api-call-attempt-timeout]` + +`link:#quarkus-amazon-sqs_quarkus-sqs-api-call-attempt-timeout[quarkus.sqs."client-name".api-call-attempt-timeout]` [.description] -- -The hosts that the client is allowed to access without going through the proxy. +The amount of time to wait for the HTTP request to complete before giving up and timing out. + +This value should always be positive, if present. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_PROXY_NON_PROXY_HOSTS+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_API_CALL_ATTEMPT_TIMEOUT+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_PROXY_NON_PROXY_HOSTS+++` +Environment variable: `+++QUARKUS_SQS_API_CALL_ATTEMPT_TIMEOUT+++` endif::add-copy-button-to-env-var[] ---|list of string +--|link:https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html[Duration] + link:#duration-note-anchor-{summaryTableId}[icon:question-circle[title=More information about the Duration format]] | -a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-tls-key-managers-provider-type]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-tls-key-managers-provider-type[quarkus.sqs.async-client.tls-key-managers-provider.type]` +a| [[quarkus-amazon-sqs_quarkus-sqs-advanced-use-quarkus-scheduled-executor-service]]`link:#quarkus-amazon-sqs_quarkus-sqs-advanced-use-quarkus-scheduled-executor-service[quarkus.sqs.advanced.use-quarkus-scheduled-executor-service]` + +`link:#quarkus-amazon-sqs_quarkus-sqs-advanced-use-quarkus-scheduled-executor-service[quarkus.sqs."client-name".advanced.use-quarkus-scheduled-executor-service]` [.description] -- -TLS key managers provider type. - -Available providers: +Whether the Quarkus thread pool should be used for scheduling tasks such as async retry attempts and timeout task. -* `none` - Use this provider if you don't want the client to present any certificates to the remote TLS host. -* `system-property` - Provider checks the standard `javax.net.ssl.keyStore`, `javax.net.ssl.keyStorePassword`, and - `javax.net.ssl.keyStoreType` properties defined by the - https://docs.oracle.com/javase/8/docs/technotes/guides/security/jsse/JSSERefGuide.html[JSSE]. -* `file-store` - Provider that loads the key store from a file. +When disabled, the default sdk behavior is to create a dedicated thread pool for each client, resulting in competition for CPU resources among these thread pools. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_TLS_KEY_MANAGERS_PROVIDER_TYPE+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ADVANCED_USE_QUARKUS_SCHEDULED_EXECUTOR_SERVICE+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_TLS_KEY_MANAGERS_PROVIDER_TYPE+++` +Environment variable: `+++QUARKUS_SQS_ADVANCED_USE_QUARKUS_SCHEDULED_EXECUTOR_SERVICE+++` endif::add-copy-button-to-env-var[] --- a| -`none`, `system-property`, `file-store` -|`system-property` +--|boolean +|`true` -a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-tls-key-managers-provider-file-store-path]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-tls-key-managers-provider-file-store-path[quarkus.sqs.async-client.tls-key-managers-provider.file-store.path]` +h|[[quarkus-amazon-sqs_quarkus-sqs-aws-aws-services-configurations]]link:#quarkus-amazon-sqs_quarkus-sqs-aws-aws-services-configurations[AWS services configurations] + +h|Type +h|Default + +a| [[quarkus-amazon-sqs_quarkus-sqs-aws-region]]`link:#quarkus-amazon-sqs_quarkus-sqs-aws-region[quarkus.sqs.aws.region]` + +`link:#quarkus-amazon-sqs_quarkus-sqs-aws-region[quarkus.sqs."client-name".aws.region]` [.description] -- -Path to the key store. +An Amazon Web Services region that hosts the given service. + +It overrides region provider chain with static value of +region with which the service client should communicate. + +If not set, region is retrieved via the default providers chain in the following order: + +* `aws.region` system property +* `region` property from the profile file +* Instance profile file + +See `software.amazon.awssdk.regions.Region` for available regions. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_TLS_KEY_MANAGERS_PROVIDER_FILE_STORE_PATH+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_AWS_REGION+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_TLS_KEY_MANAGERS_PROVIDER_FILE_STORE_PATH+++` +Environment variable: `+++QUARKUS_SQS_AWS_REGION+++` endif::add-copy-button-to-env-var[] ---|path +--|Region | -a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-tls-key-managers-provider-file-store-type]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-tls-key-managers-provider-file-store-type[quarkus.sqs.async-client.tls-key-managers-provider.file-store.type]` +a| [[quarkus-amazon-sqs_quarkus-sqs-aws-credentials-type]]`link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-type[quarkus.sqs.aws.credentials.type]` + +`link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-type[quarkus.sqs."client-name".aws.credentials.type]` [.description] -- -Key store type. +Configure the credentials provider that should be used to authenticate with AWS. -See the KeyStore section in the https://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html++#++KeyStore++[++Java Cryptography Architecture Standard Algorithm Name Documentation++]++ for information about standard keystore types. +Available values: + +* `default` - the provider will attempt to identify the credentials automatically using the following checks: +** Java System Properties - `aws.accessKeyId` and `aws.secretAccessKey` +** Environment Variables - `AWS_ACCESS_KEY_ID` and `AWS_SECRET_ACCESS_KEY` +** Credential profiles file at the default location (`~/.aws/credentials`) shared by all AWS SDKs and the AWS CLI +** Credentials delivered through the Amazon EC2 container service if `AWS_CONTAINER_CREDENTIALS_RELATIVE_URI` environment variable is set and security manager has permission to access the variable. +** Instance profile credentials delivered through the Amazon EC2 metadata service +* `static` - the provider that uses the access key and secret access key specified in the `static-provider` section of the config. +* `system-property` - it loads credentials from the `aws.accessKeyId`, `aws.secretAccessKey` and `aws.sessionToken` system properties. +* `env-variable` - it loads credentials from the `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY` and `AWS_SESSION_TOKEN` environment variables. +* `profile` - credentials are based on AWS configuration profiles. This loads credentials from + a http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html[profile file], + allowing you to share multiple sets of AWS security credentials between different tools like the AWS SDK for Java and the AWS CLI. +* `container` - It loads credentials from a local metadata service. Containers currently supported by the AWS SDK are + **Amazon Elastic Container Service (ECS)** and **AWS Greengrass** +* `instance-profile` - It loads credentials from the Amazon EC2 Instance Metadata Service. +* `process` - Credentials are loaded from an external process. This is used to support the credential_process setting in the profile + credentials file. See https://docs.aws.amazon.com/cli/latest/topic/config-vars.html#sourcing-credentials-from-external-processes[Sourcing Credentials From External Processes] + for more information. +* `anonymous` - It always returns anonymous AWS credentials. Anonymous AWS credentials result in un-authenticated requests and will + fail unless the resource or API's policy has been configured to specifically allow anonymous access. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_TLS_KEY_MANAGERS_PROVIDER_FILE_STORE_TYPE+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_AWS_CREDENTIALS_TYPE+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_TLS_KEY_MANAGERS_PROVIDER_FILE_STORE_TYPE+++` +Environment variable: `+++QUARKUS_SQS_AWS_CREDENTIALS_TYPE+++` endif::add-copy-button-to-env-var[] ---|string -| +-- a| +`default`, `static`, `system-property`, `env-variable`, `profile`, `container`, `instance-profile`, `process`, `custom`, `anonymous` +|`default` -a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-tls-key-managers-provider-file-store-password]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-tls-key-managers-provider-file-store-password[quarkus.sqs.async-client.tls-key-managers-provider.file-store.password]` +h|[[quarkus-amazon-sqs_quarkus-sqs-aws-credentials-default-provider-default-credentials-provider-configuration]]link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-default-provider-default-credentials-provider-configuration[Default credentials provider configuration] + +h|Type +h|Default + +a| [[quarkus-amazon-sqs_quarkus-sqs-aws-credentials-default-provider-async-credential-update-enabled]]`link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-default-provider-async-credential-update-enabled[quarkus.sqs.aws.credentials.default-provider.async-credential-update-enabled]` + +`link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-default-provider-async-credential-update-enabled[quarkus.sqs."client-name".aws.credentials.default-provider.async-credential-update-enabled]` [.description] -- -Key store password +Whether this provider should fetch credentials asynchronously in the background. + +If this is `true`, threads are less likely to block, but additional resources are used to maintain the provider. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_TLS_KEY_MANAGERS_PROVIDER_FILE_STORE_PASSWORD+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_AWS_CREDENTIALS_DEFAULT_PROVIDER_ASYNC_CREDENTIAL_UPDATE_ENABLED+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_TLS_KEY_MANAGERS_PROVIDER_FILE_STORE_PASSWORD+++` +Environment variable: `+++QUARKUS_SQS_AWS_CREDENTIALS_DEFAULT_PROVIDER_ASYNC_CREDENTIAL_UPDATE_ENABLED+++` endif::add-copy-button-to-env-var[] ---|string -| +--|boolean +|`false` -a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-tls-trust-managers-provider-type]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-tls-trust-managers-provider-type[quarkus.sqs.async-client.tls-trust-managers-provider.type]` +a| [[quarkus-amazon-sqs_quarkus-sqs-aws-credentials-default-provider-reuse-last-provider-enabled]]`link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-default-provider-reuse-last-provider-enabled[quarkus.sqs.aws.credentials.default-provider.reuse-last-provider-enabled]` + +`link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-default-provider-reuse-last-provider-enabled[quarkus.sqs."client-name".aws.credentials.default-provider.reuse-last-provider-enabled]` [.description] -- -TLS trust managers provider type. - -Available providers: +Whether the provider should reuse the last successful credentials provider in the chain. -* `trust-all` - Use this provider to disable the validation of servers certificates and therefore trust all server certificates. -* `system-property` - Provider checks the standard `javax.net.ssl.keyStore`, `javax.net.ssl.keyStorePassword`, and - `javax.net.ssl.keyStoreType` properties defined by the - https://docs.oracle.com/javase/8/docs/technotes/guides/security/jsse/JSSERefGuide.html[JSSE]. -* `file-store` - Provider that loads the key store from a file. +Reusing the last successful credentials provider will typically return credentials faster than searching through the chain. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_TLS_TRUST_MANAGERS_PROVIDER_TYPE+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_AWS_CREDENTIALS_DEFAULT_PROVIDER_REUSE_LAST_PROVIDER_ENABLED+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_TLS_TRUST_MANAGERS_PROVIDER_TYPE+++` +Environment variable: `+++QUARKUS_SQS_AWS_CREDENTIALS_DEFAULT_PROVIDER_REUSE_LAST_PROVIDER_ENABLED+++` endif::add-copy-button-to-env-var[] --- a| -`trust-all`, `system-property`, `file-store` -|`system-property` +--|boolean +|`true` -a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-tls-trust-managers-provider-file-store-path]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-tls-trust-managers-provider-file-store-path[quarkus.sqs.async-client.tls-trust-managers-provider.file-store.path]` +h|[[quarkus-amazon-sqs_quarkus-sqs-aws-credentials-static-provider-static-credentials-provider-configuration]]link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-static-provider-static-credentials-provider-configuration[Static credentials provider configuration] + +h|Type +h|Default + +a| [[quarkus-amazon-sqs_quarkus-sqs-aws-credentials-static-provider-access-key-id]]`link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-static-provider-access-key-id[quarkus.sqs.aws.credentials.static-provider.access-key-id]` + +`link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-static-provider-access-key-id[quarkus.sqs."client-name".aws.credentials.static-provider.access-key-id]` [.description] -- -Path to the key store. +AWS Access key id ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_TLS_TRUST_MANAGERS_PROVIDER_FILE_STORE_PATH+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_AWS_CREDENTIALS_STATIC_PROVIDER_ACCESS_KEY_ID+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_TLS_TRUST_MANAGERS_PROVIDER_FILE_STORE_PATH+++` +Environment variable: `+++QUARKUS_SQS_AWS_CREDENTIALS_STATIC_PROVIDER_ACCESS_KEY_ID+++` endif::add-copy-button-to-env-var[] ---|path +--|string | -a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-tls-trust-managers-provider-file-store-type]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-tls-trust-managers-provider-file-store-type[quarkus.sqs.async-client.tls-trust-managers-provider.file-store.type]` +a| [[quarkus-amazon-sqs_quarkus-sqs-aws-credentials-static-provider-secret-access-key]]`link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-static-provider-secret-access-key[quarkus.sqs.aws.credentials.static-provider.secret-access-key]` + +`link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-static-provider-secret-access-key[quarkus.sqs."client-name".aws.credentials.static-provider.secret-access-key]` [.description] -- -Key store type. +AWS Secret access key -See the KeyStore section in the https://docs.oracle.com/javase/8/docs/technotes/guides/security/StandardNames.html++#++KeyStore++[++Java Cryptography Architecture Standard Algorithm Name Documentation++]++ for information about standard keystore types. +ifdef::add-copy-button-to-env-var[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_AWS_CREDENTIALS_STATIC_PROVIDER_SECRET_ACCESS_KEY+++[] +endif::add-copy-button-to-env-var[] +ifndef::add-copy-button-to-env-var[] +Environment variable: `+++QUARKUS_SQS_AWS_CREDENTIALS_STATIC_PROVIDER_SECRET_ACCESS_KEY+++` +endif::add-copy-button-to-env-var[] +--|string +| + + +a| [[quarkus-amazon-sqs_quarkus-sqs-aws-credentials-static-provider-session-token]]`link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-static-provider-session-token[quarkus.sqs.aws.credentials.static-provider.session-token]` + +`link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-static-provider-session-token[quarkus.sqs."client-name".aws.credentials.static-provider.session-token]` + + +[.description] +-- +AWS Session token ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_TLS_TRUST_MANAGERS_PROVIDER_FILE_STORE_TYPE+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_AWS_CREDENTIALS_STATIC_PROVIDER_SESSION_TOKEN+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_TLS_TRUST_MANAGERS_PROVIDER_FILE_STORE_TYPE+++` +Environment variable: `+++QUARKUS_SQS_AWS_CREDENTIALS_STATIC_PROVIDER_SESSION_TOKEN+++` endif::add-copy-button-to-env-var[] --|string | -a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-tls-trust-managers-provider-file-store-password]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-tls-trust-managers-provider-file-store-password[quarkus.sqs.async-client.tls-trust-managers-provider.file-store.password]` +h|[[quarkus-amazon-sqs_quarkus-sqs-aws-credentials-profile-provider-aws-profile-credentials-provider-configuration]]link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-profile-provider-aws-profile-credentials-provider-configuration[AWS Profile credentials provider configuration] + +h|Type +h|Default + +a| [[quarkus-amazon-sqs_quarkus-sqs-aws-credentials-profile-provider-profile-name]]`link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-profile-provider-profile-name[quarkus.sqs.aws.credentials.profile-provider.profile-name]` + +`link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-profile-provider-profile-name[quarkus.sqs."client-name".aws.credentials.profile-provider.profile-name]` [.description] -- -Key store password +The name of the profile that should be used by this credentials provider. + +If not specified, the value in `AWS_PROFILE` environment variable or `aws.profile` system property is used and defaults to `default` name. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_TLS_TRUST_MANAGERS_PROVIDER_FILE_STORE_PASSWORD+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_AWS_CREDENTIALS_PROFILE_PROVIDER_PROFILE_NAME+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_TLS_TRUST_MANAGERS_PROVIDER_FILE_STORE_PASSWORD+++` +Environment variable: `+++QUARKUS_SQS_AWS_CREDENTIALS_PROFILE_PROVIDER_PROFILE_NAME+++` endif::add-copy-button-to-env-var[] --|string | -a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-event-loop-override]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-event-loop-override[quarkus.sqs.async-client.event-loop.override]` +h|[[quarkus-amazon-sqs_quarkus-sqs-aws-credentials-process-provider-process-credentials-provider-configuration]]link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-process-provider-process-credentials-provider-configuration[Process credentials provider configuration] + +h|Type +h|Default + +a| [[quarkus-amazon-sqs_quarkus-sqs-aws-credentials-process-provider-async-credential-update-enabled]]`link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-process-provider-async-credential-update-enabled[quarkus.sqs.aws.credentials.process-provider.async-credential-update-enabled]` + +`link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-process-provider-async-credential-update-enabled[quarkus.sqs."client-name".aws.credentials.process-provider.async-credential-update-enabled]` [.description] -- -Enable the custom configuration of the Netty event loop group. +Whether the provider should fetch credentials asynchronously in the background. + +If this is true, threads are less likely to block when credentials are loaded, but additional resources are used to maintain the provider. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_EVENT_LOOP_OVERRIDE+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_AWS_CREDENTIALS_PROCESS_PROVIDER_ASYNC_CREDENTIAL_UPDATE_ENABLED+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_EVENT_LOOP_OVERRIDE+++` +Environment variable: `+++QUARKUS_SQS_AWS_CREDENTIALS_PROCESS_PROVIDER_ASYNC_CREDENTIAL_UPDATE_ENABLED+++` endif::add-copy-button-to-env-var[] --|boolean |`false` -a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-event-loop-number-of-threads]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-event-loop-number-of-threads[quarkus.sqs.async-client.event-loop.number-of-threads]` +a| [[quarkus-amazon-sqs_quarkus-sqs-aws-credentials-process-provider-credential-refresh-threshold]]`link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-process-provider-credential-refresh-threshold[quarkus.sqs.aws.credentials.process-provider.credential-refresh-threshold]` + +`link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-process-provider-credential-refresh-threshold[quarkus.sqs."client-name".aws.credentials.process-provider.credential-refresh-threshold]` [.description] -- -Number of threads to use for the event loop group. +The amount of time between when the credentials expire and when the credentials should start to be refreshed. -If not set, the default Netty thread count is used (which is double the number of available processors unless the `io.netty.eventLoopThreads` system property is set. +This allows the credentials to be refreshed ++*++before++*++ they are reported to expire. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_EVENT_LOOP_NUMBER_OF_THREADS+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_AWS_CREDENTIALS_PROCESS_PROVIDER_CREDENTIAL_REFRESH_THRESHOLD+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_EVENT_LOOP_NUMBER_OF_THREADS+++` +Environment variable: `+++QUARKUS_SQS_AWS_CREDENTIALS_PROCESS_PROVIDER_CREDENTIAL_REFRESH_THRESHOLD+++` endif::add-copy-button-to-env-var[] ---|int -| +--|link:https://docs.oracle.com/javase/8/docs/api/java/time/Duration.html[Duration] + link:#duration-note-anchor-{summaryTableId}[icon:question-circle[title=More information about the Duration format]] +|`15S` -a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-event-loop-thread-name-prefix]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-event-loop-thread-name-prefix[quarkus.sqs.async-client.event-loop.thread-name-prefix]` +a| [[quarkus-amazon-sqs_quarkus-sqs-aws-credentials-process-provider-process-output-limit]]`link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-process-provider-process-output-limit[quarkus.sqs.aws.credentials.process-provider.process-output-limit]` + +`link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-process-provider-process-output-limit[quarkus.sqs."client-name".aws.credentials.process-provider.process-output-limit]` [.description] -- -The thread name prefix for threads created by this thread factory used by event loop group. +The maximum size of the output that can be returned by the external process before an exception is raised. -The prefix will be appended with a number unique to the thread factory and a number unique to the thread. +ifdef::add-copy-button-to-env-var[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_AWS_CREDENTIALS_PROCESS_PROVIDER_PROCESS_OUTPUT_LIMIT+++[] +endif::add-copy-button-to-env-var[] +ifndef::add-copy-button-to-env-var[] +Environment variable: `+++QUARKUS_SQS_AWS_CREDENTIALS_PROCESS_PROVIDER_PROCESS_OUTPUT_LIMIT+++` +endif::add-copy-button-to-env-var[] +--|MemorySize link:#memory-size-note-anchor[icon:question-circle[title=More information about the MemorySize format]] +|`1024` -If not specified it defaults to `aws-java-sdk-NettyEventLoop` + +a| [[quarkus-amazon-sqs_quarkus-sqs-aws-credentials-process-provider-command]]`link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-process-provider-command[quarkus.sqs.aws.credentials.process-provider.command]` + +`link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-process-provider-command[quarkus.sqs."client-name".aws.credentials.process-provider.command]` + + +[.description] +-- +The command that should be executed to retrieve credentials. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_EVENT_LOOP_THREAD_NAME_PREFIX+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_AWS_CREDENTIALS_PROCESS_PROVIDER_COMMAND+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_EVENT_LOOP_THREAD_NAME_PREFIX+++` +Environment variable: `+++QUARKUS_SQS_AWS_CREDENTIALS_PROCESS_PROVIDER_COMMAND+++` endif::add-copy-button-to-env-var[] --|string | -a| [[quarkus-amazon-sqs_quarkus-sqs-async-client-advanced-use-future-completion-thread-pool]]`link:#quarkus-amazon-sqs_quarkus-sqs-async-client-advanced-use-future-completion-thread-pool[quarkus.sqs.async-client.advanced.use-future-completion-thread-pool]` +h|[[quarkus-amazon-sqs_quarkus-sqs-aws-credentials-custom-provider-custom-credentials-provider-configuration]]link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-custom-provider-custom-credentials-provider-configuration[Custom credentials provider configuration] + +h|Type +h|Default + +a| [[quarkus-amazon-sqs_quarkus-sqs-aws-credentials-custom-provider-name]]`link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-custom-provider-name[quarkus.sqs.aws.credentials.custom-provider.name]` + +`link:#quarkus-amazon-sqs_quarkus-sqs-aws-credentials-custom-provider-name[quarkus.sqs."client-name".aws.credentials.custom-provider.name]` [.description] -- -Whether the default thread pool should be used to complete the futures returned from the HTTP client request. - -When disabled, futures will be completed on the Netty event loop thread. +The name of custom AwsCredentialsProvider bean. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_ASYNC_CLIENT_ADVANCED_USE_FUTURE_COMPLETION_THREAD_POOL+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SQS_AWS_CREDENTIALS_CUSTOM_PROVIDER_NAME+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SQS_ASYNC_CLIENT_ADVANCED_USE_FUTURE_COMPLETION_THREAD_POOL+++` +Environment variable: `+++QUARKUS_SQS_AWS_CREDENTIALS_CUSTOM_PROVIDER_NAME+++` endif::add-copy-button-to-env-var[] ---|boolean -|`true` +--|string +| |=== ifndef::no-duration-note[] diff --git a/docs/modules/ROOT/pages/includes/quarkus-amazon-ssm.adoc b/docs/modules/ROOT/pages/includes/quarkus-amazon-ssm.adoc index 66361c772..2b4959417 100644 --- a/docs/modules/ROOT/pages/includes/quarkus-amazon-ssm.adoc +++ b/docs/modules/ROOT/pages/includes/quarkus-amazon-ssm.adoc @@ -156,7 +156,7 @@ endif::add-copy-button-to-env-var[] |`localstack` -a|icon:lock[title=Fixed at build time] [[quarkus-amazon-ssm_quarkus-ssm-devservices-container-properties-container-properties]]`link:#quarkus-amazon-ssm_quarkus-ssm-devservices-container-properties-container-properties[quarkus.ssm.devservices.container-properties]` +a|icon:lock[title=Fixed at build time] [[quarkus-amazon-ssm_quarkus-ssm-devservices-container-properties-container-properties]]`link:#quarkus-amazon-ssm_quarkus-ssm-devservices-container-properties-container-properties[quarkus.ssm.devservices.container-properties."container-properties"]` [.description] @@ -164,12 +164,13 @@ a|icon:lock[title=Fixed at build time] [[quarkus-amazon-ssm_quarkus-ssm-devservi Generic properties that are pass for additional container configuration. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_SSM_DEVSERVICES_CONTAINER_PROPERTIES+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_SSM_DEVSERVICES_CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_SSM_DEVSERVICES_CONTAINER_PROPERTIES+++` +Environment variable: `+++QUARKUS_SSM_DEVSERVICES_CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++` endif::add-copy-button-to-env-var[] ---|`Map` +--|link:https://docs.oracle.com/javase/8/docs/api/java/lang/String.html[String] + | diff --git a/docs/modules/ROOT/pages/includes/quarkus-amazon-sts.adoc b/docs/modules/ROOT/pages/includes/quarkus-amazon-sts.adoc index a402c6326..0aa826199 100644 --- a/docs/modules/ROOT/pages/includes/quarkus-amazon-sts.adoc +++ b/docs/modules/ROOT/pages/includes/quarkus-amazon-sts.adoc @@ -156,7 +156,7 @@ endif::add-copy-button-to-env-var[] |`localstack` -a|icon:lock[title=Fixed at build time] [[quarkus-amazon-sts_quarkus-sts-devservices-container-properties-container-properties]]`link:#quarkus-amazon-sts_quarkus-sts-devservices-container-properties-container-properties[quarkus.sts.devservices.container-properties]` +a|icon:lock[title=Fixed at build time] [[quarkus-amazon-sts_quarkus-sts-devservices-container-properties-container-properties]]`link:#quarkus-amazon-sts_quarkus-sts-devservices-container-properties-container-properties[quarkus.sts.devservices.container-properties."container-properties"]` [.description] @@ -164,12 +164,13 @@ a|icon:lock[title=Fixed at build time] [[quarkus-amazon-sts_quarkus-sts-devservi Generic properties that are pass for additional container configuration. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_STS_DEVSERVICES_CONTAINER_PROPERTIES+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_STS_DEVSERVICES_CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_STS_DEVSERVICES_CONTAINER_PROPERTIES+++` +Environment variable: `+++QUARKUS_STS_DEVSERVICES_CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++` endif::add-copy-button-to-env-var[] ---|`Map` +--|link:https://docs.oracle.com/javase/8/docs/api/java/lang/String.html[String] + | diff --git a/docs/modules/ROOT/pages/includes/quarkus-aws-devservices-localstack-local-stack-dev-services-build-time-config.adoc b/docs/modules/ROOT/pages/includes/quarkus-aws-devservices-localstack-local-stack-dev-services-build-time-config.adoc index 24338c7d4..9a16eec41 100644 --- a/docs/modules/ROOT/pages/includes/quarkus-aws-devservices-localstack-local-stack-dev-services-build-time-config.adoc +++ b/docs/modules/ROOT/pages/includes/quarkus-aws-devservices-localstack-local-stack-dev-services-build-time-config.adoc @@ -95,7 +95,7 @@ endif::add-copy-button-to-env-var[] | -a|icon:lock[title=Fixed at build time] [[quarkus-aws-devservices-localstack-local-stack-dev-services-build-time-config_quarkus-aws-devservices-localstack-container-properties-container-properties]]`link:#quarkus-aws-devservices-localstack-local-stack-dev-services-build-time-config_quarkus-aws-devservices-localstack-container-properties-container-properties[quarkus.aws.devservices.localstack.container-properties]` +a|icon:lock[title=Fixed at build time] [[quarkus-aws-devservices-localstack-local-stack-dev-services-build-time-config_quarkus-aws-devservices-localstack-container-properties-container-properties]]`link:#quarkus-aws-devservices-localstack-local-stack-dev-services-build-time-config_quarkus-aws-devservices-localstack-container-properties-container-properties[quarkus.aws.devservices.localstack.container-properties."container-properties"]` [.description] @@ -103,12 +103,13 @@ a|icon:lock[title=Fixed at build time] [[quarkus-aws-devservices-localstack-loca Generic properties that are pass for additional container configuration. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_AWS_DEVSERVICES_LOCALSTACK_CONTAINER_PROPERTIES+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_AWS_DEVSERVICES_LOCALSTACK_CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_AWS_DEVSERVICES_LOCALSTACK_CONTAINER_PROPERTIES+++` +Environment variable: `+++QUARKUS_AWS_DEVSERVICES_LOCALSTACK_CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++` endif::add-copy-button-to-env-var[] ---|`Map` +--|link:https://docs.oracle.com/javase/8/docs/api/java/lang/String.html[String] + | @@ -186,7 +187,7 @@ endif::add-copy-button-to-env-var[] |`localstack` -a|icon:lock[title=Fixed at build time] [[quarkus-aws-devservices-localstack-local-stack-dev-services-build-time-config_quarkus-aws-devservices-localstack-additional-services-additional-services-container-properties-container-properties]]`link:#quarkus-aws-devservices-localstack-local-stack-dev-services-build-time-config_quarkus-aws-devservices-localstack-additional-services-additional-services-container-properties-container-properties[quarkus.aws.devservices.localstack.additional-services."additional-services".container-properties]` +a|icon:lock[title=Fixed at build time] [[quarkus-aws-devservices-localstack-local-stack-dev-services-build-time-config_quarkus-aws-devservices-localstack-additional-services-additional-services-container-properties-container-properties]]`link:#quarkus-aws-devservices-localstack-local-stack-dev-services-build-time-config_quarkus-aws-devservices-localstack-additional-services-additional-services-container-properties-container-properties[quarkus.aws.devservices.localstack.additional-services."additional-services".container-properties."container-properties"]` [.description] @@ -194,12 +195,13 @@ a|icon:lock[title=Fixed at build time] [[quarkus-aws-devservices-localstack-loca Generic properties that are pass for additional container configuration. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_AWS_DEVSERVICES_LOCALSTACK_ADDITIONAL_SERVICES__ADDITIONAL_SERVICES__CONTAINER_PROPERTIES+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_AWS_DEVSERVICES_LOCALSTACK_ADDITIONAL_SERVICES__ADDITIONAL_SERVICES__CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_AWS_DEVSERVICES_LOCALSTACK_ADDITIONAL_SERVICES__ADDITIONAL_SERVICES__CONTAINER_PROPERTIES+++` +Environment variable: `+++QUARKUS_AWS_DEVSERVICES_LOCALSTACK_ADDITIONAL_SERVICES__ADDITIONAL_SERVICES__CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++` endif::add-copy-button-to-env-var[] ---|`Map` +--|link:https://docs.oracle.com/javase/8/docs/api/java/lang/String.html[String] + | |=== \ No newline at end of file diff --git a/docs/modules/ROOT/pages/includes/quarkus-aws-devservices-moto-moto-dev-services-build-time-config.adoc b/docs/modules/ROOT/pages/includes/quarkus-aws-devservices-moto-moto-dev-services-build-time-config.adoc index 8bb9515a7..7fb396be6 100644 --- a/docs/modules/ROOT/pages/includes/quarkus-aws-devservices-moto-moto-dev-services-build-time-config.adoc +++ b/docs/modules/ROOT/pages/includes/quarkus-aws-devservices-moto-moto-dev-services-build-time-config.adoc @@ -27,7 +27,7 @@ endif::add-copy-button-to-env-var[] |`motoserver/moto` -a|icon:lock[title=Fixed at build time] [[quarkus-aws-devservices-moto-moto-dev-services-build-time-config_quarkus-aws-devservices-moto-container-properties-container-properties]]`link:#quarkus-aws-devservices-moto-moto-dev-services-build-time-config_quarkus-aws-devservices-moto-container-properties-container-properties[quarkus.aws.devservices.moto.container-properties]` +a|icon:lock[title=Fixed at build time] [[quarkus-aws-devservices-moto-moto-dev-services-build-time-config_quarkus-aws-devservices-moto-container-properties-container-properties]]`link:#quarkus-aws-devservices-moto-moto-dev-services-build-time-config_quarkus-aws-devservices-moto-container-properties-container-properties[quarkus.aws.devservices.moto.container-properties."container-properties"]` [.description] @@ -35,12 +35,13 @@ a|icon:lock[title=Fixed at build time] [[quarkus-aws-devservices-moto-moto-dev-s Generic properties that are pass for additional container configuration. ifdef::add-copy-button-to-env-var[] -Environment variable: env_var_with_copy_button:+++QUARKUS_AWS_DEVSERVICES_MOTO_CONTAINER_PROPERTIES+++[] +Environment variable: env_var_with_copy_button:+++QUARKUS_AWS_DEVSERVICES_MOTO_CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++[] endif::add-copy-button-to-env-var[] ifndef::add-copy-button-to-env-var[] -Environment variable: `+++QUARKUS_AWS_DEVSERVICES_MOTO_CONTAINER_PROPERTIES+++` +Environment variable: `+++QUARKUS_AWS_DEVSERVICES_MOTO_CONTAINER_PROPERTIES__CONTAINER_PROPERTIES_+++` endif::add-copy-button-to-env-var[] ---|`Map` +--|link:https://docs.oracle.com/javase/8/docs/api/java/lang/String.html[String] + | |=== \ No newline at end of file diff --git a/dynamodb-enhanced/deployment/src/main/java/io/quarkus/amazon/dynamodb/enhanced/deployment/DynamodbEnhancedDbTableProcessor.java b/dynamodb-enhanced/deployment/src/main/java/io/quarkus/amazon/dynamodb/enhanced/deployment/DynamodbEnhancedDbTableProcessor.java index 13fe0cf24..44828207c 100644 --- a/dynamodb-enhanced/deployment/src/main/java/io/quarkus/amazon/dynamodb/enhanced/deployment/DynamodbEnhancedDbTableProcessor.java +++ b/dynamodb-enhanced/deployment/src/main/java/io/quarkus/amazon/dynamodb/enhanced/deployment/DynamodbEnhancedDbTableProcessor.java @@ -59,7 +59,7 @@ public class DynamodbEnhancedDbTableProcessor { @BuildStep AdditionalBeanBuildItem additionalBeans() { - return AdditionalBeanBuildItem.unremovableOf(NamedDynamoDbTable.class); + return new AdditionalBeanBuildItem(NamedDynamoDbTable.class); } @BuildStep diff --git a/s3/deployment/src/main/java/io/quarkus/amazon/s3/deployment/S3Processor.java b/s3/deployment/src/main/java/io/quarkus/amazon/s3/deployment/S3Processor.java index 5687ec232..243fc943b 100644 --- a/s3/deployment/src/main/java/io/quarkus/amazon/s3/deployment/S3Processor.java +++ b/s3/deployment/src/main/java/io/quarkus/amazon/s3/deployment/S3Processor.java @@ -13,6 +13,7 @@ import io.quarkus.amazon.common.deployment.AmazonClientSyncTransportBuildItem; import io.quarkus.amazon.common.deployment.AmazonHttpClients; import io.quarkus.amazon.common.deployment.RequireAmazonClientBuildItem; +import io.quarkus.amazon.common.deployment.RequireAmazonClientInjectionBuildItem; import io.quarkus.amazon.common.deployment.RequireAmazonTelemetryBuildItem; import io.quarkus.amazon.common.deployment.spi.EventLoopGroupBuildItem; import io.quarkus.amazon.common.runtime.AmazonClientApacheTransportRecorder; @@ -87,9 +88,10 @@ void setup( @BuildStep void discover(BeanRegistrationPhaseBuildItem beanRegistrationPhase, - BuildProducer requireClientProducer) { + BuildProducer requireClientProducer, + BuildProducer requireClientInjectionProducer) { - discoverClient(beanRegistrationPhase, requireClientProducer); + discoverClient(beanRegistrationPhase, requireClientProducer, requireClientInjectionProducer); } @BuildStep @@ -177,6 +179,7 @@ void setupAwsCrtAsyncTransport(List amazonClients, S3Reco void createClientBuilders(S3Recorder recorder, AmazonClientCommonRecorder commonRecorder, AmazonClientOpenTelemetryRecorder otelRecorder, + List amazonClientInjections, List amazonRequireTelemtryClients, List syncTransports, List asyncTransports, @@ -191,6 +194,7 @@ void createClientBuilders(S3Recorder recorder, commonRecorder, otelRecorder, buildTimeConfig, + amazonClientInjections, amazonRequireTelemtryClients, syncTransports, asyncTransports, diff --git a/s3/deployment/src/test/java/io/quarkus/amazon/s3/deployment/S3CustomCredentialsProviderMissedBeanNameTest.java b/s3/deployment/src/test/java/io/quarkus/amazon/s3/deployment/S3CustomCredentialsProviderMissedBeanNameTest.java index 97e1e6385..32bbd4a04 100644 --- a/s3/deployment/src/test/java/io/quarkus/amazon/s3/deployment/S3CustomCredentialsProviderMissedBeanNameTest.java +++ b/s3/deployment/src/test/java/io/quarkus/amazon/s3/deployment/S3CustomCredentialsProviderMissedBeanNameTest.java @@ -3,13 +3,20 @@ import static org.hamcrest.MatcherAssert.*; import static org.hamcrest.Matchers.equalTo; +import jakarta.enterprise.inject.Instance; +import jakarta.inject.Inject; + import org.junit.jupiter.api.*; import org.junit.jupiter.api.extension.*; import io.quarkus.test.QuarkusUnitTest; +import software.amazon.awssdk.services.s3.S3Client; class S3CustomCredentialsProviderMissedBeanNameTest { + @Inject + Instance client; + @RegisterExtension static final QuarkusUnitTest config = new QuarkusUnitTest() .assertException(throwable -> { diff --git a/s3/deployment/src/test/java/io/quarkus/amazon/s3/deployment/S3CustomCredentialsProviderMissedBeanTest.java b/s3/deployment/src/test/java/io/quarkus/amazon/s3/deployment/S3CustomCredentialsProviderMissedBeanTest.java index cd7e89a59..f291fbc7a 100644 --- a/s3/deployment/src/test/java/io/quarkus/amazon/s3/deployment/S3CustomCredentialsProviderMissedBeanTest.java +++ b/s3/deployment/src/test/java/io/quarkus/amazon/s3/deployment/S3CustomCredentialsProviderMissedBeanTest.java @@ -3,13 +3,20 @@ import static org.hamcrest.MatcherAssert.*; import static org.hamcrest.Matchers.equalTo; +import jakarta.enterprise.inject.Instance; +import jakarta.inject.Inject; + import org.junit.jupiter.api.*; import org.junit.jupiter.api.extension.*; import io.quarkus.test.QuarkusUnitTest; +import software.amazon.awssdk.services.s3.S3Client; class S3CustomCredentialsProviderMissedBeanTest { + @Inject + Instance client; + @RegisterExtension static final QuarkusUnitTest config = new QuarkusUnitTest() .assertException(throwable -> { diff --git a/s3/deployment/src/test/java/io/quarkus/amazon/s3/deployment/S3DevServicesTest.java b/s3/deployment/src/test/java/io/quarkus/amazon/s3/deployment/S3DevServicesTest.java index 26d81bb83..327788ebc 100644 --- a/s3/deployment/src/test/java/io/quarkus/amazon/s3/deployment/S3DevServicesTest.java +++ b/s3/deployment/src/test/java/io/quarkus/amazon/s3/deployment/S3DevServicesTest.java @@ -13,15 +13,21 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; +import io.quarkus.amazon.common.AmazonClient; import io.quarkus.test.QuarkusUnitTest; import software.amazon.awssdk.services.s3.S3Client; import software.amazon.awssdk.services.s3.model.Bucket; +import software.amazon.awssdk.services.s3.presigner.S3Presigner; public class S3DevServicesTest { @Inject Instance client; + @Inject + @AmazonClient("test") + Instance clientNamed; + @RegisterExtension static final QuarkusUnitTest config = new QuarkusUnitTest() .withApplicationRoot((jar) -> jar @@ -30,6 +36,7 @@ public class S3DevServicesTest { @Test public void test() { + assertNotNull(clientNamed.get()); assertNotNull(client.get()); Assertions.assertEquals(Set.of("default"), client.get().listBuckets().buckets().stream().map(Bucket::name).collect(Collectors.toSet())); diff --git a/s3/runtime/src/main/java/io/quarkus/amazon/s3/runtime/S3Config.java b/s3/runtime/src/main/java/io/quarkus/amazon/s3/runtime/S3Config.java index bc253e202..86cf7aaa1 100644 --- a/s3/runtime/src/main/java/io/quarkus/amazon/s3/runtime/S3Config.java +++ b/s3/runtime/src/main/java/io/quarkus/amazon/s3/runtime/S3Config.java @@ -3,19 +3,17 @@ import java.util.Optional; import io.quarkus.amazon.common.runtime.AsyncHttpClientConfig; -import io.quarkus.amazon.common.runtime.AwsConfig; -import io.quarkus.amazon.common.runtime.SdkConfig; +import io.quarkus.amazon.common.runtime.HasAmazonClientRuntimeConfig; import io.quarkus.amazon.common.runtime.SyncHttpClientConfig; import io.quarkus.runtime.annotations.ConfigDocSection; import io.quarkus.runtime.annotations.ConfigPhase; import io.quarkus.runtime.annotations.ConfigRoot; import io.smallrye.config.ConfigMapping; import io.smallrye.config.WithDefault; -import io.smallrye.config.WithParentName; @ConfigMapping(prefix = "quarkus.s3") @ConfigRoot(phase = ConfigPhase.RUN_TIME) -public interface S3Config { +public interface S3Config extends HasAmazonClientRuntimeConfig { /** * Enable using the accelerate endpoint when accessing S3. @@ -71,19 +69,6 @@ public interface S3Config { */ Optional profileName(); - /** - * AWS SDK client configurations - */ - @WithParentName - @ConfigDocSection - SdkConfig sdk(); - - /** - * AWS services configurations - */ - @ConfigDocSection - AwsConfig aws(); - /** * Sync HTTP transport configurations */ diff --git a/s3/runtime/src/main/java/io/quarkus/amazon/s3/runtime/S3CrtRecorder.java b/s3/runtime/src/main/java/io/quarkus/amazon/s3/runtime/S3CrtRecorder.java index fac8e6e0f..a59ec0547 100644 --- a/s3/runtime/src/main/java/io/quarkus/amazon/s3/runtime/S3CrtRecorder.java +++ b/s3/runtime/src/main/java/io/quarkus/amazon/s3/runtime/S3CrtRecorder.java @@ -4,7 +4,10 @@ import java.util.concurrent.Executor; import java.util.function.Function; +import io.quarkus.amazon.common.runtime.AwsConfig; +import io.quarkus.amazon.common.runtime.ClientUtil; import io.quarkus.amazon.common.runtime.RuntimeConfigurationError; +import io.quarkus.amazon.common.runtime.SdkConfig; import io.quarkus.arc.SyntheticCreationalContext; import io.quarkus.runtime.LaunchMode; import io.quarkus.runtime.RuntimeValue; @@ -42,12 +45,16 @@ private void configureS3Client(S3CrtAsyncClientBuilder builder, String awsServic config.crtClient().targetThroughputInGbps().ifPresent(builder::targetThroughputInGbps); config.crtClient().maxNativeMemoryLimitInBytes().ifPresent(builder::maxNativeMemoryLimitInBytes); - config.aws().region().ifPresent(builder::region); + AwsConfig awsConfig = config.clients().get(ClientUtil.DEFAULT_CLIENT_NAME).aws(); + SdkConfig sdkConfig = config.clients().get(ClientUtil.DEFAULT_CLIENT_NAME).sdk(); + + awsConfig.region().ifPresent(builder::region); builder.credentialsProvider( - config.aws().credentials().type().create(config.aws().credentials(), "quarkus." + awsServiceName)); + awsConfig.credentials().type().create(config.clients().get(ClientUtil.DEFAULT_CLIENT_NAME).aws().credentials(), + "quarkus." + awsServiceName)); - if (config.sdk().endpointOverride().isPresent()) { - URI endpointOverride = config.sdk().endpointOverride().get(); + if (sdkConfig.endpointOverride().isPresent()) { + URI endpointOverride = sdkConfig.endpointOverride().get(); if (StringUtils.isBlank(endpointOverride.getScheme())) { throw new RuntimeConfigurationError( String.format("quarkus.%s.endpoint-override (%s) - scheme must be specified", @@ -56,7 +63,7 @@ private void configureS3Client(S3CrtAsyncClientBuilder builder, String awsServic } } - config.sdk().endpointOverride().filter(URI::isAbsolute).ifPresent(builder::endpointOverride); + sdkConfig.endpointOverride().filter(URI::isAbsolute).ifPresent(builder::endpointOverride); } public RuntimeValue setExecutor(RuntimeValue builder, diff --git a/s3/runtime/src/main/java/io/quarkus/amazon/s3/runtime/S3Recorder.java b/s3/runtime/src/main/java/io/quarkus/amazon/s3/runtime/S3Recorder.java index bdbe378b0..0440fbdea 100644 --- a/s3/runtime/src/main/java/io/quarkus/amazon/s3/runtime/S3Recorder.java +++ b/s3/runtime/src/main/java/io/quarkus/amazon/s3/runtime/S3Recorder.java @@ -3,6 +3,8 @@ import io.quarkus.amazon.common.runtime.AmazonClientRecorder; import io.quarkus.amazon.common.runtime.AsyncHttpClientConfig; import io.quarkus.amazon.common.runtime.AwsConfig; +import io.quarkus.amazon.common.runtime.ClientUtil; +import io.quarkus.amazon.common.runtime.HasAmazonClientRuntimeConfig; import io.quarkus.amazon.common.runtime.SdkConfig; import io.quarkus.amazon.common.runtime.SyncHttpClientConfig; import io.quarkus.runtime.RuntimeValue; @@ -27,14 +29,19 @@ public S3Recorder(S3Config config) { this.config = config; } + @Override + public RuntimeValue getAmazonClientsConfig() { + return new RuntimeValue<>(config); + } + @Override public RuntimeValue getAwsConfig() { - return new RuntimeValue<>(config.aws()); + return new RuntimeValue<>(config.clients().get(ClientUtil.DEFAULT_CLIENT_NAME).aws()); } @Override public RuntimeValue getSdkConfig() { - return new RuntimeValue<>(config.sdk()); + return new RuntimeValue<>(config.clients().get(ClientUtil.DEFAULT_CLIENT_NAME).sdk()); } @Override diff --git a/sqs/deployment/src/main/java/io/quarkus/amazon/sqs/deployment/SqsProcessor.java b/sqs/deployment/src/main/java/io/quarkus/amazon/sqs/deployment/SqsProcessor.java index 47ccabdd7..17195a249 100644 --- a/sqs/deployment/src/main/java/io/quarkus/amazon/sqs/deployment/SqsProcessor.java +++ b/sqs/deployment/src/main/java/io/quarkus/amazon/sqs/deployment/SqsProcessor.java @@ -13,6 +13,7 @@ import io.quarkus.amazon.common.deployment.AmazonClientSyncTransportBuildItem; import io.quarkus.amazon.common.deployment.AmazonHttpClients; import io.quarkus.amazon.common.deployment.RequireAmazonClientBuildItem; +import io.quarkus.amazon.common.deployment.RequireAmazonClientInjectionBuildItem; import io.quarkus.amazon.common.deployment.RequireAmazonTelemetryBuildItem; import io.quarkus.amazon.common.deployment.spi.EventLoopGroupBuildItem; import io.quarkus.amazon.common.runtime.AmazonClientApacheTransportRecorder; @@ -80,9 +81,10 @@ void setup( @BuildStep void discover(BeanRegistrationPhaseBuildItem beanRegistrationPhase, - BuildProducer requireClientProducer) { + BuildProducer requireClientProducer, + BuildProducer requireClientInjectionProducer) { - discoverClient(beanRegistrationPhase, requireClientProducer); + discoverClient(beanRegistrationPhase, requireClientProducer, requireClientInjectionProducer); } @BuildStep @@ -170,6 +172,7 @@ void setupAwsCrtAsyncTransport(List amazonClients, SqsRec void createClientBuilders(SqsRecorder recorder, AmazonClientCommonRecorder commonRecorder, SqsOpenTelemetryRecorder otelRecorder, + List amazonClientInjections, List amazonRequireTelemtryClients, List syncTransports, List asyncTransports, @@ -184,6 +187,7 @@ void createClientBuilders(SqsRecorder recorder, commonRecorder, otelRecorder, buildTimeConfig, + amazonClientInjections, amazonRequireTelemtryClients, syncTransports, asyncTransports, diff --git a/sqs/deployment/src/test/java/io/quarkus/amazon/sqs/deployment/SqsDevServicesWithoutQueueTest.java b/sqs/deployment/src/test/java/io/quarkus/amazon/sqs/deployment/SqsDevServicesWithoutQueueTest.java index 271654a52..cb39e554c 100644 --- a/sqs/deployment/src/test/java/io/quarkus/amazon/sqs/deployment/SqsDevServicesWithoutQueueTest.java +++ b/sqs/deployment/src/test/java/io/quarkus/amazon/sqs/deployment/SqsDevServicesWithoutQueueTest.java @@ -10,6 +10,7 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; +import io.quarkus.amazon.common.AmazonClient; import io.quarkus.test.QuarkusUnitTest; import software.amazon.awssdk.services.sqs.SqsClient; @@ -18,6 +19,10 @@ class SqsDevServicesWithoutQueueTest { @Inject Instance client; + @Inject + @AmazonClient("test") + Instance clientNamed; + @RegisterExtension static final QuarkusUnitTest config = new QuarkusUnitTest() .withApplicationRoot((jar) -> jar @@ -28,5 +33,7 @@ class SqsDevServicesWithoutQueueTest { void test() { assertNotNull(client.get()); assertTrue(client.get().listQueues().queueUrls().isEmpty()); + assertNotNull(clientNamed.get()); + assertTrue(clientNamed.get().listQueues().queueUrls().isEmpty()); } } diff --git a/sqs/runtime/src/main/java/io/quarkus/amazon/sqs/runtime/SqsConfig.java b/sqs/runtime/src/main/java/io/quarkus/amazon/sqs/runtime/SqsConfig.java index b07e77501..4b9213c43 100644 --- a/sqs/runtime/src/main/java/io/quarkus/amazon/sqs/runtime/SqsConfig.java +++ b/sqs/runtime/src/main/java/io/quarkus/amazon/sqs/runtime/SqsConfig.java @@ -1,31 +1,16 @@ package io.quarkus.amazon.sqs.runtime; import io.quarkus.amazon.common.runtime.AsyncHttpClientConfig; -import io.quarkus.amazon.common.runtime.AwsConfig; -import io.quarkus.amazon.common.runtime.SdkConfig; +import io.quarkus.amazon.common.runtime.HasAmazonClientRuntimeConfig; import io.quarkus.amazon.common.runtime.SyncHttpClientConfig; import io.quarkus.runtime.annotations.ConfigDocSection; import io.quarkus.runtime.annotations.ConfigPhase; import io.quarkus.runtime.annotations.ConfigRoot; import io.smallrye.config.ConfigMapping; -import io.smallrye.config.WithParentName; @ConfigMapping(prefix = "quarkus.sqs") @ConfigRoot(phase = ConfigPhase.RUN_TIME) -public interface SqsConfig { - /** - * AWS SDK client configurations - */ - @WithParentName - @ConfigDocSection - SdkConfig sdk(); - - /** - * AWS services configurations - */ - @ConfigDocSection - AwsConfig aws(); - +public interface SqsConfig extends HasAmazonClientRuntimeConfig { /** * Sync HTTP transport configurations */ diff --git a/sqs/runtime/src/main/java/io/quarkus/amazon/sqs/runtime/SqsRecorder.java b/sqs/runtime/src/main/java/io/quarkus/amazon/sqs/runtime/SqsRecorder.java index f33d1c4f5..f9b1c586e 100644 --- a/sqs/runtime/src/main/java/io/quarkus/amazon/sqs/runtime/SqsRecorder.java +++ b/sqs/runtime/src/main/java/io/quarkus/amazon/sqs/runtime/SqsRecorder.java @@ -3,6 +3,8 @@ import io.quarkus.amazon.common.runtime.AmazonClientRecorder; import io.quarkus.amazon.common.runtime.AsyncHttpClientConfig; import io.quarkus.amazon.common.runtime.AwsConfig; +import io.quarkus.amazon.common.runtime.ClientUtil; +import io.quarkus.amazon.common.runtime.HasAmazonClientRuntimeConfig; import io.quarkus.amazon.common.runtime.SdkConfig; import io.quarkus.amazon.common.runtime.SyncHttpClientConfig; import io.quarkus.runtime.RuntimeValue; @@ -21,14 +23,19 @@ public SqsRecorder(SqsConfig config) { this.config = config; } + @Override + public RuntimeValue getAmazonClientsConfig() { + return new RuntimeValue<>(config); + } + @Override public RuntimeValue getAwsConfig() { - return new RuntimeValue<>(config.aws()); + return new RuntimeValue<>(config.clients().get(ClientUtil.DEFAULT_CLIENT_NAME).aws()); } @Override public RuntimeValue getSdkConfig() { - return new RuntimeValue<>(config.sdk()); + return new RuntimeValue<>(config.clients().get(ClientUtil.DEFAULT_CLIENT_NAME).sdk()); } @Override