/// <inheritdoc />
        public async Task <SchemaBatchOperationResult> CreateManyAsync(IEnumerable <SchemaDetail> schemaDetails, bool enableForBinaryFiles, TimeSpan?timeout = null, CancellationToken cancellationToken = default(CancellationToken))
        {
            if (!schemaDetails.Any())
            {
                return(SchemaBatchOperationResult.Empty);
            }

            var request = new SchemaCreateManyRequest();

            // Map schema to binary schemas
            foreach (var schemaDetail in schemaDetails)
            {
                if (enableForBinaryFiles && schemaDetail.Types.Contains(SchemaType.Layer))
                {
                    var binarySchemas = new List <string>
                    {
                        nameof(FileMetadata),
                        nameof(AudioMetadata),
                        nameof(DocumentMetadata),
                        nameof(ImageMetadata),
                        nameof(VideoMetadata),
                    };

                    schemaDetail.ReferencedInContentSchemaIds = binarySchemas;
                }

                var createRequest = MapSchemaDetailToCreateRequest(schemaDetail);
                request.Schemas.Add(createRequest);
            }

            return(await CreateManyAsync(request, timeout, cancellationToken).ConfigureAwait(false));
        }
        /// <inheritdoc />
        public async Task <SchemaBatchOperationResult> CreateManyAsync(SchemaCreateManyRequest request, TimeSpan?timeout = null, CancellationToken cancellationToken = default(CancellationToken))
        {
            var businessProcess = await CreateManyCoreAsync(request, cancellationToken).ConfigureAwait(false);

            return(await WaitForBusinessProcessAndReturnResult(businessProcess.Id, timeout, cancellationToken).ConfigureAwait(false));
        }