tapyrus-api-client 0 → 1.1.0beta4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (97) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +11 -9
  3. data/README.md +54 -52
  4. data/docs/AddTimestampRequest.md +3 -1
  5. data/docs/AddTimestampResponse.md +36 -0
  6. data/docs/AddressApi.md +15 -10
  7. data/docs/ConsumeTrackingRequest.md +18 -0
  8. data/docs/GetTimestampResponse.md +36 -0
  9. data/docs/PurposeAddressRequest.md +18 -0
  10. data/docs/SupplyTrackingRequest.md +20 -0
  11. data/docs/TimestampApi.md +84 -16
  12. data/docs/TimestampType.md +15 -0
  13. data/docs/TokenApi.md +1 -1
  14. data/docs/TokenResponse.md +4 -4
  15. data/docs/TrackingApi.md +344 -0
  16. data/docs/TrackingDestination.md +20 -0
  17. data/docs/TrackingResponse.md +18 -0
  18. data/docs/TrackingSubject.md +20 -0
  19. data/docs/TrackingSubjectMerkleRoot.md +22 -0
  20. data/docs/TrackingTrace.md +40 -0
  21. data/docs/TrackingTracesResponse.md +44 -0
  22. data/docs/TransportTrackingRequest.md +18 -0
  23. data/docs/UserApi.md +1 -1
  24. data/git_push.sh +3 -4
  25. data/lib/tapyrus-api-client/api/address_api.rb +25 -11
  26. data/lib/tapyrus-api-client/api/timestamp_api.rb +85 -17
  27. data/lib/tapyrus-api-client/api/token_api.rb +15 -6
  28. data/lib/tapyrus-api-client/api/tracking_api.rb +348 -0
  29. data/lib/tapyrus-api-client/api/user_api.rb +7 -4
  30. data/lib/tapyrus-api-client/api_client.rb +6 -6
  31. data/lib/tapyrus-api-client/api_error.rb +3 -3
  32. data/lib/tapyrus-api-client/configuration.rb +23 -6
  33. data/lib/tapyrus-api-client/models/add_timestamp_request.rb +16 -7
  34. data/lib/tapyrus-api-client/models/add_timestamp_response.rb +299 -0
  35. data/lib/tapyrus-api-client/models/consume_tracking_request.rb +226 -0
  36. data/lib/tapyrus-api-client/models/create_user_request.rb +3 -3
  37. data/lib/tapyrus-api-client/models/get_addresses_response.rb +3 -3
  38. data/lib/tapyrus-api-client/models/get_timestamp_response.rb +337 -0
  39. data/lib/tapyrus-api-client/models/get_tokens_response.rb +3 -3
  40. data/lib/tapyrus-api-client/models/issue_token_request.rb +3 -3
  41. data/lib/tapyrus-api-client/models/purpose_address_request.rb +218 -0
  42. data/lib/tapyrus-api-client/models/reissue_token_request.rb +3 -3
  43. data/lib/tapyrus-api-client/models/supply_tracking_request.rb +241 -0
  44. data/lib/tapyrus-api-client/models/timestamp_type.rb +37 -0
  45. data/lib/tapyrus-api-client/models/token_response.rb +11 -10
  46. data/lib/tapyrus-api-client/models/{payment_request.rb → tracking_destination.rb} +15 -32
  47. data/lib/tapyrus-api-client/models/{payment_response.rb → tracking_response.rb} +12 -6
  48. data/lib/tapyrus-api-client/models/tracking_subject.rb +234 -0
  49. data/lib/tapyrus-api-client/models/tracking_subject_merkle_root.rb +238 -0
  50. data/lib/tapyrus-api-client/models/tracking_trace.rb +321 -0
  51. data/lib/tapyrus-api-client/models/tracking_traces_response.rb +343 -0
  52. data/lib/tapyrus-api-client/models/transfer_token_request.rb +3 -3
  53. data/lib/tapyrus-api-client/models/transport_tracking_request.rb +226 -0
  54. data/lib/tapyrus-api-client/models/userinfo_response.rb +3 -3
  55. data/lib/tapyrus-api-client/models/userinfo_response_balances.rb +3 -3
  56. data/lib/tapyrus-api-client/version.rb +4 -4
  57. data/lib/tapyrus-api-client.rb +17 -6
  58. data/spec/api/address_api_spec.rb +7 -5
  59. data/spec/api/timestamp_api_spec.rb +19 -7
  60. data/spec/api/token_api_spec.rb +3 -3
  61. data/spec/api/tracking_api_spec.rb +95 -0
  62. data/spec/api/user_api_spec.rb +3 -3
  63. data/spec/api_client_spec.rb +5 -5
  64. data/spec/configuration_spec.rb +6 -6
  65. data/spec/models/add_timestamp_request_spec.rb +9 -3
  66. data/spec/models/add_timestamp_response_spec.rb +88 -0
  67. data/spec/models/consume_tracking_request_spec.rb +34 -0
  68. data/spec/models/create_user_request_spec.rb +3 -3
  69. data/spec/models/get_addresses_response_spec.rb +3 -3
  70. data/spec/models/get_timestamp_response_spec.rb +92 -0
  71. data/spec/models/get_tokens_response_spec.rb +3 -3
  72. data/spec/models/issue_token_request_spec.rb +3 -3
  73. data/spec/models/purpose_address_request_spec.rb +34 -0
  74. data/spec/models/reissue_token_request_spec.rb +3 -3
  75. data/spec/models/supply_tracking_request_spec.rb +40 -0
  76. data/spec/models/timestamp_type_spec.rb +28 -0
  77. data/spec/models/token_response_spec.rb +4 -4
  78. data/spec/models/tracking_destination_spec.rb +40 -0
  79. data/spec/models/tracking_response_spec.rb +34 -0
  80. data/spec/models/tracking_subject_merkle_root_spec.rb +46 -0
  81. data/spec/models/tracking_subject_spec.rb +40 -0
  82. data/spec/models/tracking_trace_spec.rb +100 -0
  83. data/spec/models/tracking_traces_response_spec.rb +112 -0
  84. data/spec/models/transfer_token_request_spec.rb +3 -3
  85. data/spec/models/transport_tracking_request_spec.rb +34 -0
  86. data/spec/models/userinfo_response_balances_spec.rb +3 -3
  87. data/spec/models/userinfo_response_spec.rb +3 -3
  88. data/spec/spec_helper.rb +3 -3
  89. data/tapyrus-api-client.gemspec +5 -5
  90. metadata +68 -48
  91. data/docs/PaymentApi.md +0 -76
  92. data/docs/PaymentRequest.md +0 -22
  93. data/docs/PaymentResponse.md +0 -18
  94. data/lib/tapyrus-api-client/api/payment_api.rb +0 -83
  95. data/spec/api/payment_api_spec.rb +0 -47
  96. data/spec/models/payment_request_spec.rb +0 -46
  97. data/spec/models/payment_response_spec.rb +0 -34
