azure-storage 0.13.0.preview → 0.14.0.preview

Sign up to get free protection for your applications and to get access to all the features.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/lib/azure/storage.rb +14 -13
  3. data/lib/azure/storage/autoload.rb +31 -31
  4. data/lib/azure/storage/blob/append.rb +43 -41
  5. data/lib/azure/storage/blob/blob.rb +150 -147
  6. data/lib/azure/storage/blob/blob_service.rb +186 -184
  7. data/lib/azure/storage/blob/block.rb +56 -56
  8. data/lib/azure/storage/blob/container.rb +93 -92
  9. data/lib/azure/storage/blob/page.rb +187 -104
  10. data/lib/azure/storage/blob/serialization.rb +32 -18
  11. data/lib/azure/storage/client.rb +18 -17
  12. data/lib/azure/storage/client_options.rb +192 -193
  13. data/lib/azure/storage/client_options_error.rb +5 -5
  14. data/lib/azure/storage/configurable.rb +39 -39
  15. data/lib/azure/storage/core.rb +6 -4
  16. data/lib/azure/storage/core/auth/shared_access_signature.rb +5 -3
  17. data/lib/azure/storage/core/auth/shared_access_signature_generator.rb +34 -33
  18. data/lib/azure/storage/core/auth/shared_access_signature_signer.rb +5 -5
  19. data/lib/azure/storage/core/auth/shared_key.rb +17 -15
  20. data/lib/azure/storage/core/autoload.rb +15 -13
  21. data/lib/azure/storage/core/error.rb +3 -1
  22. data/lib/azure/storage/core/filter/exponential_retry_filter.rb +13 -11
  23. data/lib/azure/storage/core/filter/linear_retry_filter.rb +10 -8
  24. data/lib/azure/storage/core/filter/retry_filter.rb +30 -29
  25. data/lib/azure/storage/core/http_client.rb +18 -16
  26. data/lib/azure/storage/core/sr.rb +50 -48
  27. data/lib/azure/storage/core/utility.rb +19 -17
  28. data/lib/azure/storage/default.rb +371 -361
  29. data/lib/azure/storage/file/directory.rb +36 -31
  30. data/lib/azure/storage/file/file.rb +103 -100
  31. data/lib/azure/storage/file/file_service.rb +42 -40
  32. data/lib/azure/storage/file/serialization.rb +9 -6
  33. data/lib/azure/storage/file/share.rb +48 -46
  34. data/lib/azure/storage/queue/message.rb +3 -1
  35. data/lib/azure/storage/queue/queue.rb +3 -2
  36. data/lib/azure/storage/queue/queue_service.rb +152 -151
  37. data/lib/azure/storage/queue/serialization.rb +7 -5
  38. data/lib/azure/storage/service/access_policy.rb +3 -1
  39. data/lib/azure/storage/service/cors.rb +4 -2
  40. data/lib/azure/storage/service/cors_rule.rb +3 -1
  41. data/lib/azure/storage/service/enumeration_results.rb +3 -1
  42. data/lib/azure/storage/service/logging.rb +5 -3
  43. data/lib/azure/storage/service/metrics.rb +5 -3
  44. data/lib/azure/storage/service/retention_policy.rb +3 -1
  45. data/lib/azure/storage/service/serialization.rb +31 -30
  46. data/lib/azure/storage/service/signed_identifier.rb +5 -4
  47. data/lib/azure/storage/service/storage_service.rb +33 -32
  48. data/lib/azure/storage/service/storage_service_properties.rb +6 -4
  49. data/lib/azure/storage/table/auth/shared_key.rb +9 -8
  50. data/lib/azure/storage/table/batch.rb +55 -55
  51. data/lib/azure/storage/table/batch_response.rb +17 -17
  52. data/lib/azure/storage/table/edmtype.rb +9 -7
  53. data/lib/azure/storage/table/entity.rb +4 -3
  54. data/lib/azure/storage/table/guid.rb +3 -1
  55. data/lib/azure/storage/table/query.rb +17 -19
  56. data/lib/azure/storage/table/serialization.rb +14 -12
  57. data/lib/azure/storage/table/table_service.rb +79 -80
  58. data/lib/azure/storage/version.rb +7 -5
  59. metadata +2 -2
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  #-------------------------------------------------------------------------
2
4
  # # Copyright (c) Microsoft and contributors. All rights reserved.
3
5
  #
@@ -22,13 +24,13 @@
22
24
  # THE SOFTWARE.
23
25
  #--------------------------------------------------------------------------
24
26
 
25
- require 'rbconfig'
26
- require 'azure/storage/version'
27
+ require "rbconfig"
28
+ require "azure/storage/version"
27
29
 
28
30
  module Azure::Storage
29
31
  module Default
30
32
  # Default REST service (STG) version number
31
- STG_VERSION = '2016-05-31'
33
+ STG_VERSION = "2016-05-31"
32
34
 
33
35
  # The number of default concurrent requests for parallel operation.
34
36
  DEFAULT_PARALLEL_OPERATION_THREAD_COUNT = 1
@@ -41,21 +43,21 @@ module Azure::Storage
41
43
  GB = 1024 * 1024 * 1024
42
44
 
43
45
  # Specifies HTTP.
44
- HTTP = 'http'
46
+ HTTP = "http"
45
47
  # Specifies HTTPS.
46
- HTTPS = 'https'
48
+ HTTPS = "https"
47
49
  # Default HTTP port.
48
50
  DEFAULT_HTTP_PORT = 80
49
51
  # Default HTTPS port.
50
52
  DEFAULT_HTTPS_PORT = 443
51
53
 
52
54
  # Marker for atom metadata.
53
- XML_METADATA_MARKER = '$'
55
+ XML_METADATA_MARKER = "$"
54
56
  # Marker for atom value.
55
- XML_VALUE_MARKER = '_'
57
+ XML_VALUE_MARKER = "_"
56
58
 
57
59
  def os
58
- host_os = RbConfig::CONFIG['host_os']
60
+ host_os = RbConfig::CONFIG["host_os"]
59
61
  case host_os
60
62
  when /mswin|msys|mingw|cygwin|bccwin|wince|emc/
61
63
  "Windows #{host_os}"
@@ -83,59 +85,59 @@ module Azure::Storage
83
85
  # Default storage access key
84
86
  # @return [String]
85
87
  def storage_access_key
86
- ENV['AZURE_STORAGE_ACCESS_KEY']
88
+ ENV["AZURE_STORAGE_ACCESS_KEY"]
87
89
  end
88
90
 
89
91
  # Default storage account name
90
92
  # @return [String]
91
93
  def storage_account_name
92
- ENV['AZURE_STORAGE_ACCOUNT']
94
+ ENV["AZURE_STORAGE_ACCOUNT"]
93
95
  end
94
96
 
95
97
  # Default storage connection string
96
98
  # @return [String]
97
99
  def storage_connection_string
98
- ENV['AZURE_STORAGE_CONNECTION_STRING']
100
+ ENV["AZURE_STORAGE_CONNECTION_STRING"]
99
101
  end
100
102
 
101
103
  # Default storage shared access signature token
102
104
  # @return [String]
103
105
  def storage_sas_token
104
- ENV['AZURE_STORAGE_SAS_TOKEN']
106
+ ENV["AZURE_STORAGE_SAS_TOKEN"]
105
107
  end
106
108
 
107
109
  # Default storage table host
108
110
  # @return [String]
109
111
  def storage_table_host
110
- ENV['AZURE_STORAGE_TABLE_HOST']
112
+ ENV["AZURE_STORAGE_TABLE_HOST"]
111
113
  end
112
114
 
113
115
  # Default storage blob host
114
116
  # @return [String]
115
117
  def storage_blob_host
116
- ENV['AZURE_STORAGE_BLOB_HOST']
118
+ ENV["AZURE_STORAGE_BLOB_HOST"]
117
119
  end
118
120
 
119
121
  # Default storage queue host
120
122
  # @return [String]
121
123
  def storage_queue_host
122
- ENV['AZURE_STORAGE_QUEUE_HOST']
124
+ ENV["AZURE_STORAGE_QUEUE_HOST"]
123
125
  end
124
126
 
125
127
  # Default storage file host
126
128
  # @return [String]
127
129
  def storage_file_host
128
- ENV['AZURE_STORAGE_FILE_HOST']
130
+ ENV["AZURE_STORAGE_FILE_HOST"]
129
131
  end
130
132
  end
131
133
  end
132
134
 
133
135
  # Service Types
134
136
  module ServiceType
135
- BLOB = 'blob'
136
- QUEUE = 'queue'
137
- TABLE = 'table'
138
- FILE = 'file'
137
+ BLOB = "blob"
138
+ QUEUE = "queue"
139
+ TABLE = "table"
140
+ FILE = "file"
139
141
  end
140
142
 
141
143
  # Specifies the location used to indicate which location the operation can be performed against.
@@ -154,106 +156,106 @@ module Azure::Storage
154
156
  # Defines constants for use with shared access policies.
155
157
  module AclConstants
156
158
  # XML element for an access policy.
157
- ACCESS_POLICY = 'AccessPolicy'
159
+ ACCESS_POLICY = "AccessPolicy"
158
160
 
159
161
  # XML element for the end time of an access policy.
160
- EXPIRY = 'Expiry'
162
+ EXPIRY = "Expiry"
161
163
 
162
164
  # XML attribute for IDs.
163
- ID = 'Id'
165
+ ID = "Id"
164
166
 
