class_docstr: An optimization configuration, which comprises an objective,
  outcome constraints and an optional risk measure.
  
  There is no minimum or maximum number of outcome constraints, but an
  individual metric can have at most two constraints--which is how we
  represent metrics with both upper and lower bounds.
class_docstr_tok: ["An","optimization","configuration",",","which","comprises","an","objective",",","outcome","constraints","and","an","optional","risk","measure",".","There","is","no","minimum","or","maximum","number","of","outcome","constraints",",","but","an","individual","metric","can","have","at","most","two","constraints","--","which","is","how","we","represent","metrics","with","both","upper","and","lower","bounds","."]
docstr: Get outcome constraints.
docstr_tok: ["Get","outcome","constraints","."]
code: def all_constraints(self) -> List[OutcomeConstraint]:
      """Get outcome constraints."""
      return self.outcome_constraints
  
imports: from itertools import groupby
  from logging import Logger
  from typing import Dict, List, Optional
  from ax.core.metric import Metric
  from ax.core.objective import MultiObjective, Objective, ScalarizedObjective
  from ax.core.outcome_constraint import ComparisonOp, ObjectiveThreshold, OutcomeConstraint, ScalarizedOutcomeConstraint
  from ax.core.risk_measures import RiskMeasure
  from ax.exceptions.core import UserInputError
  from ax.utils.common.base import Base
  from ax.utils.common.logger import get_logger
label_desc: Use image node_id 6 for calling the OptimizationConfig obj's underlying member method code with example usage: obj.all_constraints() and returns: self