code: def _construct_stage(self, deployment, swagger):
          
  
          # If StageName is some intrinsic function, then don't prefix the Stage's logical ID
          # This will NOT create duplicates because we allow only ONE stage per API resource
          stage_name_prefix = self.stage_name if isinstance(self.stage_name, string_types) else ""
  
          stage = ApiGatewayStage(self.logical_id + stage_name_prefix + 'Stage',
                                  attributes=self.passthrough_resource_attributes)
          stage.RestApiId = ref(self.logical_id)
          stage.update_deployment_ref(deployment.logical_id)
          stage.StageName = self.stage_name
          stage.CacheClusterEnabled = self.cache_cluster_enabled
          stage.CacheClusterSize = self.cache_cluster_size
          stage.Variables = self.variables
          stage.MethodSettings = self.method_settings
          stage.AccessLogSetting = self.access_log_setting
          stage.CanarySetting = self.canary_setting
          stage.TracingEnabled = self.tracing_enabled
  
          if swagger is not None:
              deployment.make_auto_deployable(stage, swagger)
  
          return stage
docs: Constructs and returns the ApiGateway Stage.
  
          :param model.apigateway.ApiGatewayDeployment deployment: the Deployment for this Stage
          :returns: the Stage to which this SAM Api corresponds
          :rtype: model.apigateway.ApiGatewayStage