class Aws::DocDB::Plugins::CrossRegionCopying::Handler
@api private
def call(context)
def call(context) params = context.params if params.is_a?(Hash) && params[:source_region] && !params[:pre_signed_url] params[:pre_signed_url] = presigned_url(context, params) end @handler.call(context) end
def presigned_url(context, params)
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.version) 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::Partitions::EndpointProvider.resolve( signer.region, 'rds' ) url += "?#{param_list}" signer.presign_url( http_method: 'GET', url: url, expires_in: 3600 ).to_s end