I am using aws cli to setup lifecycle management on a S3 bucket. I am using this json script:
{
"Rules": [
{
"Filter": {
},
"Status": "Enabled",
"Transitions": [
{
"Days": 30,
"StorageClass": "STANDARD_IA"
},
{
"Days": 365,
"StorageClass": "GLACIER"
}
],
"NoncurrentVersionTransitions": {
"NoncurrentDays": 30,
"StorageClass": "STANDARD_IA"
},
"Expiration": {
"Days": 3650
},
"ID": "Test"
}
]
}
and I am getting this error:
Parameter validation failed:
Invalid type for parameter
LifecycleConfiguration.Rules[0].NoncurrentVersionTransitions, value:
OrderedDict([(u'NoncurrentDays', 30), (u'StorageClass', u'STANDARD_IA')]),
type: <class 'collections.OrderedDict'>, valid types: <type 'list'>, <type
'tuple'>
The script works fine when I exclude the part about the NoncurrentVersionTransitions. I was wondering how I could include the NoncurrentVersionTransitions correctly.
Thanks in advance.
"NoncurrentVersionTransitions": {
"NoncurrentDays": 30,
"StorageClass": "STANDARD_IA"
},
replace with added []
"NoncurrentVersionTransitions": [{
"NoncurrentDays": 30,
"StorageClass": "STANDARD_IA"
}],
solves the issue.