165
167
  # XML element for the permission of an access policy.
166
- PERMISSION = 'Permission'
168
+ PERMISSION = "Permission"
167
169
 
168
170
  # XML element for a signed identifier.
169
- SIGNED_IDENTIFIER_ELEMENT = 'SignedIdentifier'
171
+ SIGNED_IDENTIFIER_ELEMENT = "SignedIdentifier"
170
172
 
171
173
  # XML element for signed identifiers.
172
- SIGNED_IDENTIFIERS_ELEMENT = 'SignedIdentifiers'
174
+ SIGNED_IDENTIFIERS_ELEMENT = "SignedIdentifiers"
173
175
 
174
176
  # XML element for the start time of an access policy.
175
- START = 'Start'
177
+ START = "Start"
176
178
  end
177
179
 
178
180
  # Defines constants for use with service properties.
179
181
  module ServicePropertiesConstants
180
182
  # XML element for storage service properties.
181
- STORAGE_SERVICE_PROPERTIES_ELEMENT = 'StorageServiceProperties'
183
+ STORAGE_SERVICE_PROPERTIES_ELEMENT = "StorageServiceProperties"
182
184
 
183
185
  # Default analytics version to send for logging, hour metrics and minute metrics.
184
- DEFAULT_ANALYTICS_VERSION = '1.0'
186
+ DEFAULT_ANALYTICS_VERSION = "1.0"
185
187
 
186
188
  # XML element for logging.
187
- LOGGING_ELEMENT = 'Logging'
189
+ LOGGING_ELEMENT = "Logging"
188
190
 
189
191
  # XML element for version.
190
- VERSION_ELEMENT = 'Version'
192
+ VERSION_ELEMENT = "Version"
191
193
 
192
194
  # XML element for delete.
193
- DELETE_ELEMENT = 'Delete'
195
+ DELETE_ELEMENT = "Delete"
194
196
 
195
197
  # XML element for read.
196
- READ_ELEMENT = 'Read'
198
+ READ_ELEMENT = "Read"
197
199
 
198
200
  # XML element for write.
199
- WRITE_ELEMENT = 'Write'
201
+ WRITE_ELEMENT = "Write"
200
202
 
201
203
  # XML element for retention policy.
202
- RETENTION_POLICY_ELEMENT = 'RetentionPolicy'
204
+ RETENTION_POLICY_ELEMENT = "RetentionPolicy"
203
205
 
204
206
  # XML element for enabled.
205
- ENABLED_ELEMENT = 'Enabled'
207
+ ENABLED_ELEMENT = "Enabled"
206
208
 
207
209
  # XML element for days.
208
- DAYS_ELEMENT = 'Days'
210
+ DAYS_ELEMENT = "Days"
209
211
 
210
212
  # XML element for HourMetrics.
211
- HOUR_METRICS_ELEMENT = 'HourMetrics'
213
+ HOUR_METRICS_ELEMENT = "HourMetrics"
212
214
 
213
215
  # XML element for MinuteMetrics.
214
- MINUTE_METRICS_ELEMENT = 'MinuteMetrics'
216
+ MINUTE_METRICS_ELEMENT = "MinuteMetrics"
215
217
 
216
218
  # XML element for Cors.
217
- CORS_ELEMENT = 'Cors'
219
+ CORS_ELEMENT = "Cors"
218
220
 
219
221
  # XML element for CorsRule.
220
- CORS_RULE_ELEMENT = 'CorsRule'
222
+ CORS_RULE_ELEMENT = "CorsRule"
221
223
 
222
224
  # XML element for AllowedOrigins.
223
- ALLOWED_ORIGINS_ELEMENT = 'AllowedOrigins'
225
+ ALLOWED_ORIGINS_ELEMENT = "AllowedOrigins"
224
226
 
225
227
  # XML element for AllowedMethods.
226
- ALLOWED_METHODS_ELEMENT = 'AllowedMethods'
228
+ ALLOWED_METHODS_ELEMENT = "AllowedMethods"
227
229
 
228
230
  # XML element for MaxAgeInSeconds.
229
- MAX_AGE_IN_SECONDS_ELEMENT = 'MaxAgeInSeconds'
231
+ MAX_AGE_IN_SECONDS_ELEMENT = "MaxAgeInSeconds"
230
232
 
231
233
  # XML element for ExposedHeaders.
232
- EXPOSED_HEADERS_ELEMENT = 'ExposedHeaders'
234
+ EXPOSED_HEADERS_ELEMENT = "ExposedHeaders"
233
235
 
234
236
  # XML element for AllowedHeaders.
235
- ALLOWED_HEADERS_ELEMENT = 'AllowedHeaders'
237
+ ALLOWED_HEADERS_ELEMENT = "AllowedHeaders"
236
238
 
237
239
  # XML element for IncludeAPIs.
238
- INCLUDE_APIS_ELEMENT = 'IncludeAPIs'
240
+ INCLUDE_APIS_ELEMENT = "IncludeAPIs"
239
241
 
240
242
  # XML element for DefaultServiceVersion.
241
- DEFAULT_SERVICE_VERSION_ELEMENT = 'DefaultServiceVersion'
243
+ DEFAULT_SERVICE_VERSION_ELEMENT = "DefaultServiceVersion"
242
244
  end
243
245
 
244
246
  # Defines constants for use with blob operations.
245
247
  module BlobConstants
246
248
  # XML element for the latest.
247
- LATEST_ELEMENT = 'Latest'
249
+ LATEST_ELEMENT = "Latest"
248
250
 
249
251
  # XML element for uncommitted blocks.
250
- UNCOMMITTED_ELEMENT = 'Uncommitted'
252
+ UNCOMMITTED_ELEMENT = "Uncommitted"
251
253
 
252
254
  # XML element for a block list.
253
- BLOCK_LIST_ELEMENT = 'BlockList'
255
+ BLOCK_LIST_ELEMENT = "BlockList"
254
256
 
255
257
  # XML element for committed blocks.
256
- COMMITTED_ELEMENT = 'Committed'
258
+ COMMITTED_ELEMENT = "Committed"
257
259
 
258
260
  # The default write page size, in bytes, used by blob streams.
259
261
  DEFAULT_WRITE_PAGE_SIZE_IN_BYTES = 4 * 1024 * 1024
@@ -292,36 +294,36 @@ module Azure::Storage
292
294
 
293
295
  # Resource types.
294
296
  module ResourceTypes
295
- CONTAINER = 'c'
296
- BLOB = 'b'
297
+ CONTAINER = "c"
298
+ BLOB = "b"
297
299
  end
298
300
 
299
301
  # List blob types.
300
302
  module ListBlobTypes
301
- Blob = 'b'
302
- Directory = 'd'
303
+ Blob = "b"
304
+ Directory = "d"
303
305
  end
304
306
 
305
307
  # Put page write options
306
308
  module PageWriteOptions
307
- UPDATE = 'update'
308
- CLEAR = 'clear'
309
+ UPDATE = "update"
310
+ CLEAR = "clear"
309
311
  end
310
312
 
311
313
  # Blob types
312
314
  module BlobTypes
313
- BLOCK = 'BlockBlob'
314
- PAGE = 'PageBlob'
315
- APPEND = 'AppendBlob'
315
+ BLOCK = "BlockBlob"
316
+ PAGE = "PageBlob"
317
+ APPEND = "AppendBlob"
316
318
  end
317
319
 
318
320
  # Blob lease constants
319
321
  module LeaseOperation
320
- ACQUIRE = 'acquire'
321
- RENEW = 'renew'
322
- CHANGE = 'change'
323
- RELEASE = 'release'
324
- BREAK = 'break'
322
+ ACQUIRE = "acquire"
323
+ RENEW = "renew"
324
+ CHANGE = "change"
325
+ RELEASE = "release"
326
+ BREAK = "break"
325
327
  end
326
328
  end
327
329
 
@@ -344,584 +346,593 @@ module Azure::Storage
344
346
 
345
347
  # Put range write options
346
348
  module RangeWriteOptions
347
- UPDATE = 'update'
348
- CLEAR = 'clear'
349
+ UPDATE = "update"
350
+ CLEAR = "clear"
349
351
  end
350
352
 
351
353
  # Resource types.
352
354
  module ResourceTypes
353
- SHARE = 's'
354
- FILE = 'f'
355
+ SHARE = "s"
356
+ FILE = "f"
355
357
  end
356
358
  end
357
359
 
358
360
  # Defines constants for use with queue storage.
359
361
  module QueueConstants
360
362
  # XML element for QueueMessage.
361
- QUEUE_MESSAGE_ELEMENT = 'QueueMessage'
363
+ QUEUE_MESSAGE_ELEMENT = "QueueMessage"
362
364
 
363
365
  # XML element for MessageText.
364
- MESSAGE_TEXT_ELEMENT = 'MessageText'
366
+ MESSAGE_TEXT_ELEMENT = "MessageText"
365
367
  end
366
368
 
367
369
  # Defines constants for use with table storage.
368
370
  module TableConstants
369
371
  # The changeset response delimiter.
370
- CHANGESET_DELIMITER = '--changesetresponse_'
372
+ CHANGESET_DELIMITER = "--changesetresponse_"
371
373
 
372
374
  # The batch response delimiter.
373
- BATCH_DELIMITER = '--batchresponse_'
375
+ BATCH_DELIMITER = "--batchresponse_"
374
376
 
375
377
  # The next continuation row key token.