@@ -1,12 +1,12 @@
1
1
  =begin
2
2
  #Tapyrus API
3
3
 
4
- ## イントロダクション これは chaintope 社が開発するブロックチェーン Tapyrus を使ったブロックチェーンに関係する機能を簡単に利用するための REST API です。 現在以下のユースケースをサポートしています。これは今後も拡張されていくことを予定しています。 * Payment: TPC(Tapyrus Coin) の送金 * Timestamp: 任意のデータをタイムスタンプとしてブロックチェーンに記録 * Token: 新しいトークンの発行、送金、焼却。NFTも利用可能 Tapyrus ブロックチェーンについては以下の情報を参照してください。 * [Chaintope のブロックチェーンプロトコル](https://www.chaintope.com/chaintope-blockchain-protocol/) * [chaintope/tapyrus-core - github](https://github.com/chaintope/tapyrus-core) ## Tapyrus API の利用法 Tapyrus API は REST API として提供されています。利用を開始するためには、Tapyrus API の `エンドポイント` に対して、 `認証` 済みの トークンを使いアクセスする必要があります。また、認証されたユーザはそれぞれが自身のウォレットを Tapyrus API 内部に持つことになります。 ウォレットではそのユーザの TPC やトークンといったアセットを管理するための鍵が管理され、アセットの移動などで利用されます。 ### Tapyrus API のエンドポイント エンドポイントは以下のフォーマットで作成され、 chaintope より提供されます。 `ap-01.tapyrus.chaintope.com` 例えば [testnet](https://testnet-explorer.tapyrus.dev.chaintope.com/blocks) では以下のようになります。 `testnet-api.tapyrus.chaintope.com` testnet は誰でも利用可能な動作の確認用のネットワークであり、予告なくリセットされる可能性があります。 利用に必要な TPC は [faucet](https://testnet-faucet.tapyrus.dev.chaintope.com) から取得できます。 * [faucet](https://testnet-faucet.tapyrus.dev.chaintope.com) ### OpenID Connect を使った認証 Tapyrus API では [OpenID Connect](https://openid.net/connect/) を使った認証をサポートします。この認証を利用するためには、 以下のステップを踏みます。 1. 利用する OpenID Provider(OP) を選択する 公開された OP から選択する方法と、自身で OP を構築する方法があります。独自のユーザデータベースがあり、そのユーザに Tapyrus API を利用させる場合は後者の自身で OP を構築する方法を選択することになります。 2. OAuth 2.0 Client Credential を入手する 多くの公開された OP では、アプリケーションを登録して Client Credential を入手する必要があります。手順は利用する OP に従ってください。 3. Access Token と ID Token を入手する OpenID Connect に沿った認証を行い、 token エンドポイントから ID Token を入手します。 4. Tapyrus API ユーザを作成する 入手した Access Token ID Token Tapyrus API の [createUser API](https://doc.api.tapyrus.chaintope.com/#operation/createUser) へ送り、 Tapyrus API のユーザを作成します。 コード例を後述の Getting Started ドキュメントで解説していますので、そちらを参照してください。 ## Tapyrus API ユーザとウォレットについて 認証により得たアクセストークンを使い、Tapyrus API ユーザを1つ作成する必要があります。 Tapyrus API の内部では、このユーザ1つにつき1つのウォレットが作成されます。 ウォレットではアセットの受け取りや、送付に必要な公開鍵と秘密鍵のペアが管理されており、同時にそれらのカギに紐づくアセットも管理されます。 そのため、認証を行ったユーザごとに独立したアセットの管理が可能になります。 # Getting Started Getting Started ドキュメントでは実際のコード例を交えながらより具体的な Tapyrus API の利用法を解説しています。 * [Getting Started - [Javascript] Tapyrus API を利用するウェブアプリケーションの開発を学ぶ](https://github.com/chaintope/tapyrus-api-client-examples/tree/main/javascript/GettingStarted-ja.md)
4
+ ## イントロダクション これは chaintope 社が開発するブロックチェーン Tapyrus を使ったブロックチェーンに関係する機能を簡単に利用するための REST API です。 現在以下のユースケースをサポートしています。これは今後も拡張されていきます。 * Timestamp: 任意のデータをタイムスタンプとしてブロックチェーンに記録 * Token: 新しいトークンの発行、送金、焼却。NFTも利用可能 * Tracking: トレーサビリティを目的としてたモノの移動履歴を記録 Tapyrus ブロックチェーンについては以下の情報を参照してください。 * [Chaintope のブロックチェーンプロトコル](https://www.chaintope.com/chaintope-blockchain-protocol/) * [chaintope/tapyrus-core - github](https://github.com/chaintope/tapyrus-core) ## Tapyrus API の利用法 Tapyrus API は REST API として提供されています。利用を開始するためには、Tapyrus API の `エンドポイント` に対して、 `認証` 済みの トークンを使いアクセスする必要があります。また、認証されたユーザはそれぞれが自身のウォレットを Tapyrus API 内部に持つことになります。 ウォレットではそのユーザの TPC やトークンといったアセットを管理するための鍵が管理され、アセットの移動などで利用されます。 ### Tapyrus API のエンドポイント エンドポイントは以下のフォーマットで作成されます。 `https://xxx.api.tapyrus.chaintope.com/api/v1` `xxx`の部分は各ユーザー固有の識別子になります。正式なURLは、ダッシュボードで確認できます。 ### API接続の準備 ダッシュボードに登録すると、chaintopeが登録情報を確認後、お客様のAPIエンドポイントを設定します。 エンドポイントが設定されるまでは、APIの機能はご利用いただけません。 #### クライアント証明書 Tapyrus APIに接続する際には、クライアント証明書が必要になります。ダッシュボードの「クライアント証明書」のメニューより、 クライアント証明書を発行してください。 発行すると秘密鍵と公開鍵の証明書を含む[PKCS#12](https://en.wikipedia.org/wiki/PKCS_12)形式のファイルがダウンロードできます。 #### ユーザーの登録 ダッシュボードからAPIに接続するユーザーを作成します。Tapyrus APIではユーザー単位にウォレットが作成されます。 ウォレットではアセットの受け取りや、送付に必要な公開鍵と秘密鍵のペアが管理されています。 そのため、認証を行ったユーザごとに独立したアセットの管理が可能になります。 ダッシュボードの、「ユーザー一覧」からアクセスするユーザーを作成することができます。 ユーザーを作成すると、そのユーザー用のアクセストークンが発行されます。このアクセストークンとクライアント証明書の両方が漏洩すると、 不正アクセスが可能になるため、データの取り扱いには十分注意してください。 #### 接続確認 クライアント証明書とユーザーが作成されると、APIにアクセスできるようになります。簡単な接続確認は、curlで以下のように行なえます。 1. ダウンロードしたPKCS#12ファイルからcert.pemを生成。 `$ openssl pkcs12 -in <ダウンロードした.p12ファイルのパス> -out cert.pem -nodes -clcerts` 2. cert.pemとアクセストークンを使ってAPIへアクセス。 `$ curl -X GET -H 'Authorization: Bearer <ユーザーのアクセストークン>' \"https://xxx.api.tapyrus.chaintope.com/api/v1/timestamps\" -E cert.pem` 成功するとAPIへのアクセスが可能になっています。これらの認証情報を使って、以下に記載する各APIがご利用いただけます。
5
5
 
