We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
BackendConfiguration fails validation if backend supports pulse
<!-- ⚠️ If you do not respect this template, your issue will be closed -->
<!-- ⚠️ Make sure to browse the opened and closed issues -->

### Informations

- **Qiskit Terra version**:0.8.0
- **Python version**3.6.6
- **Operating system**:OSX

### What is the current behavior?
If a backend sets `open_pulse=true` in its configuration Qiskit will raise a validation error when creating a `BackendConfigurationSchema`


### Steps to reproduce the problem
Create a backend with `open_pulse=true` set in its configuration.


### What is the expected behavior?
Should not fail.


### Suggested solutions
Allow `open_pulse=true` to be valid.



--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `qiskit/providers/models/backendconfiguration.py`
Content:
```
1 # -*- coding: utf-8 -*-
2 
3 # Copyright 2018, IBM.
4 #
5 # This source code is licensed under the Apache License, Version 2.0 found in
6 # the LICENSE.txt file in the root directory of this source tree.
7 
8 """Model and schema for backend configuration."""
9 
10 from marshmallow.validate import Equal, Length, OneOf, Range, Regexp
11 
12 from qiskit.validation import BaseModel, BaseSchema, bind_schema
13 from qiskit.validation.fields import Boolean, DateTime, Integer, List, Nested, String
14 
15 
16 class GateConfigSchema(BaseSchema):
17     """Schema for GateConfig."""
18 
19     # Required properties.
20     name = String(required=True)
21     parameters = List(String(), required=True)
22     qasm_def = String(required=True)
23 
24     # Optional properties.
25     coupling_map = List(List(Integer(),
26                              validate=Length(min=1)),
27                         validate=Length(min=1))
28     latency_map = List(List(Integer(validate=OneOf([0, 1])),
29                             validate=Length(min=1)),
30                        validate=Length(min=1))
31     conditional = Boolean()
32     description = String()
33 
34 
35 class BackendConfigurationSchema(BaseSchema):
36     """Schema for BackendConfiguration."""
37 
38     # Required properties.
39     backend_name = String(required=True)
40     backend_version = String(required=True,
41                              validate=Regexp("[0-9]+.[0-9]+.[0-9]+$"))
42     n_qubits = Integer(required=True, validate=Range(min=1))
43     basis_gates = List(String(), required=True,
44                        validate=Length(min=1))
45     gates = Nested(GateConfigSchema, required=True, many=True,
46                    validate=Length(min=1))
47     local = Boolean(required=True)
48     simulator = Boolean(required=True)
49     conditional = Boolean(required=True)
50     open_pulse = Boolean(required=True, validate=Equal(False))
51     memory = Boolean(required=True)
52     max_shots = Integer(required=True, validate=Range(min=1))
53 
54     # Optional properties.
55     max_experiments = Integer(validate=Range(min=1))
56     sample_name = String()
57     coupling_map = List(List(Integer(),
58                              validate=Length(min=1)),
59                         validate=Length(min=1))
60     n_registers = Integer(validate=Range(min=1))
61     register_map = List(List(Integer(validate=OneOf([0, 1])),
62                              validate=Length(min=1)),
63                         validate=Length(min=1))
64     configurable = Boolean()
65     credits_required = Boolean()
66     online_date = DateTime()
67     display_name = String()
68     description = String()
69     tags = List(String())
70 
71 
72 @bind_schema(GateConfigSchema)
73 class GateConfig(BaseModel):
74     """Model for GateConfig.
75 
76     Please note that this class only describes the required fields. For the
77     full description of the model, please check ``GateConfigSchema``.
78 
79     Attributes:
80         name (str): the gate name as it will be referred to in QASM.
81         parameters (list[str]): variable names for the gate parameters (if any).
82         qasm_def (str): definition of this gate in terms of QASM primitives U
83             and CX.
84     """
85 
86     def __init__(self, name, parameters, qasm_def, **kwargs):
87         self.name = name
88         self.parameters = parameters
89         self.qasm_def = qasm_def
90 
91         super().__init__(**kwargs)
92 
93 
94 @bind_schema(BackendConfigurationSchema)
95 class BackendConfiguration(BaseModel):
96     """Model for BackendConfiguration.
97 
98     Please note that this class only describes the required fields. For the
99     full description of the model, please check ``BackendConfigurationSchema``.
100     Attributes:
101         backend_name (str): backend name.
102         backend_version (str): backend version in the form X.Y.Z.
103         n_qubits (int): number of qubits.
104         basis_gates (list[str]): list of basis gates names on the backend.
105         gates (GateConfig): list of basis gates on the backend.
106         local (bool): backend is local or remote.
107         simulator (bool): backend is a simulator.
108         conditional (bool): backend supports conditional operations.
109         open_pulse (bool): backend supports open pulse.
110         memory (bool): backend supports memory.
111         max_shots (int): maximum number of shots supported.
112     """
113 
114     def __init__(self, backend_name, backend_version, n_qubits, basis_gates,
115                  gates, local, simulator, conditional, open_pulse, memory,
116                  max_shots, **kwargs):
117         self.backend_name = backend_name
118         self.backend_version = backend_version
119         self.n_qubits = n_qubits
120         self.basis_gates = basis_gates
121         self.gates = gates
122         self.local = local
123         self.simulator = simulator
124         self.conditional = conditional
125         self.open_pulse = open_pulse
126         self.memory = memory
127         self.max_shots = max_shots
128 
129         super().__init__(**kwargs)
130
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/qiskit/providers/models/backendconfiguration.py b/qiskit/providers/models/backendconfiguration.py
--- a/qiskit/providers/models/backendconfiguration.py
+++ b/qiskit/providers/models/backendconfiguration.py
@@ -7,7 +7,7 @@
 
 """Model and schema for backend configuration."""
 
-from marshmallow.validate import Equal, Length, OneOf, Range, Regexp
+from marshmallow.validate import Length, OneOf, Range, Regexp
 
 from qiskit.validation import BaseModel, BaseSchema, bind_schema
 from qiskit.validation.fields import Boolean, DateTime, Integer, List, Nested, String
@@ -47,7 +47,7 @@
     local = Boolean(required=True)
     simulator = Boolean(required=True)
     conditional = Boolean(required=True)
-    open_pulse = Boolean(required=True, validate=Equal(False))
+    open_pulse = Boolean(required=True)
     memory = Boolean(required=True)
     max_shots = Integer(required=True, validate=Range(min=1))

{"golden_diff": "diff --git a/qiskit/providers/models/backendconfiguration.py b/qiskit/providers/models/backendconfiguration.py\n--- a/qiskit/providers/models/backendconfiguration.py\n+++ b/qiskit/providers/models/backendconfiguration.py\n@@ -7,7 +7,7 @@\n \n \"\"\"Model and schema for backend configuration.\"\"\"\n \n-from marshmallow.validate import Equal, Length, OneOf, Range, Regexp\n+from marshmallow.validate import Length, OneOf, Range, Regexp\n \n from qiskit.validation import BaseModel, BaseSchema, bind_schema\n from qiskit.validation.fields import Boolean, DateTime, Integer, List, Nested, String\n@@ -47,7 +47,7 @@\n     local = Boolean(required=True)\n     simulator = Boolean(required=True)\n     conditional = Boolean(required=True)\n-    open_pulse = Boolean(required=True, validate=Equal(False))\n+    open_pulse = Boolean(required=True)\n     memory = Boolean(required=True)\n     max_shots = Integer(required=True, validate=Range(min=1))\n", "issue": "BackendConfiguration fails validation if backend supports pulse\n<!-- \u26a0\ufe0f If you do not respect this template, your issue will be closed -->\r\n<!-- \u26a0\ufe0f Make sure to browse the opened and closed issues -->\r\n\r\n### Informations\r\n\r\n- **Qiskit Terra version**:0.8.0\r\n- **Python version**3.6.6\r\n- **Operating system**:OSX\r\n\r\n### What is the current behavior?\r\nIf a backend sets `open_pulse=true` in its configuration Qiskit will raise a validation error when creating a `BackendConfigurationSchema`\r\n\r\n\r\n### Steps to reproduce the problem\r\nCreate a backend with `open_pulse=true` set in its configuration.\r\n\r\n\r\n### What is the expected behavior?\r\nShould not fail.\r\n\r\n\r\n### Suggested solutions\r\nAllow `open_pulse=true` to be valid.\r\n\r\n\n", "before_files": [{"content": "# -*- coding: utf-8 -*-\n\n# Copyright 2018, IBM.\n#\n# This source code is licensed under the Apache License, Version 2.0 found in\n# the LICENSE.txt file in the root directory of this source tree.\n\n\"\"\"Model and schema for backend configuration.\"\"\"\n\nfrom marshmallow.validate import Equal, Length, OneOf, Range, Regexp\n\nfrom qiskit.validation import BaseModel, BaseSchema, bind_schema\nfrom qiskit.validation.fields import Boolean, DateTime, Integer, List, Nested, String\n\n\nclass GateConfigSchema(BaseSchema):\n    \"\"\"Schema for GateConfig.\"\"\"\n\n    # Required properties.\n    name = String(required=True)\n    parameters = List(String(), required=True)\n    qasm_def = String(required=True)\n\n    # Optional properties.\n    coupling_map = List(List(Integer(),\n                             validate=Length(min=1)),\n                        validate=Length(min=1))\n    latency_map = List(List(Integer(validate=OneOf([0, 1])),\n                            validate=Length(min=1)),\n                       validate=Length(min=1))\n    conditional = Boolean()\n    description = String()\n\n\nclass BackendConfigurationSchema(BaseSchema):\n    \"\"\"Schema for BackendConfiguration.\"\"\"\n\n    # Required properties.\n    backend_name = String(required=True)\n    backend_version = String(required=True,\n                             validate=Regexp(\"[0-9]+.[0-9]+.[0-9]+$\"))\n    n_qubits = Integer(required=True, validate=Range(min=1))\n    basis_gates = List(String(), required=True,\n                       validate=Length(min=1))\n    gates = Nested(GateConfigSchema, required=True, many=True,\n                   validate=Length(min=1))\n    local = Boolean(required=True)\n    simulator = Boolean(required=True)\n    conditional = Boolean(required=True)\n    open_pulse = Boolean(required=True, validate=Equal(False))\n    memory = Boolean(required=True)\n    max_shots = Integer(required=True, validate=Range(min=1))\n\n    # Optional properties.\n    max_experiments = Integer(validate=Range(min=1))\n    sample_name = String()\n    coupling_map = List(List(Integer(),\n                             validate=Length(min=1)),\n                        validate=Length(min=1))\n    n_registers = Integer(validate=Range(min=1))\n    register_map = List(List(Integer(validate=OneOf([0, 1])),\n                             validate=Length(min=1)),\n                        validate=Length(min=1))\n    configurable = Boolean()\n    credits_required = Boolean()\n    online_date = DateTime()\n    display_name = String()\n    description = String()\n    tags = List(String())\n\n\n@bind_schema(GateConfigSchema)\nclass GateConfig(BaseModel):\n    \"\"\"Model for GateConfig.\n\n    Please note that this class only describes the required fields. For the\n    full description of the model, please check ``GateConfigSchema``.\n\n    Attributes:\n        name (str): the gate name as it will be referred to in QASM.\n        parameters (list[str]): variable names for the gate parameters (if any).\n        qasm_def (str): definition of this gate in terms of QASM primitives U\n            and CX.\n    \"\"\"\n\n    def __init__(self, name, parameters, qasm_def, **kwargs):\n        self.name = name\n        self.parameters = parameters\n        self.qasm_def = qasm_def\n\n        super().__init__(**kwargs)\n\n\n@bind_schema(BackendConfigurationSchema)\nclass BackendConfiguration(BaseModel):\n    \"\"\"Model for BackendConfiguration.\n\n    Please note that this class only describes the required fields. For the\n    full description of the model, please check ``BackendConfigurationSchema``.\n    Attributes:\n        backend_name (str): backend name.\n        backend_version (str): backend version in the form X.Y.Z.\n        n_qubits (int): number of qubits.\n        basis_gates (list[str]): list of basis gates names on the backend.\n        gates (GateConfig): list of basis gates on the backend.\n        local (bool): backend is local or remote.\n        simulator (bool): backend is a simulator.\n        conditional (bool): backend supports conditional operations.\n        open_pulse (bool): backend supports open pulse.\n        memory (bool): backend supports memory.\n        max_shots (int): maximum number of shots supported.\n    \"\"\"\n\n    def __init__(self, backend_name, backend_version, n_qubits, basis_gates,\n                 gates, local, simulator, conditional, open_pulse, memory,\n                 max_shots, **kwargs):\n        self.backend_name = backend_name\n        self.backend_version = backend_version\n        self.n_qubits = n_qubits\n        self.basis_gates = basis_gates\n        self.gates = gates\n        self.local = local\n        self.simulator = simulator\n        self.conditional = conditional\n        self.open_pulse = open_pulse\n        self.memory = memory\n        self.max_shots = max_shots\n\n        super().__init__(**kwargs)\n", "path": "qiskit/providers/models/backendconfiguration.py"}], "after_files": [{"content": "# -*- coding: utf-8 -*-\n\n# Copyright 2018, IBM.\n#\n# This source code is licensed under the Apache License, Version 2.0 found in\n# the LICENSE.txt file in the root directory of this source tree.\n\n\"\"\"Model and schema for backend configuration.\"\"\"\n\nfrom marshmallow.validate import Length, OneOf, Range, Regexp\n\nfrom qiskit.validation import BaseModel, BaseSchema, bind_schema\nfrom qiskit.validation.fields import Boolean, DateTime, Integer, List, Nested, String\n\n\nclass GateConfigSchema(BaseSchema):\n    \"\"\"Schema for GateConfig.\"\"\"\n\n    # Required properties.\n    name = String(required=True)\n    parameters = List(String(), required=True)\n    qasm_def = String(required=True)\n\n    # Optional properties.\n    coupling_map = List(List(Integer(),\n                             validate=Length(min=1)),\n                        validate=Length(min=1))\n    latency_map = List(List(Integer(validate=OneOf([0, 1])),\n                            validate=Length(min=1)),\n                       validate=Length(min=1))\n    conditional = Boolean()\n    description = String()\n\n\nclass BackendConfigurationSchema(BaseSchema):\n    \"\"\"Schema for BackendConfiguration.\"\"\"\n\n    # Required properties.\n    backend_name = String(required=True)\n    backend_version = String(required=True,\n                             validate=Regexp(\"[0-9]+.[0-9]+.[0-9]+$\"))\n    n_qubits = Integer(required=True, validate=Range(min=1))\n    basis_gates = List(String(), required=True,\n                       validate=Length(min=1))\n    gates = Nested(GateConfigSchema, required=True, many=True,\n                   validate=Length(min=1))\n    local = Boolean(required=True)\n    simulator = Boolean(required=True)\n    conditional = Boolean(required=True)\n    open_pulse = Boolean(required=True)\n    memory = Boolean(required=True)\n    max_shots = Integer(required=True, validate=Range(min=1))\n\n    # Optional properties.\n    max_experiments = Integer(validate=Range(min=1))\n    sample_name = String()\n    coupling_map = List(List(Integer(),\n                             validate=Length(min=1)),\n                        validate=Length(min=1))\n    n_registers = Integer(validate=Range(min=1))\n    register_map = List(List(Integer(validate=OneOf([0, 1])),\n                             validate=Length(min=1)),\n                        validate=Length(min=1))\n    configurable = Boolean()\n    credits_required = Boolean()\n    online_date = DateTime()\n    display_name = String()\n    description = String()\n    tags = List(String())\n\n\n@bind_schema(GateConfigSchema)\nclass GateConfig(BaseModel):\n    \"\"\"Model for GateConfig.\n\n    Please note that this class only describes the required fields. For the\n    full description of the model, please check ``GateConfigSchema``.\n\n    Attributes:\n        name (str): the gate name as it will be referred to in QASM.\n        parameters (list[str]): variable names for the gate parameters (if any).\n        qasm_def (str): definition of this gate in terms of QASM primitives U\n            and CX.\n    \"\"\"\n\n    def __init__(self, name, parameters, qasm_def, **kwargs):\n        self.name = name\n        self.parameters = parameters\n        self.qasm_def = qasm_def\n\n        super().__init__(**kwargs)\n\n\n@bind_schema(BackendConfigurationSchema)\nclass BackendConfiguration(BaseModel):\n    \"\"\"Model for BackendConfiguration.\n\n    Please note that this class only describes the required fields. For the\n    full description of the model, please check ``BackendConfigurationSchema``.\n    Attributes:\n        backend_name (str): backend name.\n        backend_version (str): backend version in the form X.Y.Z.\n        n_qubits (int): number of qubits.\n        basis_gates (list[str]): list of basis gates names on the backend.\n        gates (GateConfig): list of basis gates on the backend.\n        local (bool): backend is local or remote.\n        simulator (bool): backend is a simulator.\n        conditional (bool): backend supports conditional operations.\n        open_pulse (bool): backend supports open pulse.\n        memory (bool): backend supports memory.\n        max_shots (int): maximum number of shots supported.\n    \"\"\"\n\n    def __init__(self, backend_name, backend_version, n_qubits, basis_gates,\n                 gates, local, simulator, conditional, open_pulse, memory,\n                 max_shots, **kwargs):\n        self.backend_name = backend_name\n        self.backend_version = backend_version\n        self.n_qubits = n_qubits\n        self.basis_gates = basis_gates\n        self.gates = gates\n        self.local = local\n        self.simulator = simulator\n        self.conditional = conditional\n        self.open_pulse = open_pulse\n        self.memory = memory\n        self.max_shots = max_shots\n\n        super().__init__(**kwargs)\n", "path": "qiskit/providers/models/backendconfiguration.py"}]}