376
- CONTINUATION_NEXT_ROW_KEY = 'x-ms-continuation-nextrowkey'
378
+ CONTINUATION_NEXT_ROW_KEY = "x-ms-continuation-nextrowkey"
377
379
 
378
380
  # The next continuation partition key token.
379
- CONTINUATION_NEXT_PARTITION_KEY = 'x-ms-continuation-nextpartitionkey'
381
+ CONTINUATION_NEXT_PARTITION_KEY = "x-ms-continuation-nextpartitionkey"
380
382
 
381
383
  # The next continuation table name token.
382
- CONTINUATION_NEXT_TABLE_NAME = 'x-ms-continuation-nexttablename'
384
+ CONTINUATION_NEXT_TABLE_NAME = "x-ms-continuation-nexttablename"
383
385
 
384
386
  # The next row key query string argument.
385
- NEXT_ROW_KEY = 'NextRowKey'
387
+ NEXT_ROW_KEY = "NextRowKey"
386
388
 
387
389
  # The next partition key query string argument.
388
- NEXT_PARTITION_KEY = 'NextPartitionKey'
390
+ NEXT_PARTITION_KEY = "NextPartitionKey"
389
391
 
390
392
  # The next table name query string argument.
391
- NEXT_TABLE_NAME = 'NextTableName'
393
+ NEXT_TABLE_NAME = "NextTableName"
392
394
 
393
395
  # Prefix of the odata properties returned in a JSON query
394
- ODATA_PREFIX = 'odata.'
396
+ ODATA_PREFIX = "odata."
395
397
 
396
398
  # Constant representing the string following a type annotation in a JSON table query
397
- ODATA_TYPE_SUFFIX = '@odata.type'
399
+ ODATA_TYPE_SUFFIX = "@odata.type"
398
400
 
399
401
  # Constant representing the property where the odata metadata elements are stored.
400
- ODATA_METADATA_MARKER = '.metadata'
402
+ ODATA_METADATA_MARKER = ".metadata"
401
403
 
402
404
  # Constant representing the value for an entity property.
403
- ODATA_VALUE_MARKER = '_'
405
+ ODATA_VALUE_MARKER = "_"
404
406
 
405
407
  # Constant representing the type for an entity property.
406
- ODATA_TYPE_MARKER = '$'
408
+ ODATA_TYPE_MARKER = "$"
407
409
 
408
410
  # Constant representing the hash key of etag for an entity property in JSON.
409
- ODATA_ETAG = 'odata.etag'
411
+ ODATA_ETAG = "odata.etag"
410
412
 
411
413
  # The value to set the maximum data service version header.
412
- DEFAULT_DATA_SERVICE_VERSION = '3.0;NetFx'
414
+ DEFAULT_DATA_SERVICE_VERSION = "3.0;NetFx"
413
415
 
414
416
  # The name of the property that stores the table name.
415
- TABLE_NAME = 'TableName'
417
+ TABLE_NAME = "TableName"
416
418
 
417
419
  # The name of the special table used to store tables.
418
- TABLE_SERVICE_TABLE_NAME = 'Tables'
420
+ TABLE_SERVICE_TABLE_NAME = "Tables"
419
421
 
420
422
  # The key of partition key in hash
421
- PARTITION_KEY = 'PartitionKey'
423
+ PARTITION_KEY = "PartitionKey"
422
424
 
423
425
  # The key of row key in hash
424
- ROW_KEY = 'RowKey'
426
+ ROW_KEY = "RowKey"
425
427
 
426
428
  # Operations
427
429
  module Operations
428
- RETRIEVE = 'RETRIEVE'
429
- INSERT = 'INSERT'
430
- UPDATE = 'UPDATE'
431
- MERGE = 'MERGE'
432
- DELETE = 'DELETE'
433
- INSERT_OR_REPLACE = 'INSERT_OR_REPLACE'
434
- INSERT_OR_MERGE = 'INSERT_OR_MERGE'
430
+ RETRIEVE = "RETRIEVE"
431
+ INSERT = "INSERT"
432
+ UPDATE = "UPDATE"
433
+ MERGE = "MERGE"
434
+ DELETE = "DELETE"
435
+ INSERT_OR_REPLACE = "INSERT_OR_REPLACE"
436
+ INSERT_OR_MERGE = "INSERT_OR_MERGE"
435
437
  end
436
438
  end
437
439
 
438
440
  # Defines constants for use with HTTP headers.
439
441
  module HeaderConstants
440
442
  # The accept ranges header.
441
- ACCEPT_RANGES = 'accept_ranges'
443
+ ACCEPT_RANGES = "accept_ranges"
442
444
 
443
445
  # The content transfer encoding header.
444
- CONTENT_TRANSFER_ENCODING = 'content-transfer-encoding'
446
+ CONTENT_TRANSFER_ENCODING = "content-transfer-encoding"
445
447
 
446
448
  # The transfer encoding header.
447
- TRANSFER_ENCODING = 'transfer-encoding'
449
+ TRANSFER_ENCODING = "transfer-encoding"
448
450
 
449
451
  # The server header.
450
- SERVER = 'server'
452
+ SERVER = "server"
451
453
 
452
454
  # The location header.
453
- LOCATION = 'location'
455
+ LOCATION = "location"
454
456
 
455
457
  # The Last-Modified header
456
- LAST_MODIFIED = 'Last-Modified'
458
+ LAST_MODIFIED = "Last-Modified"
457
459
 
458
460
  # The data service version.
459
- DATA_SERVICE_VERSION = 'DataServiceVersion'
461
+ DATA_SERVICE_VERSION = "DataServiceVersion"
460
462
 
461
463
  # The maximum data service version.
462
- MAX_DATA_SERVICE_VERSION = 'maxdataserviceversion'
464
+ MAX_DATA_SERVICE_VERSION = "maxdataserviceversion"
463
465
 
464
466
  # The master Windows Azure Storage header prefix.
465
- PREFIX_FOR_STORAGE = 'x-ms-'
467
+ PREFIX_FOR_STORAGE = "x-ms-"
466
468
 
467
469
  # The client request Id header.
468
- CLIENT_REQUEST_ID = 'x-ms-client-request-id'
470
+ CLIENT_REQUEST_ID = "x-ms-client-request-id"
469
471
 
470
472
  # The header that specifies the approximate message count of a queue.
471
- APPROXIMATE_MESSAGES_COUNT = 'x-ms-approximate-messages-count'
473
+ APPROXIMATE_MESSAGES_COUNT = "x-ms-approximate-messages-count"
472
474
 
473
475
  # The Authorization header.
474
- AUTHORIZATION = 'authorization'
476
+ AUTHORIZATION = "authorization"
475
477
 
476
478
  # The header that specifies public access to blobs.
477
- BLOB_PUBLIC_ACCESS = 'x-ms-blob-public-access'
479
+ BLOB_PUBLIC_ACCESS = "x-ms-blob-public-access"
478
480
 
479
481
  # The header for the blob type.
480
- BLOB_TYPE = 'x-ms-blob-type'
482
+ BLOB_TYPE = "x-ms-blob-type"
481
483
 
482
484
  # The header for the type.
483
- TYPE = 'x-ms-type'
485
+ TYPE = "x-ms-type"
484
486
 
485
487
  # Specifies the block blob type.
486
- BLOCK_BLOB = 'blockblob'
488
+ BLOCK_BLOB = "blockblob"
487
489
 
488
490
  # The CacheControl header.
489
- CACHE_CONTROL = 'cache-control'
491
+ CACHE_CONTROL = "cache-control"
490
492
 
491
493
  # The header that specifies blob caching control.
492
- BLOB_CACHE_CONTROL = 'x-ms-blob-cache-control'
494
+ BLOB_CACHE_CONTROL = "x-ms-blob-cache-control"
493
495
 
494
496
  # The header that specifies caching control.
495
- FILE_CACHE_CONTROL = 'x-ms-cache-control'
497
+ FILE_CACHE_CONTROL = "x-ms-cache-control"
496
498
 
497
499
  # The copy status.
498
- COPY_STATUS = 'x-ms-copy-status'
500
+ COPY_STATUS = "x-ms-copy-status"
499
501
 
500
502
  # The copy completion time
501
- COPY_COMPLETION_TIME = 'x-ms-copy-completion-time'
503
+ COPY_COMPLETION_TIME = "x-ms-copy-completion-time"
502
504
 
503
505
  # The copy status message
504
- COPY_STATUS_DESCRIPTION = 'x-ms-copy-status-description'
506
+ COPY_STATUS_DESCRIPTION = "x-ms-copy-status-description"
505
507
 
506
508
  # The copy identifier.
507
- COPY_ID = 'x-ms-copy-id'
509
+ COPY_ID = "x-ms-copy-id"
508
510
 
509
511
  # Progress of any copy operation
510
- COPY_PROGRESS = 'x-ms-copy-progress'
512
+ COPY_PROGRESS = "x-ms-copy-progress"
511
513
 
512
514
  # The copy action.
513
- COPY_ACTION = 'x-ms-copy-action'
515
+ COPY_ACTION = "x-ms-copy-action"
514
516
 
515
517
  # The ContentID header.
516
- CONTENT_ID = 'content-id'
518
+ CONTENT_ID = "content-id"
517
519
 
518
520
  # The ContentEncoding header.
519
- CONTENT_ENCODING = 'content-encoding'
521
+ CONTENT_ENCODING = "content-encoding"
520
522
 
521
523
  # The header that specifies blob content encoding.
