| // Copyright (C) 2023 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.plugins.codeowners.api; |
| |
| import com.google.gerrit.plugins.codeowners.backend.CodeOwnerConfigImportMode; |
| import java.util.List; |
| |
| /** |
| * Representation of a code owner config file in the REST API. |
| * |
| * <p>This class determines the JSON format of code owner config files in the REST API. |
| * |
| * <p>The JSON only contains the location of the code owner config file (project, branch, path) and |
| * information about the imported code owner config files. It's not a representation of the code |
| * owner config file content (the content of a code owner config file is represented by {@link |
| * CodeOwnerConfigInfo}). |
| */ |
| public class CodeOwnerConfigFileInfo { |
| /** |
| * The name of the project from which the code owner config was loaded, or for unresolved imports, |
| * from which the code owner config was supposed to be loaded. |
| */ |
| public String project; |
| |
| /** |
| * The name of the branch from which the code owner config was loaded, or for unresolved imports, |
| * from which the code owner config was supposed to be loaded. |
| */ |
| public String branch; |
| |
| /** The path of the code owner config file. */ |
| public String path; |
| |
| /** Imported code owner config files. */ |
| public List<CodeOwnerConfigFileInfo> imports; |
| |
| /** Imported code owner config files that couldn't be resolved. */ |
| public List<CodeOwnerConfigFileInfo> unresolvedImports; |
| |
| /** |
| * Message explaining why this code owner config couldn't be resolved. |
| * |
| * <p>Only set for unresolved imports. |
| */ |
| public String unresolvedErrorMessage; |
| |
| /** |
| * The import mode. |
| * |
| * <p>Only set for imports. |
| */ |
| public CodeOwnerConfigImportMode importMode; |
| } |