code: def deploy_api_gateway( self,
                              api_id,
                              stage_name,
                              stage_description="",
                              description="",
                              cache_cluster_enabled=False,
                              cache_cluster_size='0.5',
                              variables=None,
                              cloudwatch_log_level='OFF',
                              cloudwatch_data_trace=False,
                              cloudwatch_metrics_enabled=False,
                              cache_cluster_ttl=300,
                              cache_cluster_encrypted=False
                          ):
          
          print("Deploying API Gateway..")
  
          self.apigateway_client.create_deployment(
              restApiId=api_id,
              stageName=stage_name,
              stageDescription=stage_description,
              description=description,
              cacheClusterEnabled=cache_cluster_enabled,
              cacheClusterSize=cache_cluster_size,
              variables=variables or {}
          )
  
          if cloudwatch_log_level not in self.cloudwatch_log_levels:
              cloudwatch_log_level = 'OFF'
  
          self.apigateway_client.update_stage(
              restApiId=api_id,
              stageName=stage_name,
              patchOperations=[
                  self.get_patch_op('logging/loglevel', cloudwatch_log_level),
                  self.get_patch_op('logging/dataTrace', cloudwatch_data_trace),
                  self.get_patch_op('metrics/enabled', cloudwatch_metrics_enabled),
                  self.get_patch_op('caching/ttlInSeconds', str(cache_cluster_ttl)),
                  self.get_patch_op('caching/dataEncrypted', cache_cluster_encrypted)
              ]
          )
  
          return "https://{}.execute-api.{}.amazonaws.com/{}".format(api_id, self.boto_session.region_name, stage_name)
docs: Deploy the API Gateway!
  
          Return the deployed API URL.