522
- BLOB_CONTENT_ENCODING = 'x-ms-blob-content-encoding'
524
+ BLOB_CONTENT_ENCODING = "x-ms-blob-content-encoding"
523
525
 
524
526
  # The header that specifies content encoding.
525
- FILE_CONTENT_ENCODING = 'x-ms-content-encoding'
527
+ FILE_CONTENT_ENCODING = "x-ms-content-encoding"
526
528
 
527
529
  # The ContentLangauge header.
528
- CONTENT_LANGUAGE = 'content-language'
530
+ CONTENT_LANGUAGE = "content-language"
529
531
 
530
532
  # The header that specifies blob content language.
531
- BLOB_CONTENT_LANGUAGE = 'x-ms-blob-content-language'
533
+ BLOB_CONTENT_LANGUAGE = "x-ms-blob-content-language"
532
534
 
533
535
  # The header that specifies content language.
534
- FILE_CONTENT_LANGUAGE = 'x-ms-content-language'
536
+ FILE_CONTENT_LANGUAGE = "x-ms-content-language"
535
537
 
536
538
  # The ContentLength header.
537
- CONTENT_LENGTH = 'content-length'
539
+ CONTENT_LENGTH = "content-length"
538
540
 
539
541
  # The header that specifies blob content length.
540
- BLOB_CONTENT_LENGTH = 'x-ms-blob-content-length'
542
+ BLOB_CONTENT_LENGTH = "x-ms-blob-content-length"
541
543
 
542
544
  # The header that specifies content length.
543
- FILE_CONTENT_LENGTH = 'x-ms-content-length'
545
+ FILE_CONTENT_LENGTH = "x-ms-content-length"
544
546
 
545
547
  # The ContentDisposition header.
546
- CONTENT_DISPOSITION = 'content-disposition'
548
+ CONTENT_DISPOSITION = "content-disposition"
547
549
 
548
550
  # The header that specifies blob content disposition.
549
- BLOB_CONTENT_DISPOSITION = 'x-ms-blob-content-disposition'
551
+ BLOB_CONTENT_DISPOSITION = "x-ms-blob-content-disposition"
550
552
 
551
553
  # The header that specifies content disposition.
552
- FILE_CONTENT_DISPOSITION = 'x-ms-content-disposition'
554
+ FILE_CONTENT_DISPOSITION = "x-ms-content-disposition"
553
555
 
554
556
  # The ContentMD5 header.
555
- CONTENT_MD5 = 'content-md5'
557
+ CONTENT_MD5 = "content-md5"
556
558
 
557
559
  # The header that specifies blob content MD5.
558
- BLOB_CONTENT_MD5 = 'x-ms-blob-content-md5'
560
+ BLOB_CONTENT_MD5 = "x-ms-blob-content-md5"
559
561
 
560
562
  # The header that specifies content MD5.
561
- FILE_CONTENT_MD5 = 'x-ms-content-md5'
563
+ FILE_CONTENT_MD5 = "x-ms-content-md5"
562
564
 
563
565
  # The ContentRange header.
564
- CONTENT_RANGE = 'cache-range'
566
+ CONTENT_RANGE = "cache-range"
565
567
 
566
568
  # The ContentType header.
567
- CONTENT_TYPE = 'Content-Type'
569
+ CONTENT_TYPE = "Content-Type"
568
570
 
569
571
  # The header that specifies blob content type.
570
- BLOB_CONTENT_TYPE = 'x-ms-blob-content-type'
572
+ BLOB_CONTENT_TYPE = "x-ms-blob-content-type"
571
573
 
572
574
  # The header that specifies content type.
573
- FILE_CONTENT_TYPE = 'x-ms-content-type'
575
+ FILE_CONTENT_TYPE = "x-ms-content-type"
574
576
 
575
577
  # The header for copy source.
576
- COPY_SOURCE = 'x-ms-copy-source'
578
+ COPY_SOURCE = "x-ms-copy-source"
577
579
 
578
580
  # The header that specifies the date.
579
- DATE = 'date'
581
+ DATE = "date"
580
582
 
581
583
  # The header that specifies the date.
582
- MS_DATE = 'x-ms-date'
584
+ MS_DATE = "x-ms-date"
583
585
 
584
586
  # The header to delete snapshots.
585
- DELETE_SNAPSHOT = 'x-ms-delete-snapshots'
587
+ DELETE_SNAPSHOT = "x-ms-delete-snapshots"
586
588
 
587
589
  # The ETag header.
588
- ETAG = 'etag'
590
+ ETAG = "etag"
589
591
 
590
592
  # The IfMatch header.
591
- IF_MATCH = 'if-match'
593
+ IF_MATCH = "if-match"
592
594
 
593
595
  # The IfModifiedSince header.
594
- IF_MODIFIED_SINCE = 'if-modified-since'
596
+ IF_MODIFIED_SINCE = "if-modified-since"
595
597
 
596
598
  # The IfNoneMatch header.
597
- IF_NONE_MATCH = 'if-none-match'
599
+ IF_NONE_MATCH = "if-none-match"
598
600
 
599
601
  # The IfUnmodifiedSince header.
600
- IF_UNMODIFIED_SINCE = 'if-unmodified-since'
602
+ IF_UNMODIFIED_SINCE = "if-unmodified-since"
601
603
 
602
604
  # Specifies snapshots are to be included.
603
- INCLUDE_SNAPSHOTS_VALUE = 'include'
605
+ INCLUDE_SNAPSHOTS_VALUE = "include"
604
606
 
605
607
  # Specifies that the content-type is JSON.
606
- JSON_CONTENT_TYPE_VALUE = 'application/json'
608
+ JSON_CONTENT_TYPE_VALUE = "application/json"
607
609
 
608
610
  # The header that specifies lease ID.
609
- LEASE_ID = 'x-ms-lease-id'
611
+ LEASE_ID = "x-ms-lease-id"
610
612
 
611
613
  # The header that specifies the lease break period.
612
- LEASE_BREAK_PERIOD = 'x-ms-lease-break-period'
614
+ LEASE_BREAK_PERIOD = "x-ms-lease-break-period"
613
615
 
614
616
  # The header that specifies the proposed lease identifier.
615
- PROPOSED_LEASE_ID = 'x-ms-proposed-lease-id'
617
+ PROPOSED_LEASE_ID = "x-ms-proposed-lease-id"
616
618
 
617
619
  # The header that specifies the lease duration.
618
- LEASE_DURATION = 'x-ms-lease-duration'
620
+ LEASE_DURATION = "x-ms-lease-duration"
619
621
 
620
622
  # The header that specifies the source lease ID.
621
- SOURCE_LEASE_ID = 'x-ms-source-lease-id'
623
+ SOURCE_LEASE_ID = "x-ms-source-lease-id"
622
624
 
623
625
  # The header that specifies lease time.
624
- LEASE_TIME = 'x-ms-lease-time'
626
+ LEASE_TIME = "x-ms-lease-time"
625
627
 
626
628
  # The header that specifies lease status.
627
- LEASE_STATUS = 'x-ms-lease-status'
629
+ LEASE_STATUS = "x-ms-lease-status"
628
630
 
629
631
  # The header that specifies lease state.
630
- LEASE_STATE = 'x-ms-lease-state'
632
+ LEASE_STATE = "x-ms-lease-state"
631
633
 
632
634
  # Specifies the page blob type.
633
- PAGE_BLOB = 'PageBlob'
635
+ PAGE_BLOB = "PageBlob"
634
636
 
635
637
  # The header that specifies page write mode.
636
- PAGE_WRITE = 'x-ms-page-write'
638
+ PAGE_WRITE = "x-ms-page-write"
637
639
 
638
640
  # The header that specifies file range write mode.
639
- FILE_WRITE = 'x-ms-write'
641
+ FILE_WRITE = "x-ms-write"
640
642
 
641
643
  # The header that specifies whether the response should include the inserted entity.
642
- PREFER = 'Prefer'
644
+ PREFER = "Prefer"
643
645
 
644
646
  # The header value which specifies that the response should include the inserted entity.
645
- PREFER_CONTENT = 'return-content'
647
+ PREFER_CONTENT = "return-content"
646
648
 
647
649
  # The header value which specifies that the response should not include the inserted entity.
648
- PREFER_NO_CONTENT = 'return-no-content'
650
+ PREFER_NO_CONTENT = "return-no-content"
649
651
 
650
652
  # The header prefix for metadata.
651
- PREFIX_FOR_STORAGE_METADATA = 'x-ms-meta-'
653
+ PREFIX_FOR_STORAGE_METADATA = "x-ms-meta-"
652
654
 
653
655
  # The header prefix for properties.
654
- PREFIX_FOR_STORAGE_PROPERTIES = 'x-ms-prop-'
656
+ PREFIX_FOR_STORAGE_PROPERTIES = "x-ms-prop-"
655
657
 
656
658
  # The Range header.
657
- RANGE = 'Range'
659
+ RANGE = "Range"
658
660
 
659
661
  # The header that specifies if the request will populate the ContentMD5 header for range gets.
660
- RANGE_GET_CONTENT_MD5 = 'x-ms-range-get-content-md5'
662
+ RANGE_GET_CONTENT_MD5 = "x-ms-range-get-content-md5"
661
663
 
662
664
  # The format string for specifying ranges.
663
- RANGE_HEADER_FORMAT = 'bytes:%d-%d'
665
+ RANGE_HEADER_FORMAT = "bytes:%d-%d"
664
666
 
