/*
 * 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 {

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

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

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

}