6
- The version of the OpenAPI document: 1.0.0
6
+ The version of the OpenAPI document: 1.1.0beta4
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 5.2.1-SNAPSHOT
9
+ OpenAPI Generator version: 5.4.0-SNAPSHOT
10
10
 
11
11
  =end
12
12
 
@@ -19,11 +19,14 @@ module TapyrusApiClient
19
19
 
20
20
  attr_accessor :prefix
21
21
 
22
+ attr_accessor :type
23
+
22
24
  # Attribute mapping from ruby-style variable name to JSON key.
23
25
  def self.attribute_map
24
26
  {
25
27
  :'content_hash' => :'content_hash',
26
- :'prefix' => :'prefix'
28
+ :'prefix' => :'prefix',
29
+ :'type' => :'type'
27
30
  }
28
31
  end
29
32
 
@@ -36,7 +39,8 @@ module TapyrusApiClient
36
39
  def self.openapi_types
37
40
  {
38
41
  :'content_hash' => :'String',
39
- :'prefix' => :'String'
42
+ :'prefix' => :'String',
43
+ :'type' => :'TimestampType'
40
44
  }
41
45
  end
42
46
 
@@ -68,6 +72,10 @@ module TapyrusApiClient
68
72
  if attributes.key?(:'prefix')
69
73
  self.prefix = attributes[:'prefix']
70
74
  end
75
+
76
+ if attributes.key?(:'type')
77
+ self.type = attributes[:'type']
78
+ end
71
79
  end
72
80
 
73
81
  # Show invalid properties with the reasons. Usually used together with valid?
@@ -94,7 +102,8 @@ module TapyrusApiClient
94
102
  return true if self.equal?(o)
95
103
  self.class == o.class &&
96
104
  content_hash == o.content_hash &&
97
- prefix == o.prefix
105
+ prefix == o.prefix &&
106
+ type == o.type
98
107
  end
99
108
 
100
109
  # @see the `==` method
@@ -106,7 +115,7 @@ module TapyrusApiClient
106
115
  # Calculates hash code according to all attributes.
107
116
  # @return [Integer] Hash code
108
117
  def hash
109
- [content_hash, prefix].hash
118
+ [content_hash, prefix, type].hash
110
119
  end
111
120
 
112
121
  # Builds the object from hash