665
667
  # The header that indicates the request ID.
666
- REQUEST_ID = 'x-ms-request-id'
668
+ REQUEST_ID = "x-ms-request-id"
667
669
 
668
670
  # The header for specifying the sequence number.
669
- SEQUENCE_NUMBER = 'x-ms-blob-sequence-number'
671
+ SEQUENCE_NUMBER = "x-ms-blob-sequence-number"
670
672
 
671
673
  # The header for specifying the If-Sequence-Number-EQ condition.
672
- SEQUENCE_NUMBER_EQUAL = 'x-ms-if-sequence-number-eq'
674
+ SEQUENCE_NUMBER_EQUAL = "x-ms-if-sequence-number-eq"
673
675
 
674
676
  # The header for specifying the If-Sequence-Number-LT condition.
675
- SEQUENCE_NUMBER_LESS_THAN = 'x-ms-if-sequence-number-lt'
677
+ SEQUENCE_NUMBER_LESS_THAN = "x-ms-if-sequence-number-lt"
676
678
 
677
679
  # The header for specifying the If-Sequence-Number-LE condition.
678
- SEQUENCE_NUMBER_LESS_THAN_OR_EQUAL = 'x-ms-if-sequence-number-le'
680
+ SEQUENCE_NUMBER_LESS_THAN_OR_EQUAL = "x-ms-if-sequence-number-le"
679
681
 
680
682
  # The header that specifies sequence number action.
681
- SEQUENCE_NUMBER_ACTION = 'x-ms-sequence-number-action'
683
+ SEQUENCE_NUMBER_ACTION = "x-ms-sequence-number-action"
682
684
 
683
685
  # The header for the blob content length.
684
- SIZE = 'x-ms-blob-content-length'
686
+ SIZE = "x-ms-blob-content-length"
685
687
 
686
688
  # The header for snapshots.
687
- SNAPSHOT = 'x-ms-snapshot'
689
+ SNAPSHOT = "x-ms-snapshot"
688
690
 
689
691
  # Specifies only snapshots are to be included.
690
- SNAPSHOTS_ONLY_VALUE = 'only'
692
+ SNAPSHOTS_ONLY_VALUE = "only"
691
693
 
692
694
  # The header for the If-Match condition.
693
- SOURCE_IF_MATCH = 'x-ms-source-if-match'
695
+ SOURCE_IF_MATCH = "x-ms-source-if-match"
694
696
 
695
697
  # The header for the If-Modified-Since condition.
696
- SOURCE_IF_MODIFIED_SINCE = 'x-ms-source-if-modified-since'
698
+ SOURCE_IF_MODIFIED_SINCE = "x-ms-source-if-modified-since"
697
699
 
698
700
  # The header for the If-None-Match condition.
699
- SOURCE_IF_NONE_MATCH = 'x-ms-source-if-none-match'
701
+ SOURCE_IF_NONE_MATCH = "x-ms-source-if-none-match"
700
702
 
701
703
  # The header for the If-Unmodified-Since condition.
702
- SOURCE_IF_UNMODIFIED_SINCE = 'x-ms-source-if-unmodified-since'
704
+ SOURCE_IF_UNMODIFIED_SINCE = "x-ms-source-if-unmodified-since"
703
705
 
704
706
  # The header for data ranges.
705
- STORAGE_RANGE = 'x-ms-range'
707
+ STORAGE_RANGE = "x-ms-range"
706
708
 
707
709
  # The header for storage version.
708
- STORAGE_VERSION = 'x-ms-version'
710
+ STORAGE_VERSION = "x-ms-version"
709
711
 
710
712
  # The UserAgent header.
711
- USER_AGENT = 'user-agent'
713
+ USER_AGENT = "user-agent"
712
714
 
713
715
  # The pop receipt header.
714
- POP_RECEIPT = 'x-ms-popreceipt'
716
+ POP_RECEIPT = "x-ms-popreceipt"
715
717
 
716
718
  # The time next visibile header.
717
- TIME_NEXT_VISIBLE = 'x-ms-time-next-visible'
719
+ TIME_NEXT_VISIBLE = "x-ms-time-next-visible"
718
720
 
719
721
  # The approximate message counter header.
720
- APPROXIMATE_MESSAGE_COUNT = 'x-ms-approximate-message-count'
722
+ APPROXIMATE_MESSAGE_COUNT = "x-ms-approximate-message-count"
721
723
 
722
724
  # The lease action header.
723
- LEASE_ACTION = 'x-ms-lease-action'
725
+ LEASE_ACTION = "x-ms-lease-action"
724
726
 
725
727
  # The accept header.
726
- ACCEPT = 'Accept'
728
+ ACCEPT = "Accept"
727
729
 
728
730
  # The accept charset header.
729
- ACCEPT_CHARSET = 'Accept-Charset'
731
+ ACCEPT_CHARSET = "Accept-Charset"
730
732
 
731
733
  # The host header.
732
- HOST = 'host'
734
+ HOST = "host"
733
735
 
734
736
  # The correlation identifier header.
735
- CORRELATION_ID = 'x-ms-correlation-id'
737
+ CORRELATION_ID = "x-ms-correlation-id"
736
738
 
737
739
  # The group identifier header.
738
- GROUP_ID = 'x-ms-group-id'
740
+ GROUP_ID = "x-ms-group-id"
739
741
 
740
742
  # The share quota header.
741
- SHARE_QUOTA = 'x-ms-share-quota'
743
+ SHARE_QUOTA = "x-ms-share-quota"
742
744
 
743
745
  # The max blob size header.
744
- BLOB_CONDITION_MAX_SIZE = 'x-ms-blob-condition-maxsize'
746
+ BLOB_CONDITION_MAX_SIZE = "x-ms-blob-condition-maxsize"
745
747
 
746
748
  # The append blob position header.
747
- BLOB_CONDITION_APPEND_POSITION = 'x-ms-blob-condition-appendpos'
749
+ BLOB_CONDITION_APPEND_POSITION = "x-ms-blob-condition-appendpos"
748
750
 
749
751
  # The append blob append offset header.
750
- BLOB_APPEND_OFFSET = 'x-ms-blob-append-offset'
752
+ BLOB_APPEND_OFFSET = "x-ms-blob-append-offset"
751
753
 
752
754
  # The append blob committed block header.
753
- BLOB_COMMITTED_BLOCK_COUNT = 'x-ms-blob-committed-block-count'
755
+ BLOB_COMMITTED_BLOCK_COUNT = "x-ms-blob-committed-block-count"
754
756
 
755
757
  # The returned response payload should be with no metadata.
756
- ODATA_NO_META = 'application/json;odata=nometadata'
758
+ ODATA_NO_META = "application/json;odata=nometadata"
757
759
 
758
760
  # The returned response payload should be with minimal metadata.
759
- ODATA_MIN_META = 'application/json;odata=minimalmetadata'
761
+ ODATA_MIN_META = "application/json;odata=minimalmetadata"
760
762
 
761
763
  # The returned response payload should be with full metadata.
762
- ODATA_FULL_META = 'application/json;odata=fullmetadata'
764
+ ODATA_FULL_META = "application/json;odata=fullmetadata"
765
+
766
+ # The header for if request has been encrypted at server side.
767
+ REQUEST_SERVER_ENCRYPTED = "x-ms-request-server-encrypted"
768
+
769
+ # The header for if blob data and application metadata has been encrypted at server side.
770
+ SERVER_ENCRYPTED = "x-ms-server-encrypted"
763
771
  end
764
772
 
765
773
  module QueryStringConstants
766
774
  # Query component for SAS API version.
767
- API_VERSION = 'api-version'
775
+ API_VERSION = "api-version"
768
776
 
769
777
  # The Comp value.
770
- COMP = 'comp'
778
+ COMP = "comp"
771
779
 
772
780
  # The Res Type.
773
- RESTYPE = 'restype'
781
+ RESTYPE = "restype"
774
782
 
775
783
  # The copy Id.
776
- COPY_ID = 'copyid'
784
+ COPY_ID = "copyid"
777
785
 
778
786
  # The Snapshot value.
779
- SNAPSHOT = 'snapshot'
787
+ SNAPSHOT = "snapshot"
780
788
 
781
789
  # The timeout value.
782
- TIMEOUT = 'timeout'
790
+ TIMEOUT = "timeout"
783
791
 
784
792
  # The signed start time query string argument for shared access signature.
785
- SIGNED_START = 'st'
793
+ SIGNED_START = "st"
786
794
 
787
795
  # The signed expiry time query string argument for shared access signature.
788
- SIGNED_EXPIRY = 'se'
796
+ SIGNED_EXPIRY = "se"
789
797
 
790
798
  # The signed resource query string argument for shared access signature.
791
- SIGNED_RESOURCE = 'sr'
799
+ SIGNED_RESOURCE = "sr"
792
800
 
793
801
  # The signed permissions query string argument for shared access signature.
794
- SIGNED_PERMISSIONS = 'sp'
802
+ SIGNED_PERMISSIONS = "sp"
795
803
 
796
804
  # The signed identifier query string argument for shared access signature.
797
- SIGNED_IDENTIFIER = 'si'
805
+ SIGNED_IDENTIFIER = "si"
798
806
 
799
807
  # The signature query string argument for shared access signature.
800
- SIGNATURE = 'sig'
808
+ SIGNATURE = "sig"
801
809
 
802
810
  # The signed version argument for shared access signature.
