aspera-cli 4.20.0 → 4.21.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/CHANGELOG.md +29 -3
  4. data/CONTRIBUTING.md +2 -0
  5. data/README.md +571 -375
  6. data/bin/asession +2 -2
  7. data/examples/get_proto_file.rb +1 -1
  8. data/lib/aspera/agent/alpha.rb +10 -16
  9. data/lib/aspera/agent/connect.rb +20 -2
  10. data/lib/aspera/agent/direct.rb +21 -30
  11. data/lib/aspera/agent/node.rb +1 -11
  12. data/lib/aspera/agent/{trsdk.rb → transferd.rb} +13 -34
  13. data/lib/aspera/api/aoc.rb +13 -8
  14. data/lib/aspera/api/node.rb +45 -28
  15. data/lib/aspera/ascp/installation.rb +87 -48
  16. data/lib/aspera/ascp/management.rb +27 -6
  17. data/lib/aspera/cli/formatter.rb +148 -154
  18. data/lib/aspera/cli/info.rb +1 -1
  19. data/lib/aspera/cli/main.rb +12 -0
  20. data/lib/aspera/cli/manager.rb +2 -2
  21. data/lib/aspera/cli/plugin.rb +2 -2
  22. data/lib/aspera/cli/plugins/aoc.rb +28 -18
  23. data/lib/aspera/cli/plugins/config.rb +106 -54
  24. data/lib/aspera/cli/plugins/cos.rb +1 -0
  25. data/lib/aspera/cli/plugins/faspex.rb +4 -2
  26. data/lib/aspera/cli/plugins/faspex5.rb +21 -9
  27. data/lib/aspera/cli/plugins/node.rb +45 -38
  28. data/lib/aspera/cli/transfer_progress.rb +2 -0
  29. data/lib/aspera/cli/version.rb +1 -1
  30. data/lib/aspera/command_line_builder.rb +1 -1
  31. data/lib/aspera/environment.rb +48 -14
  32. data/lib/aspera/node_simulator.rb +230 -112
  33. data/lib/aspera/oauth/base.rb +34 -47
  34. data/lib/aspera/oauth/factory.rb +41 -2
  35. data/lib/aspera/oauth/jwt.rb +4 -1
  36. data/lib/aspera/persistency_action_once.rb +1 -1
  37. data/lib/aspera/persistency_folder.rb +20 -2
  38. data/lib/aspera/preview/generator.rb +1 -1
  39. data/lib/aspera/preview/utils.rb +8 -3
  40. data/lib/aspera/products/alpha.rb +30 -0
  41. data/lib/aspera/products/connect.rb +48 -0
  42. data/lib/aspera/products/other.rb +82 -0
  43. data/lib/aspera/products/transferd.rb +54 -0
  44. data/lib/aspera/rest.rb +18 -13
  45. data/lib/aspera/secret_hider.rb +2 -2
  46. data/lib/aspera/ssh.rb +31 -24
  47. data/lib/aspera/transfer/parameters.rb +2 -1
  48. data/lib/aspera/transfer/spec.yaml +22 -20
  49. data/lib/aspera/transfer/sync.rb +1 -5
  50. data/lib/aspera/transfer/uri.rb +2 -2
  51. data/lib/transferd_pb.rb +86 -0
  52. data/lib/transferd_services_pb.rb +84 -0
  53. data.tar.gz.sig +0 -0
  54. metadata +38 -21
  55. metadata.gz.sig +0 -0
  56. data/lib/aspera/ascp/products.rb +0 -168
  57. data/lib/transfer_pb.rb +0 -84
  58. data/lib/transfer_services_pb.rb +0 -82
