mod select_object_content;
pub use select_object_content::*;
use serde::{Deserialize, Serialize};
use crate::time::UtcTime;
#[derive(Clone, Debug, PartialEq)]
pub struct Region(pub String);
trait XmlSelf {}
macro_rules! impl_xmlself {
($($name:tt )*) => {
$(
impl XmlSelf for $name{}
)*
};
}
impl_xmlself!(
CommonPrefix
LegalHold
VersioningConfiguration
Retention
CompleteMultipartUpload
CompleteMultipartUploadResult
InitiateMultipartUploadResult
ListMultipartUploadsResult
CopyPartResult
ListPartsResult
ListAllMyBucketsResult
ListBucketResult
ListVersionsResult
ServerSideEncryptionConfiguration
CORSConfiguration
LocationConstraint
PublicAccessBlockConfiguration
AccessControlPolicy
ReplicationConfiguration
WebsiteConfiguration
LifecycleConfiguration
PolicyStatus
AnalyticsConfiguration
);
pub trait ToXml {
fn to_xml(&self) -> crate::error::Result<String>;
}
impl<T: Serialize + XmlSelf> ToXml for T {
fn to_xml(&self) -> crate::error::Result<String> {
crate::xml::ser::to_string(&self).map_err(Into::into)
}
}
pub trait FromXml: Sized {
fn from_xml(v: String) -> crate::error::Result<Self>;
}
impl<'de, T: Deserialize<'de> + XmlSelf> FromXml for T {
fn from_xml(v: String) -> crate::error::Result<Self> {
crate::xml::de::from_string(v).map_err(Into::into)
}
}
impl Region {
pub fn from<S>(region: S) -> Self
where
S: Into<String>,
{
return Self(region.into());
}
pub fn as_str(&self) -> &str {
self.0.as_str()
}
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct AbortIncompleteMultipartUpload {
pub days_after_initiation: i32,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct AccessControlList {
pub grant: Vec<Grant>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct AccessControlPolicy {
pub access_control_list: AccessControlList,
pub owner: Option<Owner>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct AccessControlTranslation {
pub owner: String,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct AnalyticsAndOperator {
pub prefix: Option<String>,
#[serde(rename = "tag", default)]
pub tags: Vec<Tag>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct AnalyticsConfiguration {
pub id: String,
pub storage_class_analysis: StorageClassAnalysis,
pub filter: AnalyticsFilter,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct AnalyticsExportDestination {
pub s3_bucket_destination: AnalyticsS3BucketDestination,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct AnalyticsFilter {
pub prefix: Option<String>,
pub and: Option<AnalyticsAndOperator>,
pub tag: Tag,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct AnalyticsS3BucketDestination {
pub bucket: String,
pub format: String,
pub bucket_account_id: Option<String>,
pub prefix: Option<String>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct Bucket {
pub name: String,
pub creation_date: String,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct Buckets {
#[serde(default)]
pub bucket: Vec<Bucket>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct CommonPrefix {
pub prefix: String,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct CompleteMultipartUpload {
#[serde(default, rename = "Part")]
pub parts: Vec<Part>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct CompleteMultipartUploadResult {
pub bucket: String,
pub key: String,
pub e_tag: String,
pub location: String,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct Condition {
pub http_error_code_returned_equals: Option<String>,
pub key_prefix_equals: Option<String>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct CopyPartResult {
pub e_tag: String,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct CORSConfiguration {
#[serde(rename = "CORSRule")]
pub rules: Vec<CORSRule>,
}
#[derive(Debug, Clone, Deserialize, Serialize, Default)]
#[serde(rename_all = "PascalCase")]
pub struct CORSRule {
#[serde(rename = "AllowedMethod", default)]
pub allowed_methods: Vec<String>,
#[serde(rename = "AllowedOrigin", default)]
pub allowed_origins: Vec<String>,
#[serde(rename = "AllowedHeader", default)]
pub allowed_headers: Vec<String>,
#[serde(rename = "ExposeHeader", default)]
pub expose_headers: Vec<String>,
#[serde(rename = "ID")]
pub id: Option<String>,
pub max_age_seconds: usize,
}
#[derive(Debug, Clone, Deserialize, Serialize, Default)]
#[serde(rename_all = "PascalCase")]
pub struct DefaultRetention {
pub days: Option<usize>,
pub mode: RetentionMode,
pub years: Option<usize>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct DeleteMarkerEntry {
pub key: String,
pub last_modified: String,
pub is_latest: bool,
pub owner: Option<Owner>,
pub version_id: Option<String>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct DeleteMarkerReplication {
pub status: Status,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct Destination {
pub bucket: String,
pub account: Option<String>,
pub storage_class: StorageClass,
pub access_control_translation: Option<AccessControlTranslation>,
pub encryption_configuration: Option<EncryptionConfiguration>,
pub replication_time: Option<ReplicationTime>,
pub metrics: Option<Metrics>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct EncryptionConfiguration {
#[serde(rename = "ReplicaKmsKeyID")]
pub replica_kms_key_id: String,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct ErrorDocument {
pub key: String,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct ExistingObjectReplication {
pub status: Status,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct Grant {
pub grantee: Option<Grantee>,
pub permission: Option<Permission>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct Grantee {
pub display_name: Option<String>,
pub email_address: Option<String>,
pub id: Option<String>,
#[serde(alias = "Type", alias = "type")]
pub r#type: GranteeType,
pub uri: Option<String>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct IndexDocument {
pub suffix: String,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub(crate) struct InitiateMultipartUploadResult {
pub bucket: String,
pub key: String,
pub upload_id: String,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct Initiator {
pub display_name: String,
#[serde(rename = "ID")]
pub id: String,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct LegalHold {
pub status: LegalHoldStatus,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct LifecycleConfiguration {
pub rule: Vec<LifecycleRule>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct LifecycleExpiration {
pub date: Option<String>,
pub days: u32,
pub expired_object_delete_marker: Option<bool>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct LifecycleRule {
#[serde(rename = "ID")]
pub id: Option<String>,
pub prefix: Option<String>,
pub status: Status,
pub abort_incomplete_multipart_upload: Option<AbortIncompleteMultipartUpload>,
pub expiration: Option<LifecycleExpiration>,
pub filter: Option<LifecycleRuleFilter>,
pub noncurrent_version_expiration: Option<NoncurrentVersionExpiration>,
#[serde(rename = "NoncurrentVersionTransition", default)]
pub noncurrent_version_transitions: Vec<NoncurrentVersionTransition>,
#[serde(rename = "Transition", default)]
pub transitions: Vec<Transition>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct LifecycleRuleAndOperator {
pub object_size_greater_than: Option<u32>,
pub object_size_less_than: Option<u32>,
pub prefix: Option<String>,
#[serde(rename = "tag", default)]
pub tags: Vec<Tag>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct LifecycleRuleFilter {
pub and: Option<LifecycleRuleAndOperator>,
pub object_size_greater_than: Option<u32>,
pub object_size_less_than: Option<u32>,
pub prefix: Option<String>,
pub tag: Option<Tag>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct ListAllMyBucketsResult {
#[serde(default)]
pub buckets: Buckets,
pub owner: Owner,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct ListBucketResult {
pub name: String,
pub prefix: String,
pub key_count: usize,
pub max_keys: usize,
#[serde(default)]
pub delimiter: String,
pub is_truncated: bool,
pub start_after: Option<String>,
#[serde(default)]
pub contents: Vec<Object>,
#[serde(default)]
pub common_prefixes: Vec<CommonPrefix>,
#[serde(default)]
pub next_continuation_token: String,
#[serde(default)]
pub continuation_token: String,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct ListMultipartUploadsResult {
pub bucket: String,
pub key_marker: String,
pub upload_id_marker: String,
pub next_key_marker: String,
pub prefix: String,
pub delimiter: String,
pub next_upload_id_marker: String,
pub max_uploads: usize,
pub is_truncated: bool,
#[serde(default, rename = "Upload")]
pub uploads: Vec<MultipartUpload>,
#[serde(default)]
pub common_prefixes: Vec<CommonPrefix>,
pub encoding_type: Option<String>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct ListPartsResult {
pub bucket: String,
pub key: String,
pub upload_id: String,
pub part_number_marker: usize,
pub max_parts: usize,
pub next_part_number_marker: usize,
pub is_truncated: bool,
#[serde(default, rename = "Part")]
pub parts: Vec<Part>,
pub storage_class: String,
pub checksum_algorithm: String,
pub initiator: Initiator,
pub owner: Owner,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct ListVersionsResult {
pub is_truncated: bool,
#[serde(default)]
pub common_prefixes: Vec<CommonPrefix>,
#[serde(default, rename = "Version")]
pub versions: Vec<ObjectVersion>,
#[serde(default, rename = "DeleteMarker")]
pub delete_markers: Vec<DeleteMarkerEntry>,
pub name: String,
pub prefix: String,
pub max_keys: usize,
#[serde(default)]
pub delimiter: String,
pub encoding_type: Option<String>,
#[serde(default)]
pub key_marker: String,
#[serde(default)]
pub next_key_marker: String,
#[serde(default)]
pub version_id_marker: String,
#[serde(default)]
pub next_version_id_marker: String,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct LocationConstraint {
pub location_constraint: String,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct Metrics {
pub status: Status,
pub event_threshold: Option<ReplicationTimeValue>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct MultipartUpload {
pub checksum_algorithm: String,
pub upload_id: String,
pub storage_class: String,
pub key: String,
pub initiated: String,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct NoncurrentVersionExpiration {
pub newer_noncurrent_versions: Option<i32>,
pub noncurrent_days: Option<i32>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct NoncurrentVersionTransition {
pub newer_noncurrent_versions: Option<i32>,
pub noncurrent_days: Option<i32>,
pub storage_class: Option<StorageClass>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct Object {
pub key: String,
pub last_modified: String,
pub e_tag: String,
pub size: u64,
pub storage_class: String,
pub owner: Option<Owner>,
pub checksum_algorithm: Option<String>,
}
#[derive(Debug, Clone, Deserialize, Serialize, Default)]
#[serde(rename_all = "PascalCase")]
pub struct ObjectLockRule {
pub default_retention: DefaultRetention,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct ObjectLockConfiguration {
pub object_lock_enabled: String,
pub rule: Option<ObjectLockRule>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct ObjectVersion {
pub key: String,
pub last_modified: String,
pub is_latest: bool,
pub e_tag: String,
pub size: u64,
pub storage_class: String,
pub owner: Option<Owner>,
pub version_id: Option<String>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct Owner {
pub display_name: String,
#[serde(rename = "ID")]
pub id: String,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct Part {
pub e_tag: String,
pub part_number: usize,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct Policy {
version: String,
id: String,
statement: Vec<PolicyStatement>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct PolicyPrincipal {
#[serde(rename = "AWS", default)]
aws: Vec<String>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct PolicyStatement {
sid: String,
principal: PolicyPrincipal,
effect: String,
action: Vec<String>,
resource: Vec<String>,
condition: Option<String>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct PolicyStatus {
pub is_public: bool,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct Progress {
pub bytes_processed: u64,
pub bytes_returned: u64,
pub bytes_scanned: u64,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct PublicAccessBlockConfiguration {
pub block_public_acls: bool,
pub block_public_policy: bool,
pub ignore_public_acls: bool,
pub restrict_public_buckets: bool,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct Redirect {
pub host_name: Option<String>,
pub http_redirect_code: Option<String>,
pub protocol: Option<Protocol>,
pub replace_key_prefix_with: Option<String>,
pub replace_key_with: Option<String>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct RedirectAllRequestsTo {
pub host_name: String,
pub protocol: Option<Protocol>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct ReplicationConfiguration {
pub role: Option<String>,
#[serde(rename = "Rule", default)]
pub rules: Vec<ReplicationRule>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct ReplicaModifications {
pub status: Status,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct ReplicationRule {
#[serde(rename = "ID", default)]
pub id: Option<String>,
pub prefix: Option<String>,
pub priority: Option<i64>,
pub delete_marker_replication: Option<DeleteMarkerReplication>,
pub existing_object_replication: Option<ExistingObjectReplication>,
pub status: Status,
pub destination: Destination,
pub source_selection_criteria: Option<SourceSelectionCriteria>,
pub filter: Option<ReplicationRuleFilter>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct ReplicationRuleAndOperator {
pub prefix: Option<String>,
#[serde(rename = "tag")]
pub tags: Option<Vec<Tag>>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct ReplicationRuleFilter {
pub prefix: Option<String>,
pub tag: Option<Tag>,
pub and: Option<ReplicationRuleAndOperator>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct ReplicationTime {
pub status: Status,
pub time: ReplicationTimeValue,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct ReplicationTimeValue {
pub minutes: Option<i32>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct Retention {
pub mode: RetentionMode,
#[serde(deserialize_with = "crate::time::deserialize_with_str")]
pub retain_until_date: UtcTime,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct RoutingRule {
pub redirect: Redirect,
pub condition: Option<Condition>,
}
#[derive(Debug, Clone, Deserialize, Serialize, Default)]
#[serde(rename_all = "PascalCase")]
pub struct RoutingRules {
pub routing_rule: Vec<RoutingRule>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct SseKmsEncryptedObjects {
pub status: Status,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct StorageClassAnalysis {
pub data_export: Option<StorageClassAnalysisDataExport>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct StorageClassAnalysisDataExport {
pub destination: AnalyticsExportDestination,
pub output_schema_version: String,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct ServerSideEncryptionByDefault {
#[serde(rename = "SSEAlgorithm")]
pub ssealgorithm: String,
#[serde(rename = " KMSMasterKeyID")]
pub kmsmaster_key_id: Option<String>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct ServerSideEncryptionConfiguration {
#[serde(rename = "Rule")]
pub rules: Vec<ServerSideEncryptionRule>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct ServerSideEncryptionRule {
pub apply_server_side_encryption_by_default: ServerSideEncryptionByDefault,
#[serde(default)]
pub bucket_key_enabled: bool,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct SourceSelectionCriteria {
pub replica_modifications: Option<ReplicaModifications>,
pub sse_kms_encrypted_objects: Option<SseKmsEncryptedObjects>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct Stats {
pub bytes_processed: u64,
pub bytes_returned: u64,
pub bytes_scanned: u64,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct Tag {
pub key: String,
pub value: String,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct TagSet {
#[serde(rename = "Tag", default)]
pub tags: Vec<Tag>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct Tagging {
pub tag_set: TagSet,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct Transition {
pub date: Option<String>,
pub days: Option<i32>,
pub storage_class: Option<StorageClass>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct VersioningConfiguration {
pub mfa_delete: Option<MFADelete>,
pub status: Option<VersioningStatus>,
}
#[derive(Debug, Clone, Deserialize, Serialize)]
#[serde(rename_all = "PascalCase")]
pub struct WebsiteConfiguration {
pub error_document: Option<ErrorDocument>,
pub index_document: IndexDocument,
pub redirect_all_requests_to: Option<RedirectAllRequestsTo>,
#[serde(default)]
pub routing_rules: RoutingRules,
}
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)]
pub enum ChecksumAlgorithm {
CRC32,
CRC32C,
SHA1,
SHA256,
}
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)]
pub enum GranteeType {
CanonicalUser,
AmazonCustomerByEmail,
Group,
}
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)]
pub enum LegalHoldStatus {
ON,
OFF,
}
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)]
pub enum MFADelete {
Enabled,
Disabled,
}
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)]
pub enum Protocol {
http,
https,
}
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq, Default)]
pub enum RetentionMode {
#[default]
GOVERNANCE,
COMPLIANCE,
}
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)]
pub enum Permission {
FULL_CONTROL,
WRITE,
WRITE_ACP,
READ,
READ_ACP,
}
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)]
pub enum Status {
Enabled,
Disabled,
}
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)]
pub enum StorageClass {
STANDARD,
REDUCED_REDUNDANCY,
STANDARD_IA,
ONEZONE_IA,
INTELLIGENT_TIERING,
GLACIER,
DEEP_ARCHIVE,
OUTPOSTS,
GLACIER_IR,
SNOW,
EXPRESS_ONEZONE,
}
#[derive(Debug, Clone, Deserialize, Serialize, PartialEq)]
pub enum VersioningStatus {
Enabled,
Suspended,
}