803
- SIGNED_VERSION = 'sv'
811
+ SIGNED_VERSION = "sv"
804
812
 
805
813
  # The cache control argument for shared access signature.
806
- CACHE_CONTROL = 'rscc'
814
+ CACHE_CONTROL = "rscc"
807
815
 
808
816
  # The content type argument for shared access signature.
809
- CONTENT_TYPE = 'rsct'
817
+ CONTENT_TYPE = "rsct"
810
818
 
811
819
  # The content encoding argument for shared access signature.
812
- CONTENT_ENCODING = 'rsce'
820
+ CONTENT_ENCODING = "rsce"
813
821
 
814
822
  # The content language argument for shared access signature.
815
- CONTENT_LANGUAGE = 'rscl'
823
+ CONTENT_LANGUAGE = "rscl"
816
824
 
817
825
  # The content disposition argument for shared access signature.
818
- CONTENT_DISPOSITION = 'rscd'
826
+ CONTENT_DISPOSITION = "rscd"
819
827
 
820
828
  # The block identifier query string argument for blob service.
821
- BLOCK_ID = 'blockid'
829
+ BLOCK_ID = "blockid"
822
830
 
823
831
  # The block list type query string argument for blob service.
824
- BLOCK_LIST_TYPE = 'blocklisttype'
832
+ BLOCK_LIST_TYPE = "blocklisttype"
825
833
 
826
834
  # The prefix query string argument for listing operations.
827
- PREFIX = 'prefix'
835
+ PREFIX = "prefix"
828
836
 
829
837
  # The marker query string argument for listing operations.
830
- MARKER = 'marker'
838
+ MARKER = "marker"
831
839
 
832
840
  # The maxresults query string argument for listing operations.
833
- MAX_RESULTS = 'maxresults'
841
+ MAX_RESULTS = "maxresults"
834
842
 
835
843
  # The delimiter query string argument for listing operations.
836
- DELIMITER = 'delimiter'
844
+ DELIMITER = "delimiter"
837
845
 
838
846
  # The include query string argument for listing operations.
839
- INCLUDE = 'include'
847
+ INCLUDE = "include"
840
848
 
841
849
  # The peekonly query string argument for queue service.
842
- PEEK_ONLY = 'peekonly'
850
+ PEEK_ONLY = "peekonly"
843
851
 
844
852
  # The numofmessages query string argument for queue service.
845
- NUM_OF_MESSAGES = 'numofmessages'
853
+ NUM_OF_MESSAGES = "numofmessages"
846
854
 
847
855
  # The popreceipt query string argument for queue service.
848
- POP_RECEIPT = 'popreceipt'
856
+ POP_RECEIPT = "popreceipt"
849
857
 
850
858
  # The visibilitytimeout query string argument for queue service.
851
- VISIBILITY_TIMEOUT = 'visibilitytimeout'
859
+ VISIBILITY_TIMEOUT = "visibilitytimeout"
852
860
 
853
861
  # The messagettl query string argument for queue service.
854
- MESSAGE_TTL = 'messagettl'
862
+ MESSAGE_TTL = "messagettl"
855
863
 
856
864
  # The select query string argument.
857
- SELECT = '$select'
865
+ SELECT = "$select"
858
866
 
859
867
  # The filter query string argument.
860
- FILTER = '$filter'
868
+ FILTER = "$filter"
861
869
 
862
870
  # The top query string argument.
863
- TOP = '$top'
871
+ TOP = "$top"
864
872
 
865
873
  # The skip query string argument.
866
- SKIP = '$skip'
874
+ SKIP = "$skip"
867
875
 
868
876
  # The next partition key query string argument for table service.
869
- NEXT_PARTITION_KEY = 'NextPartitionKey'
877
+ NEXT_PARTITION_KEY = "NextPartitionKey"
870
878
 
871
879
  # The next row key query string argument for table service.
872
- NEXT_ROW_KEY = 'NextRowKey'
880
+ NEXT_ROW_KEY = "NextRowKey"
873
881
 
874
882
  # The lock identifier for service bus messages.
875
- LOCK_ID = 'lockid'
883
+ LOCK_ID = "lockid"
876
884
 
877
885
  # The table name for table SAS URI's.
878
- TABLENAME = 'tn'
886
+ TABLENAME = "tn"
879
887
 
880
888
  # The starting Partition Key for tableSAS URI's.
881
- STARTPK = 'spk'
889
+ STARTPK = "spk"
882
890
 
883
891
  # The starting Partition Key for tableSAS URI's.
884
- STARTRK = 'srk'
892
+ STARTRK = "srk"
885
893
 
886
894
  # The ending Partition Key for tableSAS URI's.
887
- ENDPK = 'epk'
895
+ ENDPK = "epk"
888
896
 
889
897
  # The ending Partition Key for tableSAS URI's.
890
- ENDRK = 'erk'
898
+ ENDRK = "erk"
891
899
 
892
900
  # ACL
893
- ACL = 'acl'
901
+ ACL = "acl"
902
+
903
+ # Incremental Copy
904
+ INCREMENTAL_COPY = "incrementalcopy"
894
905
  end
895
906
 
896
907
  module StorageServiceClientConstants
897
908
  # The default protocol.
898
- DEFAULT_PROTOCOL = 'https'
909
+ DEFAULT_PROTOCOL = "https"
899
910
 
900
911
  # Default credentials.
901
- DEVSTORE_STORAGE_ACCOUNT = 'devstoreaccount1'
902
- DEVSTORE_STORAGE_ACCESS_KEY = 'Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw=='
912
+ DEVSTORE_STORAGE_ACCOUNT = "devstoreaccount1"
913
+ DEVSTORE_STORAGE_ACCESS_KEY = "Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw=="
903
914
 
904
915
  # The development store URI.
905
- DEV_STORE_URI = 'http://127.0.0.1'
916
+ DEV_STORE_URI = "http://127.0.0.1"
906
917
 
907
918
  # Development ServiceClient URLs.
908
- DEVSTORE_BLOB_HOST_PORT = '10000'
909
- DEVSTORE_QUEUE_HOST_PORT = '10001'
910
- DEVSTORE_TABLE_HOST_PORT = '10002'
911
- DEVSTORE_FILE_HOST_PORT = '10003'
919
+ DEVSTORE_BLOB_HOST_PORT = "10000"
920
+ DEVSTORE_QUEUE_HOST_PORT = "10001"
921
+ DEVSTORE_TABLE_HOST_PORT = "10002"
922
+ DEVSTORE_FILE_HOST_PORT = "10003"
912
923
 
913
- DEFAULT_ENDPOINT_SUFFIX = 'core.windows.net'
924
+ DEFAULT_ENDPOINT_SUFFIX = "core.windows.net"
914
925
  end
915
926
 
916
927
  module HttpConstants
917
928
  # Http Verbs
918
929
  module HttpVerbs
919
- PUT = 'PUT'
920
- GET = 'GET'
921
- DELETE = 'DELETE'
922
- POST = 'POST'
923
- MERGE = 'MERGE'
924
- HEAD = 'HEAD'
930
+ PUT = "PUT"
931
+ GET = "GET"
932
+ DELETE = "DELETE"
933
+ POST = "POST"
934
+ MERGE = "MERGE"
935
+ HEAD = "HEAD"
925
936
  end
926
937
 
927
938
  # Response codes.
@@ -942,32 +953,32 @@ module Azure::Storage
942
953
  end
943
954
 
944
955
  module BlobErrorCodeStrings
945
- INVALID_BLOCK_ID = 'InvalidBlockId'
946
- BLOB_NOT_FOUND = 'BlobNotFound'
947
- BLOB_ALREADY_EXISTS = 'BlobAlreadyExists'
948
- CONTAINER_ALREADY_EXISTS = 'ContainerAlreadyExists'
949
- CONTAINER_NOT_FOUND = 'ContainerNotFound'
950
- INVALID_BLOB_OR_BLOCK = 'InvalidBlobOrBlock'
951
- INVALID_BLOCK_LIST = 'InvalidBlockList'
956
+ INVALID_BLOCK_ID = "InvalidBlockId"
957
+ BLOB_NOT_FOUND = "BlobNotFound"
958
+ BLOB_ALREADY_EXISTS = "BlobAlreadyExists"
959
+ CONTAINER_ALREADY_EXISTS = "ContainerAlreadyExists"
960
+ CONTAINER_NOT_FOUND = "ContainerNotFound"
961
+ INVALID_BLOB_OR_BLOCK = "InvalidBlobOrBlock"
962
+ INVALID_BLOCK_LIST = "InvalidBlockList"
952
963
  end
953
964
 
954
965
  module FileErrorCodeStrings
955
- SHARE_ALREADY_EXISTS = 'ShareAlreadyExists'
956
- SHARE_NOT_FOUND = 'ShareNotFound'
957
- FILE_NOT_FOUND = 'FileNotFound'
966
+ SHARE_ALREADY_EXISTS = "ShareAlreadyExists"
967
+ SHARE_NOT_FOUND = "ShareNotFound"
968
+ FILE_NOT_FOUND = "FileNotFound"
958
969
  end
959
970
 
960
971
  module QueueErrorCodeStrings
