diff --git a/tempest/api/compute/servers/test_servers.py b/tempest/api/compute/servers/test_servers.py
index af88a15..76cf01d 100644
--- a/tempest/api/compute/servers/test_servers.py
+++ b/tempest/api/compute/servers/test_servers.py
@@ -276,12 +276,14 @@
     max_microversion = 'latest'
 
     @decorators.idempotent_id('4eee1ffe-9e00-4c99-a431-0d3e0f323a8f')
-    def test_list_show_server_296(self):
+    def test_list_show_update_rebuild_server_296(self):
         server = self.create_test_server(wait_until='ACTIVE')
         # Checking list API response schema.
         self.servers_client.list_servers(detail=True)
         # Checking show API response schema
         self.servers_client.show_server(server['id'])
+        # Checking update API response schema
+        self.servers_client.update_server(server['id'])
         # Check rebuild API response schema
         self.servers_client.rebuild_server(server['id'], self.image_ref_alt)
         waiters.wait_for_server_status(self.servers_client,
@@ -295,12 +297,14 @@
     max_microversion = 'latest'
 
     @decorators.idempotent_id('3981e496-3bf7-4015-b807-63ffee7c520c')
-    def test_list_show_rebuild_server_298(self):
+    def test_list_show_update_rebuild_server_298(self):
         server = self.create_test_server(wait_until='ACTIVE')
         # Check list details API response schema
         self.servers_client.list_servers(detail=True)
         # Check show API response schema
         self.servers_client.show_server(server['id'])
+        # Checking update API response schema
+        self.servers_client.update_server(server['id'])
         # Check rebuild API response schema
         self.servers_client.rebuild_server(server['id'], self.image_ref_alt)
         waiters.wait_for_server_status(self.servers_client,
diff --git a/tempest/lib/api_schema/response/compute/v2_96/servers.py b/tempest/lib/api_schema/response/compute/v2_96/servers.py
index 2e24192..8a4ed9f 100644
--- a/tempest/lib/api_schema/response/compute/v2_96/servers.py
+++ b/tempest/lib/api_schema/response/compute/v2_96/servers.py
@@ -26,28 +26,45 @@
 #
 # - GET /servers/detail
 # - GET /servers/{server_id}
+# - PUT /servers/{server_id}
+# - POST /servers/{server_id}/action (rebuild)
 ###########################################################################
 
 get_server = copy.deepcopy(servers289.get_server)
 get_server['response_body']['properties']['server'][
     'properties'].update(
         {'pinned_availability_zone': {'type': ['string', 'null']}})
+get_server['response_body']['properties']['server'][
+    'required'].append('pinned_availability_zone')
 
 list_servers_detail = copy.deepcopy(servers289.list_servers_detail)
 list_servers_detail['response_body']['properties']['servers']['items'][
     'properties'].update(
         {'pinned_availability_zone': {'type': ['string', 'null']}})
+list_servers_detail['response_body']['properties']['servers']['items'][
+    'required'].append('pinned_availability_zone')
+
+update_server = copy.deepcopy(servers289.update_server)
+update_server['response_body']['properties']['server'][
+    'properties'].update(
+        {'pinned_availability_zone': {'type': ['string', 'null']}})
+update_server['response_body']['properties']['server'][
+    'required'].append('pinned_availability_zone')
 
 rebuild_server = copy.deepcopy(servers289.rebuild_server)
 rebuild_server['response_body']['properties']['server'][
     'properties'].update(
         {'pinned_availability_zone': {'type': ['string', 'null']}})
+rebuild_server['response_body']['properties']['server'][
+    'required'].append('pinned_availability_zone')
 
 rebuild_server_with_admin_pass = copy.deepcopy(
     servers289.rebuild_server_with_admin_pass)
 rebuild_server_with_admin_pass['response_body']['properties']['server'][
     'properties'].update(
         {'pinned_availability_zone': {'type': ['string', 'null']}})
+rebuild_server_with_admin_pass['response_body']['properties']['server'][
+    'required'].append('pinned_availability_zone')
 
 # NOTE(zhufl): Below are the unchanged schema in this microversion. We
 # need to keep this schema in this file to have the generic way to select the
@@ -56,7 +73,6 @@
 attach_volume = copy.deepcopy(servers289.attach_volume)
 show_volume_attachment = copy.deepcopy(servers289.show_volume_attachment)
 list_volume_attachments = copy.deepcopy(servers289.list_volume_attachments)
-update_server = copy.deepcopy(servers289.update_server)
 list_servers = copy.deepcopy(servers289.list_servers)
 show_server_diagnostics = copy.deepcopy(servers289.show_server_diagnostics)
 get_remote_consoles = copy.deepcopy(servers289.get_remote_consoles)
diff --git a/tempest/lib/api_schema/response/compute/v2_98/servers.py b/tempest/lib/api_schema/response/compute/v2_98/servers.py
index 5c96d8b..2fca3eb 100644
--- a/tempest/lib/api_schema/response/compute/v2_98/servers.py
+++ b/tempest/lib/api_schema/response/compute/v2_98/servers.py
@@ -24,6 +24,7 @@
 #
 # - GET /servers/detail
 # - GET /servers/{server_id}
+# - PUT /servers/{server_id}
 # - POST /servers/{server_id}/action (rebuild)
 #
 ###########################################################################
@@ -50,6 +51,10 @@
     'properties']['image']['oneOf'][0]['properties'].update(
         {'properties': image_properties})
 
+update_server = copy.deepcopy(servers296.update_server)
+update_server['response_body']['properties']['server']['properties'][
+    'image']['oneOf'][0]['properties'].update({'properties': image_properties})
+
 rebuild_server = copy.deepcopy(servers296.rebuild_server)
 rebuild_server['response_body']['properties']['server']['properties'][
     'image']['oneOf'][0]['properties'].update({'properties': image_properties})
@@ -67,7 +72,6 @@
 attach_volume = copy.deepcopy(servers296.attach_volume)
 show_volume_attachment = copy.deepcopy(servers296.show_volume_attachment)
 list_volume_attachments = copy.deepcopy(servers296.list_volume_attachments)
-update_server = copy.deepcopy(servers296.update_server)
 list_servers = copy.deepcopy(servers296.list_servers)
 show_server_diagnostics = copy.deepcopy(servers296.show_server_diagnostics)
 get_remote_consoles = copy.deepcopy(servers296.get_remote_consoles)