@@ -0,0 +1,299 @@
1
+ =begin
2
+ #Tapyrus API
3
+
4
+ ## イントロダクション これは chaintope 社が開発するブロックチェーン Tapyrus を使ったブロックチェーンに関係する機能を簡単に利用するための REST API です。 現在以下のユースケースをサポートしています。これは今後も拡張されていきます。 * Timestamp: 任意のデータをタイムスタンプとしてブロックチェーンに記録 * Token: 新しいトークンの発行、送金、焼却。NFTも利用可能 * Tracking: トレーサビリティを目的としてたモノの移動履歴を記録 Tapyrus ブロックチェーンについては以下の情報を参照してください。 * [Chaintope のブロックチェーンプロトコル](https://www.chaintope.com/chaintope-blockchain-protocol/) * [chaintope/tapyrus-core - github](https://github.com/chaintope/tapyrus-core) ## Tapyrus API の利用法 Tapyrus API は REST API として提供されています。利用を開始するためには、Tapyrus API の `エンドポイント` に対して、 `認証` 済みの トークンを使いアクセスする必要があります。また、認証されたユーザはそれぞれが自身のウォレットを Tapyrus API 内部に持つことになります。 ウォレットではそのユーザの TPC やトークンといったアセットを管理するための鍵が管理され、アセットの移動などで利用されます。 ### Tapyrus API のエンドポイント エンドポイントは以下のフォーマットで作成されます。 `https://xxx.api.tapyrus.chaintope.com/api/v1` `xxx`の部分は各ユーザー固有の識別子になります。正式なURLは、ダッシュボードで確認できます。 ### API接続の準備 ダッシュボードに登録すると、chaintopeが登録情報を確認後、お客様のAPIエンドポイントを設定します。 エンドポイントが設定されるまでは、APIの機能はご利用いただけません。 #### クライアント証明書 Tapyrus APIに接続する際には、クライアント証明書が必要になります。ダッシュボードの「クライアント証明書」のメニューより、 クライアント証明書を発行してください。 発行すると秘密鍵と公開鍵の証明書を含む[PKCS#12](https://en.wikipedia.org/wiki/PKCS_12)形式のファイルがダウンロードできます。 #### ユーザーの登録 ダッシュボードからAPIに接続するユーザーを作成します。Tapyrus APIではユーザー単位にウォレットが作成されます。 ウォレットではアセットの受け取りや、送付に必要な公開鍵と秘密鍵のペアが管理されています。 そのため、認証を行ったユーザごとに独立したアセットの管理が可能になります。 ダッシュボードの、「ユーザー一覧」からアクセスするユーザーを作成することができます。 ユーザーを作成すると、そのユーザー用のアクセストークンが発行されます。このアクセストークンとクライアント証明書の両方が漏洩すると、 不正アクセスが可能になるため、データの取り扱いには十分注意してください。 #### 接続確認 クライアント証明書とユーザーが作成されると、APIにアクセスできるようになります。簡単な接続確認は、curlで以下のように行なえます。 1. ダウンロードしたPKCS#12ファイルからcert.pemを生成。 `$ openssl pkcs12 -in <ダウンロードした.p12ファイルのパス> -out cert.pem -nodes -clcerts` 2. cert.pemとアクセストークンを使ってAPIへアクセス。 `$ curl -X GET -H 'Authorization: Bearer <ユーザーのアクセストークン>' \"https://xxx.api.tapyrus.chaintope.com/api/v1/timestamps\" -E cert.pem` 成功するとAPIへのアクセスが可能になっています。これらの認証情報を使って、以下に記載する各APIがご利用いただけます。
5
+
6
+ The version of the OpenAPI document: 1.1.0beta4
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 5.4.0-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module TapyrusApiClient
17
+ class AddTimestampResponse
18
+ attr_accessor :id
19
+
20
+ attr_accessor :txid
21
+
22
+ attr_accessor :status
23
+
24
+ attr_accessor :content_hash
25
+
26
+ attr_accessor :prefix
27
+
28
+ attr_accessor :wallet_id
29
+
30
+ attr_accessor :latest
31
+
32
+ attr_accessor :timestamp_type
33
+
34
+ attr_accessor :p2c_address
35
+
36
+ attr_accessor :payment_base
37
+
38
+ # Attribute mapping from ruby-style variable name to JSON key.
39
+ def self.attribute_map
40
+ {
41
+ :'id' => :'id',
42
+ :'txid' => :'txid',
43
+ :'status' => :'status',
44
+ :'content_hash' => :'content_hash',
45
+ :'prefix' => :'prefix',
46
+ :'wallet_id' => :'wallet_id',
47
+ :'latest' => :'latest',
48
+ :'timestamp_type' => :'timestamp_type',
49
+ :'p2c_address' => :'p2c_address',
50
+ :'payment_base' => :'payment_base'
51
+ }
52
+ end
53
+
54
+ # Returns all the JSON keys this model knows about
55
+ def self.acceptable_attributes
56
+ attribute_map.values
57
+ end
58
+
59
+ # Attribute type mapping.
60
+ def self.openapi_types
61
+ {
62
+ :'id' => :'Integer',
63
+ :'txid' => :'String',
64
+ :'status' => :'String',
65
+ :'content_hash' => :'String',
66
+ :'prefix' => :'String',
67
+ :'wallet_id' => :'String',
68
+ :'latest' => :'Boolean',
69
+ :'timestamp_type' => :'TimestampType',
70
+ :'p2c_address' => :'String',
71
+ :'payment_base' => :'String'
72
+ }
73
+ end
74
+
75
+ # List of attributes with nullable: true
76
+ def self.openapi_nullable
77
+ Set.new([
78
+ ])
79
+ end
80
+
81
+ # Initializes the object
82
+ # @param [Hash] attributes Model attributes in the form of hash
83
+ def initialize(attributes = {})
84
+ if (!attributes.is_a?(Hash))
85
+ fail ArgumentError, "The input argument (attributes) must be a hash in `TapyrusApiClient::AddTimestampResponse` initialize method"
86
+ end
87
+
88
+ # check to see if the attribute exists and convert string to symbol for hash key
89
+ attributes = attributes.each_with_object({}) { |(k, v), h|
90
+ if (!self.class.attribute_map.key?(k.to_sym))
91
+ fail ArgumentError, "`#{k}` is not a valid attribute in `TapyrusApiClient::AddTimestampResponse`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
92
+ end
93
+ h[k.to_sym] = v
94
+ }
95
+
96
+ if attributes.key?(:'id')
97
+ self.id = attributes[:'id']
98
+ end
99
+
100
+ if attributes.key?(:'txid')
101
+ self.txid = attributes[:'txid']
102
+ end
103
+
104
+ if attributes.key?(:'status')
105
+ self.status = attributes[:'status']
106
+ end
107
+
108
+ if attributes.key?(:'content_hash')
109
+ self.content_hash = attributes[:'content_hash']
110
+ end
111
+
112
+ if attributes.key?(:'prefix')
113
+ self.prefix = attributes[:'prefix']
114
+ end
115
+
116
+ if attributes.key?(:'wallet_id')
117
+ self.wallet_id = attributes[:'wallet_id']
118
+ end
119
+
120
+ if attributes.key?(:'latest')
121
+ self.latest = attributes[:'latest']
122
+ end
123
+
124
+ if attributes.key?(:'timestamp_type')
125
+ self.timestamp_type = attributes[:'timestamp_type']
126
+ end
127
+
128
+ if attributes.key?(:'p2c_address')
129
+ self.p2c_address = attributes[:'p2c_address']
130
+ end
131
+
132
+ if attributes.key?(:'payment_base')
133
+ self.payment_base = attributes[:'payment_base']
134
+ end
135
+ end
136
+
137
+ # Show invalid properties with the reasons. Usually used together with valid?
138
+ # @return Array for valid properties with the reasons
139
+ def list_invalid_properties
140
+ invalid_properties = Array.new
141
+ invalid_properties
142
+ end
143
+
144
+ # Check to see if the all the properties in the model are valid
145
+ # @return true if the model is valid
146
+ def valid?
147
+ true
148
+ end
149
+
150
+ # Checks equality by comparing each attribute.
151
+ # @param [Object] Object to be compared
152
+ def ==(o)
153
+ return true if self.equal?(o)
154
+ self.class == o.class &&
155
+ id == o.id &&
156
+ txid == o.txid &&
157
+ status == o.status &&
158
+ content_hash == o.content_hash &&
159
+ prefix == o.prefix &&
160
+ wallet_id == o.wallet_id &&
161
+ latest == o.latest &&
162
+ timestamp_type == o.timestamp_type &&
163
+ p2c_address == o.p2c_address &&
164
+ payment_base == o.payment_base
165
+ end
166
+
167
+ # @see the `==` method
168
+ # @param [Object] Object to be compared
169
+ def eql?(o)
170
+ self == o
171
+ end
172
+
173
+ # Calculates hash code according to all attributes.
174
+ # @return [Integer] Hash code
175
+ def hash
176
+ [id, txid, status, content_hash, prefix, wallet_id, latest, timestamp_type, p2c_address, payment_base].hash
177
+ end
178
+
179
+ # Builds the object from hash
180
+ # @param [Hash] attributes Model attributes in the form of hash
181
+ # @return [Object] Returns the model itself
182
+ def self.build_from_hash(attributes)
183
+ new.build_from_hash(attributes)
184
+ end
185
+
186
+ # Builds the object from hash
187
+ # @param [Hash] attributes Model attributes in the form of hash
188
+ # @return [Object] Returns the model itself
189
+ def build_from_hash(attributes)
190
+ return nil unless attributes.is_a?(Hash)
191
+ self.class.openapi_types.each_pair do |key, type|
192
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
193
+ self.send("#{key}=", nil)
194
+ elsif type =~ /\AArray<(.*)>/i
195
+ # check to ensure the input is an array given that the attribute
196
+ # is documented as an array but the input is not
197
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
198
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
199
+ end
200
+ elsif !attributes[self.class.attribute_map[key]].nil?
201
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
202
+ end
203
+ end
204
+
205
+ self
206
+ end
207
+
208
+ # Deserializes the data based on type
209
+ # @param string type Data type
210
+ # @param string value Value to be deserialized
211
+ # @return [Object] Deserialized data
212
+ def _deserialize(type, value)
213
+ case type.to_sym
214
+ when :Time
215
+ Time.parse(value)
216
+ when :Date
217
+ Date.parse(value)
218
+ when :String
219
+ value.to_s
220
+ when :Integer
221
+ value.to_i
222
+ when :Float
223
+ value.to_f
224
+ when :Boolean
225
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
226
+ true
227
+ else
228
+ false
229
+ end
230
+ when :Object
231
+ # generic object (usually a Hash), return directly
232
+ value
233
+ when /\AArray<(?<inner_type>.+)>\z/
234
+ inner_type = Regexp.last_match[:inner_type]
235
+ value.map { |v| _deserialize(inner_type, v) }
236
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
237
+ k_type = Regexp.last_match[:k_type]
238
+ v_type = Regexp.last_match[:v_type]
239
+ {}.tap do |hash|
240
+ value.each do |k, v|
241
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
242
+ end
243
+ end
244
+ else # model
245
+ # models (e.g. Pet) or oneOf
246
+ klass = TapyrusApiClient.const_get(type)
247
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
248
+ end
249
+ end
250
+
251
+ # Returns the string representation of the object
252
+ # @return [String] String presentation of the object
253
+ def to_s
254
+ to_hash.to_s
255
+ end
256
+
257
+ # to_body is an alias to to_hash (backward compatibility)
258
+ # @return [Hash] Returns the object in the form of hash
259
+ def to_body
260
+ to_hash
261
+ end
262
+
263
+ # Returns the object in the form of hash
264
+ # @return [Hash] Returns the object in the form of hash
265
+ def to_hash
266
+ hash = {}
267
+ self.class.attribute_map.each_pair do |attr, param|
268
+ value = self.send(attr)
269
+ if value.nil?
270
+ is_nullable = self.class.openapi_nullable.include?(attr)
271
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
272
+ end
273
+
274
+ hash[param] = _to_hash(value)
275
+ end
276
+ hash
277
+ end
278
+
279
+ # Outputs non-array value in the form of hash
280
+ # For object, use to_hash. Otherwise, just return the value
281
+ # @param [Object] value Any valid value
282
+ # @return [Hash] Returns the value in the form of hash
283
+ def _to_hash(value)
284
+ if value.is_a?(Array)
285
+ value.compact.map { |v| _to_hash(v) }
286
+ elsif value.is_a?(Hash)
287
+ {}.tap do |hash|
288
+ value.each { |k, v| hash[k] = _to_hash(v) }
289
+ end
290
+ elsif value.respond_to? :to_hash
291
+ value.to_hash
292
+ else
293
+ value
294
+ end
295
+ end
296
+
297
+ end
298
+
299
+ end
@@ -0,0 +1,226 @@
1
+ =begin
2
+ #Tapyrus API
3
+
4
+ ## イントロダクション これは chaintope 社が開発するブロックチェーン Tapyrus を使ったブロックチェーンに関係する機能を簡単に利用するための REST API です。 現在以下のユースケースをサポートしています。これは今後も拡張されていきます。 * Timestamp: 任意のデータをタイムスタンプとしてブロックチェーンに記録 * Token: 新しいトークンの発行、送金、焼却。NFTも利用可能 * Tracking: トレーサビリティを目的としてたモノの移動履歴を記録 Tapyrus ブロックチェーンについては以下の情報を参照してください。 * [Chaintope のブロックチェーンプロトコル](https://www.chaintope.com/chaintope-blockchain-protocol/) * [chaintope/tapyrus-core - github](https://github.com/chaintope/tapyrus-core) ## Tapyrus API の利用法 Tapyrus API は REST API として提供されています。利用を開始するためには、Tapyrus API の `エンドポイント` に対して、 `認証` 済みの トークンを使いアクセスする必要があります。また、認証されたユーザはそれぞれが自身のウォレットを Tapyrus API 内部に持つことになります。 ウォレットではそのユーザの TPC やトークンといったアセットを管理するための鍵が管理され、アセットの移動などで利用されます。 ### Tapyrus API のエンドポイント エンドポイントは以下のフォーマットで作成されます。 `https://xxx.api.tapyrus.chaintope.com/api/v1` `xxx`の部分は各ユーザー固有の識別子になります。正式なURLは、ダッシュボードで確認できます。 ### API接続の準備 ダッシュボードに登録すると、chaintopeが登録情報を確認後、お客様のAPIエンドポイントを設定します。 エンドポイントが設定されるまでは、APIの機能はご利用いただけません。 #### クライアント証明書 Tapyrus APIに接続する際には、クライアント証明書が必要になります。ダッシュボードの「クライアント証明書」のメニューより、 クライアント証明書を発行してください。 発行すると秘密鍵と公開鍵の証明書を含む[PKCS#12](https://en.wikipedia.org/wiki/PKCS_12)形式のファイルがダウンロードできます。 #### ユーザーの登録 ダッシュボードからAPIに接続するユーザーを作成します。Tapyrus APIではユーザー単位にウォレットが作成されます。 ウォレットではアセットの受け取りや、送付に必要な公開鍵と秘密鍵のペアが管理されています。 そのため、認証を行ったユーザごとに独立したアセットの管理が可能になります。 ダッシュボードの、「ユーザー一覧」からアクセスするユーザーを作成することができます。 ユーザーを作成すると、そのユーザー用のアクセストークンが発行されます。このアクセストークンとクライアント証明書の両方が漏洩すると、 不正アクセスが可能になるため、データの取り扱いには十分注意してください。 #### 接続確認 クライアント証明書とユーザーが作成されると、APIにアクセスできるようになります。簡単な接続確認は、curlで以下のように行なえます。 1. ダウンロードしたPKCS#12ファイルからcert.pemを生成。 `$ openssl pkcs12 -in <ダウンロードした.p12ファイルのパス> -out cert.pem -nodes -clcerts` 2. cert.pemとアクセストークンを使ってAPIへアクセス。 `$ curl -X GET -H 'Authorization: Bearer <ユーザーのアクセストークン>' \"https://xxx.api.tapyrus.chaintope.com/api/v1/timestamps\" -E cert.pem` 成功するとAPIへのアクセスが可能になっています。これらの認証情報を使って、以下に記載する各APIがご利用いただけます。
5
+
6
+ The version of the OpenAPI document: 1.1.0beta4
7
+
8
+ Generated by: https://openapi-generator.tech
9
+ OpenAPI Generator version: 5.4.0-SNAPSHOT
10
+
11
+ =end
12
+
13
+ require 'date'
14
+ require 'time'
15
+
16
+ module TapyrusApiClient
17
+ class ConsumeTrackingRequest
18
+ # 消費したモノを示します。
19
+ attr_accessor :subjects
20
+
21
+ # Attribute mapping from ruby-style variable name to JSON key.
22
+ def self.attribute_map
23
+ {
24
+ :'subjects' => :'subjects'
25
+ }
26
+ end
27
+
28
+ # Returns all the JSON keys this model knows about
29
+ def self.acceptable_attributes
30
+ attribute_map.values
31
+ end
32
+
33
+ # Attribute type mapping.
34
+ def self.openapi_types
35
+ {
36
+ :'subjects' => :'Array<String>'
37
+ }
38
+ end
39
+
40
+ # List of attributes with nullable: true
41
+ def self.openapi_nullable
42
+ Set.new([
43
+ ])
44
+ end
45
+
46
+ # Initializes the object
47
+ # @param [Hash] attributes Model attributes in the form of hash
48
+ def initialize(attributes = {})
49
+ if (!attributes.is_a?(Hash))
50
+ fail ArgumentError, "The input argument (attributes) must be a hash in `TapyrusApiClient::ConsumeTrackingRequest` initialize method"
51
+ end
52
+
53
+ # check to see if the attribute exists and convert string to symbol for hash key
54
+ attributes = attributes.each_with_object({}) { |(k, v), h|
55
+ if (!self.class.attribute_map.key?(k.to_sym))
56
+ fail ArgumentError, "`#{k}` is not a valid attribute in `TapyrusApiClient::ConsumeTrackingRequest`. Please check the name to make sure it's valid. List of attributes: " + self.class.attribute_map.keys.inspect
57
+ end
58
+ h[k.to_sym] = v
59
+ }
60
+
61
+ if attributes.key?(:'subjects')
62
+ if (value = attributes[:'subjects']).is_a?(Array)
63
+ self.subjects = value
64
+ end
65
+ end
66
+ end
67
+
68
+ # Show invalid properties with the reasons. Usually used together with valid?
69
+ # @return Array for valid properties with the reasons
70
+ def list_invalid_properties
71
+ invalid_properties = Array.new
72
+ if @subjects.nil?
73
+ invalid_properties.push('invalid value for "subjects", subjects cannot be nil.')
74
+ end
75
+
76
+ invalid_properties
77
+ end
78
+
79
+ # Check to see if the all the properties in the model are valid
80
+ # @return true if the model is valid
81
+ def valid?
82
+ return false if @subjects.nil?
83
+ true
84
+ end
85
+
86
+ # Checks equality by comparing each attribute.
87
+ # @param [Object] Object to be compared
88
+ def ==(o)
89
+ return true if self.equal?(o)
90
+ self.class == o.class &&
91
+ subjects == o.subjects
92
+ end
93
+
94
+ # @see the `==` method
95
+ # @param [Object] Object to be compared
96
+ def eql?(o)
97
+ self == o
98
+ end
99
+
100
+ # Calculates hash code according to all attributes.
101
+ # @return [Integer] Hash code
102
+ def hash
103
+ [subjects].hash
104
+ end
105
+
106
+ # Builds the object from hash
107
+ # @param [Hash] attributes Model attributes in the form of hash
108
+ # @return [Object] Returns the model itself
109
+ def self.build_from_hash(attributes)
110
+ new.build_from_hash(attributes)
111
+ end
112
+
113
+ # Builds the object from hash
114
+ # @param [Hash] attributes Model attributes in the form of hash
115
+ # @return [Object] Returns the model itself
116
+ def build_from_hash(attributes)
117
+ return nil unless attributes.is_a?(Hash)
118
+ self.class.openapi_types.each_pair do |key, type|
119
+ if attributes[self.class.attribute_map[key]].nil? && self.class.openapi_nullable.include?(key)
120
+ self.send("#{key}=", nil)
121
+ elsif type =~ /\AArray<(.*)>/i
122
+ # check to ensure the input is an array given that the attribute
123
+ # is documented as an array but the input is not
124
+ if attributes[self.class.attribute_map[key]].is_a?(Array)
125
+ self.send("#{key}=", attributes[self.class.attribute_map[key]].map { |v| _deserialize($1, v) })
126
+ end
127
+ elsif !attributes[self.class.attribute_map[key]].nil?
128
+ self.send("#{key}=", _deserialize(type, attributes[self.class.attribute_map[key]]))
129
+ end
130
+ end
131
+
132
+ self
133
+ end
134
+
135
+ # Deserializes the data based on type
136
+ # @param string type Data type
137
+ # @param string value Value to be deserialized
138
+ # @return [Object] Deserialized data
139
+ def _deserialize(type, value)
140
+ case type.to_sym
141
+ when :Time
142
+ Time.parse(value)
143
+ when :Date
144
+ Date.parse(value)
145
+ when :String
146
+ value.to_s
147
+ when :Integer
148
+ value.to_i
149
+ when :Float
150
+ value.to_f
151
+ when :Boolean
152
+ if value.to_s =~ /\A(true|t|yes|y|1)\z/i
153
+ true
154
+ else
155
+ false
156
+ end
157
+ when :Object
158
+ # generic object (usually a Hash), return directly
159
+ value
160
+ when /\AArray<(?<inner_type>.+)>\z/
161
+ inner_type = Regexp.last_match[:inner_type]
162
+ value.map { |v| _deserialize(inner_type, v) }
163
+ when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
164
+ k_type = Regexp.last_match[:k_type]
165
+ v_type = Regexp.last_match[:v_type]
166
+ {}.tap do |hash|
167
+ value.each do |k, v|
168
+ hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
169
+ end
170
+ end
171
+ else # model
172
+ # models (e.g. Pet) or oneOf
173
+ klass = TapyrusApiClient.const_get(type)
174
+ klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass.build_from_hash(value)
175
+ end
176
+ end
177
+
178
+ # Returns the string representation of the object
179
+ # @return [String] String presentation of the object
180
+ def to_s
181
+ to_hash.to_s
182
+ end
183
+
184
+ # to_body is an alias to to_hash (backward compatibility)
185
+ # @return [Hash] Returns the object in the form of hash
186
+ def to_body
187
+ to_hash
188
+ end
189
+
190
+ # Returns the object in the form of hash
191
+ # @return [Hash] Returns the object in the form of hash
192
+ def to_hash
193
+ hash = {}
194
+ self.class.attribute_map.each_pair do |attr, param|
195
+ value = self.send(attr)
196
+ if value.nil?
197
+ is_nullable = self.class.openapi_nullable.include?(attr)
198
+ next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
199
+ end
200
+
201
+ hash[param] = _to_hash(value)
202
+ end
203
+ hash
204
+ end
205
+
206
+ # Outputs non-array value in the form of hash
207
+ # For object, use to_hash. Otherwise, just return the value
208
+ # @param [Object] value Any valid value
209
+ # @return [Hash] Returns the value in the form of hash
210
+ def _to_hash(value)
211
+ if value.is_a?(Array)
212
+ value.compact.map { |v| _to_hash(v) }
213
+ elsif value.is_a?(Hash)
214
+ {}.tap do |hash|
215
+ value.each { |k, v| hash[k] = _to_hash(v) }
216
+ end
217
+ elsif value.respond_to? :to_hash
218
+ value.to_hash
219
+ else
220
+ value
221
+ end
222
+ end
223
+
224
+ end
225
+
226
+ end
@@ -1,12 +1,12 @@
1
1
  =begin
