pub struct AwsOpenSearch {
pub id: String,
pub collection_type: AwsOpenSearchCollectionType,
pub capacity: Option<AwsOpenSearchCapacity>,
}Expand description
An Amazon OpenSearch Serverless collection (next generation).
§Experimental namespace
This is the first resource under the experimental/ resource-type
namespace. Experimental resources are provider-specific (they do not
abstract over clouds), may change or be promoted to a portable resource
in a breaking way, and are only registered for the platforms they
support. AwsOpenSearch registers an AWS CloudFormation emitter only;
deploying it to any other platform fails with a typed
ImportRegistrationMissing error at generation time.
§What gets provisioned
The AWS emitter provisions next-generation OpenSearch Serverless:
a collection group (Generation: NEXTGEN, compute/storage decoupled)
plus a collection inside it, an AWS-owned-key encryption configuration,
a public network policy, and a data-access policy for service-account
roles granted experimental/aws-opensearch/data-access. Collection groups
scale to zero by default; configure a non-zero minimum capacity when the
workload requires predictable interactive latency.
The collection endpoint is public but every request must be SigV4-signed
and pass both IAM (aoss:APIAccessAll) and the data-access policy.
§Naming
The physical collection (and collection group) name is
{id}-{stack-suffix} and must satisfy the AOSS name grammar, so id
must match [a-z][a-z0-9-]* and be at most 23 characters. The emitter
rejects ids that don’t fit.
§Runtime access
Workers reach the collection over HTTPS with SigV4. The SigV4 signing
service name for OpenSearch Serverless is aoss (not es); the runtime
binding payload carries "service": "aoss" so clients sign correctly.
Requests with a body must also send an x-amz-content-sha256 header
(the AOSS gateway rejects body-carrying requests without it with an
empty 403); official OpenSearch clients with an aoss signer handle
this automatically.
Fields§
§id: StringIdentifier for the collection. Becomes part of the physical collection
name, so it must match [a-z][a-z0-9-]* and be at most 23 characters.
collection_type: AwsOpenSearchCollectionTypeWorkload type of the collection. Immutable once the resource exists
(AWS only allows the type at collection creation). Default Search.
capacity: Option<AwsOpenSearchCapacity>Optional indexing and search OCU limits for the collection group.
When omitted, AWS uses zero minimum capacity for both components, so an idle next-generation collection can scale to zero.
Implementations§
Source§impl AwsOpenSearch
impl AwsOpenSearch
Sourcepub fn new(id: String) -> AwsOpenSearchBuilder
pub fn new(id: String) -> AwsOpenSearchBuilder
Create an instance of AwsOpenSearch using the builder syntax
Source§impl AwsOpenSearch
impl AwsOpenSearch
Sourcepub const RESOURCE_TYPE: ResourceType
pub const RESOURCE_TYPE: ResourceType
The resource type identifier for AwsOpenSearch.
The experimental/ prefix marks the experimental namespace; see the
struct-level docs for the convention.
Sourcepub fn validate_capacity(&self) -> Result<()>
pub fn validate_capacity(&self) -> Result<()>
Validates collection-group capacity values against AWS’s supported OCU increments and min/max ordering.
Trait Implementations§
Source§impl Clone for AwsOpenSearch
impl Clone for AwsOpenSearch
Source§fn clone(&self) -> AwsOpenSearch
fn clone(&self) -> AwsOpenSearch
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for AwsOpenSearch
impl Debug for AwsOpenSearch
Source§impl<'de> Deserialize<'de> for AwsOpenSearch
impl<'de> Deserialize<'de> for AwsOpenSearch
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for AwsOpenSearch
Source§impl PartialEq for AwsOpenSearch
impl PartialEq for AwsOpenSearch
Source§impl ResourceDefinition for AwsOpenSearch
impl ResourceDefinition for AwsOpenSearch
Source§fn get_resource_type(&self) -> ResourceType
fn get_resource_type(&self) -> ResourceType
Source§fn get_dependencies(&self) -> Vec<ResourceRef>
fn get_dependencies(&self) -> Vec<ResourceRef>
Source§fn validate_update(&self, new_config: &dyn ResourceDefinition) -> Result<()>
fn validate_update(&self, new_config: &dyn ResourceDefinition) -> Result<()>
Source§fn as_any_mut(&mut self) -> &mut dyn Any
fn as_any_mut(&mut self) -> &mut dyn Any
Source§fn box_clone(&self) -> Box<dyn ResourceDefinition>
fn box_clone(&self) -> Box<dyn ResourceDefinition>
Source§fn resource_eq(&self, other: &dyn ResourceDefinition) -> bool
fn resource_eq(&self, other: &dyn ResourceDefinition) -> bool
Source§fn to_json_value(&self) -> Result<Value>
fn to_json_value(&self) -> Result<Value>
Source§impl Serialize for AwsOpenSearch
impl Serialize for AwsOpenSearch
impl StructuralPartialEq for AwsOpenSearch
Auto Trait Implementations§
impl Freeze for AwsOpenSearch
impl RefUnwindSafe for AwsOpenSearch
impl Send for AwsOpenSearch
impl Sync for AwsOpenSearch
impl Unpin for AwsOpenSearch
impl UnsafeUnpin for AwsOpenSearch
impl UnwindSafe for AwsOpenSearch
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.