// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

syntax = "proto2";

option optimize_for = LITE_RUNTIME;

package content;

message StoredPaymentInstrumentKeyInfoProto {
  optional uint64 insertion_order = 1;
  optional string key = 2;
}

message ImageSizeProto {
  optional uint64 width = 1;
  optional uint64 height = 2;
}

message StoredPaymentInstrumentImageObject {
  optional string src = 1;
  optional string type = 2;
  repeated ImageSizeProto sizes = 3;
}

message StoredPaymentInstrumentProto {
  optional int64 registration_id = 1;
  optional string instrument_key = 2;
  optional string name = 3;
  optional string method = 4;
  optional string stringified_capabilities = 5;
  repeated StoredPaymentInstrumentImageObject icons = 6;
  optional string decoded_instrument_icon = 7;
  repeated int32 supported_card_networks = 8;
  repeated int32 supported_card_types = 9;
}

message StoredRelatedApplicationProto {
  optional string platform = 1;
  optional string id = 2;
}

message StoredPaymentAppProto {
  optional int64 registration_id = 1;
  optional string scope = 2;
  optional string name = 3;
  optional string icon = 4;
  optional bool prefer_related_applications = 5;
  repeated StoredRelatedApplicationProto related_applications = 6;
  optional string user_hint = 7;
}