2
2
  #Tapyrus API
3
3
 
4
- ## イントロダクション これは chaintope 社が開発するブロックチェーン Tapyrus を使ったブロックチェーンに関係する機能を簡単に利用するための REST API です。 現在以下のユースケースをサポートしています。これは今後も拡張されていくことを予定しています。 * Payment: TPC(Tapyrus Coin) の送金 * Timestamp: 任意のデータをタイムスタンプとしてブロックチェーンに記録 * Token: 新しいトークンの発行、送金、焼却。NFTも利用可能 Tapyrus ブロックチェーンについては以下の情報を参照してください。 * [Chaintope のブロックチェーンプロトコル](https://www.chaintope.com/chaintope-blockchain-protocol/) * [chaintope/tapyrus-core - github](https://github.com/chaintope/tapyrus-core) ## Tapyrus API の利用法 Tapyrus API は REST API として提供されています。利用を開始するためには、Tapyrus API の `エンドポイント` に対して、 `認証` 済みの トークンを使いアクセスする必要があります。また、認証されたユーザはそれぞれが自身のウォレットを Tapyrus API 内部に持つことになります。 ウォレットではそのユーザの TPC やトークンといったアセットを管理するための鍵が管理され、アセットの移動などで利用されます。 ### Tapyrus API のエンドポイント エンドポイントは以下のフォーマットで作成され、 chaintope より提供されます。 `ap-01.tapyrus.chaintope.com` 例えば [testnet](https://testnet-explorer.tapyrus.dev.chaintope.com/blocks) では以下のようになります。 `testnet-api.tapyrus.chaintope.com` testnet は誰でも利用可能な動作の確認用のネットワークであり、予告なくリセットされる可能性があります。 利用に必要な TPC は [faucet](https://testnet-faucet.tapyrus.dev.chaintope.com) から取得できます。 * [faucet](https://testnet-faucet.tapyrus.dev.chaintope.com) ### OpenID Connect を使った認証 Tapyrus API では [OpenID Connect](https://openid.net/connect/) を使った認証をサポートします。この認証を利用するためには、 以下のステップを踏みます。 1. 利用する OpenID Provider(OP) を選択する 公開された OP から選択する方法と、自身で OP を構築する方法があります。独自のユーザデータベースがあり、そのユーザに Tapyrus API を利用させる場合は後者の自身で OP を構築する方法を選択することになります。 2. OAuth 2.0 Client Credential を入手する 多くの公開された OP では、アプリケーションを登録して Client Credential を入手する必要があります。手順は利用する OP に従ってください。 3. Access Token と ID Token を入手する OpenID Connect に沿った認証を行い、 token エンドポイントから ID Token を入手します。 4. Tapyrus API ユーザを作成する 入手した Access Token ID Token Tapyrus API の [createUser API](https://doc.api.tapyrus.chaintope.com/#operation/createUser) へ送り、 Tapyrus API のユーザを作成します。 コード例を後述の Getting Started ドキュメントで解説していますので、そちらを参照してください。 ## Tapyrus API ユーザとウォレットについて 認証により得たアクセストークンを使い、Tapyrus API ユーザを1つ作成する必要があります。 Tapyrus API の内部では、このユーザ1つにつき1つのウォレットが作成されます。 ウォレットではアセットの受け取りや、送付に必要な公開鍵と秘密鍵のペアが管理されており、同時にそれらのカギに紐づくアセットも管理されます。 そのため、認証を行ったユーザごとに独立したアセットの管理が可能になります。 # Getting Started Getting Started ドキュメントでは実際のコード例を交えながらより具体的な Tapyrus API の利用法を解説しています。 * [Getting Started - [Javascript] Tapyrus API を利用するウェブアプリケーションの開発を学ぶ](https://github.com/chaintope/tapyrus-api-client-examples/tree/main/javascript/GettingStarted-ja.md)
4
+ ## イントロダクション これは chaintope 社が開発するブロックチェーン Tapyrus を使ったブロックチェーンに関係する機能を簡単に利用するための REST API です。 現在以下のユースケースをサポートしています。これは今後も拡張されていきます。 * Timestamp: 任意のデータをタイムスタンプとしてブロックチェーンに記録 * Token: 新しいトークンの発行、送金、焼却。NFTも利用可能 * Tracking: トレーサビリティを目的としてたモノの移動履歴を記録 Tapyrus ブロックチェーンについては以下の情報を参照してください。 * [Chaintope のブロックチェーンプロトコル](https://www.chaintope.com/chaintope-blockchain-protocol/) * [chaintope/tapyrus-core - github](https://github.com/chaintope/tapyrus-core) ## Tapyrus API の利用法 Tapyrus API は REST API として提供されています。利用を開始するためには、Tapyrus API の `エンドポイント` に対して、 `認証` 済みの トークンを使いアクセスする必要があります。また、認証されたユーザはそれぞれが自身のウォレットを Tapyrus API 内部に持つことになります。 ウォレットではそのユーザの TPC やトークンといったアセットを管理するための鍵が管理され、アセットの移動などで利用されます。 ### Tapyrus API のエンドポイント エンドポイントは以下のフォーマットで作成されます。 `https://xxx.api.tapyrus.chaintope.com/api/v1` `xxx`の部分は各ユーザー固有の識別子になります。正式なURLは、ダッシュボードで確認できます。 ### API接続の準備 ダッシュボードに登録すると、chaintopeが登録情報を確認後、お客様のAPIエンドポイントを設定します。 エンドポイントが設定されるまでは、APIの機能はご利用いただけません。 #### クライアント証明書 Tapyrus APIに接続する際には、クライアント証明書が必要になります。ダッシュボードの「クライアント証明書」のメニューより、 クライアント証明書を発行してください。 発行すると秘密鍵と公開鍵の証明書を含む[PKCS#12](https://en.wikipedia.org/wiki/PKCS_12)形式のファイルがダウンロードできます。 #### ユーザーの登録 ダッシュボードからAPIに接続するユーザーを作成します。Tapyrus APIではユーザー単位にウォレットが作成されます。 ウォレットではアセットの受け取りや、送付に必要な公開鍵と秘密鍵のペアが管理されています。 そのため、認証を行ったユーザごとに独立したアセットの管理が可能になります。 ダッシュボードの、「ユーザー一覧」からアクセスするユーザーを作成することができます。 ユーザーを作成すると、そのユーザー用のアクセストークンが発行されます。このアクセストークンとクライアント証明書の両方が漏洩すると、 不正アクセスが可能になるため、データの取り扱いには十分注意してください。 #### 接続確認 クライアント証明書とユーザーが作成されると、APIにアクセスできるようになります。簡単な接続確認は、curlで以下のように行なえます。 1. ダウンロードしたPKCS#12ファイルからcert.pemを生成。 `$ openssl pkcs12 -in <ダウンロードした.p12ファイルのパス> -out cert.pem -nodes -clcerts` 2. cert.pemとアクセストークンを使ってAPIへアクセス。 `$ curl -X GET -H 'Authorization: Bearer <ユーザーのアクセストークン>' \"https://xxx.api.tapyrus.chaintope.com/api/v1/timestamps\" -E cert.pem` 成功するとAPIへのアクセスが可能になっています。これらの認証情報を使って、以下に記載する各APIがご利用いただけます。
5
5
 
6
- The version of the OpenAPI document: 1.0.0
6
+ The version of the OpenAPI document: 1.1.0beta4
7
7
 
8
8
  Generated by: https://openapi-generator.tech
9
- OpenAPI Generator version: 5.2.1-SNAPSHOT
9
+ OpenAPI Generator version: 5.4.0-SNAPSHOT
10
10
 
11
11
  =end
12
12