/*
 * Copyright (c) 2019, the Dart project authors. Please see the AUTHORS file
 * for details. All rights reserved. Use of this source code is governed by a
 * BSD-style license that can be found in the LICENSE file.
 *
 * This file has been automatically generated. Please do not edit it manually.
 * To regenerate the file, use the script "pkg/analysis_server/tool/spec/generate_files".
 */
package org.dartlang.analysis.server.protocol;

/**
 * An enumeration of the types of parameters.
 *
 * @coverage dart.server.generated.types
 */
public class ParameterKind {

  /**
   * An optional named parameter.
   */
  public static final String OPTIONAL_NAMED = "OPTIONAL_NAMED";

  /**
   * An optional positional parameter.
   */
  public static final String OPTIONAL_POSITIONAL = "OPTIONAL_POSITIONAL";

  /**
   * A required named parameter.
   */
  public static final String REQUIRED_NAMED = "REQUIRED_NAMED";

  /**
   * A required positional parameter.
   */
  public static final String REQUIRED_POSITIONAL = "REQUIRED_POSITIONAL";

}
