Changes in version 0.8.10 - replace Rf_error with Rcpp::stop in C++ code for proper stack unwinding and memory cleanup (#971). This change prevents memory leaks when errors occur in the populate function and ensures compatibility with future Rcpp versions. Thanks to @Enchufa2 for raising issue. Changes in version 0.8.9 (2026-02-17) - fix populate function to normalize custom subclasses of any base type to match interface specification. Custom classes (e.g., fs_path, glue, custom integer/numeric subclasses) are stripped to their base types, while R built-in temporal classes (POSIXct, POSIXt, Date) are preserved for proper serialization. When custom classes inherit from temporal classes, only the temporal portion is retained. Changes in version 0.8.8 (2026-01-13) - fix C++ compilation issues on older R versions by refactoring code to use C++11 standard and requiring R >= 4.1.0 (#957). Thanks to @detule for raising the issue. - fix populate function to correctly infer and add type tags for nested structures, particularly for numeric values inside map attributes in DynamoDB operations (#959). Thanks to @dleopold for raising the issue. Changes in version 0.8.7 (2025-11-25) - fix timezone handling in bearer token tests (#955). Thanks to @kyleam for raising issue. Changes in version 0.8.6 (2025-11-19) - fix default json scalar from standard '"%s"' and use R classes to determine json parsing. - support httr2:::StreamingBody class - add support for bearer token authentication for AWS services (e.g., Bedrock). Bearer tokens can be provided via environment variables AWS_BEARER_TOKEN (generic) or AWS_BEARER_TOKEN_ (service-specific, e.g., AWS_BEARER_TOKEN_BEDROCK). Optional expiration can be set via AWS_BEARER_TOKEN_EXPIRATION. When available, bearer authentication is automatically used instead of AWS Signature V4 for supported services, following RFC 6750 Section 2.1 (#952). Thanks to @benhmin for raising issue. Changes in version 0.8.5 (2025-07-25) - restrict httr2 version (#933). Thanks to @idavydov for raising the issue. - fix host prefix allowing for parameters to be passed in based on hostLabel (#941). Thanks to @dannypage for raising the issue. - add s3_virtual_address to force how url address is built (#937) thanks to @noamross for raising the issue. Changes in version 0.8.4 (2025-05-27) - fix ensure byte buffer push back is working correctly in paws_stream_parser (#930). Thanks to @joeramirez for raising issue. Changes in version 0.8.3 (2025-04-17) - fix query being incorrectly parsed (#923). Thanks to @joeramirez for raising issue. Changes in version 0.8.2 (2025-03-05) - fix issue regex timeout or rstudio crashes in windows (#901, #905). Thanks to @anpatton for debugging issue. - revert auto sso retry, this was causing tokens being built incorrectly (#896) thanks to @sckott for testing - fix signing region for global services (#900) thanks to @jwijffels for testing - fix tranpose raising warning when list to be tranposed has different lengths - fix issue of failing to correctly read in wide ini files (#896) thanks to @jwijffels for identifying and issue with session tokens being incorrect length. Changes in version 0.8.1 (2025-02-08) - skip network connection unit tests on cran Changes in version 0.8.0 (2025-02-07) - migrate backend from httr to httr2 - enrich sso message (#844). Thanks to @hadley for raising issue. - attempt to automatically set/refresh sso credentials by calling aws cli (#844) - moved api log level to debug and trace. This is to prevent info level being saturated by api calls. - new PawsStreamHandler, allows paws to handle aws stream event (#842). Thankyou to @hadley for developing the initial solution in httr2. - deprecated custom handler for s3_unmarshal_select_object_content in favour or new streamhandler - migrate parse_url, parse_query_string and build_url to cpp for performance improvement. - ensure url is set to lower case before signature - migrate vendor from aws-sdk-js to aws-sdk-python boto3. Changes in version 0.7.7 (2024-10-03) - fix unix time expiration check - remove redundant caching method - ensure all calls has paws user-agent string attached Changes in version 0.7.6 (2024-09-04) - fix handle_copy_source_param encoding redirected calls. - fix handle_copy_source_param removing attributes Changes in version 0.7.5 (2024-08-23) - build endpoint with host_prefix (#804), thanks to @joseale2310 and @lyschoening for raising issue. - fix unix_time ensure seconds is numeric (#804), thanks to @joseale2310 and @lyschoening for raising issue. - fix stop anonymous credentials removing x-amz-* headers (#815) thanks to @cgostic for raising issue - fix s3 redirect for download_file - fix encode CopySource in operation CopyObject (#819) - enable lists to be passed to CopySource for CopyObject operations (#819). This is to align with boto3 implementation. library(paws) client <- s3() bucket = "BUCKET" key = "%01file%/output.txt" resp <- client$put_object( Bucket = bucket, Key = key, Body = charToRaw("helloworld") ) client$copy_object( Bucket = bucket, Key = "file_out_1.txt", CopySource = sprintf("/%s/%s", bucket, key) ) client$copy_object( Bucket = bucket, Key = "file_out_2.txt", CopySource = list( Bucket = bucket, Key = key ) ) - convert uuid to cpp for performance improvement. Changes in version 0.7.4 (2024-07-08) - fix transpose to correctly parse lists with empty first elements (#791), thanks to @FMKerckhof for raising issue. - support refreshable credentials for sso (#793) - fix region redirect for aws s3 buckets (#788) thanks to @payam-delfi for identifying issue - enrich error messages to align with boto3 error message template: # previous error message format svc <- paws.storage::s3() response <- svc$get_object( Bucket = "", Key = "", IfNoneMatch = "" ) #> Error: SerializationError (HTTP 304). failed to read from query HTTP response body # new error message format client <- paws.storage::s3() resp <- client$get_object( Bucket = "", Key = "", IfNoneMatch = "" ) #> Error: SerializationError (HTTP 304). An error occurred when calling the GetObject operation: Not Modified - use s3 head_bucket operation as final resort when redirecting aws s3 call. Changes in version 0.7.3 (2024-05-16) - fix xml_parse to correctly parse empty elements (#783) thanks to @stevepowell99 for raising issue Changes in version 0.7.2 (2024-04-09) - improve performance of restxml_unmarshal by x3 - fix rest_unmarshal_location_elements only skip header if location is not found (#761) - support global endpoint_url in config file and environmental variables (#764), thanks to @James-G-Hill for raising issue - ensure custom endpoints aren't modified Changes in version 0.7.1 (2024-03-05) - minor performance enhancements - fix MIME type for AWS BedrockRuntime Client (#749), thanks to @alex23lemm for raising issue. - export locate_credentials (#750), thanks to @tyner for raising request. - convert json_convert_string to cpp for significant performance improvement (#754) - convert components of resolve_endpoint to cpp to get a x2 performance enhancements Changes in version 0.7.0 (2024-01-09) - support sse md5 (#718). Thanks to @odysseu for raising issue. - add pagination StopOnSameToken option (#721) aligns with aws-sdk-js-v3 implementation (https://github.com/aws/aws-sdk-js-v3/releases/tag/v3.78.0). Thanks to @wlandau for raising error in paginate. - tidy up internal function jmespath_index - fix aws-global region when resolving endpoint (#730). Thanks to @atheriel for identifying the issue. - fix default region for service s3 (#730). Thanks to @atheriel for identifying the issue. - support AWS_CONTAINER_CREDENTIALS_FULL_URI environmental variable. This supports to services like sagemaker serverless endpoints (#737). Thanks to @ncullen93 for raising issue and testing. Changes in version 0.6.4 (2023-11-11) - ensure xml build structure is correctly flattened (#597) - fix cache failing to initialize on certain environments. Restrict scope of cached environment variables to only those starting with AWS_* (#706, @fh-mthomson) - fix issue of sorting query mapping causing misalignment (#711). Thanks to @matthias-Q for raising issue. Changes in version 0.6.3 (2023-11-06) - minor performance improvement for read_ini - cache read_ini for improved performance - cache unix os environment variables to improve performance on unix systems. - support web_identity_token_file in AWS config file thanks to @liuquinlin for implementation. - fix paginate functions failing to receive argument inputs when called within a function (#696). Thanks to @fh-mthomson for identifying issue. - fix NULL method as.POSIXct.default for older versions of R (#698). Thanks to @gp-dev-pw for identifying issue - fix escape function by removing protocol check (#701) Changes in version 0.6.2 (2023-10-13) - fix how read_ini reads empty profiles from ini files - fix is.atomic behavior for R v4.4+ - support service specific endpoints (#667). Thanks to @dpprdan for raising ticket and testing methods Changes in version 0.6.1 (2023-09-21) - support nested content within ini files (#667) Configuration and credential file settings - fix how nested structure are parsed from xml (#675) Changes in version 0.6.0 (2023-09-06) - use known interface when parsing xml (@619) improving performance by 3-6x. Thanks to @mgirlich for raising, implementing initial method and testing. - add expiration parameter to creds - add signature_version to config (#645) - add the ability to paginate paws methods (#30) - overwrite file destination when writing to disk. This mimics python's boto3 sdk behaviour. - add standard retry handler (#520). Thanks to @wlandau for testing. Changes in version 0.5.8 (2023-07-05) - fix mismatch apparent method as.list.struct (#634) - split timeout and connecttimeout in http call (#610). Thanks to @stuart-storypark for identifying issue, and @joakibo for extra insight and testing. - add STS regional endpoint support (#631). Thanks to @daniepi for identifying issue, and @joakibo for implementing solution. - fix windows root path by adding HOMEDRIVE environmental variable (#640). Thanks to @karen5780 for identifying issue and proposing solution. - enhancements to service construction, export helper functions for parameter auto-complete (#421). Thanks to @hadley for suggestion and recommendation. Changes in version 0.5.7 - skip network unit test on cran (#632) Changes in version 0.5.6 (2023-03-06) - add logging to credentials (#599 thanks to @jonocarroll for contribution) - display log output while code is still running (jupyter notebook issue) Changes in version 0.5.5 (2023-02-02) - Support SSO token provider configuration (#583) Changes in version 0.5.4 (2023-01-11) - add support for s3 generate_presigned_url (#572) Changes in version 0.5.3 (2022-12-06) - Fixed bugs introduced inxml_build in previous version (#569). Changes in version 0.5.2 (2022-12-01) - Fix Content-Md5 being modified by user - Add logging system to help with debugging paws issues - Automatically redirect S3 requests when they are initially made to the wrong region; previously these requests would fail - Add support for AssumeRoleWithWebIdentity (#477, thanks to @fh-mthomson for contribution) - Clarify that AWS_CREDENTIAL_EXPIRATION is optional when using AWS_SESSION_TOKEN (#549) - Add support to IMDSv2 instances (#441, thanks to @jornfranke for contribution) Changes in version 0.5.1 (2022-10-02) - Fix xml_build to allow empty lists from operations. Changes in version 0.5.0 (2022-09-02) - Fix build_query_string by exiting safely when parameter is empty. - Fix " " encoding (#519). - Migrate url encoder to cpp, and dependency Rcpp. - Support direct write to disk without sending data to R. Changes in version 0.4.0 (2022-08-08) - Fix xml_build to allow empty characters from operations. - Fix operations response for XML objects with elements at root. - Improve performance of escape with new helper function paws_url_encoder (1000x improvement). - Improve performance of decoding URL's with new helper function paws_url_decoder (780x improvement). - Support anonymous credentials. Changes in version 0.3.17 (2022-03-26) - Fix operations that take empty arguments, e.g. s3$get_bucket_website. Changes in version 0.3.16 (2022-02-19) - Fix single sign on (SSO) authentication on Windows. Changes in version 0.3.15 (2021-12-04) - Provide the ability to use credentials obtained from AWS SSO login, i.e. aws sso login --profile my-profile. - Fix timestamps in the S3 API, e.g. LastModified from get_object. Changes in version 0.3.14 (2021-10-24) - Skip tests for issue network request function to avoid CRAN check errors. Changes in version 0.3.13 (2021-10-12) - Support AWS_DEFAULT_REGION in addition to AWS_REGION. - Support calling SDK operations within do.call, including any user-supplied configuration to the service, e.g. a custom endpoint. Changes in version 0.3.12 (2021-08-15) - Support S3 access points in all S3 operations that accept a bucket argument. Fixes #403. - Fix certain API requests for S3 that were malformed due to mistakenly including empty list elements, e.g. s3_put_bucket_lifecycle_configuration. Fixes #438. - Add an option to immediately close all HTTP connections, instead of the default behavior which will reuse connections for requests within 5 seconds. Using this feature allows you to switch credentials within 5 seconds without getting your request rejected with a SignatureDoesNotMatch error. Example usage: s3 <- paws::s3(config = list(close_connection = TRUE)). Fixes #431. Changes in version 0.3.11 (2021-05-20) - Fix parsing of shared configuration and credential files. Changes in version 0.3.10 (2021-05-15) - Use path style URLs for S3 when using custom endpoints, (e.g. localhost:9000/mybucket). This is useful when using software like MinIO. When not using custom endpoints, Paws will in general use "virtual hosted" URLs (e.g. mybucket.s3.amazonaws.com) except in special cases. - Use path style URLs for S3 when using the new s3_force_path_style option when calling paws::s3(), e.g.: s3 <- paws::s3(config = list( s3_force_path_style = TRUE )) - Add support and a default value for timeout, how long to wait in seconds for an acknowledgement of an HTTP request before failing. Default = 60. This is user configurable by adding arguments to the service call, e.g. svc <- paws::svc(config = list(timeout = 10)) - Don't skip lower case field names for REST location elements. For example, lexmodelbuildingservice$create_bot_version(name, checksum) previously failed due incorrectly skipping the name field. Changes in version 0.3.9 (2021-02-26) - Support multifactor authentication, using the mfa_serial shared configuration file item. - Support AWS_CONFIG_FILE, AWS_SHARED_CREDENTIALS_FILE, AWS_CREDENTIAL_EXPIRATION, and AWS_EC2_METADATA_DISABLED environment variables. See https://github.com/paws-r/paws/blob/main/docs/credentials.md for explanations of all settings. - Cache credentials in each service object. Changes in version 0.3.8 (2021-01-25) - Use no timeout by default when making HTTP requests. The previous release set the default timeout to 10 seconds, which prevented users from downloading large files. Changes in version 0.3.7 (2021-01-18) - s3$put_object will now read in files when given file paths for the Body parameter. Previously it would accept only blobs, e.g. from readBin. Changes in version 0.3.6 (2020-12-05) - Add the error response and HTTP status code to the condition object, in addition to having it be in the condition object's attributes. This is in response to a request in issue #329. - Make errors be of class paws_error in addition to their other classes, e.g. http_400, error, condition. - Correctly unmarshal EC2 API error responses. Changes in version 0.3.5 (2020-10-25) - Support getting AWS credentials from IAM roles using shared configuration file items role_arn, credential_source, and source_profile. - Support getting AWS credentials from running a process using shared configuration file item credential_process. - Fix decoding of errors from the EC2 API. - Fix support for newlines in arguments in S3 and other REST XML protocol APIs. Changes in version 0.3.4 (2020-09-06) - Support S3 object keys with spaces. - Support writing empty S3 objects. - Support integers larger than 2^31 - 1 in API responses, e.g. S3 object size, by using 64-bit numeric objects rather than 32-bit integer objects. Changes in version 0.3.3 (2020-07-19) - Decode base64-encoded blobs to raw vectors. Previously, Paws decoded them to UTF-8 inappropriately, which would fail for any data other than text. - In some cases, httr/curl do not decompress the response body. In these cases, check whether it looks compressed and try decompressing it. Changes in version 0.3.2 (2020-06-22) - Support the S3 operation SelectObjectContent in s3$select_object_content. This operation allows you to query a data file in S3 using SQL. - Correctly decode Unicode strings in API responses received from AWS, such as "Me voy a casa maƱana.". Changes in version 0.3.1 (2020-04-26) - Read in session tokens from shared credential files. - Fix handling of dates when used as arguments to CloudWatch and other APIs. Previously the operation would submit the date in an inappropriate format. - Fix handling of profiles when specified for a specific service, e.g. paws::svc(config = list(credentials = list(profile = "my-profile"))). Previously the profile was not used to get credentials. - Fix handling of operations that return nothing -- return an empty object rather than failing. Changes in version 0.3.0 (2020-03-28) - Add HTTP status codes to the error response when an operation fails, along with any other information returned by AWS about the error. - Add support for S3 operation GetBucketLocation, which needs special handling. - Fix how paws.common provides request handlers to specific services (e.g. S3) so that fixes to handlers don't require re-installing any package other than paws.common. Changes in version 0.2.6 (2020-02-23) - Fix handling of nested inputs and outputs for services like DynamoDB. - Fix handling of output elements that are delivered in HTTP headers for REST-based services like S3. Changes in version 0.2.5 (2020-01-11) - Add support for RDS IAM authentication. Changes in version 0.2.4 (2019-10-19) - Add support for custom configuration per service, e.g. svc <- paws::svc(config = list(region = "us-west-1")). Changes in version 0.2.3 (2019-10-15) - Fix support for non-default profiles in shared config files. Changes in version 0.2.2 (2019-10-03) - Escape URIs, e.g. when uploading files to S3 with non-alphanumeric keys. - Fix XML request handling (e.g. used by S3) to correctly support requests with skipped optional arguments. Changes in version 0.2.1 (2019-09-21) - Support session tokens stored in the AWS_SESSION_TOKEN environment variable. Changes in version 0.2.0 (2019-08-20) - Use the global signing region (us-east-1) for services with global endpoints, e.g. IAM. This requires an updated list of endpoints in the arguments to new_service, namely each endpoint should look like list(endpoint = "foo", global = FALSE). Changes in version 0.1.2 (2019-08-08) - Fix the EC2 IAM role credential provider. Changes in version 0.1.1 (2019-03-19) - Add service customizations into paws.common to work with services like DynamoDB and S3 that require non-standard request handling. Changes in version 0.1.0 (2019-03-13) Initial release.