def _add_api_to_swagger(self, event_id, event_properties, template):
        """
        Adds the API path/method from the given event to the Swagger JSON of Serverless::Api resource this event
        refers to.

        :param string event_id: LogicalId of the event
        :param dict event_properties: Properties of the event
        :param SamTemplate template: SAM Template to search for Serverless::Api resources
        """

        # Need to grab the AWS::Serverless::Api resource for this API event and update its Swagger definition
        api_id = self._get_api_id(event_properties)

        # RestApiId is not pointing to a valid  API resource
        if isinstance(api_id, dict) or not template.get(api_id):
            raise InvalidEventException(event_id,
                                        "RestApiId must be a valid reference to an 'AWS::Serverless::Api' resource "
                                        "in same template")

        # Make sure Swagger is valid
        resource = template.get(api_id)
        if not (resource and
                isinstance(resource.properties, dict) and
                SwaggerEditor.is_valid(resource.properties.get("DefinitionBody"))):
            # This does not have an inline Swagger. Nothing can be done about it.
            return

        if not resource.properties.get("__MANAGE_SWAGGER"):
            # Do not add the api to Swagger, if the resource is not actively managed by SAM.
            # ie. Implicit API resources are created & managed by SAM on behalf of customers.
            # But for explicit API resources, customers write their own Swagger and manage it.
            # If a path is present in Events section but *not* present in the Explicit API Swagger, then it is
            # customer's responsibility to add to Swagger. We will not modify the Swagger here.
            #
            # In the future, we will might expose a flag that will allow SAM to manage explicit API Swagger as well.
            # Until then, we will not modify explicit explicit APIs.
            return

        swagger = resource.properties.get("DefinitionBody")

        path = event_properties["Path"]
        method = event_properties["Method"]
        editor = SwaggerEditor(swagger)
        editor.add_path(path, method)

        resource.properties["DefinitionBody"] = editor.swagger
        template.set(api_id, resource)
def _add_api_to_swagger ( self , event_id , event_properties , template ) : api_id = self . _get_api_id ( event_properties ) if isinstance ( api_id , dict ) or not template . get ( api_id ) : raise InvalidEventException ( event_id , "RestApiId must be a valid reference to an 'AWS::Serverless::Api' resource " "in same template" ) resource = template . get ( api_id ) if not ( resource and isinstance ( resource . properties , dict ) and SwaggerEditor . is_valid ( resource . properties . get ( "DefinitionBody" ) ) ) : return if not resource . properties . get ( "__MANAGE_SWAGGER" ) : return swagger = resource . properties . get ( "DefinitionBody" ) path = event_properties [ "Path" ] method = event_properties [ "Method" ] editor = SwaggerEditor ( swagger ) editor . add_path ( path , method ) resource . properties [ "DefinitionBody" ] = editor . swagger template . set ( api_id , resource )
Adds the API path/method from the given event to the Swagger JSON of Serverless::Api resource this event
        refers to.

        :param string event_id: LogicalId of the event
        :param dict event_properties: Properties of the event
        :param SamTemplate template: SAM Template to search for Serverless::Api resources