@api private
# File lib/aws-sdk-core/plugins/rds_cross_region_copying.rb, line 21 def call(context) params = context.params if params[:source_region] && !params[:pre_signed_url] params[:pre_signed_url] = presigned_url(context, params) params[:destination_region] = context.config.region end @handler.call(context) end
# File lib/aws-sdk-core/plugins/rds_cross_region_copying.rb, line 31 def presigned_url(context, params) # :source_region is not modeled in the api source_region = params.delete(:source_region) param_list = Aws::Query::ParamList.new param_list.set('Action', context.operation.name) param_list.set('DestinationRegion', context.config.region) param_list.set('Version', context.config.api.metadata['apiVersion']) Aws::Query::ParamBuilder.new(param_list).apply( context.operation.input, params ) signer = Aws::Sigv4::Signer.new( service: 'rds', region: source_region, credentials_provider: context.config.credentials ) url = Aws::EndpointProvider.resolve(signer.region, 'rds') url += "?#{param_list.to_s}" signer.presign_url( http_method: 'GET', url: url, body: '', expires_in: 3600 ).to_s end