961
- QUEUE_NOT_FOUND = 'QueueNotFound'
962
- QUEUE_DISABLED = 'QueueDisabled'
963
- QUEUE_ALREADY_EXISTS = 'QueueAlreadyExists'
964
- QUEUE_NOT_EMPTY = 'QueueNotEmpty'
965
- QUEUE_BEING_DELETED = 'QueueBeingDeleted'
966
- POP_RECEIPT_MISMATCH = 'PopReceiptMismatch'
967
- INVALID_PARAMETER = 'InvalidParameter'
968
- MESSAGE_NOT_FOUND = 'MessageNotFound'
969
- MESSAGE_TOO_LARGE = 'MessageTooLarge'
970
- INVALID_MARKER = 'InvalidMarker'
972
+ QUEUE_NOT_FOUND = "QueueNotFound"
973
+ QUEUE_DISABLED = "QueueDisabled"
974
+ QUEUE_ALREADY_EXISTS = "QueueAlreadyExists"
975
+ QUEUE_NOT_EMPTY = "QueueNotEmpty"
976
+ QUEUE_BEING_DELETED = "QueueBeingDeleted"
977
+ POP_RECEIPT_MISMATCH = "PopReceiptMismatch"
978
+ INVALID_PARAMETER = "InvalidParameter"
979
+ MESSAGE_NOT_FOUND = "MessageNotFound"
980
+ MESSAGE_TOO_LARGE = "MessageTooLarge"
981
+ INVALID_MARKER = "InvalidMarker"
971
982
  end
972
983
 
973
984
  # Constants for storage error strings
@@ -975,128 +986,127 @@ module Azure::Storage
975
986
  module StorageErrorCodeStrings
976
987
  # Not Modified (304) = The condition specified in the conditional header(s) was not met for a read operation.
977
988
  # Precondition Failed (412) = The condition specified in the conditional header(s) was not met for a write operation.
978
- CONDITION_NOT_MET = 'ConditionNotMet'
989
+ CONDITION_NOT_MET = "ConditionNotMet"
979
990
  # Bad Request (400) = A required HTTP header was not specified.
980
- MISSING_REQUIRED_HEADER = 'MissingRequiredHeader'
991
+ MISSING_REQUIRED_HEADER = "MissingRequiredHeader"
981
992
  # Bad Request (400) = A required XML node was not specified in the request body.
982
- MISSING_REQUIRED_XML_NODE = 'MissingRequiredXmlNode'
993
+ MISSING_REQUIRED_XML_NODE = "MissingRequiredXmlNode"
983
994
  # Bad Request (400) = One of the HTTP headers specified in the request is not supported.
984
- UNSUPPORTED_HEADER = 'UnsupportedHeader'
995
+ UNSUPPORTED_HEADER = "UnsupportedHeader"
985
996
  # Bad Request (400) = One of the XML nodes specified in the request body is not supported.
986
- UNSUPPORTED_XML_NODE = 'UnsupportedXmlNode'
997
+ UNSUPPORTED_XML_NODE = "UnsupportedXmlNode"
987
998
  # Bad Request (400) = The value provided for one of the HTTP headers was not in the correct format.
988
- INVALID_HEADER_VALUE = 'InvalidHeaderValue'
999
+ INVALID_HEADER_VALUE = "InvalidHeaderValue"
989
1000
  # Bad Request (400) = The value provided for one of the XML nodes in the request body was not in the correct format.
990
- INVALID_XML_NODE_VALUE = 'InvalidXmlNodeValue'
1001
+ INVALID_XML_NODE_VALUE = "InvalidXmlNodeValue"
991
1002
  # Bad Request (400) = A required query parameter was not specified for this request.
992
- MISSING_REQUIRED_QUERY_PARAMETER = 'MissingRequiredQueryParameter'
1003
+ MISSING_REQUIRED_QUERY_PARAMETER = "MissingRequiredQueryParameter"
993
1004
  # Bad Request (400) = One of the query parameters specified in the request URI is not supported.
994
- UNSUPPORTED_QUERY_PARAMETER = 'UnsupportedQueryParameter'
1005
+ UNSUPPORTED_QUERY_PARAMETER = "UnsupportedQueryParameter"
995
1006
  # Bad Request (400) = An invalid value was specified for one of the query parameters in the request URI.
996
- INVALID_QUERY_PARAMETER_VALUE = 'InvalidQueryParameterValue'
1007
+ INVALID_QUERY_PARAMETER_VALUE = "InvalidQueryParameterValue"
997
1008
  # Bad Request (400) = A query parameter specified in the request URI is outside the permissible range.
998
- OUT_OF_RANGE_QUERY_PARAMETER_VALUE = 'OutOfRangeQueryParameterValue'
1009
+ OUT_OF_RANGE_QUERY_PARAMETER_VALUE = "OutOfRangeQueryParameterValue"
999
1010
  # Bad Request (400) = The url in the request could not be parsed.
1000
- REQUEST_URL_FAILED_TO_PARSE = 'RequestUrlFailedToParse'
1011
+ REQUEST_URL_FAILED_TO_PARSE = "RequestUrlFailedToParse"
1001
1012
  # Bad Request (400) = The requested URI does not represent any resource on the server.
1002
- INVALID_URI = 'InvalidUri'
1013
+ INVALID_URI = "InvalidUri"
1003
1014
  # Bad Request (400) = The HTTP verb specified was not recognized by the server.
1004
- INVALID_HTTP_VERB = 'InvalidHttpVerb'
1015
+ INVALID_HTTP_VERB = "InvalidHttpVerb"
1005
1016
  # Bad Request (400) = The key for one of the metadata key-value pairs is empty.
1006
- EMPTY_METADATA_KEY = 'EmptyMetadataKey'
1017
+ EMPTY_METADATA_KEY = "EmptyMetadataKey"
1007
1018
  # Bad Request (400) = The specified XML is not syntactically valid.
1008
- INVALID_XML_DOCUMENT = 'InvalidXmlDocument'
1019
+ INVALID_XML_DOCUMENT = "InvalidXmlDocument"
1009
1020
  # Bad Request (400) = The MD5 value specified in the request did not match the MD5 value calculated by the server.
1010
- MD5_MISMATCH = 'Md5Mismatch'
1021
+ MD5_MISMATCH = "Md5Mismatch"
1011
1022
  # Bad Request (400) = The MD5 value specified in the request is invalid. The MD5 value must be 128 bits and Base64-encoded.
1012
- INVALID_MD5 = 'InvalidMd5'
1023
+ INVALID_MD5 = "InvalidMd5"
1013
1024
  # Bad Request (400) = One of the request inputs is out of range.
1014
- OUT_OF_RANGE_INPUT = 'OutOfRangeInput'
1025
+ OUT_OF_RANGE_INPUT = "OutOfRangeInput"
1015
1026
  # Bad Request (400) = The authentication information was not provided in the correct format. Verify the value of Authorization header.
1016
- INVALID_AUTHENTICATION_INFO = 'InvalidAuthenticationInfo'
1027
+ INVALID_AUTHENTICATION_INFO = "InvalidAuthenticationInfo"
1017
1028
  # Bad Request (400) = One of the request inputs is not valid.
1018
- INVALID_INPUT = 'InvalidInput'
1029
+ INVALID_INPUT = "InvalidInput"
1019
1030
  # Bad Request (400) = The specified metadata is invalid. It includes characters that are not permitted.
1020
- INVALID_METADATA = 'InvalidMetadata'
1031
+ INVALID_METADATA = "InvalidMetadata"
1021
1032
  # Bad Request (400) = The specifed resource name contains invalid characters.
1022
- INVALID_RESOURCE_NAME = 'InvalidResourceName'
1033
+ INVALID_RESOURCE_NAME = "InvalidResourceName"
1023
1034
  # Bad Request (400) = The size of the specified metadata exceeds the maximum size permitted.
1024
- METADATA_TOO_LARGE = 'MetadataTooLarge'
1035
+ METADATA_TOO_LARGE = "MetadataTooLarge"
1025
1036
  # Bad Request (400) = Condition headers are not supported.
1026
- CONDITION_HEADER_NOT_SUPPORTED = 'ConditionHeadersNotSupported'
1037
+ CONDITION_HEADER_NOT_SUPPORTED = "ConditionHeadersNotSupported"
1027
1038
  # Bad Request (400) = Multiple condition headers are not supported.
1028
- MULTIPLE_CONDITION_HEADER_NOT_SUPPORTED = 'MultipleConditionHeadersNotSupported'
1039
+ MULTIPLE_CONDITION_HEADER_NOT_SUPPORTED = "MultipleConditionHeadersNotSupported"
1029
1040
  # Forbidden (403) = Server failed to authenticate the request. Make sure the value of the Authorization header is formed correctly including the signature.
1030
- AUTHENTICATION_FAILED = 'AuthenticationFailed'
1041
+ AUTHENTICATION_FAILED = "AuthenticationFailed"
1031
1042
  # Forbidden (403) = Read-access geo-redundant replication is not enabled for the account.
1032
1043
  # Forbidden (403) = Write operations to the secondary location are not allowed.
1033
1044
  # Forbidden (403) = The account being accessed does not have sufficient permissions to execute this operation.
1034
- INSUFFICIENT_ACCOUNT_PERMISSIONS = 'InsufficientAccountPermissions'
1045
+ INSUFFICIENT_ACCOUNT_PERMISSIONS = "InsufficientAccountPermissions"
1035
1046
  # Not Found (404) = The specified resource does not exist.
1036
- RESOURCE_NOT_FOUND = 'ResourceNotFound'
1047
+ RESOURCE_NOT_FOUND = "ResourceNotFound"
1037
1048
  # Forbidden (403) = The specified account is disabled.
