Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Generate overloads that take both Flux<ByteBuffer> and BinaryData. #1492

Closed
kasobol-msft opened this issue May 31, 2022 · 1 comment
Closed
Assignees

Comments

@kasobol-msft
Copy link

The HttpRequest in the core can now take BinaryData as body and not translate it to Flux at all.
See Azure/azure-sdk-for-java#26784 and linked PRs.

In order to for HLC to leverage this we need to start generating overloads that take BinaryData in addition to Flux<ByteBuffer> .

For example for this API:
https://github.com/Azure/azure-sdk-for-java/blob/d92601d9ba0818cdee56701be47a846a5cdfc303/sdk/storage/azure-storage-blob/src/main/java/com/azure/storage/blob/implementation/BlockBlobsImpl.java#L65-L109

the generator should also generate an overload like this:

    /**
     * The interface defining all the services for AzureBlobStorageBlockBlobs to be used by the proxy service to perform
     * REST calls.
     */
    @Host("{url}")
    @ServiceInterface(name = "AzureBlobStorageBloc")
    public interface BlockBlobsService {
        @Put("/{containerName}/{blob}")
        @ExpectedResponses({201})
        @UnexpectedResponseExceptionType(BlobStorageException.class)
        Mono<BlockBlobsUploadResponse> upload(
                @HostParam("url") String url,
                @PathParam("containerName") String containerName,
                @PathParam("blob") String blob,
                @HeaderParam("x-ms-blob-type") String blobType,
                @QueryParam("timeout") Integer timeout,
                @HeaderParam("Content-MD5") String transactionalContentMD5,
                @HeaderParam("Content-Length") long contentLength,
                @HeaderParam("x-ms-blob-content-type") String contentType,
                @HeaderParam("x-ms-blob-content-encoding") String contentEncoding,
                @HeaderParam("x-ms-blob-content-language") String contentLanguage,
                @HeaderParam("x-ms-blob-content-md5") String contentMd5,
                @HeaderParam("x-ms-blob-cache-control") String cacheControl,
                @HeaderParam("x-ms-meta-") Map<String, String> metadata,
                @HeaderParam("x-ms-lease-id") String leaseId,
                @HeaderParam("x-ms-blob-content-disposition") String contentDisposition,
                @HeaderParam("x-ms-encryption-key") String encryptionKey,
                @HeaderParam("x-ms-encryption-key-sha256") String encryptionKeySha256,
                @HeaderParam("x-ms-encryption-algorithm") EncryptionAlgorithmType encryptionAlgorithm,
                @HeaderParam("x-ms-encryption-scope") String encryptionScope,
                @HeaderParam("x-ms-access-tier") AccessTier tier,
                @HeaderParam("If-Modified-Since") DateTimeRfc1123 ifModifiedSince,
                @HeaderParam("If-Unmodified-Since") DateTimeRfc1123 ifUnmodifiedSince,
                @HeaderParam("If-Match") String ifMatch,
                @HeaderParam("If-None-Match") String ifNoneMatch,
                @HeaderParam("x-ms-if-tags") String ifTags,
                @HeaderParam("x-ms-version") String version,
                @HeaderParam("x-ms-client-request-id") String requestId,
                @HeaderParam("x-ms-tags") String blobTagsString,
                @HeaderParam("x-ms-immutability-policy-until-date") DateTimeRfc1123 immutabilityPolicyExpiry,
                @HeaderParam("x-ms-immutability-policy-mode") BlobImmutabilityPolicyMode immutabilityPolicyMode,
                @HeaderParam("x-ms-legal-hold") Boolean legalHold,
                @BodyParam("application/octet-stream") BinaryData body,
                @HeaderParam("Accept") String accept,
                Context context);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants