code: public ScalingInstruction withTargetTrackingConfigurations(TargetTrackingConfiguration... targetTrackingConfigurations) {
          if (this.targetTrackingConfigurations == null) {
              setTargetTrackingConfigurations(new java.util.ArrayList<TargetTrackingConfiguration>(targetTrackingConfigurations.length));
          }
          for (TargetTrackingConfiguration ele : targetTrackingConfigurations) {
              this.targetTrackingConfigurations.add(ele);
          }
          return this;
      }
docs: <p>
  The structure that defines new target tracking configurations (up to 10). Each of these structures includes a
  specific scaling metric and a target value for the metric, along with various parameters to use with dynamic
  scaling.
  </p>
  <p>
  With predictive scaling and dynamic scaling, the resource scales based on the target tracking configuration that
  provides the largest capacity for both scale in and scale out.
  </p>
  <p>
  Condition: The scaling metric must be unique across target tracking configurations.
  </p>
  <p>
  <b>NOTE:</b> This method appends the values to the existing list (if any). Use
  {@link #setTargetTrackingConfigurations(java.util.Collection)} or
  {@link #withTargetTrackingConfigurations(java.util.Collection)} if you want to override the existing values.
  </p>
  
  @param targetTrackingConfigurations
  The structure that defines new target tracking configurations (up to 10). Each of these structures
  includes a specific scaling metric and a target value for the metric, along with various parameters to use
  with dynamic scaling. </p>
  <p>
  With predictive scaling and dynamic scaling, the resource scales based on the target tracking
  configuration that provides the largest capacity for both scale in and scale out.
  </p>
  <p>
  Condition: The scaling metric must be unique across target tracking configurations.
  @return Returns a reference to this object so that method calls can be chained together.