Search code examples
amazon-web-serviceslifecycle

AWS Lifecycle configuration Noncurrentversion transition: Parameter validation failed


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.


Solution

  •  "NoncurrentVersionTransitions": {
                    "NoncurrentDays":  30,
                    "StorageClass": "STANDARD_IA"
                    },
    

    replace with added []

    "NoncurrentVersionTransitions": [{
                        "NoncurrentDays":  30,
                        "StorageClass": "STANDARD_IA"
                        }],
    

    solves the issue.