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.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +29 -3
- data/CONTRIBUTING.md +2 -0
- data/README.md +571 -375
- data/bin/asession +2 -2
- data/examples/get_proto_file.rb +1 -1
- data/lib/aspera/agent/alpha.rb +10 -16
- data/lib/aspera/agent/connect.rb +20 -2
- data/lib/aspera/agent/direct.rb +21 -30
- data/lib/aspera/agent/node.rb +1 -11
- data/lib/aspera/agent/{trsdk.rb → transferd.rb} +13 -34
- data/lib/aspera/api/aoc.rb +13 -8
- data/lib/aspera/api/node.rb +45 -28
- data/lib/aspera/ascp/installation.rb +87 -48
- data/lib/aspera/ascp/management.rb +27 -6
- data/lib/aspera/cli/formatter.rb +148 -154
- data/lib/aspera/cli/info.rb +1 -1
- data/lib/aspera/cli/main.rb +12 -0
- data/lib/aspera/cli/manager.rb +2 -2
- data/lib/aspera/cli/plugin.rb +2 -2
- data/lib/aspera/cli/plugins/aoc.rb +28 -18
- data/lib/aspera/cli/plugins/config.rb +106 -54
- data/lib/aspera/cli/plugins/cos.rb +1 -0
- data/lib/aspera/cli/plugins/faspex.rb +4 -2
- data/lib/aspera/cli/plugins/faspex5.rb +21 -9
- data/lib/aspera/cli/plugins/node.rb +45 -38
- data/lib/aspera/cli/transfer_progress.rb +2 -0
- data/lib/aspera/cli/version.rb +1 -1
- data/lib/aspera/command_line_builder.rb +1 -1
- data/lib/aspera/environment.rb +48 -14
- data/lib/aspera/node_simulator.rb +230 -112
- data/lib/aspera/oauth/base.rb +34 -47
- data/lib/aspera/oauth/factory.rb +41 -2
- data/lib/aspera/oauth/jwt.rb +4 -1
- data/lib/aspera/persistency_action_once.rb +1 -1
- data/lib/aspera/persistency_folder.rb +20 -2
- data/lib/aspera/preview/generator.rb +1 -1
- data/lib/aspera/preview/utils.rb +8 -3
- data/lib/aspera/products/alpha.rb +30 -0
- data/lib/aspera/products/connect.rb +48 -0
- data/lib/aspera/products/other.rb +82 -0
- data/lib/aspera/products/transferd.rb +54 -0
- data/lib/aspera/rest.rb +18 -13
- data/lib/aspera/secret_hider.rb +2 -2
- data/lib/aspera/ssh.rb +31 -24
- data/lib/aspera/transfer/parameters.rb +2 -1
- data/lib/aspera/transfer/spec.yaml +22 -20
- data/lib/aspera/transfer/sync.rb +1 -5
- data/lib/aspera/transfer/uri.rb +2 -2
- data/lib/transferd_pb.rb +86 -0
- data/lib/transferd_services_pb.rb +84 -0
- data.tar.gz.sig +0 -0
- metadata +38 -21
- metadata.gz.sig +0 -0
- data/lib/aspera/ascp/products.rb +0 -168
- data/lib/transfer_pb.rb +0 -84
- data/lib/transfer_services_pb.rb +0 -82
data/lib/aspera/ascp/products.rb
DELETED
@@ -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
|
data/lib/transfer_services_pb.rb
DELETED
@@ -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
|