/**
 * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
 *
 * The contents of this file are subject to the terms of the Liferay Enterprise
 * Subscription License ("License"). You may not use this file except in
 * compliance with the License. You can obtain a copy of the License by
 * contacting Liferay, Inc. See the License for the specific language governing
 * permissions and limitations under the License, including but not limited to
 * distribution rights of the Software.
 *
 *
 *
 */

package com.liferay.portal.vulcan.internal.configuration;

import aQute.bnd.annotation.metatype.Meta;

import com.liferay.portal.configuration.metatype.annotations.ExtendedObjectClassDefinition;

/**
 * @author Javier Gamarra
 */
@ExtendedObjectClassDefinition(
	category = "third-party", factoryInstanceLabelAttribute = "path",
	scope = ExtendedObjectClassDefinition.Scope.SYSTEM
)
@Meta.OCD(
	factory = true,
	id = "com.liferay.portal.vulcan.internal.configuration.VulcanConfiguration",
	localization = "content/Language",
	name = "headless-api-endpoint-configuration-name"
)
public interface VulcanConfiguration {

	@Meta.AD(deflt = "/api", name = "path")
	public String path();

	@Meta.AD(deflt = "true", name = "graphql-api", required = false)
	public boolean graphQLEnabled();

	@Meta.AD(deflt = "true", name = "rest-api", required = false)
	public boolean restEnabled();

	@Meta.AD(
		description = "changes-will-take-effect-once-the-portal-is-restarted-please-restart-the-portal-now",
		name = "excluded-operation-ids", required = false
	)
	public String excludedOperationIds();

}