@@ -1,168 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- # cspell:ignore LOCALAPPDATA
4
- require 'aspera/environment'
5
-
6
- module Aspera
7
- module Ascp
8
- # find Aspera standard products installation in standard paths
9
- class Products
10
- # known product names
11
- CONNECT = 'IBM Aspera Connect'
12
- ASPERA = 'IBM Aspera (Client)'
13
- CLI_V1 = 'Aspera CLI (deprecated)'
14
- DRIVE = 'Aspera Drive (deprecated)'
15
- HSTS = 'IBM Aspera High-Speed Transfer Server'
16
- # product information manifest: XML (part of aspera product)
17
- INFO_META_FILE = 'product-info.mf'
18
- BIN_SUBFOLDER = 'bin'
19
- ETC_SUBFOLDER = 'etc'
20
- VAR_RUN_SUBFOLDER = File.join('var', 'run')
21
-
22
- @@found_products = nil # rubocop:disable Style/ClassVars
23
- class << self
24
- # @return product folders depending on OS fields
25
- # :expected M app name is taken from the manifest if present, else defaults to this value
26
- # :app_root M main folder for the application
27
- # :log_root O location of log files (Linux uses syslog)
28
- # :run_root O only for Connect Client, location of http port file
29
- # :sub_bin O subfolder with executables, default : bin
30
- def product_locations_on_current_os
31
- result =
32
- case Aspera::Environment.os
33
- when Aspera::Environment::OS_WINDOWS then [{
34
- expected: CONNECT,
35
- app_root: File.join(ENV.fetch('LOCALAPPDATA', nil), 'Programs', 'Aspera', 'Aspera Connect'),
36
- log_root: File.join(ENV.fetch('LOCALAPPDATA', nil), 'Aspera', 'Aspera Connect', 'var', 'log'),
37
- run_root: File.join(ENV.fetch('LOCALAPPDATA', nil), 'Aspera', 'Aspera Connect')
38
- }, {
39
- expected: CLI_V1,
40
- app_root: File.join('C:', 'Program Files', 'Aspera', 'cli'),
41
- log_root: File.join('C:', 'Program Files', 'Aspera', 'cli', 'var', 'log')
42
- }, {
43
- expected: HSTS,
44
- app_root: File.join('C:', 'Program Files', 'Aspera', 'Enterprise Server'),
45
- log_root: File.join('C:', 'Program Files', 'Aspera', 'Enterprise Server', 'var', 'log')
46
- }]
47
- when Aspera::Environment::OS_MACOS then [{
48
- expected: CONNECT,
49
- app_root: File.join(Dir.home, 'Applications', 'Aspera Connect.app'),
50
- log_root: File.join(Dir.home, 'Library', 'Logs', 'Aspera_Connect'),
51
- run_root: File.join(Dir.home, 'Library', 'Application Support', 'Aspera', 'Aspera Connect'),
52
- sub_bin: File.join('Contents', 'Resources')
53
- }, {
54
- expected: CONNECT,
55
- app_root: File.join('', 'Applications', 'Aspera Connect.app'),
56
- log_root: File.join(Dir.home, 'Library', 'Logs', 'Aspera_Connect'),
57
- run_root: File.join(Dir.home, 'Library', 'Application Support', 'Aspera', 'Aspera Connect'),
58
- sub_bin: File.join('Contents', 'Resources')
59
- }, {
60
- expected: CONNECT,
61
- app_root: File.join(Dir.home, 'Applications', 'IBM Aspera Connect.app'),
62
- log_root: File.join(Dir.home, 'Library', 'Logs', 'Aspera_Connect'),
63
- run_root: File.join(Dir.home, 'Library', 'Application Support', 'Aspera', 'Aspera Connect'),
64
- sub_bin: File.join('Contents', 'Resources')
65
- }, {
66
- expected: CONNECT,
67
- app_root: File.join('', 'Applications', 'IBM Aspera Connect.app'),
68
- log_root: File.join(Dir.home, 'Library', 'Logs', 'Aspera_Connect'),
69
- run_root: File.join(Dir.home, 'Library', 'Application Support', 'Aspera', 'Aspera Connect'),
70
- sub_bin: File.join('Contents', 'Resources')
71
- }, {
72
- expected: CLI_V1,
73
- app_root: File.join(Dir.home, 'Applications', 'Aspera CLI'),
74
- log_root: File.join(Dir.home, 'Library', 'Logs', 'Aspera')
75
- }, {
76
- expected: HSTS,
77
- app_root: File.join('', 'Library', 'Aspera'),
78
- log_root: File.join(Dir.home, 'Library', 'Logs', 'Aspera')
79
- }, {
80
- expected: DRIVE,
81
- app_root: File.join('', 'Applications', 'Aspera Drive.app'),
82
- log_root: File.join(Dir.home, 'Library', 'Logs', 'Aspera_Drive'),
83
- sub_bin: File.join('Contents', 'Resources')
84
- }, {
85
- expected: ASPERA,
86
- app_root: File.join('', 'Applications', 'IBM Aspera.app'),
87
- log_root: File.join(Dir.home, 'Library', 'Logs', 'IBM Aspera'),
88
- sub_bin: File.join('Contents', 'Resources', 'sdk', 'aspera', 'bin')
89
- }]
90
- else [{ # other: Linux and Unix family
91
- expected: CONNECT,
92
- app_root: File.join(Dir.home, '.aspera', 'connect'),
93
- run_root: File.join(Dir.home, '.aspera', 'connect')
94
- }, {
95
- expected: CLI_V1,
96
- app_root: File.join(Dir.home, '.aspera', 'cli')
97
- }, {
98
- expected: HSTS,
99
- app_root: File.join('', 'opt', 'aspera')
100
- }]
101
- end
102
- result # .each {|item| item.deep_do {|h, _k, _v, _m|h.freeze}}.freeze
103
- end
104
-
105
- # @return the list of installed products in format of product_locations_on_current_os
106
- def installed_products
107
- if @@found_products.nil?
108
- scan_locations = product_locations_on_current_os.clone
109
- # add SDK as first search path
110
- scan_locations.unshift({
111
- expected: 'SDK',
112
- app_root: Installation.instance.sdk_folder,
113
- sub_bin: ''
114
- })
115
- # search installed products: with ascp
116
- @@found_products = scan_locations.select! do |item| # rubocop:disable Style/ClassVars
117
- # skip if not main folder
118
- next false unless Dir.exist?(item[:app_root])
119
- Log.log.debug{"Found #{item[:app_root]}"}
120
- sub_bin = item[:sub_bin] || BIN_SUBFOLDER
121
- item[:ascp_path] = File.join(item[:app_root], sub_bin, ascp_filename)
122
- # skip if no ascp
123
- next false unless File.exist?(item[:ascp_path])
124
- # read info from product info file if present
125
- product_info_file = "#{item[:app_root]}/#{INFO_META_FILE}"
126
- if File.exist?(product_info_file)
127
- res_s = XmlSimple.xml_in(File.read(product_info_file), {'ForceArray' => false})
128
- item[:name] = res_s['name']
129
- item[:version] = res_s['version']
130
- else
131
- item[:name] = item[:expected]
132
- end
133
- true # select this version
134
- end
135
- end
136
- return @@found_products
137
- end
138
-
139
- # filename for ascp with optional extension (Windows)
140
- def ascp_filename
141
- return "ascp#{Environment.exe_extension}"
142
- end
143
-
144
- # @return folder paths for specified applications
145
- # @param name Connect or CLI
146
- def folders(name)
147
- found = Products.installed_products.select{|i|i[:expected].eql?(name) || i[:name].eql?(name)}
148
- raise "Product: #{name} not found, please install." if found.empty?
149
- return found.first
150
- end
151
-
152
- # @return the file path of local connect where API's URI can be read
153
- def connect_uri
154
- connect = folders(CONNECT)
155
- folder = File.join(connect[:run_root], VAR_RUN_SUBFOLDER)
156
- ['', 's'].each do |ext|
157
- uri_file = File.join(folder, "http#{ext}.uri")
158
- Log.log.debug{"checking connect port file: #{uri_file}"}
159
- if File.exist?(uri_file)
160
- return File.open(uri_file, &:gets).strip
161
- end
162
- end
163
- raise "no connect uri file found in #{folder}"
164
- end
165
- end
166
- end
167
- end
168
- end
data/lib/transfer_pb.rb DELETED
@@ -1,84 +0,0 @@
1
- # frozen_string_literal: true
2
- # Generated by the protocol buffer compiler. DO NOT EDIT!
3
- # source: transfer.proto
4
-
5
- require 'google/protobuf'
6
-
7
-
8
- descriptor_data = "\n\x0etransfer.proto\x12\x0btransfersdk\"*\n\x05\x45rror\x12\x0c\n\x04\x63ode\x18\x01 \x01(\x05\x12\x13\n\x0b\x64\x65scription\x18\x02 \x01(\t\"\x13\n\x11\x41PIVersionRequest\"/\n\x12\x41PIVersionResponse\x12\x19\n\x11supportedVersions\x18\x01 \x03(\t\"\x8f\x01\n\rRetryStrategy\x12\x30\n\x05\x62\x61sic\x18\x01 \x01(\x0b\x32\x1f.transfersdk.BasicRetryStrategyH\x00\x12?\n\x07\x62\x61\x63koff\x18\x02 \x01(\x0b\x32,.transfersdk.ExponentialBackoffRetryStrategyH\x00\x42\x0b\n\tretryType\"=\n\x12\x42\x61sicRetryStrategy\x12\x10\n\x08maxCount\x18\x01 \x01(\x03\x12\x15\n\rretryInterval\x18\x02 \x01(\x03\"r\n\x1f\x45xponentialBackoffRetryStrategy\x12\x13\n\x0bmaxAttempts\x18\x01 \x01(\x03\x12\x12\n\nmultiplier\x18\x02 \x01(\x03\x12\x14\n\x0cinitialDelay\x18\x03 \x01(\x03\x12\x10\n\x08maxDelay\x18\x04 \x01(\x03\"\x97\x01\n\x0eTransferConfig\x12)\n\x05retry\x18\x01 \x01(\x0b\x32\x1a.transfersdk.RetryStrategy\x12\x0f\n\x07license\x18\x02 \x01(\t\x12\x10\n\x08localLog\x18\x03 \x01(\t\x12\x11\n\tremoteLog\x18\x04 \x01(\t\x12\x10\n\x08logLevel\x18\x05 \x01(\x0f\x12\x12\n\nasperaConf\x18\x06 \x01(\t\"/\n\rTransferRange\x12\x0e\n\x06offset\x18\x01 \x01(\x03\x12\x0e\n\x06length\x18\x02 \x01(\x03\"\x85\x01\n\x0fTransferRequest\x12/\n\x0ctransferType\x18\x01 \x01(\x0e\x32\x19.transfersdk.TransferType\x12+\n\x06\x63onfig\x18\x02 \x01(\x0b\x32\x1b.transfersdk.TransferConfig\x12\x14\n\x0ctransferSpec\x18\x03 \x01(\t\"\xcf\x01\n\x15StartTransferResponse\x12\x12\n\napiVersion\x18\x01 \x01(\t\x12\x12\n\ntransferId\x18\x02 \x01(\t\x12\r\n\x05title\x18\x03 \x01(\t\x12/\n\x0ctransferType\x18\x04 \x01(\x0e\x32\x19.transfersdk.TransferType\x12+\n\x06status\x18\x05 \x01(\x0e\x32\x1b.transfersdk.TransferStatus\x12!\n\x05\x65rror\x18\x06 \x01(\x0b\x32\x12.transfersdk.Error\")\n\x13TransferInfoRequest\x12\x12\n\ntransferId\x18\x01 \x01(\t\"\xb5\x03\n\x10TransferResponse\x12\x12\n\napiVersion\x18\x01 \x01(\t\x12\x12\n\ntransferId\x18\x02 \x01(\t\x12\r\n\x05title\x18\x03 \x01(\t\x12/\n\x0ctransferType\x18\x04 \x01(\x0e\x32\x19.transfersdk.TransferType\x12+\n\x06status\x18\x05 \x01(\x0e\x32\x1b.transfersdk.TransferStatus\x12!\n\x05\x65rror\x18\x06 \x01(\x0b\x32\x12.transfersdk.Error\x12\x31\n\rtransferEvent\x18\x07 \x01(\x0e\x32\x1a.transfersdk.TransferEvent\x12/\n\x0ctransferInfo\x18\x08 \x01(\x0b\x32\x19.transfersdk.TransferInfo\x12\x0f\n\x07message\x18\t \x01(\t\x12<\n\x0bsessionInfo\x18\n \x01(\x0b\x32\'.transfersdk.SessionTransferInformation\x12\x36\n\x08\x66ileInfo\x18\x0b \x01(\x0b\x32$.transfersdk.FileTransferInformation\"\x91\x02\n\x15QueryTransferResponse\x12\x12\n\napiVersion\x18\x01 \x01(\t\x12\x12\n\ntransferId\x18\x02 \x01(\t\x12\r\n\x05title\x18\x03 \x01(\t\x12/\n\x0ctransferType\x18\x04 \x01(\x0e\x32\x19.transfersdk.TransferType\x12+\n\x06status\x18\x05 \x01(\x0e\x32\x1b.transfersdk.TransferStatus\x12!\n\x05\x65rror\x18\x06 \x01(\x0b\x32\x12.transfersdk.Error\x12/\n\x0ctransferInfo\x18\x07 \x01(\x0b\x32\x19.transfersdk.TransferInfo\x12\x0f\n\x07message\x18\x08 \x01(\t\"\x8f\x04\n\x0cTransferInfo\x12\x17\n\x0f\x61verageRateKbps\x18\x01 \x01(\x03\x12\x11\n\tbytesLost\x18\x02 \x01(\x03\x12\x18\n\x10\x62ytesTransferred\x18\x03 \x01(\x03\x12\x14\n\x0c\x62ytesWritten\x18\x04 \x01(\x03\x12\x1c\n\x14\x64irectoriesCompleted\x18\x05 \x01(\x03\x12\x15\n\rstartTimeUsec\x18\x06 \x01(\x03\x12\x13\n\x0b\x65lapsedUsec\x18\x07 \x01(\x03\x12\x13\n\x0b\x65ndTimeUsec\x18\x08 \x01(\x03\x12\x11\n\terrorCode\x18\t \x01(\t\x12\x18\n\x10\x65rrorDescription\x18\n \x01(\t\x12\x16\n\x0e\x66ilesCompleted\x18\x0b \x01(\x03\x12\x16\n\x0etargetRateKbps\x18\x0c \x01(\x03\x12\x13\n\x0bminRateKbps\x18\r \x01(\x03\x12\x1d\n\x15\x61rgTransfersAttempted\x18\x0e \x01(\x03\x12\x1a\n\x12\x61rgTransfersPassed\x18\x0f \x01(\x03\x12\x1b\n\x13\x61rgTransfersSkipped\x18\x10 \x01(\x03\x12\x1a\n\x12\x61rgTransfersFailed\x18\x11 \x01(\x03\x12\x18\n\x10\x66ileChecksumType\x18\x12 \x01(\t\x12\x0e\n\x06\x63ookie\x18\x13 \x01(\t\x12\x11\n\tdirection\x18\x14 \x01(\t\x12\x11\n\toperation\x18\x15 \x01(\t\x12\x0e\n\x06tags64\x18\x16 \x01(\t\"\xfe\x11\n\x1aSessionTransferInformation\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\tsessionId\x18\x02 \x01(\t\x12\x0c\n\x04user\x18\x03 \x01(\t\x12\x12\n\nclientUser\x18\x04 \x01(\t\x12\x14\n\x0c\x63lientNodeId\x18\x05 \x01(\t\x12\x17\n\x0f\x63lientClusterId\x18\x06 \x01(\t\x12\x14\n\x0cserverNodeId\x18\x07 \x01(\t\x12\x17\n\x0fserverClusterId\x18\x08 \x01(\t\x12\x17\n\x0f\x63lientIPAddress\x18\t \x01(\t\x12\x17\n\x0fserverIPAddress\x18\n \x01(\t\x12\x0c\n\x04port\x18\x0b \x01(\x03\x12\x0f\n\x07tcpPort\x18\x0c \x01(\x03\x12\x0e\n\x06status\x18\r \x01(\t\x12\x15\n\rstartTimeUsec\x18\x0e \x01(\x03\x12\x13\n\x0b\x65ndTimeUsec\x18\x0f \x01(\x03\x12\x13\n\x0b\x65lapsedUsec\x18\x10 \x01(\x03\x12\x18\n\x10\x62ytesTransferred\x18\x11 \x01(\x03\x12\x14\n\x0c\x62ytesWritten\x18\x12 \x01(\x03\x12\x11\n\tbytesLost\x18\x13 \x01(\x03\x12\x16\n\x0e\x66ilesCompleted\x18\x14 \x01(\x03\x12\x13\n\x0b\x66ilesFailed\x18\x15 \x01(\x03\x12\x14\n\x0c\x66ilesSkipped\x18\x16 \x01(\x03\x12\x1c\n\x14\x64irectoriesCompleted\x18\x17 \x01(\x03\x12\x16\n\x0etargetRateKbps\x18\x18 \x01(\x03\x12\x13\n\x0bminRateKbps\x18\x19 \x01(\x03\x12\x14\n\x0c\x63\x61lcRateKbps\x18\x1a \x01(\x03\x12\x18\n\x10networkDelayUsec\x18\x1b \x01(\x03\x12\x11\n\terrorCode\x18\x1c \x01(\x03\x12\x11\n\terrorDesc\x18\x1d \x01(\t\x12\x18\n\x10manifestFilePath\x18\x1e \x01(\t\x12\x1f\n\x17sourcePathsScanExcluded\x18\x1f \x01(\x03\x12 \n\x18sourcePathsScanIrregular\x18 \x01(\x03\x12\x1d\n\x15sourcePathsScanFailed\x18! \x01(\x03\x12 \n\x18sourcePathsScanAttempted\x18\" \x01(\x03\x12\x18\n\x10transfersSkipped\x18# \x01(\x03\x12\x17\n\x0ftransfersPassed\x18$ \x01(\x03\x12\x17\n\x0ftransfersFailed\x18% \x01(\x03\x12\x1a\n\x12transfersAttempted\x18& \x01(\x03\x12\x0e\n\x06\x63ookie\x18\' \x01(\t\x12\x11\n\tdirection\x18( \x01(\t\x12\x18\n\x10\x66ileChecksumType\x18) \x01(\t\x12\x11\n\toperation\x18* \x01(\t\x12\x0c\n\x04tags\x18+ \x01(\t\x12\x1d\n\x15\x61rgTransfersAttempted\x18, \x01(\x03\x12\x1a\n\x12\x61rgTransfersPassed\x18- \x01(\x03\x12\x1b\n\x13\x61rgTransfersSkipped\x18. \x01(\x03\x12\x1a\n\x12\x61rgTransfersFailed\x18/ \x01(\x03\x12\x12\n\nencryption\x18\x30 \x01(\t\x12\x10\n\x08\x61\x64\x61ptive\x18\x31 \x01(\t\x12\x0e\n\x06remote\x18\x32 \x01(\t\x12\x13\n\x0b\x64\x65stination\x18\x33 \x01(\t\x12\x10\n\x08priority\x18\x34 \x01(\x03\x12\x12\n\ntransferId\x18\x35 \x01(\t\x12\x0f\n\x07rateCap\x18\x36 \x01(\x03\x12\x12\n\nminRateCap\x18\x37 \x01(\x03\x12\x11\n\tpolicyCap\x18\x38 \x01(\t\x12\x10\n\x08rateLock\x18\x39 \x01(\t\x12\x13\n\x0bminRateLock\x18: \x01(\t\x12\x12\n\npolicyLock\x18; \x01(\t\x12\x16\n\x0eserverHostname\x18< \x01(\t\x12\x15\n\rremoteAddress\x18= \x01(\t\x12\x0e\n\x06\x63ipher\x18> \x01(\t\x12\x14\n\x0cresumePolicy\x18? \x01(\t\x12\x14\n\x0c\x63reatePolicy\x18@ \x01(\x03\x12\x16\n\x0emanifestPolicy\x18\x41 \x01(\t\x12\x0f\n\x07precalc\x18\x42 \x01(\t\x12\x17\n\x0foverwritePolicy\x18\x43 \x01(\t\x12\x16\n\x0erttAutocorrect\x18\x44 \x01(\t\x12\x12\n\ntimePolicy\x18\x45 \x01(\x03\x12\x1a\n\x12manifestInprogress\x18\x46 \x01(\t\x12\x14\n\x0c\x66ilesEncrypt\x18G \x01(\t\x12\x14\n\x0c\x66ilesDecrypt\x18H \x01(\t\x12\x14\n\x0c\x64\x61tagramSize\x18I \x01(\x03\x12\x14\n\x0cvLinkVersion\x18J \x01(\x03\x12\x18\n\x10peerVLinkVersion\x18K \x01(\x03\x12\x19\n\x11vLinkLocalEnabled\x18L \x01(\t\x12\x1a\n\x12vLinkRemoteEnabled\x18M \x01(\t\x12\x15\n\rreadBlockSize\x18N \x01(\x03\x12\x16\n\x0ewriteBlockSize\x18O \x01(\x03\x12\x17\n\x0f\x63lusterNumNodes\x18P \x01(\x03\x12\x15\n\rclusterNodeId\x18Q \x01(\x03\x12\x11\n\tmoveRange\x18R \x01(\t\x12\x11\n\tkeepalive\x18S \x01(\t\x12\x11\n\ttestLogin\x18T \x01(\t\x12\x10\n\x08useProxy\x18U \x01(\t\x12\x1c\n\x14rateControlAlgorithm\x18V \x01(\t\x12\x0c\n\x04pmtu\x18W \x01(\x03\x12\x18\n\x10preTransferFiles\x18X \x01(\x03\x12\x18\n\x10preTransferBytes\x18Y \x01(\x03\x12\x17\n\x0fpreTransferDirs\x18Z \x01(\x03\x12\x1a\n\x12preTransferSpecial\x18[ \x01(\x03\x12 \n\x18sourcePathsScanCompleted\x18\\ \x01(\x03\x12\x19\n\x11\x61rgScansAttempted\x18] \x01(\x03\x12\x19\n\x11\x61rgScansCompleted\x18^ \x01(\x03\x12\x1b\n\x13\x61rgFaspFileArgIndex\x18_ \x01(\x03\x12\x1b\n\x13\x64irCreatesAttempted\x18` \x01(\x03\x12\x18\n\x10\x64irCreatesFailed\x18\x61 \x01(\x03\x12\x18\n\x10\x64irCreatesPassed\x18\x62 \x01(\x03\x12\x19\n\x11\x64irScansCompleted\x18\x63 \x01(\x03\"\xdb\x02\n\x17\x46ileTransferInformation\x12\x0e\n\x06\x66ileId\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\x12\x15\n\rstartTimeUsec\x18\x03 \x01(\x03\x12\x13\n\x0b\x65lapsedUsec\x18\x04 \x01(\x03\x12\x0e\n\x06status\x18\x05 \x01(\t\x12\x11\n\terrorCode\x18\x06 \x01(\x03\x12\x18\n\x10\x65rrorDescription\x18\x07 \x01(\t\x12\x0c\n\x04size\x18\t \x01(\x03\x12\x10\n\x08\x66ileType\x18\n \x01(\t\x12\x18\n\x10\x66ileChecksumType\x18\x0b \x01(\t\x12\x10\n\x08\x63hecksum\x18\x0c \x01(\t\x12\x11\n\tstartByte\x18\r \x01(\x03\x12\x14\n\x0c\x62ytesWritten\x18\x0e \x01(\x03\x12\x17\n\x0f\x62ytesContiguous\x18\x0f \x01(\x03\x12\x11\n\tsessionId\x18\x10 \x01(\t\x12\x18\n\x10\x66\x61spFileArgIndex\x18\x11 \x01(\x03\"G\n\x1bTransferModificationRequest\x12\x12\n\ntransferId\x18\x01 \x01(\t\x12\x14\n\x0ctransferSpec\x18\x02 \x01(\t\"\x96\x01\n\x1cTransferModificationResponse\x12\x12\n\napiVersion\x18\x01 \x01(\t\x12\x12\n\ntransferId\x18\x02 \x01(\t\x12+\n\x06status\x18\x03 \x01(\x0e\x32\x1b.transfersdk.TransferStatus\x12!\n\x05\x65rror\x18\x04 \x01(\x0b\x32\x12.transfersdk.Error\"Z\n\x13TransferPathRequest\x12\x12\n\ntransferId\x18\x01 \x01(\t\x12/\n\x0ctransferPath\x18\x02 \x03(\x0b\x32\x19.transfersdk.TransferPath\"^\n\x0cTransferPath\x12\x0e\n\x06source\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65stination\x18\x02 \x01(\t\x12)\n\x05range\x18\x03 \x01(\x0b\x32\x1a.transfersdk.TransferRange\"a\n\x14TransferPathResponse\x12\x12\n\napiVersion\x18\x01 \x01(\t\x12\x12\n\ntransferId\x18\x02 \x01(\t\x12!\n\x05\x65rror\x18\x03 \x01(\x0b\x32\x12.transfersdk.Error\"3\n\x1dLockPersistentTransferRequest\x12\x12\n\ntransferId\x18\x01 \x01(\t\"k\n\x1eLockPersistentTransferResponse\x12\x12\n\napiVersion\x18\x01 \x01(\t\x12\x12\n\ntransferId\x18\x02 \x01(\t\x12!\n\x05\x65rror\x18\x03 \x01(\x0b\x32\x12.transfersdk.Error\"[\n\x13RegistrationRequest\x12\x12\n\ntransferId\x18\x01 \x03(\t\x12\x30\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x1f.transfersdk.RegistrationFilter\"\xc0\x02\n\x12RegistrationFilter\x12\x39\n\x08operator\x18\x01 \x01(\x0e\x32\'.transfersdk.RegistrationFilterOperator\x12-\n\teventType\x18\x02 \x03(\x0e\x32\x1a.transfersdk.TransferEvent\x12\x12\n\ntransferId\x18\x03 \x03(\t\x12\x0e\n\x06\x63ookie\x18\x04 \x03(\t\x12\x0e\n\x06tags64\x18\x05 \x03(\t\x12\x11\n\tdirection\x18\x06 \x01(\t\x12\x13\n\x0b\x63ookieRegex\x18\x07 \x01(\t\x12/\n\x0ctransferType\x18\x08 \x03(\x0e\x32\x19.transfersdk.TransferType\x12\x33\n\x0etransferStatus\x18\t \x03(\x0e\x32\x1b.transfersdk.TransferStatus\"8\n\x13StopTransferRequest\x12\x12\n\ntransferId\x18\x01 \x03(\t\x12\r\n\x05\x64\x65lay\x18\x02 \x01(\x03\"U\n\x14StopTransferResponse\x12\x12\n\napiVersion\x18\x01 \x01(\t\x12)\n\nstopResult\x18\x02 \x03(\x0b\x32\x15.transfersdk.StopInfo\"R\n\x08StopInfo\x12\x12\n\ntransferId\x18\x01 \x01(\t\x12\x0f\n\x07stopped\x18\x02 \x01(\x08\x12!\n\x05\x65rror\x18\x03 \x01(\x0b\x32\x12.transfersdk.Error\"\x15\n\x13InstanceInfoRequest\"v\n\x14InstanceInfoResponse\x12\x12\n\napiVersion\x18\x01 \x01(\t\x12\'\n\x04info\x18\x02 \x01(\x0b\x32\x19.transfersdk.InstanceInfo\x12!\n\x05\x65rror\x18\x03 \x01(\x0b\x32\x12.transfersdk.Error\"\x9b\x01\n\x0cInstanceInfo\x12\x16\n\x0emanagementPort\x18\x01 \x01(\x03\x12+\n\nasperaInfo\x18\x02 \x03(\x0b\x32\x17.transfersdk.AsperaInfo\x12-\n\x0blicenseInfo\x18\x03 \x01(\x0b\x32\x18.transfersdk.LicenseInfo\x12\x17\n\x0fpromiscuousMode\x18\x04 \x01(\x08\"]\n\x0bLicenseInfo\x12\x0f\n\x07maxRate\x18\x01 \x01(\t\x12\x15\n\raccountNumber\x18\x02 \x01(\t\x12\x15\n\rlicenseNumber\x18\x03 \x01(\t\x12\x0f\n\x07license\x18\x04 \x01(\t\"u\n\nAsperaInfo\x12\x14\n\x0c\x61speraBinary\x18\x01 \x01(\t\x12\x15\n\rasperaVersion\x18\x02 \x01(\t\x12\x17\n\x0foperatingSystem\x18\x03 \x01(\t\x12!\n\x05\x65rror\x18\x04 \x01(\x0b\x32\x12.transfersdk.Error\"(\n\x10PeerCheckRequest\x12\x14\n\x0ctransferSpec\x18\x01 \x01(\t\"]\n\x11PeerCheckResponse\x12\x12\n\napiVersion\x18\x01 \x01(\t\x12\x11\n\treachable\x18\x02 \x01(\x08\x12!\n\x05\x65rror\x18\x03 \x01(\x0b\x32\x12.transfersdk.Error\"\x89\x01\n\x17WriteStreamChunkRequest\x12\x12\n\ntransferId\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\x12)\n\x05range\x18\x03 \x01(\x0b\x32\x1a.transfersdk.TransferRange\x12!\n\x05\x63hunk\x18\x04 \x01(\x0b\x32\x12.transfersdk.Chunk\"e\n\x18WriteStreamChunkResponse\x12\x12\n\napiVersion\x18\x01 \x01(\t\x12\x12\n\ntransferId\x18\x02 \x01(\t\x12!\n\x05\x65rror\x18\x03 \x01(\x0b\x32\x12.transfersdk.Error\"g\n\x12WriteStreamRequest\x12\x12\n\ntransferId\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\x12\x0c\n\x04size\x18\x03 \x01(\x03\x12!\n\x05\x63hunk\x18\x04 \x01(\x0b\x32\x12.transfersdk.Chunk\"`\n\x13WriteStreamResponse\x12\x12\n\napiVersion\x18\x01 \x01(\t\x12\x12\n\ntransferId\x18\x02 \x01(\t\x12!\n\x05\x65rror\x18\x03 \x01(\x0b\x32\x12.transfersdk.Error\"\'\n\x11ReadStreamRequest\x12\x12\n\ntransferId\x18\x01 \x01(\t\"\x8e\x01\n\x12ReadStreamResponse\x12\x12\n\napiVersion\x18\x01 \x01(\t\x12\x0c\n\x04path\x18\x02 \x01(\t\x12\x10\n\x08pathSize\x18\x03 \x01(\x03\x12!\n\x05\x63hunk\x18\x04 \x01(\x0b\x32\x12.transfersdk.Chunk\x12!\n\x05\x65rror\x18\x05 \x01(\x0b\x32\x12.transfersdk.Error\"\x19\n\x05\x43hunk\x12\x10\n\x08\x63ontents\x18\x01 \x01(\x0c\"Z\n\x11ValidationRequest\x12\x14\n\x0ctransferSpec\x18\x01 \x01(\t\x12/\n\x0ctransferType\x18\x02 \x01(\x0e\x32\x19.transfersdk.TransferType\"\x8a\x01\n\x12ValidationResponse\x12\x12\n\napiVersion\x18\x01 \x01(\t\x12\r\n\x05valid\x18\x02 \x01(\x08\x12\x18\n\x10validatorVersion\x18\x03 \x01(\t\x12\x14\n\x0cunknownField\x18\x04 \x03(\t\x12!\n\x05\x65rror\x18\x05 \x01(\x0b\x32\x12.transfersdk.Error\"\xbf\x0e\n\x0eTransferSpecV1\x12\x0e\n\x06\x63ipher\x18\x01 \x01(\t\x12\x1a\n\x12\x63ontent_protection\x18\x02 \x01(\t\x12#\n\x1b\x63ontent_protection_password\x18\x03 \x01(\t\x12\x0e\n\x06\x63ookie\x18\x04 \x01(\t\x12\x12\n\ncreate_dir\x18\x05 \x01(\x08\x12\x1e\n\x16\x64\x65lete_before_transfer\x18\x06 \x01(\x08\x12\x15\n\rdelete_source\x18\x07 \x01(\x08\x12\x1b\n\x13\x64\x65stination_root_id\x18\x08 \x01(\t\x12\x11\n\tdirection\x18\t \x01(\t\x12\x1a\n\x12\x65xclude_newer_than\x18\n \x01(\t\x12\x1a\n\x12\x65xclude_older_than\x18\x0b \x01(\t\x12\x11\n\tfasp_port\x18\x0c \x01(\x03\x12\x15\n\rhttp_fallback\x18\r \x01(\x08\x12\x1a\n\x12http_fallback_port\x18\x0e \x01(\x03\x12\x1b\n\x13https_fallback_port\x18\x0f \x01(\x03\x12\x1b\n\x13move_after_transfer\x18\x10 \x01(\t\x12\x15\n\rmulti_session\x18\x11 \x01(\x03\x12\x1f\n\x17multi_session_threshold\x18\x12 \x01(\x03\x12\x11\n\toverwrite\x18\x13 \x01(\t\x12 \n\x05paths\x18\x14 \x03(\x0b\x32\x11.transfersdk.Path\x12\x1d\n\x15precalculate_job_size\x18\x15 \x01(\x08\x12\x1c\n\x14preserve_access_time\x18\x16 \x01(\x08\x12\x1e\n\x16preserve_creation_time\x18\x17 \x01(\x08\x12\"\n\x1apreserve_modification_time\x18\x18 \x01(\x08\x12\x16\n\x0epreserve_times\x18\x19 \x01(\x08\x12\x13\n\x0brate_policy\x18\x1a \x01(\t\x12\x19\n\x11remote_access_key\x18\x1b \x01(\t\x12\x13\n\x0bremote_host\x18\x1c \x01(\t\x12\x17\n\x0fremote_password\x18\x1d \x01(\t\x12\x13\n\x0bremote_user\x18\x1e \x01(\t\x12\x1d\n\x15remove_after_transfer\x18\x1f \x01(\x08\x12 \n\x18remove_empty_directories\x18 \x01(\x08\x12\x15\n\rresume_policy\x18! \x01(\t\x12\x16\n\x0eretry_duration\x18\" \x01(\x03\x12\x16\n\x0esource_root_id\x18# \x01(\t\x12\x10\n\x08ssh_port\x18$ \x01(\x03\x12\x17\n\x0fssh_private_key\x18% \x01(\t\x12\"\n\x1assh_private_key_passphrase\x18& \x01(\t\x12\x16\n\x0esymlink_policy\x18\' \x01(\t\x12\x0c\n\x04tags\x18( \x01(\t\x12\x0e\n\x06tags64\x18) \x01(\t\x12\x1c\n\x14target_rate_cap_kbps\x18* \x01(\x03\x12\x18\n\x10target_rate_kbps\x18+ \x01(\x03\x12\r\n\x05title\x18, \x01(\t\x12\r\n\x05token\x18- \x01(\t\x12\x11\n\tuse_ascp4\x18. \x01(\x08\x12*\n\nfasp_proxy\x18/ \x01(\x0b\x32\x16.transfersdk.FASPProxy\x12\x18\n\x10\x64\x65stination_root\x18\x30 \x01(\t\x12\x13\n\x0bsource_root\x18\x31 \x01(\t\x12\x19\n\x11min_rate_cap_kbps\x18\x32 \x01(\x03\x12\x18\n\x10lock_rate_policy\x18\x33 \x01(\x08\x12\x1d\n\x15lock_target_rate_kbps\x18\x34 \x01(\x08\x12\x1a\n\x12lock_min_rate_kbps\x18\x35 \x01(\x08\x12\x12\n\nsrc_base64\x18\x36 \x01(\t\x12#\n\x04icos\x18\x37 \x01(\x0b\x32\x15.transfersdk.ICOSSpec\x12*\n\x08node_api\x18\x38 \x01(\x0b\x32\x18.transfersdk.NodeAPISpec\x12\x1b\n\x13\x61pply_local_docroot\x18\x39 \x01(\x08\x12\x15\n\rpreserve_acls\x18: \x01(\t\x12\x1c\n\x14preserve_remote_acls\x18; \x01(\t\x12\x1f\n\x17preserve_file_owner_uid\x18< \x01(\x08\x12\x1f\n\x17preserve_file_owner_gid\x18= \x01(\x08\x12\x1f\n\x17preserve_extended_attrs\x18> \x01(\t\x12&\n\x1epreserve_remote_extended_attrs\x18? \x01(\t\x12#\n\x1bpreserve_source_access_time\x18@ \x01(\x08\x12\x1f\n\x17remove_empty_source_dir\x18\x41 \x01(\x08\x12\x1d\n\x15save_before_overwrite\x18\x42 \x01(\x08\x12\x1c\n\x14skip_duplicate_check\x18\x43 \x01(\x08\x12\x1a\n\x12skip_special_files\x18\x44 \x01(\x08\"+\n\x04Path\x12\x0e\n\x06source\x18\x01 \x01(\t\x12\x13\n\x0b\x64\x65stination\x18\x02 \x01(\t\"<\n\tFASPProxy\x12\x0b\n\x03url\x18\x01 \x01(\t\x12\x10\n\x08username\x18\x02 \x01(\t\x12\x10\n\x08password\x18\x03 \x01(\t\"\xcc\x02\n\x0eTransferSpecV2\x12\x33\n\x12session_initiation\x18\x01 \x01(\x0b\x32\x17.transfersdk.Initiation\x12\'\n\x08security\x18\x02 \x01(\x0b\x32\x15.transfersdk.Security\x12\'\n\x08tracking\x18\x03 \x01(\x0b\x32\x15.transfersdk.Tracking\x12,\n\x0b\x66ile_system\x18\x04 \x01(\x0b\x32\x17.transfersdk.Filesystem\x12)\n\ttransport\x18\x05 \x01(\x0b\x32\x16.transfersdk.Transport\x12#\n\x06\x61ssets\x18\x06 \x01(\x0b\x32\x13.transfersdk.Assets\x12\x11\n\tdirection\x18\x07 \x01(\t\x12\x13\n\x0bremote_host\x18\x08 \x01(\t\x12\r\n\x05title\x18\t \x01(\t\"\x80\x01\n\nInitiation\x12!\n\x03ssh\x18\x01 \x01(\x0b\x32\x14.transfersdk.SSHSpec\x12#\n\x04icos\x18\x02 \x01(\x0b\x32\x15.transfersdk.ICOSSpec\x12*\n\x08node_api\x18\x03 \x01(\x0b\x32\x18.transfersdk.NodeAPISpec\"\x9f\x01\n\x07SSHSpec\x12\x10\n\x08ssh_port\x18\x01 \x01(\x03\x12\x17\n\x0fremote_password\x18\x02 \x01(\t\x12\x13\n\x0bremote_user\x18\x03 \x01(\t\x12\x17\n\x0fssh_private_key\x18\x04 \x01(\t\x12\"\n\x1assh_private_key_passphrase\x18\x05 \x01(\t\x12\x17\n\x0fssh_fingerprint\x18\x06 \x01(\t\"j\n\x08ICOSSpec\x12\x0f\n\x07\x61pi_key\x18\x01 \x01(\t\x12\x0e\n\x06\x62ucket\x18\x02 \x01(\t\x12\x1f\n\x17ibm_service_instance_id\x18\x03 \x01(\t\x12\x1c\n\x14ibm_service_endpoint\x18\x04 \x01(\t\"/\n\x11NodeAPIHeaderSpec\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t\"K\n\x0bNodeAPISpec\x12\x0b\n\x03url\x18\x01 \x01(\t\x12/\n\x07headers\x18\x02 \x03(\x0b\x32\x1e.transfersdk.NodeAPIHeaderSpec\"i\n\x08Security\x12#\n\x1b\x63ontent_protection_password\x18\x01 \x01(\t\x12\x19\n\x11remote_access_key\x18\x02 \x01(\t\x12\r\n\x05token\x18\x03 \x01(\t\x12\x0e\n\x06\x63ipher\x18\x04 \x01(\t\"8\n\x08Tracking\x12\x0e\n\x06\x63ookie\x18\x01 \x01(\t\x12\x0c\n\x04tags\x18\x02 \x01(\t\x12\x0e\n\x06tags64\x18\x03 \x01(\t\"\xc4\x07\n\nFilesystem\x12\x12\n\ncreate_dir\x18\x01 \x01(\x08\x12\x1e\n\x16\x64\x65lete_before_transfer\x18\x02 \x01(\x08\x12\x1a\n\x12\x65xclude_newer_than\x18\x03 \x01(\t\x12\x1a\n\x12\x65xclude_older_than\x18\x04 \x01(\t\x12\x1b\n\x13move_after_transfer\x18\x05 \x01(\t\x12\x11\n\toverwrite\x18\x06 \x01(\t\x12\x1d\n\x15precalculate_job_size\x18\x07 \x01(\x08\x12\x1c\n\x14preserve_access_time\x18\x08 \x01(\x08\x12\x1e\n\x16preserve_creation_time\x18\t \x01(\x08\x12\"\n\x1apreserve_modification_time\x18\n \x01(\x08\x12\x16\n\x0epreserve_times\x18\x0b \x01(\x08\x12\x1d\n\x15remove_after_transfer\x18\x0c \x01(\x08\x12 \n\x18remove_empty_directories\x18\r \x01(\x08\x12\x15\n\rresume_policy\x18\x0e \x01(\t\x12\x16\n\x0esymlink_policy\x18\x0f \x01(\t\x12\x15\n\rchecksum_type\x18\x10 \x01(\t\x12\x12\n\nsrc_base64\x18\x11 \x01(\t\x12\x34\n\x12inclusion_patterns\x18\x12 \x03(\x0b\x32\x18.transfersdk.PathPattern\x12\x34\n\x12\x65xclusion_patterns\x18\x13 \x03(\x0b\x32\x18.transfersdk.PathPattern\x12\x1b\n\x13\x61pply_local_docroot\x18\x14 \x01(\x08\x12\x15\n\rpreserve_acls\x18\x15 \x01(\t\x12\x1c\n\x14preserve_remote_acls\x18\x16 \x01(\t\x12\x1f\n\x17preserve_file_owner_uid\x18\x17 \x01(\x08\x12\x1f\n\x17preserve_file_owner_gid\x18\x18 \x01(\x08\x12\x1f\n\x17preserve_extended_attrs\x18\x19 \x01(\t\x12&\n\x1epreserve_remote_extended_attrs\x18\x1a \x01(\t\x12#\n\x1bpreserve_source_access_time\x18\x1b \x01(\x08\x12\x1f\n\x17remove_empty_source_dir\x18\x1c \x01(\x08\x12\x1d\n\x15save_before_overwrite\x18\x1d \x01(\x08\x12\x1c\n\x14skip_duplicate_check\x18\x1e \x01(\x08\x12\x1a\n\x12skip_special_files\x18\x1f \x01(\x08\"\xe1\x03\n\tTransport\x12\x11\n\tfasp_port\x18\x01 \x01(\x03\x12\x30\n\rhttp_fallback\x18\x02 \x01(\x0b\x32\x19.transfersdk.HTTPFallback\x12*\n\nfasp_proxy\x18\x03 \x01(\x0b\x32\x16.transfersdk.FASPProxy\x12)\n\tstreaming\x18\x04 \x01(\x0b\x32\x16.transfersdk.Streaming\x12\x30\n\rmulti_session\x18\x05 \x01(\x0b\x32\x19.transfersdk.MultiSession\x12\x1f\n\x17multi_session_threshold\x18\x06 \x01(\x03\x12\x13\n\x0brate_policy\x18\x07 \x01(\t\x12\x18\n\x10lock_rate_policy\x18\x08 \x01(\x08\x12\x1c\n\x14target_rate_cap_kbps\x18\t \x01(\x03\x12\x18\n\x10target_rate_kbps\x18\n \x01(\x03\x12\x19\n\x11min_rate_cap_kbps\x18\x0b \x01(\x03\x12\x15\n\rmin_rate_kbps\x18\x0c \x01(\x03\x12\x1d\n\x15lock_target_rate_kbps\x18\r \x01(\x08\x12\x1a\n\x12lock_min_rate_kbps\x18\x0e \x01(\x08\x12\x11\n\tuse_ascp4\x18\x0f \x01(\x08\"\x8e\x01\n\x06\x41ssets\x12\x1b\n\x13\x64\x65stination_root_id\x18\x01 \x01(\t\x12\x16\n\x0esource_root_id\x18\x02 \x01(\t\x12\x18\n\x10\x64\x65stination_root\x18\x03 \x01(\t\x12\x13\n\x0bsource_root\x18\x04 \x01(\t\x12 \n\x05paths\x18\x05 \x03(\x0b\x32\x11.transfersdk.Path\"\x1e\n\x0bPathPattern\x12\x0f\n\x07pattern\x18\x01 \x01(\t\"+\n\x0cHTTPFallback\x12\x0c\n\x04port\x18\x01 \x01(\x03\x12\r\n\x05proxy\x18\x02 \x01(\t\"\x90\x01\n\tStreaming\x12\x12\n\nchunk_size\x18\x01 \x01(\x03\x12\x14\n\x0clocal_memory\x18\x02 \x01(\x03\x12\x15\n\rremote_memory\x18\x03 \x01(\x03\x12\x13\n\x0bsparse_file\x18\x04 \x01(\x08\x12-\n\x0b\x63ompression\x18\x05 \x01(\x0b\x32\x18.transfersdk.Compression\"+\n\x0b\x43ompression\x12\x0e\n\x06method\x18\x01 \x01(\t\x12\x0c\n\x04hint\x18\x02 \x01(\x05\"\xe0\x01\n\x0cMultiSession\x12\x0e\n\x06\x65nable\x18\x01 \x01(\x08\x12\x1a\n\x12number_of_sessions\x18\x02 \x01(\x05\x12-\n\x05hosts\x18\x03 \x01(\x0b\x32\x1e.transfersdk.MultiSessionHosts\x12>\n\x0e\x66ile_splitting\x18\x04 \x01(\x0b\x32&.transfersdk.MultiSessionFileSplitting\x12\x35\n\tbandwidth\x18\x05 \x01(\x0b\x32\".transfersdk.MultiSessionBandwidth\"2\n\x11MultiSessionHosts\x12\x0e\n\x06usedns\x18\x01 \x01(\x08\x12\r\n\x05hosts\x18\x02 \x03(\t\"6\n\x19MultiSessionFileSplitting\x12\x19\n\x11size_kb_threshold\x18\x01 \x01(\x05\"9\n\x15MultiSessionBandwidth\x12 \n\x18\x62\x61ndwidth_kpbs_threshold\x18\x01 \x01(\x05*\xd3\x01\n\x0cTransferType\x12\x19\n\x15UNKNOWN_TRANSFER_TYPE\x10\x00\x12\x10\n\x0c\x46ILE_REGULAR\x10\x01\x12\x13\n\x0f\x46ILE_PERSISTENT\x10\x02\x12\x18\n\x14URL_STREAM_TO_STREAM\x10\x03\x12\x1b\n\x17\x46ILE_TO_STREAM_DOWNLOAD\x10\x04\x12\x19\n\x15STREAM_TO_FILE_UPLOAD\x10\x05\x12\x1c\n\x18PERSISTENT_STREAM_UPLOAD\x10\x06\x12\x11\n\rASYNC_SESSION\x10\x07*\x80\x01\n\x0eTransferStatus\x12\x12\n\x0eUNKNOWN_STATUS\x10\x00\x12\n\n\x06QUEUED\x10\x01\x12\x0b\n\x07RUNNING\x10\x02\x12\r\n\tCOMPLETED\x10\x03\x12\n\n\x06\x46\x41ILED\x10\x04\x12\x0c\n\x08\x43\x41NCELED\x10\x05\x12\n\n\x06PAUSED\x10\x06\x12\x0c\n\x08ORPHANED\x10\x07*\x8c\x02\n\rTransferEvent\x12\x11\n\rUNKNOWN_EVENT\x10\x00\x12\x11\n\rSESSION_START\x10\x01\x12\x10\n\x0cSESSION_STOP\x10\x02\x12\x11\n\rSESSION_ERROR\x10\x03\x12\x0e\n\nFILE_START\x10\x04\x12\r\n\tFILE_STOP\x10\x05\x12\x0e\n\nFILE_ERROR\x10\x06\x12\x0c\n\x08\x41RG_STOP\x10\x07\x12\x0c\n\x08PROGRESS\x10\x08\x12\x0e\n\nCONNECTING\x10\t\x12\x15\n\x11RATE_MODIFICATION\x10\n\x12\r\n\tFILE_SKIP\x10\x0b\x12\x19\n\x15\x42\x41NDWIDTH_MEASUREMENT\x10\x0c\x12\x14\n\x10SESSION_CANCELED\x10\r*-\n\x1aRegistrationFilterOperator\x12\x06\n\x02OR\x10\x00\x12\x07\n\x03\x41ND\x10\x01\x32\xdc\n\n\x0fTransferService\x12M\n\x08Validate\x12\x1e.transfersdk.ValidationRequest\x1a\x1f.transfersdk.ValidationResponse\"\x00\x12S\n\rStartTransfer\x12\x1c.transfersdk.TransferRequest\x1a\".transfersdk.StartTransferResponse\"\x00\x12[\n\x18StartTransferWithMonitor\x12\x1c.transfersdk.TransferRequest\x1a\x1d.transfersdk.TransferResponse\"\x00\x30\x01\x12W\n\rQueryTransfer\x12 .transfersdk.TransferInfoRequest\x1a\".transfersdk.QueryTransferResponse\"\x00\x12g\n\x0eModifyTransfer\x12(.transfersdk.TransferModificationRequest\x1a).transfersdk.TransferModificationResponse\"\x00\x12Y\n\x10\x41\x64\x64TransferPaths\x12 .transfersdk.TransferPathRequest\x1a!.transfersdk.TransferPathResponse\"\x00\x12s\n\x16LockPersistentTransfer\x12*.transfersdk.LockPersistentTransferRequest\x1a+.transfersdk.LockPersistentTransferResponse\"\x00\x12U\n\x0cStopTransfer\x12 .transfersdk.StopTransferRequest\x1a!.transfersdk.StopTransferResponse\"\x00\x12W\n\x10MonitorTransfers\x12 .transfersdk.RegistrationRequest\x1a\x1d.transfersdk.TransferResponse\"\x00\x30\x01\x12R\n\rGetAPIVersion\x12\x1e.transfersdk.APIVersionRequest\x1a\x1f.transfersdk.APIVersionResponse\"\x00\x12P\n\x07GetInfo\x12 .transfersdk.InstanceInfoRequest\x1a!.transfersdk.InstanceInfoResponse\"\x00\x12R\n\x0fIsPeerReachable\x12\x1d.transfersdk.PeerCheckRequest\x1a\x1e.transfersdk.PeerCheckResponse\"\x00\x12\x63\n\x10WriteStreamChunk\x12$.transfersdk.WriteStreamChunkRequest\x1a%.transfersdk.WriteStreamChunkResponse\"\x00(\x01\x12T\n\x0bWriteStream\x12\x1f.transfersdk.WriteStreamRequest\x1a .transfersdk.WriteStreamResponse\"\x00(\x01\x12Q\n\nReadStream\x12\x1e.transfersdk.ReadStreamRequest\x1a\x1f.transfersdk.ReadStreamResponse\"\x00\x30\x01\x42\x38\n\x1aibm.aspera.transferserviceZ\x1aibm.com/aspera/transfersdkb\x06proto3"
9
-
10
- pool = Google::Protobuf::DescriptorPool.generated_pool
11
- pool.add_serialized_file(descriptor_data)
12
-
13
- module Transfersdk
14
- Error = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.Error").msgclass
15
- APIVersionRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.APIVersionRequest").msgclass
16
- APIVersionResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.APIVersionResponse").msgclass
17
- RetryStrategy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.RetryStrategy").msgclass
18
- BasicRetryStrategy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.BasicRetryStrategy").msgclass
19
- ExponentialBackoffRetryStrategy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.ExponentialBackoffRetryStrategy").msgclass
20
- TransferConfig = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.TransferConfig").msgclass
21
- TransferRange = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.TransferRange").msgclass
22
- TransferRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.TransferRequest").msgclass
23
- StartTransferResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.StartTransferResponse").msgclass
24
- TransferInfoRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.TransferInfoRequest").msgclass
25
- TransferResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.TransferResponse").msgclass
26
- QueryTransferResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.QueryTransferResponse").msgclass
27
- TransferInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.TransferInfo").msgclass
28
- SessionTransferInformation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.SessionTransferInformation").msgclass
29
- FileTransferInformation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.FileTransferInformation").msgclass
30
- TransferModificationRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.TransferModificationRequest").msgclass
31
- TransferModificationResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.TransferModificationResponse").msgclass
32
- TransferPathRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.TransferPathRequest").msgclass
33
- TransferPath = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.TransferPath").msgclass
34
- TransferPathResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.TransferPathResponse").msgclass
35
- LockPersistentTransferRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.LockPersistentTransferRequest").msgclass
36
- LockPersistentTransferResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.LockPersistentTransferResponse").msgclass
37
- RegistrationRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.RegistrationRequest").msgclass
38
- RegistrationFilter = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.RegistrationFilter").msgclass
39
- StopTransferRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.StopTransferRequest").msgclass
40
- StopTransferResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.StopTransferResponse").msgclass
41
- StopInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.StopInfo").msgclass
42
- InstanceInfoRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.InstanceInfoRequest").msgclass
43
- InstanceInfoResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.InstanceInfoResponse").msgclass
44
- InstanceInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.InstanceInfo").msgclass
45
- LicenseInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.LicenseInfo").msgclass
46
- AsperaInfo = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.AsperaInfo").msgclass
47
- PeerCheckRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.PeerCheckRequest").msgclass
48
- PeerCheckResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.PeerCheckResponse").msgclass
49
- WriteStreamChunkRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.WriteStreamChunkRequest").msgclass
50
- WriteStreamChunkResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.WriteStreamChunkResponse").msgclass
51
- WriteStreamRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.WriteStreamRequest").msgclass
52
- WriteStreamResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.WriteStreamResponse").msgclass
53
- ReadStreamRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.ReadStreamRequest").msgclass
54
- ReadStreamResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.ReadStreamResponse").msgclass
55
- Chunk = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.Chunk").msgclass
56
- ValidationRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.ValidationRequest").msgclass
57
- ValidationResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.ValidationResponse").msgclass
58
- TransferSpecV1 = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.TransferSpecV1").msgclass
59
- Path = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.Path").msgclass
60
- FASPProxy = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.FASPProxy").msgclass
61
- TransferSpecV2 = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.TransferSpecV2").msgclass
62
- Initiation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.Initiation").msgclass
63
- SSHSpec = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.SSHSpec").msgclass
64
- ICOSSpec = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.ICOSSpec").msgclass
65
- NodeAPIHeaderSpec = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.NodeAPIHeaderSpec").msgclass
66
- NodeAPISpec = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.NodeAPISpec").msgclass
67
- Security = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.Security").msgclass
68
- Tracking = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.Tracking").msgclass
69
- Filesystem = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.Filesystem").msgclass
70
- Transport = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.Transport").msgclass
71
- Assets = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.Assets").msgclass
72
- PathPattern = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.PathPattern").msgclass
73
- HTTPFallback = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.HTTPFallback").msgclass
74
- Streaming = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.Streaming").msgclass
75
- Compression = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.Compression").msgclass
76
- MultiSession = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.MultiSession").msgclass
77
- MultiSessionHosts = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.MultiSessionHosts").msgclass
78
- MultiSessionFileSplitting = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.MultiSessionFileSplitting").msgclass
79
- MultiSessionBandwidth = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.MultiSessionBandwidth").msgclass
80
- TransferType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.TransferType").enummodule
81
- TransferStatus = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.TransferStatus").enummodule
82
- TransferEvent = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.TransferEvent").enummodule
83
- RegistrationFilterOperator = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("transfersdk.RegistrationFilterOperator").enummodule
84
- end
@@ -1,82 +0,0 @@
1
- # Generated by the protocol buffer compiler. DO NOT EDIT!
2
- # Source: transfer.proto for package 'transfersdk'
3
-
4
- require 'grpc'
5
- require 'transfer_pb'
6
-
7
- module Transfersdk
8
- module TransferService
9
- #
10
- # Transfer service definition. This service enables users to start, manage and monitor transfers.
11
- # You can also get information about the transfer service settings and confirm the availability of
12
- # communication between the engine and a remote transfer server.
13
- class Service
14
-
15
- include ::GRPC::GenericService
16
-
17
- self.marshal_class_method = :encode
18
- self.unmarshal_class_method = :decode
19
- self.service_name = 'transfersdk.TransferService'
20
-
21
- #
22
- # Validate accepts a transfer spec string and a transfer type, and returns the validation result.
23
- rpc :Validate, ::Transfersdk::ValidationRequest, ::Transfersdk::ValidationResponse
24
- #
25
- # StartTransfer starts a new transfer and returns the transfer information required to manage and monitor the transfer.
26
- # This request doesn't close until the transfer is terminated or the request is canceled by the client.
27
- rpc :StartTransfer, ::Transfersdk::TransferRequest, ::Transfersdk::StartTransferResponse
28
- #
29
- # StartTransferWithMonitor starts a new transfer and streams back the transfer events.
30
- # The request doesn't return immediately, as it continues streaming responses to the client until the transfer is terminated or the request is canceled
31
- # by the client.
32
- rpc :StartTransferWithMonitor, ::Transfersdk::TransferRequest, stream(::Transfersdk::TransferResponse)
33
- #
34
- # QueryTransfer requests transfer data.
35
- rpc :QueryTransfer, ::Transfersdk::TransferInfoRequest, ::Transfersdk::QueryTransferResponse
36
- #
37
- # ModifyTransfer modifies an existing transfer.
38
- rpc :ModifyTransfer, ::Transfersdk::TransferModificationRequest, ::Transfersdk::TransferModificationResponse
39
- #
40
- # AddTransferPaths can be used with persistent transfer to add paths to an existing transfer.
41
- # (type TransferType.FILE_PERSISTENT).
42
- rpc :AddTransferPaths, ::Transfersdk::TransferPathRequest, ::Transfersdk::TransferPathResponse
43
- #
44
- # LockPersistentTransfer, used with persistent transfer, marks an existing persistent transfer as done.
45
- # Once the method is called, any subsequent call to AddTransferPaths results in an error.
46
- # (type TransferType.FILE_PERSISTENT).
47
- rpc :LockPersistentTransfer, ::Transfersdk::LockPersistentTransferRequest, ::Transfersdk::LockPersistentTransferResponse
48
- #
49
- # StopTransfer stops a transfer.
50
- rpc :StopTransfer, ::Transfersdk::StopTransferRequest, ::Transfersdk::StopTransferResponse
51
- #
52
- # MonitorTransfers monitors transfers matching the defined filters and streams back the transfer events.
53
- # The request doesn't return an immediate response because MonitorTransfers continues streaming
54
- # responses to the client until the client cancels the request.
55
- rpc :MonitorTransfers, ::Transfersdk::RegistrationRequest, stream(::Transfersdk::TransferResponse)
56
- #
57
- # GetAPIVersion gets the API version.
58
- rpc :GetAPIVersion, ::Transfersdk::APIVersionRequest, ::Transfersdk::APIVersionResponse
59
- #
60
- # GetInfo gets data about the Transfer SDK service instance.
61
- rpc :GetInfo, ::Transfersdk::InstanceInfoRequest, ::Transfersdk::InstanceInfoResponse
62
- #
63
- # IsPeerReachable confirms whether or not the peer endpoint is reachable.
64
- rpc :IsPeerReachable, ::Transfersdk::PeerCheckRequest, ::Transfersdk::PeerCheckResponse
65
- #
66
- # WriteStreamChunk writes chunks of streaming data for the specified in-progress
67
- # transfer of type PERSISTENT_STREAM_UPLOAD, at a specific offset.
68
- # When StopTransfer is called on the transfer, subsequent calls to this function will fail.
69
- rpc :WriteStreamChunk, stream(::Transfersdk::WriteStreamChunkRequest), ::Transfersdk::WriteStreamChunkResponse
70
- #
71
- # WriteStream writes chunks of streaming data for the specified in-progress transfer of type STREAM_TO_FILE_UPLOAD.
72
- # Once StopTransfer is called on the transfer, subsequent calls to this function will fail.
73
- rpc :WriteStream, stream(::Transfersdk::WriteStreamRequest), ::Transfersdk::WriteStreamResponse
74
- #
75
- # ReadStream reads chunks of streaming data from a specified in-progress transfer of type FILE_TO_STREAM_DOWNLOAD.
76
- # Once StopTransfer is called on this transfer, subsequent calls to this function will fail.
77
- rpc :ReadStream, ::Transfersdk::ReadStreamRequest, stream(::Transfersdk::ReadStreamResponse)
78
- end
79
-
80
- Stub = Service.rpc_stub_class
81
- end
82
- end