use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct PublicAccessBlockConfiguration {
#[serde(skip_serializing_if = "Option::is_none")]
pub block_public_acls: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ignore_public_acls: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub block_public_policy: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub restrict_public_buckets: Option<bool>,
}
impl PublicAccessBlockConfiguration {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
block_public_acls: Some(false),
ignore_public_acls: Some(false),
block_public_policy: Some(false),
restrict_public_buckets: Some(false),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct BucketLifecycleConfiguration {
#[serde(default)]
pub rules: Vec<LifecycleRule>,
}
impl BucketLifecycleConfiguration {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self { rules: vec![] }
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct LifecycleRuleFilter {
#[serde(skip_serializing_if = "Option::is_none")]
pub prefix: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub object_size_greater_than: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub object_size_less_than: Option<i64>,
}
impl LifecycleRuleFilter {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
prefix: Some("test-prefix".into()),
object_size_greater_than: Some(100),
object_size_less_than: Some(100),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct LifecycleRule {
#[serde(skip_serializing_if = "Option::is_none")]
pub expiration: Option<LifecycleExpiration>,
#[serde(rename = "ID")]
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub prefix: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub filter: Option<LifecycleRuleFilter>,
pub status: String,
#[serde(rename = "Transition")]
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub transitions: Vec<Transition>,
#[serde(rename = "NoncurrentVersionTransition")]
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub noncurrent_version_transitions: Vec<NoncurrentVersionTransition>,
#[serde(skip_serializing_if = "Option::is_none")]
pub noncurrent_version_expiration: Option<NoncurrentVersionExpiration>,
#[serde(skip_serializing_if = "Option::is_none")]
pub abort_incomplete_multipart_upload: Option<AbortIncompleteMultipartUpload>,
}
impl LifecycleRule {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
expiration: Some(LifecycleExpiration::fixture()),
id: Some("test-id".into()),
prefix: Some("test-prefix".into()),
filter: Some(LifecycleRuleFilter::fixture()),
status: "test-status".into(),
transitions: vec![],
noncurrent_version_transitions: vec![],
noncurrent_version_expiration: Some(NoncurrentVersionExpiration::fixture()),
abort_incomplete_multipart_upload: Some(AbortIncompleteMultipartUpload::fixture()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct ListBucketsResponse {
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub buckets: Vec<Bucket>,
#[serde(skip_serializing_if = "Option::is_none")]
pub owner: Option<Owner>,
}
impl ListBucketsResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
buckets: vec![],
owner: Some(Owner::fixture()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Bucket {
#[serde(skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub creation_date: Option<String>,
}
impl Bucket {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
name: Some("test-name".into()),
creation_date: Some("test-creation_date".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Owner {
#[serde(skip_serializing_if = "Option::is_none")]
pub display_name: Option<String>,
#[serde(rename = "ID")]
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
}
impl Owner {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
display_name: Some("test-display_name".into()),
id: Some("test-id".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct GetBucketVersioningResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
#[serde(rename = "MfaDelete")]
#[serde(skip_serializing_if = "Option::is_none")]
pub mfa_delete: Option<String>,
}
impl GetBucketVersioningResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
status: Some("test-status".into()),
mfa_delete: Some("test-mfa_delete".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct GetBucketEncryptionResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub server_side_encryption_configuration: Option<ServerSideEncryptionConfiguration>,
}
impl GetBucketEncryptionResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
server_side_encryption_configuration: Some(ServerSideEncryptionConfiguration::fixture()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct ServerSideEncryptionConfiguration {
#[serde(rename = "Rule")]
#[serde(default)]
pub rules: Vec<ServerSideEncryptionRule>,
}
impl ServerSideEncryptionConfiguration {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self { rules: vec![] }
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct ServerSideEncryptionRule {
#[serde(skip_serializing_if = "Option::is_none")]
pub apply_server_side_encryption_by_default: Option<ServerSideEncryptionByDefault>,
#[serde(skip_serializing_if = "Option::is_none")]
pub bucket_key_enabled: Option<bool>,
}
impl ServerSideEncryptionRule {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
apply_server_side_encryption_by_default: Some(ServerSideEncryptionByDefault::fixture()),
bucket_key_enabled: Some(false),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct ServerSideEncryptionByDefault {
#[serde(rename = "SSEAlgorithm")]
pub sse_algorithm: String,
#[serde(rename = "KMSMasterKeyID")]
#[serde(skip_serializing_if = "Option::is_none")]
pub kms_master_key_id: Option<String>,
}
impl ServerSideEncryptionByDefault {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
sse_algorithm: "test-sse_algorithm".into(),
kms_master_key_id: Some("test-kms_master_key_id".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct GetBucketLoggingResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub logging_enabled: Option<LoggingEnabled>,
}
impl GetBucketLoggingResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
logging_enabled: Some(LoggingEnabled::fixture()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct LoggingEnabled {
pub target_bucket: String,
pub target_prefix: String,
}
impl LoggingEnabled {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
target_bucket: "test-target_bucket".into(),
target_prefix: "test-target_prefix".into(),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct GetBucketAclResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub owner: Option<Owner>,
#[serde(rename = "AccessControlList")]
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub grants: Vec<Grant>,
}
impl GetBucketAclResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
owner: Some(Owner::fixture()),
grants: vec![],
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Grant {
#[serde(skip_serializing_if = "Option::is_none")]
pub grantee: Option<Grantee>,
#[serde(skip_serializing_if = "Option::is_none")]
pub permission: Option<String>,
}
impl Grant {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
grantee: Some(Grantee::fixture()),
permission: Some("test-permission".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Grantee {
#[serde(skip_serializing_if = "Option::is_none")]
pub display_name: Option<String>,
#[serde(rename = "ID")]
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
#[serde(rename = "URI")]
#[serde(skip_serializing_if = "Option::is_none")]
pub uri: Option<String>,
}
impl Grantee {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
display_name: Some("test-display_name".into()),
id: Some("test-id".into()),
uri: Some("test-uri".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct GetBucketLifecycleConfigurationResponse {
#[serde(rename = "Rule")]
#[serde(default)]
#[serde(skip_serializing_if = "Vec::is_empty")]
pub rules: Vec<LifecycleRule>,
}
impl GetBucketLifecycleConfigurationResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self { rules: vec![] }
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct GetPublicAccessBlockResponse {
#[serde(skip_serializing_if = "Option::is_none")]
pub public_access_block_configuration: Option<PublicAccessBlockConfiguration>,
}
impl GetPublicAccessBlockResponse {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
public_access_block_configuration: Some(PublicAccessBlockConfiguration::fixture()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct VersioningConfiguration {
#[serde(rename = "MfaDelete")]
#[serde(skip_serializing_if = "Option::is_none")]
pub mfa_delete: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<String>,
}
impl VersioningConfiguration {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
mfa_delete: Some("test-mfa_delete".into()),
status: Some("test-status".into()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct BucketLoggingStatus {
#[serde(skip_serializing_if = "Option::is_none")]
pub logging_enabled: Option<LoggingEnabled>,
}
impl BucketLoggingStatus {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
logging_enabled: Some(LoggingEnabled::fixture()),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct AbortIncompleteMultipartUpload {
#[serde(skip_serializing_if = "Option::is_none")]
pub days_after_initiation: Option<i32>,
}
impl AbortIncompleteMultipartUpload {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
days_after_initiation: Some(100),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct LifecycleExpiration {
#[serde(skip_serializing_if = "Option::is_none")]
pub date: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub days: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub expired_object_delete_marker: Option<bool>,
}
impl LifecycleExpiration {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
date: Some("test-date".into()),
days: Some(100),
expired_object_delete_marker: Some(false),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct NoncurrentVersionExpiration {
#[serde(skip_serializing_if = "Option::is_none")]
pub noncurrent_days: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub newer_noncurrent_versions: Option<i32>,
}
impl NoncurrentVersionExpiration {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
noncurrent_days: Some(100),
newer_noncurrent_versions: Some(100),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct NoncurrentVersionTransition {
#[serde(skip_serializing_if = "Option::is_none")]
pub noncurrent_days: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub storage_class: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub newer_noncurrent_versions: Option<i32>,
}
impl NoncurrentVersionTransition {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
noncurrent_days: Some(100),
storage_class: Some("test-storage_class".into()),
newer_noncurrent_versions: Some(100),
}
}
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Transition {
#[serde(skip_serializing_if = "Option::is_none")]
pub date: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub days: Option<i32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub storage_class: Option<String>,
}
impl Transition {
#[cfg(any(test, feature = "test-support"))]
pub fn fixture() -> Self {
Self {
date: Some("test-date".into()),
days: Some(100),
storage_class: Some("test-storage_class".into()),
}
}
}