Currently `ECSOperator` propagates `platform_version` parameter either in case `launch_type` is `FARGATE` or there is `capacity_provider_strategy` parameter provided. The case with `capacity_provider_strategy` is wrong. Capacity provider strategy can contain a reference on EC2 capacity provider. If it's an EC2 capacity provider, then `platform_version` should not be propagated to the `boto3` api call. And it's not possible to do so with the current logic of `ECSOperator` because `platform_version` is always propagated in such case and `boto3` doesn't accept `platform_version` as `None`. So in order to fix that `platform_version` should be an independent parameter and propagated only when it's specified, regardless which `launch_type` or `capacity_provider_strategy` is specified. That should also simplify the logic of `ECSOperator`.

I will prepare a PR to fix that.
tests/providers/amazon/aws/operators/test_ecs.py
'platformVersion': 'LATEST',
                },
            ],
            [
                'FARGATE',
                {'capacityProvider': 'FARGATE_SPOT', 'weight': 123, 'base': 123},
                None,
                {
                    'capacityProviderStrategy': {
                        'capacityProvider': 'FARGATE_SPOT',
                        'weight': 123,
                        'base': 123,
                    },
                    'platformVersion': 'LATEST',
                },
            ],
            [
                'EC2',
                {'capacityProvider': 'FARGATE_SPOT'},
                None,
                {
                    'capacityProviderStrategy': {'capacityProvider': 'FARGATE_SPOT'},
                    'platformVersion': 'LATEST',
                },
            ],
        ]
    )
    @mock.patch.object(ECSOperator, '_wait_for_task_ended')
    @mock.patch.object(ECSOperator, '_check_success_task')
    def test_execute_without_failures(