/*
 * Copyright 2019 the original author or authors.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.gradle.api.attributes;

import org.gradle.api.Named;

/**
 * Attributes to qualify the type of documentation.
 * <p>
 * This attribute is usually found on variants that have the {@link Category} attribute valued at {@link Category#DOCUMENTATION documentation}.
 *
 * @since 5.6
 */
public interface DocsType extends Named {
    Attribute<DocsType> DOCS_TYPE_ATTRIBUTE = Attribute.of("org.gradle.docstype", DocsType.class);

    /**
     * The typical documentation for Java APIs
     */
    String JAVADOC = "javadoc";

    /**
     * The source files of the module
     */
    String SOURCES = "sources";

    /**
     * A user manual
     */
    String USER_MANUAL = "user-manual";

    /**
     * Samples illustrating how to use the software module
     */
    String SAMPLES = "samples";

    /**
     * The typical documentation for native APIs
     */
    String DOXYGEN = "doxygen";
}
