blob: 3aa40fc7071a5a4246249888ee1a93068f36319e [file] [log] [blame]
// Copyright (C) 2016 The Android Open Source Project
//
// 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 com.google.gerrit.extensions.common;
import com.google.gerrit.extensions.client.AccountFieldName;
import com.google.gerrit.extensions.client.AuthType;
import com.google.gerrit.extensions.client.GitBasicAuthPolicy;
import java.util.List;
/**
* Representation of auth-related server configuration in the REST API.
*
* <p>This class determines the JSON format of auth-related server configuration in the REST API.
*
* <p>The contained values come from the {@code auth} section of {@code gerrit.config}.
*/
public class AuthInfo {
/**
* The authentication type that is configured on the server.
*
* <p>The value of the {@code auth.type} parameter in {@code gerrit.config}.
*/
public AuthType authType;
/**
* Whether contributor agreements are required.
*
* <p>The value of the {@code auth.contributorAgreements} parameter in {@code gerrit.config}.
*/
public Boolean useContributorAgreements;
/** List of contributor agreements that have been configured on the server. */
public List<AgreementInfo> contributorAgreements;
/** List of account fields that are editable. */
public List<AccountFieldName> editableAccountFields;
/**
* The login URL.
*
* <p>The value of the {@code auth.loginUrl} parameter in {@code gerrit.config}.
*
* <p>Only set if authentication type is {@code HTTP} or {@code HTTP_LDAP}.
*/
public String loginUrl;
/**
* The login text.
*
* <p>The value of the {@code auth.loginText} parameter in {@code gerrit.config}.
*
* <p>Only set if authentication type is {@code HTTP} or {@code HTTP_LDAP}.
*/
public String loginText;
/**
* The URL to switch accounts.
*
* <p>The value of the {@code auth.switchAccountUrl} parameter in {@code gerrit.config}.
*/
public String switchAccountUrl;
/**
* The register URL.
*
* <p>The value of the {@code auth.registerUrl} parameter in {@code gerrit.config}.
*
* <p>Only set if authentication type is {@code LDAP}, {@code LDAP_BIND} or {@code
* CUSTOM_EXTENSION}.
*/
public String registerUrl;
/**
* The register text.
*
* <p>The value of the {@code auth.registerText} parameter in {@code gerrit.config}.
*
* <p>Only set if authentication type is {@code LDAP}, {@code LDAP_BIND} or {@code
* CUSTOM_EXTENSION}.
*/
public String registerText;
/**
* The URL to edit the full name.
*
* <p>The value of the {@code auth.editFullNameUrl} parameter in {@code gerrit.config}.
*
* <p>Only set if authentication type is {@code LDAP}, {@code LDAP_BIND} or {@code
* CUSTOM_EXTENSION}.
*/
public String editFullNameUrl;
/**
* The URL to obtain an HTTP password.
*
* <p>The value of the {@code auth.httpPasswordUrl} parameter in {@code gerrit.config}.
*
* <p>Only set if authentication type is {@code CUSTOM_EXTENSION}.
*/
public String httpPasswordUrl;
/**
* The policy to authenticate Git over HTTP and REST API requests.
*
* <p>The value of the {@code auth.gitBasicAuthPolicy} parameter in {@code gerrit.config}.
*
* <p>Only set if authentication type is {@code LDAP}, {@code LDAP_BIND} or {@code OAUTH}.
*/
public GitBasicAuthPolicy gitBasicAuthPolicy;
}