1038
- ACCOUNT_IS_DISABLED = 'AccountIsDisabled'
1049
+ ACCOUNT_IS_DISABLED = "AccountIsDisabled"
1039
1050
  # Method Not Allowed (405) = The resource doesn't support the specified HTTP verb.
1040
- UNSUPPORTED_HTTP_VERB = 'UnsupportedHttpVerb'
1051
+ UNSUPPORTED_HTTP_VERB = "UnsupportedHttpVerb"
1041
1052
  # Conflict (409) = The specified account already exists.
1042
- ACCOUNT_ALREADY_EXISTS = 'AccountAlreadyExists'
1053
+ ACCOUNT_ALREADY_EXISTS = "AccountAlreadyExists"
1043
1054
  # Conflict (409) = The specified account is in the process of being created.
1044
- ACCOUNT_BEING_CREATED = 'AccountBeingCreated'
1055
+ ACCOUNT_BEING_CREATED = "AccountBeingCreated"
1045
1056
  # Conflict (409) = The specified resource already exists.
1046
- RESOURCE_ALREADY_EXISTS = 'ResourceAlreadyExists'
1057
+ RESOURCE_ALREADY_EXISTS = "ResourceAlreadyExists"
1047
1058
  # Conflict (409) = The specified resource type does not match the type of the existing resource.
1048
- RESOURCE_TYPE_MISMATCH = 'ResourceTypeMismatch'
1059
+ RESOURCE_TYPE_MISMATCH = "ResourceTypeMismatch"
1049
1060
  # Length Required (411) = The Content-Length header was not specified.
1050
- MISSING_CONTENT_LENGTH_HEADER = 'MissingContentLengthHeader'
1061
+ MISSING_CONTENT_LENGTH_HEADER = "MissingContentLengthHeader"
1051
1062
  # Request Entity Too Large (413) = The size of the request body exceeds the maximum size permitted.
1052
- REQUEST_BODY_TOO_LARGE = 'RequestBodyTooLarge'
1063
+ REQUEST_BODY_TOO_LARGE = "RequestBodyTooLarge"
1053
1064
  # Requested Range Not Satisfiable (416) = The range specified is invalid for the current size of the resource.
1054
- INVALID_RANGE = 'InvalidRange'
1065
+ INVALID_RANGE = "InvalidRange"
1055
1066
  # Internal Server Error (500) = The server encountered an internal error. Please retry the request.
1056
- INTERNAL_ERROR = 'InternalError'
1067
+ INTERNAL_ERROR = "InternalError"
1057
1068
  # Internal Server Error (500) = The operation could not be completed within the permitted time.
1058
- OPERATION_TIMED_OUT = 'OperationTimedOut'
1069
+ OPERATION_TIMED_OUT = "OperationTimedOut"
1059
1070
  # Service Unavailable (503) = The server is currently unable to receive requests. Please retry your request.
1060
- SERVER_BUSY = 'ServerBusy'
1071
+ SERVER_BUSY = "ServerBusy"
1061
1072
 
1062
1073
  # Legacy error code strings
1063
- UPDATE_CONDITION_NOT_SATISFIED = 'UpdateConditionNotSatisfied'
1064
- CONTAINER_NOT_FOUND = 'ContainerNotFound'
1065
- CONTAINER_ALREADY_EXISTS = 'ContainerAlreadyExists'
1066
- CONTAINER_DISABLED = 'ContainerDisabled'
1067
- CONTAINER_BEING_DELETED = 'ContainerBeingDeleted'
1074
+ UPDATE_CONDITION_NOT_SATISFIED = "UpdateConditionNotSatisfied"
1075
+ CONTAINER_NOT_FOUND = "ContainerNotFound"
1076
+ CONTAINER_ALREADY_EXISTS = "ContainerAlreadyExists"
1077
+ CONTAINER_DISABLED = "ContainerDisabled"
1078
+ CONTAINER_BEING_DELETED = "ContainerBeingDeleted"
1068
1079
  end
1069
1080
 
1070
1081
  module TableErrorCodeStrings
1071
- XMETHOD_NOT_USING_POST = 'XMethodNotUsingPost'
1072
- XMETHOD_INCORRECT_VALUE = 'XMethodIncorrectValue'
1073
- XMETHOD_INCORRECT_COUNT = 'XMethodIncorrectCount'
1074
- TABLE_HAS_NO_PROPERTIES = 'TableHasNoProperties'
1075
- DUPLICATE_PROPERTIES_SPECIFIED = 'DuplicatePropertiesSpecified'
1076
- TABLE_HAS_NO_SUCH_PROPERTY = 'TableHasNoSuchProperty'
1077
- DUPLICATE_KEY_PROPERTY_SPECIFIED = 'DuplicateKeyPropertySpecified'
1078
- TABLE_ALREADY_EXISTS = 'TableAlreadyExists'
1079
- TABLE_NOT_FOUND = 'TableNotFound'
1080
- ENTITY_NOT_FOUND = 'EntityNotFound'
1081
- ENTITY_ALREADY_EXISTS = 'EntityAlreadyExists'
1082
- PARTITION_KEY_NOT_SPECIFIED = 'PartitionKeyNotSpecified'
1083
- OPERATOR_INVALID = 'OperatorInvalid'
1084
- UPDATE_CONDITION_NOT_SATISFIED = 'UpdateConditionNotSatisfied'
1085
- PROPERTIES_NEED_VALUE = 'PropertiesNeedValue'
1086
- PARTITION_KEY_PROPERTY_CANNOT_BE_UPDATED = 'PartitionKeyPropertyCannotBeUpdated'
1087
- TOO_MANY_PROPERTIES = 'TooManyProperties'
1088
- ENTITY_TOO_LARGE = 'EntityTooLarge'
1089
- PROPERTY_VALUE_TOO_LARGE = 'PropertyValueTooLarge'
1090
- INVALID_VALUE_TYPE = 'InvalidValueType'
1091
- TABLE_BEING_DELETED = 'TableBeingDeleted'
1092
- TABLE_SERVER_OUT_OF_MEMORY = 'TableServerOutOfMemory'
1093
- PRIMARY_KEY_PROPERTY_IS_INVALID_TYPE = 'PrimaryKeyPropertyIsInvalidType'
1094
- PROPERTY_NAME_TOO_LONG = 'PropertyNameTooLong'
1095
- PROPERTY_NAME_INVALID = 'PropertyNameInvalid'
1096
- BATCH_OPERATION_NOT_SUPPORTED = 'BatchOperationNotSupported'
1097
- JSON_FORMAT_NOT_SUPPORTED = 'JsonFormatNotSupported'
1098
- METHOD_NOT_ALLOWED = 'MethodNotAllowed'
1099
- NOT_IMPLEMENTED = 'NotImplemented'
1082
+ XMETHOD_NOT_USING_POST = "XMethodNotUsingPost"
1083
+ XMETHOD_INCORRECT_VALUE = "XMethodIncorrectValue"
1084
+ XMETHOD_INCORRECT_COUNT = "XMethodIncorrectCount"
1085
+ TABLE_HAS_NO_PROPERTIES = "TableHasNoProperties"
1086
+ DUPLICATE_PROPERTIES_SPECIFIED = "DuplicatePropertiesSpecified"
1087
+ TABLE_HAS_NO_SUCH_PROPERTY = "TableHasNoSuchProperty"
1088
+ DUPLICATE_KEY_PROPERTY_SPECIFIED = "DuplicateKeyPropertySpecified"
1089
+ TABLE_ALREADY_EXISTS = "TableAlreadyExists"
1090
+ TABLE_NOT_FOUND = "TableNotFound"
1091
+ ENTITY_NOT_FOUND = "EntityNotFound"
1092
+ ENTITY_ALREADY_EXISTS = "EntityAlreadyExists"
1093
+ PARTITION_KEY_NOT_SPECIFIED = "PartitionKeyNotSpecified"
1094
+ OPERATOR_INVALID = "OperatorInvalid"
1095
+ UPDATE_CONDITION_NOT_SATISFIED = "UpdateConditionNotSatisfied"
1096
+ PROPERTIES_NEED_VALUE = "PropertiesNeedValue"
1097
+ PARTITION_KEY_PROPERTY_CANNOT_BE_UPDATED = "PartitionKeyPropertyCannotBeUpdated"
1098
+ TOO_MANY_PROPERTIES = "TooManyProperties"
1099
+ ENTITY_TOO_LARGE = "EntityTooLarge"
1100
+ PROPERTY_VALUE_TOO_LARGE = "PropertyValueTooLarge"
1101
+ INVALID_VALUE_TYPE = "InvalidValueType"
1102
+ TABLE_BEING_DELETED = "TableBeingDeleted"
1103
+ TABLE_SERVER_OUT_OF_MEMORY = "TableServerOutOfMemory"
1104
+ PRIMARY_KEY_PROPERTY_IS_INVALID_TYPE = "PrimaryKeyPropertyIsInvalidType"
1105
+ PROPERTY_NAME_TOO_LONG = "PropertyNameTooLong"
1106
+ PROPERTY_NAME_INVALID = "PropertyNameInvalid"
1107
+ BATCH_OPERATION_NOT_SUPPORTED = "BatchOperationNotSupported"
1108
+ JSON_FORMAT_NOT_SUPPORTED = "JsonFormatNotSupported"
1109
+ METHOD_NOT_ALLOWED = "MethodNotAllowed"
1110
+ NOT_IMPLEMENTED = "NotImplemented"
1100
1111
  end
1101
-
1102
- end
1112
+ end