pub struct BedrockConfig {
pub region: String,
pub model_id: String,
pub endpoint_url: Option<String>,
pub prompt_caching: Option<BedrockCacheConfig>,
}models only.Expand description
Configuration for Amazon Bedrock.
Bedrock uses AWS IAM/STS authentication rather than API keys. Credentials are loaded from the environment via the AWS SDK (environment variables, shared config, IMDS, etc.).
Prompt caching is enabled by default with a 5-minute TTL.
Use without_prompt_caching to disable.
§Inference Profiles
Newer Bedrock models require cross-region inference profile IDs
(prefixed with us. or global.) instead of raw model IDs.
§Example
use adk_model::bedrock::BedrockConfig;
// Default: us-east-1, Claude Sonnet 4.6, prompt caching enabled
let config = BedrockConfig::default();
// Custom region and model
let config = BedrockConfig::new("eu-west-1", "us.anthropic.claude-haiku-4-5-20251001-v1:0");
// With a custom endpoint (e.g., VPC endpoint)
let config = BedrockConfig::new("us-west-2", "us.anthropic.claude-sonnet-4-6")
.with_endpoint_url("https://vpce-xxx.bedrock-runtime.us-west-2.vpce.amazonaws.com");
// Disable prompt caching
let config = BedrockConfig::default().without_prompt_caching();Fields§
§region: StringAWS region for the Bedrock endpoint (e.g., "us-east-1").
model_id: StringBedrock model identifier (e.g., "us.anthropic.claude-sonnet-4-6").
endpoint_url: Option<String>Optional custom endpoint URL (e.g., a VPC endpoint).
prompt_caching: Option<BedrockCacheConfig>Optional prompt caching configuration.
Defaults to Some(BedrockCacheConfig::default()) (5-minute TTL).
When set, the Bedrock request builder injects CachePoint blocks
after system prompts and tool definitions in the Converse API request.
Use without_prompt_caching to disable.
Implementations§
Source§impl BedrockConfig
impl BedrockConfig
Sourcepub fn new(
region: impl Into<String>,
model_id: impl Into<String>,
) -> BedrockConfig
Available on crate feature bedrock only.
pub fn new( region: impl Into<String>, model_id: impl Into<String>, ) -> BedrockConfig
bedrock only.Create a new Bedrock config with the given region and model ID.
Sourcepub fn with_endpoint_url(self, url: impl Into<String>) -> BedrockConfig
Available on crate feature bedrock only.
pub fn with_endpoint_url(self, url: impl Into<String>) -> BedrockConfig
bedrock only.Set a custom endpoint URL (e.g., a VPC endpoint).
Sourcepub fn with_prompt_caching(self, config: BedrockCacheConfig) -> BedrockConfig
Available on crate feature bedrock only.
pub fn with_prompt_caching(self, config: BedrockCacheConfig) -> BedrockConfig
bedrock only.Enable prompt caching with the given configuration.
When enabled, the Bedrock request builder injects CachePoint blocks
after system prompts and tool definitions in the Converse API request.
§Example
use adk_model::bedrock::{BedrockConfig, BedrockCacheConfig, BedrockCacheTtl};
let config = BedrockConfig::default()
.with_prompt_caching(BedrockCacheConfig { ttl: BedrockCacheTtl::FiveMinutes });Sourcepub fn without_prompt_caching(self) -> BedrockConfig
Available on crate feature bedrock only.
pub fn without_prompt_caching(self) -> BedrockConfig
bedrock only.Disable prompt caching.
By default, prompt caching is enabled with a 5-minute TTL. Call this method to opt out of automatic caching.
§Example
use adk_model::bedrock::BedrockConfig;
let config = BedrockConfig::default().without_prompt_caching();
assert!(config.prompt_caching.is_none());Trait Implementations§
Source§impl Clone for BedrockConfig
impl Clone for BedrockConfig
Source§fn clone(&self) -> BedrockConfig
fn clone(&self) -> BedrockConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for BedrockConfig
impl Debug for BedrockConfig
Source§impl Default for BedrockConfig
impl Default for BedrockConfig
Source§fn default() -> BedrockConfig
fn default() -> BedrockConfig
Source§impl<'de> Deserialize<'de> for BedrockConfig
impl<'de> Deserialize<'de> for BedrockConfig
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<BedrockConfig, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<BedrockConfig, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl Serialize for BedrockConfig
impl Serialize for BedrockConfig
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
Auto Trait Implementations§
impl Freeze for BedrockConfig
impl RefUnwindSafe for BedrockConfig
impl Send for BedrockConfig
impl Sync for BedrockConfig
impl Unpin for BedrockConfig
impl UnsafeUnpin for BedrockConfig
impl UnwindSafe for BedrockConfig
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request