// copyright (C) 2018 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.

// A proto definition used to parse METADATA file in third party projects.

// This proto will only contain fields and values the updater cares about.
// It is not intended to be the formal definition of METADATA file.

syntax = "proto3";

package external_updater;

message MetaData {
  string name = 1;
  string description = 3;
  ThirdPartyMetaData third_party = 13;
}

enum LicenseType {
  UNKNOWN = 0;
  BY_EXCEPTION_ONLY = 1;
  NOTICE = 2;
  PERMISSIVE = 3;
  RECIPROCAL = 4;
  RESTRICTED_IF_STATICALLY_LINKED = 5;
  RESTRICTED = 6;
  UNENCUMBERED = 7;
}

message ThirdPartyMetaData {
  repeated URL url = 1;
  string version = 2;
  LicenseType license_type = 4;
  Date last_upgrade_date = 10;
}

message URL {
  enum Type {
    UNKNOWN = 0;
    HOMEPAGE = 1;
    ARCHIVE = 2;
    GIT = 3;
    SVN = 7;
    HG = 8;
    DARCS = 9;
    OTHER = 11;
  }

  Type type = 1;

  string value = 2;
}

message Date {
  int32 year = 1;
  int32 month = 2;
  int32 day = 3;
}