Repository: docker/docker-py

Issue:
Missed rollback_config in service's create/update methods.
Hi, in [documentation](https://docker-py.readthedocs.io/en/stable/services.html) for service written that it support `rollback_config` parameter, but in `models/services.py`'s `CREATE_SERVICE_KWARGS` list doesn't contain it.
So, I got this error:
`TypeError: create() got an unexpected keyword argument 'rollback_config'`
Can someone tell me, is this done intentionally, or is it a bug?

**Version:** `4.4.4, 5.0.0 and older`

**My diff:**
```
diff --git a/docker/models/services.py b/docker/models/services.py
index a29ff13..0f26626 100644
--- a/docker/models/services.py
+++ b/docker/models/services.py
@@ -314,6 +314,7 @@ CREATE_SERVICE_KWARGS = [
     'labels',
     'mode',
     'update_config',
+    'rollback_config',
     'endpoint_spec',
 ]
```

PS. Full stacktrace:
```
In [54]: service_our = client.services.create(
    ...:     name=service_name,
    ...:     image=image_full_name,
    ...:     restart_policy=restart_policy,
    ...:     update_config=update_config,
    ...:     rollback_config=rollback_config
    ...:     )
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-54-8cc6a8a6519b> in <module>
----> 1 service_our = client.services.create(
      2     name=service_name,
      3     image=image_full_name,
      4     restart_policy=restart_policy,
      5     update_config=update_config,

/usr/local/lib/python3.9/site-packages/docker/models/services.py in create(self, image, command, **kwargs)
    224         kwargs['image'] = image
    225         kwargs['command'] = command
--> 226         create_kwargs = _get_create_service_kwargs('create', kwargs)
    227         service_id = self.client.api.create_service(**create_kwargs)
    228         return self.get(service_id)

/usr/local/lib/python3.9/site-packages/docker/models/services.py in _get_create_service_kwargs(func_name, kwargs)
    369     # All kwargs should have been consumed by this point, so raise
    370     # error if any are left
--> 371     if kwargs:
    372         raise create_unexpected_kwargs_error(func_name, kwargs)
    373

TypeError: create() got an unexpected keyword argument 'rollback_config'
```


Discussion:
This is still an issue for 5.0.3, looking for a work-around if there is one. Thanks

Resolving patch:
diff --git a/docker/models/services.py b/docker/models/services.py
--- a/docker/models/services.py
+++ b/docker/models/services.py
@@ -320,6 +320,7 @@ def list(self, **kwargs):
     'labels',
     'mode',
     'update_config',
+    'rollback_config',
     'endpoint_spec',
 ]
 


Test patch:
diff --git a/tests/integration/models_services_test.py b/tests/integration/models_services_test.py
--- a/tests/integration/models_services_test.py
+++ b/tests/integration/models_services_test.py
@@ -30,13 +30,18 @@ def test_create(self):
             # ContainerSpec arguments
             image="alpine",
             command="sleep 300",
-            container_labels={'container': 'label'}
+            container_labels={'container': 'label'},
+            rollback_config={'order': 'start-first'}
         )
         assert service.name == name
         assert service.attrs['Spec']['Labels']['foo'] == 'bar'
         container_spec = service.attrs['Spec']['TaskTemplate']['ContainerSpec']
         assert "alpine" in container_spec['Image']
         assert container_spec['Labels'] == {'container': 'label'}
+        spec_rollback = service.attrs['Spec'].get('RollbackConfig', None)
+        assert spec_rollback is not None
+        assert ('Order' in spec_rollback and
+               spec_rollback['Order'] == 'start-first')
 
     def test_create_with_network(self):
         client = docker.from_env(version=TEST_API_VERSION)
diff --git a/tests/unit/models_services_test.py b/tests/unit/models_services_test.py
--- a/tests/unit/models_services_test.py
+++ b/tests/unit/models_services_test.py
@@ -11,6 +11,7 @@ def test_get_create_service_kwargs(self):
             'labels': {'key': 'value'},
             'hostname': 'test_host',
             'mode': 'global',
+            'rollback_config': {'rollback': 'config'},
             'update_config': {'update': 'config'},
             'networks': ['somenet'],
             'endpoint_spec': {'blah': 'blah'},
@@ -37,6 +38,7 @@ def test_get_create_service_kwargs(self):
             'name': 'somename',
             'labels': {'key': 'value'},
             'mode': 'global',
+            'rollback_config': {'rollback': 'config'},
             'update_config': {'update': 'config'},
             'endpoint_spec': {'blah': 'blah'},
         }