Remove Nova v3 API schemas

Nova v3 API has disappeared, and Tempest isn't testing the API on the
gate now. In addition, Nova team is creating a new REST API "Nova v2.1
API + microversions" and the interfaces are different from v3 API.
So it is not necessary to keep Nova v3 API tests in Tempest.
This patch removes the API schemas.

Change-Id: Icf56194e855452e580e6a126f8477ebbd8d6952d
diff --git a/tempest/api_schema/request/compute/v3/__init__.py b/tempest/api_schema/request/compute/v3/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/tempest/api_schema/request/compute/v3/__init__.py
+++ /dev/null
diff --git a/tempest/api_schema/request/compute/v3/flavors.py b/tempest/api_schema/request/compute/v3/flavors.py
deleted file mode 100644
index b913aca..0000000
--- a/tempest/api_schema/request/compute/v3/flavors.py
+++ /dev/null
@@ -1,37 +0,0 @@
-# (c) 2014 Deutsche Telekom AG
-#    Licensed under the Apache License, Version 2.0 (the "License");
-#    you may not use this file except in compliance with the License.
-#    You may obtain a copy of the License at
-#
-#        http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS,
-#    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-#    See the License for the specific language governing permissions and
-#    limitations under the License.
-
-import copy
-
-from tempest.api_schema.request.compute import flavors
-
-flavors_details = copy.deepcopy(flavors.common_flavor_details)
-
-flavor_list = copy.deepcopy(flavors.common_flavor_list)
-
-flavor_list["json-schema"]["properties"] = {
-    "min_ram": {
-        "type": "integer",
-        "results": {
-            "gen_none": 400,
-            "gen_string": 400
-        }
-    },
-    "min_disk": {
-        "type": "integer",
-        "results": {
-            "gen_none": 400,
-            "gen_string": 400
-        }
-    }
-}
diff --git a/tempest/api_schema/response/compute/v3/__init__.py b/tempest/api_schema/response/compute/v3/__init__.py
deleted file mode 100644
index e69de29..0000000
--- a/tempest/api_schema/response/compute/v3/__init__.py
+++ /dev/null
diff --git a/tempest/api_schema/response/compute/v3/agents.py b/tempest/api_schema/response/compute/v3/agents.py
deleted file mode 100644
index 9ef05df..0000000
--- a/tempest/api_schema/response/compute/v3/agents.py
+++ /dev/null
@@ -1,24 +0,0 @@
-# Copyright 2014 NEC Corporation.  All rights reserved.
-#
-#    Licensed under the Apache License, Version 2.0 (the "License"); you may
-#    not use this file except in compliance with the License. You may obtain
-#    a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-#    License for the specific language governing permissions and limitations
-#    under the License.
-
-from tempest.api_schema.response.compute import agents
-
-create_agent = {
-    'status_code': [201],
-    'response_body': agents.common_create_agent
-}
-
-delete_agent = {
-    'status_code': [204]
-}
diff --git a/tempest/api_schema/response/compute/v3/aggregates.py b/tempest/api_schema/response/compute/v3/aggregates.py
deleted file mode 100644
index e3bae13..0000000
--- a/tempest/api_schema/response/compute/v3/aggregates.py
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright 2014 NEC Corporation.  All rights reserved.
-#
-#    Licensed under the Apache License, Version 2.0 (the "License"); you may
-#    not use this file except in compliance with the License. You may obtain
-#    a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-#    License for the specific language governing permissions and limitations
-#    under the License.
-
-import copy
-
-from tempest.api_schema.response.compute import aggregates
-
-delete_aggregate = {
-    'status_code': [204]
-}
-
-create_aggregate = copy.deepcopy(aggregates.common_create_aggregate)
-# V3 API's response status_code is 201
-create_aggregate['status_code'] = [201]
-
-aggregate_add_remove_host = copy.deepcopy(aggregates.aggregate_add_remove_host)
-# V3 API's response status_code is 202
-aggregate_add_remove_host['status_code'] = [202]
diff --git a/tempest/api_schema/response/compute/v3/availability_zone.py b/tempest/api_schema/response/compute/v3/availability_zone.py
deleted file mode 100644
index dbb1d41..0000000
--- a/tempest/api_schema/response/compute/v3/availability_zone.py
+++ /dev/null
@@ -1,53 +0,0 @@
-# Copyright 2014 NEC Corporation.  All rights reserved.
-#
-#    Licensed under the Apache License, Version 2.0 (the "License"); you may
-#    not use this file except in compliance with the License. You may obtain
-#    a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-#    License for the specific language governing permissions and limitations
-#    under the License.
-
-import copy
-
-from tempest.api_schema.response.compute import availability_zone as common
-
-
-base = {
-    'status_code': [200],
-    'response_body': {
-        'type': 'object',
-        'properties': {
-            'availability_zone_info': {
-                'type': 'array',
-                'items': {
-                    'type': 'object',
-                    'properties': {
-                        'zone_name': {'type': 'string'},
-                        'zone_state': {
-                            'type': 'object',
-                            'properties': {
-                                'available': {'type': 'boolean'}
-                            },
-                            'required': ['available']
-                        },
-                        # NOTE: Here is the difference between detail and
-                        # non-detail
-                        'hosts': {'type': 'null'}
-                    },
-                    'required': ['zone_name', 'zone_state', 'hosts']
-                }
-            }
-        },
-        'required': ['availability_zone_info']
-    }
-}
-
-get_availability_zone_list = copy.deepcopy(base)
-get_availability_zone_list_detail = copy.deepcopy(base)
-get_availability_zone_list_detail['response_body']['properties'][
-    'availability_zone_info']['items']['properties']['hosts'] = common.detail
diff --git a/tempest/api_schema/response/compute/v3/certificates.py b/tempest/api_schema/response/compute/v3/certificates.py
deleted file mode 100644
index c768391..0000000
--- a/tempest/api_schema/response/compute/v3/certificates.py
+++ /dev/null
@@ -1,20 +0,0 @@
-# Copyright 2014 NEC Corporation.  All rights reserved.
-#
-#    Licensed under the Apache License, Version 2.0 (the "License"); you may
-#    not use this file except in compliance with the License. You may obtain
-#    a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-#    License for the specific language governing permissions and limitations
-#    under the License.
-
-import copy
-
-from tempest.api_schema.response.compute import certificates
-
-create_certificate = copy.deepcopy(certificates._common_schema)
-create_certificate['status_code'] = [201]
diff --git a/tempest/api_schema/response/compute/v3/extensions.py b/tempest/api_schema/response/compute/v3/extensions.py
deleted file mode 100644
index ceb0ce2..0000000
--- a/tempest/api_schema/response/compute/v3/extensions.py
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright 2014 NEC Corporation.  All rights reserved.
-#
-#    Licensed under the Apache License, Version 2.0 (the "License"); you may
-#    not use this file except in compliance with the License. You may obtain
-#    a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-#    License for the specific language governing permissions and limitations
-#    under the License.
-
-list_extensions = {
-    'status_code': [200],
-    'response_body': {
-        'type': 'object',
-        'properties': {
-            'extensions': {
-                'type': 'array',
-                'items': {
-                    'type': 'object',
-                    'properties': {
-                        'name': {'type': 'string'},
-                        'alias': {'type': 'string'},
-                        'description': {'type': 'string'},
-                        'version': {'type': 'integer'}
-                    },
-                    'required': ['name', 'alias', 'description', 'version']
-                }
-            }
-        },
-        'required': ['extensions']
-    }
-}
diff --git a/tempest/api_schema/response/compute/v3/flavors.py b/tempest/api_schema/response/compute/v3/flavors.py
deleted file mode 100644
index d6c2c85..0000000
--- a/tempest/api_schema/response/compute/v3/flavors.py
+++ /dev/null
@@ -1,68 +0,0 @@
-# Copyright 2014 NEC Corporation.  All rights reserved.
-#
-#    Licensed under the Apache License, Version 2.0 (the "License"); you may
-#    not use this file except in compliance with the License. You may obtain
-#    a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-#    License for the specific language governing permissions and limitations
-#    under the License.
-
-import copy
-
-from tempest.api_schema.response.compute import flavors
-from tempest.api_schema.response.compute import flavors_extra_specs
-
-list_flavors_details = copy.deepcopy(flavors.common_flavor_list_details)
-
-# NOTE- In v3 API, 'swap' comes as '0' not empty string '""'
-# (In V2 API, it comes as empty string) So leaving 'swap'as integer type only.
-
-# Defining extra attributes for V3 flavor schema
-list_flavors_details['response_body']['properties']['flavors']['items'][
-    'properties'].update({'disabled': {'type': 'boolean'},
-                          'ephemeral': {'type': 'integer'},
-                          'flavor-access:is_public': {'type': 'boolean'},
-                          'os-flavor-rxtx:rxtx_factor': {'type': 'number'}})
-# 'flavor-access' and 'os-flavor-rxtx' are API extensions.
-# So they are not 'required'.
-list_flavors_details['response_body']['properties']['flavors']['items'][
-    'required'].extend(['disabled', 'ephemeral'])
-
-set_flavor_extra_specs = copy.deepcopy(flavors_extra_specs.flavor_extra_specs)
-set_flavor_extra_specs['status_code'] = [201]
-
-unset_flavor_extra_specs = {
-    'status_code': [204]
-}
-
-get_flavor_details = copy.deepcopy(flavors.common_flavor_details)
-
-# NOTE- In v3 API, 'swap' comes as '0' not empty string '""'
-# (In V2 API, it comes as empty string) So leaving 'swap'as integer type only.
-
-# Defining extra attributes for V3 flavor schema
-get_flavor_details['response_body']['properties']['flavor'][
-    'properties'].update({'disabled': {'type': 'boolean'},
-                          'ephemeral': {'type': 'integer'},
-                          'flavor-access:is_public': {'type': 'boolean'},
-                          'os-flavor-rxtx:rxtx_factor': {'type': 'number'}})
-
-# 'flavor-access' and 'os-flavor-rxtx' are API extensions.
-# So they are not 'required'.
-get_flavor_details['response_body']['properties']['flavor'][
-    'required'].extend(['disabled', 'ephemeral'])
-
-
-create_flavor_details = copy.deepcopy(get_flavor_details)
-
-# Overriding the status code for create flavor V3 API.
-create_flavor_details['status_code'] = [201]
-
-delete_flavor = {
-    'status_code': [204]
-}
diff --git a/tempest/api_schema/response/compute/v3/hosts.py b/tempest/api_schema/response/compute/v3/hosts.py
deleted file mode 100644
index f356371..0000000
--- a/tempest/api_schema/response/compute/v3/hosts.py
+++ /dev/null
@@ -1,53 +0,0 @@
-# Copyright 2014 NEC Corporation.  All rights reserved.
-#
-#    Licensed under the Apache License, Version 2.0 (the "License"); you may
-#    not use this file except in compliance with the License. You may obtain
-#    a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-#    License for the specific language governing permissions and limitations
-#    under the License.
-
-import copy
-
-from tempest.api_schema.response.compute import hosts
-
-startup_host = {
-    'status_code': [200],
-    'response_body': {
-        'type': 'object',
-        'properties': {
-            'host': hosts.common_start_up_body
-        },
-        'required': ['host']
-    }
-}
-
-# The 'power_action' attribute of 'shutdown_host' API is 'shutdown'
-shutdown_host = copy.deepcopy(startup_host)
-
-shutdown_host['response_body']['properties']['power_action'] = {
-    'enum': ['shutdown']
-}
-
-# The 'power_action' attribute of 'reboot_host' API is 'reboot'
-reboot_host = copy.deepcopy(startup_host)
-
-reboot_host['response_body']['properties']['power_action'] = {
-    'enum': ['reboot']
-}
-
-update_host = {
-    'status_code': [200],
-    'response_body': {
-        'type': 'object',
-        'properties': {
-            'host': hosts.update_host_common
-        },
-        'required': ['host']
-    }
-}
diff --git a/tempest/api_schema/response/compute/v3/hypervisors.py b/tempest/api_schema/response/compute/v3/hypervisors.py
deleted file mode 100644
index b36ae7e..0000000
--- a/tempest/api_schema/response/compute/v3/hypervisors.py
+++ /dev/null
@@ -1,52 +0,0 @@
-# Copyright 2014 NEC Corporation.  All rights reserved.
-#
-#    Licensed under the Apache License, Version 2.0 (the "License"); you may
-#    not use this file except in compliance with the License. You may obtain
-#    a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-#    License for the specific language governing permissions and limitations
-#    under the License.
-
-import copy
-
-from tempest.api_schema.response.compute import hypervisors
-
-
-list_hypervisors_detail = copy.deepcopy(
-    hypervisors.common_list_hypervisors_detail)
-# Defining extra attributes for V3 show hypervisor schema
-list_hypervisors_detail['response_body']['properties']['hypervisors'][
-    'items']['properties']['os-pci:pci_stats'] = {'type': 'array'}
-
-show_hypervisor = copy.deepcopy(hypervisors.common_show_hypervisor)
-# Defining extra attributes for V3 show hypervisor schema
-show_hypervisor['response_body']['properties']['hypervisor']['properties'][
-    'os-pci:pci_stats'] = {'type': 'array'}
-
-hypervisors_servers = copy.deepcopy(hypervisors.common_hypervisors_info)
-
-# Defining extra attributes for V3 show hypervisor schema
-hypervisors_servers['response_body']['properties']['hypervisor']['properties'][
-    'servers'] = {
-        'type': 'array',
-        'items': {
-            'type': 'object',
-            'properties': {
-                # NOTE: Now the type of 'id' is integer,
-                # but here allows 'string' also because we
-                # will be able to change it to 'uuid' in
-                # the future.
-                'id': {'type': ['integer', 'string']},
-                'name': {'type': 'string'}
-            }
-        }
-    }
-# V3 API response body always contains the 'servers' attribute even there
-# is no server (VM) are present on Hypervisor host.
-hypervisors_servers['response_body']['properties']['hypervisor'][
-    'required'] = ['id', 'hypervisor_hostname', 'servers']
diff --git a/tempest/api_schema/response/compute/v3/interfaces.py b/tempest/api_schema/response/compute/v3/interfaces.py
deleted file mode 100644
index 7f716ee..0000000
--- a/tempest/api_schema/response/compute/v3/interfaces.py
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright 2014 NEC Corporation.  All rights reserved.
-#
-#    Licensed under the Apache License, Version 2.0 (the "License"); you may
-#    not use this file except in compliance with the License. You may obtain
-#    a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-#    License for the specific language governing permissions and limitations
-#    under the License.
-
-from tempest.api_schema.response.compute import interfaces as common_schema
-
-list_interfaces = {
-    'status_code': [200],
-    'response_body': {
-        'type': 'object',
-        'properties': {
-            'interface_attachments': {
-                'type': 'array',
-                'items': common_schema.interface_common_info
-            }
-        },
-        'required': ['interface_attachments']
-    }
-}
diff --git a/tempest/api_schema/response/compute/v3/keypairs.py b/tempest/api_schema/response/compute/v3/keypairs.py
deleted file mode 100644
index ea15405..0000000
--- a/tempest/api_schema/response/compute/v3/keypairs.py
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright 2014 NEC Corporation.  All rights reserved.
-#
-#    Licensed under the Apache License, Version 2.0 (the "License"); you may
-#    not use this file except in compliance with the License. You may obtain
-#    a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-#    License for the specific language governing permissions and limitations
-#    under the License.
-
-from tempest.api_schema.response.compute import keypairs
-
-get_keypair = {
-    'status_code': [200],
-    'response_body': {
-        'type': 'object',
-        'properties': {
-            'keypair': {
-                'type': 'object',
-                'properties': {
-                    'public_key': {'type': 'string'},
-                    'name': {'type': 'string'},
-                    'fingerprint': {'type': 'string'}
-                },
-                'required': ['public_key', 'name', 'fingerprint']
-            }
-        },
-        'required': ['keypair']
-    }
-}
-
-create_keypair = {
-    'status_code': [201],
-    'response_body': keypairs.create_keypair
-}
-
-delete_keypair = {
-    'status_code': [204],
-}
diff --git a/tempest/api_schema/response/compute/v3/quotas.py b/tempest/api_schema/response/compute/v3/quotas.py
deleted file mode 100644
index 85ed3b3..0000000
--- a/tempest/api_schema/response/compute/v3/quotas.py
+++ /dev/null
@@ -1,59 +0,0 @@
-# Copyright 2014 NEC Corporation.  All rights reserved.
-#
-#    Licensed under the Apache License, Version 2.0 (the "License"); you may
-#    not use this file except in compliance with the License. You may obtain
-#    a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-#    License for the specific language governing permissions and limitations
-#    under the License.
-
-import copy
-
-from tempest.api_schema.response.compute import quotas
-
-quota_set = copy.deepcopy(quotas.common_quota_set)
-quota_set['response_body']['properties']['quota_set']['properties'][
-    'id'] = {'type': 'string'}
-quota_set['response_body']['properties']['quota_set'][
-    'required'].extend(['id'])
-
-quota_common_info = {
-    'type': 'object',
-    'properties': {
-        'reserved': {'type': 'integer'},
-        'limit': {'type': 'integer'},
-        'in_use': {'type': 'integer'}
-    },
-    'required': ['reserved', 'limit', 'in_use']
-}
-
-quota_set_detail = copy.deepcopy(quotas.common_quota_set)
-quota_set_detail['response_body']['properties']['quota_set']['properties'][
-    'id'] = {'type': 'string'}
-quota_set_detail['response_body']['properties']['quota_set']['properties'][
-    'instances'] = quota_common_info
-quota_set_detail['response_body']['properties']['quota_set']['properties'][
-    'cores'] = quota_common_info
-quota_set_detail['response_body']['properties']['quota_set']['properties'][
-    'ram'] = quota_common_info
-quota_set_detail['response_body']['properties']['quota_set']['properties'][
-    'floating_ips'] = quota_common_info
-quota_set_detail['response_body']['properties']['quota_set']['properties'][
-    'fixed_ips'] = quota_common_info
-quota_set_detail['response_body']['properties']['quota_set']['properties'][
-    'metadata_items'] = quota_common_info
-quota_set_detail['response_body']['properties']['quota_set']['properties'][
-    'key_pairs'] = quota_common_info
-quota_set_detail['response_body']['properties']['quota_set']['properties'][
-    'security_groups'] = quota_common_info
-quota_set_detail['response_body']['properties']['quota_set']['properties'][
-    'security_group_rules'] = quota_common_info
-
-delete_quota = {
-    'status_code': [204]
-}
diff --git a/tempest/api_schema/response/compute/v3/servers.py b/tempest/api_schema/response/compute/v3/servers.py
deleted file mode 100644
index d0edd44..0000000
--- a/tempest/api_schema/response/compute/v3/servers.py
+++ /dev/null
@@ -1,210 +0,0 @@
-# Copyright 2014 NEC Corporation.  All rights reserved.
-#
-#    Licensed under the Apache License, Version 2.0 (the "License"); you may
-#    not use this file except in compliance with the License. You may obtain
-#    a copy of the License at
-#
-#         http://www.apache.org/licenses/LICENSE-2.0
-#
-#    Unless required by applicable law or agreed to in writing, software
-#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-#    License for the specific language governing permissions and limitations
-#    under the License.
-
-import copy
-
-from tempest.api_schema.response.compute import parameter_types
-from tempest.api_schema.response.compute import servers
-
-create_server = {
-    'status_code': [202],
-    'response_body': {
-        'type': 'object',
-        'properties': {
-            'server': {
-                'type': 'object',
-                'properties': {
-                    'id': {'type': 'string'},
-                    'os-security-groups:security_groups': {'type': 'array'},
-                    'links': parameter_types.links,
-                    'os-access-ips:access_ip_v4': parameter_types.access_ip_v4,
-                    'os-access-ips:access_ip_v6': parameter_types.access_ip_v6
-                },
-                # NOTE: os-access-ips:access_ip_v4/v6 are API extension,
-                # and some environments return a response without these
-                # attributes. So they are not 'required'.
-                'required': ['id', 'os-security-groups:security_groups',
-                             'links']
-            }
-        },
-        'required': ['server']
-    }
-}
-
-create_server_with_admin_pass = copy.deepcopy(create_server)
-create_server_with_admin_pass['response_body']['properties']['server'][
-    'properties'].update({'admin_password': {'type': 'string'}})
-create_server_with_admin_pass['response_body']['properties']['server'][
-    'required'].append('admin_password')
-
-addresses_v3 = copy.deepcopy(parameter_types.addresses)
-addresses_v3['patternProperties']['^[a-zA-Z0-9-_.]+$']['items'][
-    'properties'].update({
-        'type': {'type': 'string'},
-        'mac_addr': {'type': 'string'}
-    })
-addresses_v3['patternProperties']['^[a-zA-Z0-9-_.]+$']['items'][
-    'required'].extend(['type', 'mac_addr'])
-
-update_server = copy.deepcopy(servers.base_update_get_server)
-update_server['response_body']['properties']['server']['properties'].update({
-    'addresses': addresses_v3,
-    'host_id': {'type': 'string'},
-    'os-access-ips:access_ip_v4': parameter_types.access_ip_v4,
-    'os-access-ips:access_ip_v6': parameter_types.access_ip_v6
-})
-update_server['response_body']['properties']['server']['required'].append(
-    # NOTE: os-access-ips:access_ip_v4/v6 are API extension,
-    # and some environments return a response without these
-    # attributes. So they are not 'required'.
-    'host_id'
-)
-
-get_server = copy.deepcopy(servers.base_update_get_server)
-get_server['response_body']['properties']['server']['properties'].update({
-    'key_name': {'type': ['string', 'null']},
-    'host_id': {'type': 'string'},
-
-    # NOTE: Non-admin users also can see "os-server-usage" and
-    # "os-extended-availability-zone" attributes.
-    'os-server-usage:launched_at': {'type': ['string', 'null']},
-    'os-server-usage:terminated_at': {'type': ['string', 'null']},
-    'os-extended-availability-zone:availability_zone': {'type': 'string'},
-
-    # NOTE: Admin users only can see "os-extended-status" and
-    # "os-extended-server-attributes" attributes.
-    'os-extended-status:task_state': {'type': ['string', 'null']},
-    'os-extended-status:vm_state': {'type': 'string'},
-    'os-extended-status:power_state': {'type': 'integer'},
-    'os-extended-status:locked_by': {'type': ['string', 'null']},
-    'os-extended-server-attributes:host': {'type': ['string', 'null']},
-    'os-extended-server-attributes:instance_name': {'type': 'string'},
-    'os-extended-server-attributes:hypervisor_hostname': {
-        'type': ['string', 'null']
-    },
-    'os-extended-volumes:volumes_attached': {'type': 'array'},
-    'os-pci:pci_devices': {'type': 'array'},
-    'os-access-ips:access_ip_v4': parameter_types.access_ip_v4,
-    'os-access-ips:access_ip_v6': parameter_types.access_ip_v6,
-    'os-config-drive:config_drive': {'type': 'string'}
-})
-get_server['response_body']['properties']['server']['required'].append(
-    # NOTE: os-server-usage, os-extended-availability-zone,
-    # os-extended-status, os-extended-server-attributes,
-    # os-extended-volumes, os-pci, os-access-ips and
-    # os-config-driveare API extension, and some environments
-    # return a response without these attributes. So they are not 'required'.
-    'host_id'
-)
-
-attach_detach_volume = {
-    'status_code': [202]
-}
-
-set_get_server_metadata_item = copy.deepcopy(servers.set_server_metadata)
-
-list_addresses_by_network = {
-    'status_code': [200],
-    'response_body': addresses_v3
-}
-
-server_actions_change_password = copy.deepcopy(
-    servers.server_actions_delete_password)
-
-list_addresses = {
-    'status_code': [200],
-    'response_body': {
-        'type': 'object',
-        'properties': {
-            'addresses': addresses_v3
-        },
-        'required': ['addresses']
-    }
-}
-
-update_server_metadata = copy.deepcopy(servers.update_server_metadata)
-# V3 API's response status_code is 201
-update_server_metadata['status_code'] = [201]
-
-server_actions_object = copy.deepcopy(servers.common_instance_actions)
-server_actions_object['properties'].update({'server_uuid': {'type': 'string'}})
-server_actions_object['required'].extend(['server_uuid'])
-
-list_server_actions = {
-    'status_code': [200],
-    'response_body': {
-        'type': 'object',
-        'properties': {
-            'server_actions': {
-                'type': 'array',
-                'items': server_actions_object
-            }
-        },
-        'required': ['server_actions']
-    }
-}
-
-get_server_actions_object = copy.deepcopy(servers.common_get_instance_action)
-get_server_actions_object[
-    'properties'].update({'server_uuid': {'type': 'string'}})
-get_server_actions_object['required'].extend(['server_uuid'])
-
-get_server_action = {
-    'status_code': [200],
-    'response_body': {
-        'type': 'object',
-        'properties': {
-            'server_action': get_server_actions_object
-        },
-        'required': ['server_action']
-    }
-}
-
-list_servers_detail = copy.deepcopy(servers.base_list_servers_detail)
-list_servers_detail['response_body']['properties']['servers']['items'][
-    'properties'].update({
-        'addresses': addresses_v3,
-        'host_id': {'type': 'string'},
-        'os-access-ips:access_ip_v4': parameter_types.access_ip_v4,
-        'os-access-ips:access_ip_v6': parameter_types.access_ip_v6
-    })
-# NOTE(GMann): os-access-ips:access_ip_v4/v6 are API extension,
-# and some environments return a response without these
-# attributes. So they are not 'required'.
-list_servers_detail['response_body']['properties']['servers']['items'][
-    'required'].append('host_id')
-
-rebuild_server = copy.deepcopy(update_server)
-rebuild_server['status_code'] = [202]
-
-rebuild_server_with_admin_pass = copy.deepcopy(rebuild_server)
-rebuild_server_with_admin_pass['response_body']['properties']['server'][
-    'properties'].update({'admin_password': {'type': 'string'}})
-rebuild_server_with_admin_pass['response_body']['properties']['server'][
-    'required'].append('admin_password')
-
-rescue_server_with_admin_pass = {
-    'status_code': [202],
-    'response_body': {
-        'type': 'object',
-        'properties': {
-            'admin_password': {'type': 'string'}
-        },
-        'required': ['admin_password']
-    }
-}
-
-rescue_server = copy.deepcopy(rescue_server_with_admin_pass)
-del rescue_server['response_body']['properties']
-del rescue_server['response_body']['required']