docs: def create_link_outcome_global_outcome_id(self, id, outcome_id, calculation_int=None, calculation_method=None, description=None, display_name=None, mastery_points=None, ratings_description=None, ratings_points=None, title=None, vendor_guid=None):
          """
          Create/link an outcome.
  
          Link an outcome into the outcome group. The outcome to link can either be
          specified by a PUT to the link URL for a specific outcome (the outcome_id
          in the PUT URLs) or by supplying the information for a new outcome (title,
          description, ratings, mastery_points) in a POST to the collection.
          
          If linking an existing outcome, the outcome_id must identify an outcome
          available to this context; i.e. an outcome owned by this group's context,
          an outcome owned by an associated account, or a global outcome. With
          outcome_id present, any other parameters are ignored.
          
          If defining a new outcome, the outcome is created in the outcome group's
          context using the provided title, description, ratings, and mastery points;
          the title is required but all other fields are optional. The new outcome
          is then linked into the outcome group.
          
          If ratings are provided when creating a new outcome, an embedded rubric
          criterion is included in the new outcome. This criterion's mastery_points
          default to the maximum points in the highest rating if not specified in the
          mastery_points parameter. Any ratings lacking a description are given a
          default of "No description". Any ratings lacking a point value are given a
          default of 0. If no ratings are provided, the mastery_points parameter is
          ignored.
          """
          path = {}
          data = {}
          params = {}
  
          # REQUIRED - PATH - id
          """ID"""
          path["id"] = id
  
          # REQUIRED - PATH - outcome_id
          """The ID of the existing outcome to link."""
          path["outcome_id"] = outcome_id
  
          # OPTIONAL - title
          """The title of the new outcome. Required if outcome_id is absent."""
          if title is not None:
              data["title"] = title
  
          # OPTIONAL - display_name
          """A friendly name shown in reports for outcomes with cryptic titles,
          such as common core standards names."""
          if display_name is not None:
              data["display_name"] = display_name
  
          # OPTIONAL - description
          """The description of the new outcome."""
          if description is not None:
              data["description"] = description
  
          # OPTIONAL - vendor_guid
          """A custom GUID for the learning standard."""
          if vendor_guid is not None:
              data["vendor_guid"] = vendor_guid
  
          # OPTIONAL - mastery_points
          """The mastery threshold for the embedded rubric criterion."""
          if mastery_points is not None:
              data["mastery_points"] = mastery_points
  
          # OPTIONAL - ratings[description]
          """The description of a rating level for the embedded rubric criterion."""
          if ratings_description is not None:
              data["ratings[description]"] = ratings_description
  
          # OPTIONAL - ratings[points]
          """The points corresponding to a rating level for the embedded rubric criterion."""
          if ratings_points is not None:
              data["ratings[points]"] = ratings_points
  
          # OPTIONAL - calculation_method
          """The new calculation method.  Defaults to "highest""""
          if calculation_method is not None:
              self._validate_enum(calculation_method, ["decaying_average", "n_mastery", "latest", "highest"])
              data["calculation_method"] = calculation_method
  
          # OPTIONAL - calculation_int
          """The new calculation int.  Only applies if the calculation_method is "decaying_average" or "n_mastery""""
          if calculation_int is not None:
              data["calculation_int"] = calculation_int
  
          self.logger.debug("PUT /api/v1/global/outcome_groups/{id}/outcomes/{outcome_id} with query params: {params} and form data: {data}".format(params=params, data=data, **path))
          return self.generic_request("PUT", "/api/v1/global/outcome_groups/{id}/outcomes/{outcome_id}".format(**path), data=data, params=params, single_item=True)