internal HttpMessage CreateSetAccessTierRequest(string containerName, string blob, BatchAccessTier tier, int?timeout, BatchRehydratePriority?rehydratePriority, string leaseId, string ifTags) { var message = _pipeline.CreateMessage(); var request = message.Request; request.Method = RequestMethod.Put; var uri = new RawRequestUriBuilder(); uri.AppendRaw(_url, false); uri.AppendPath("/", false); uri.AppendPath(containerName, false); uri.AppendPath("/", false); uri.AppendPath(blob, false); uri.AppendQuery("comp", "tier", true); if (_snapshot != null) { uri.AppendQuery("snapshot", _snapshot, true); } if (_versionId != null) { uri.AppendQuery("versionid", _versionId, true); } if (timeout != null) { uri.AppendQuery("timeout", timeout.Value, true); } request.Uri = uri; request.Headers.Add("x-ms-access-tier", tier.ToString()); if (rehydratePriority != null) { request.Headers.Add("x-ms-rehydrate-priority", rehydratePriority.Value.ToString()); } request.Headers.Add("x-ms-version", _version); if (leaseId != null) { request.Headers.Add("x-ms-lease-id", leaseId); } if (ifTags != null) { request.Headers.Add("x-ms-if-tags", ifTags); } request.Headers.Add("Accept", "application/xml"); return(message); }
public ResponseWithHeaders <BlobSetAccessTierHeaders> SetAccessTier(string containerName, string blob, BatchAccessTier tier, int?timeout = null, BatchRehydratePriority?rehydratePriority = null, string leaseId = null, string ifTags = null, CancellationToken cancellationToken = default) { if (containerName == null) { throw new ArgumentNullException(nameof(containerName)); } if (blob == null) { throw new ArgumentNullException(nameof(blob)); } using var message = CreateSetAccessTierRequest(containerName, blob, tier, timeout, rehydratePriority, leaseId, ifTags); _pipeline.Send(message, cancellationToken); var headers = new BlobSetAccessTierHeaders(message.Response); switch (message.Response.Status) { case 200: case 202: return(ResponseWithHeaders.FromValue(headers, message.Response)); default: throw ClientDiagnostics.CreateRequestFailedException(message.Response); } }