It seems like this settings structure doen't validate user's input.
I guess the way it should work is (line number as in current pydrive/master):
After line 22:
```python
{
    'value': 'service',
    'attribute': ['service_config']
}
```
After line 89:
```python
'service_config': {
    'type': dict,
    'required': False,
    'struct': {
         'client_user_email': {
               'type': str,
               'required': True
           },
           'client_service_email': {
                'type': str,
                'required': True
          },
         'client_pkcs12_file_path': {
                'type': str,
                'required': True
      }
}
```

That way, user will be forced to enter all of user email, service email, and pkc12 file when he chose to use `'service'`as a `client_config_backend`.